单片机汇编语音程序设计.ppt
《单片机汇编语音程序设计.ppt》由会员分享,可在线阅读,更多相关《单片机汇编语音程序设计.ppt(41页珍藏版)》请在课桌文档上搜索。
1、,MCS-51系列单片机汇编语言程序设计,MCS-51单片机的编程语言可以是汇编语言也可以是高级语言(如C语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能执行。,连接/定位器L51,汇编语言源程序,汇编器A51,符号转换程序OHS51,绝对地址目标程序.BIN,C语言程序,浮动地址目标程序,编译器C51,HEX,两种语言源程序转换成目标程序,汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。汇编程序:能将汇编语言源程序转
2、换成机器语言目标程序的系统软件称为汇编程序。,汇编方法1.手工汇编:人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。2.机器汇编:用计算机中的汇编程序对用户源程序进行汇编。用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。,MCS-51系列单片机汇编程序常用伪指令,伪指令是放在汇编语言源程序中用于指示汇编程序如何对源程序进行汇编的指令,它不同于指令系统中的指令,指令系统中的指令在汇编程序汇编时能够产生相应的指令代码,而伪指令在汇编程序汇编时不会产生代码,只是对汇编过程进行相应的控制和说明。伪指令通常在汇编语言源程序中用于定义数据、分配存储空间、控制程序
3、的输入输出等。MCS-51汇编语言源程序相对于一般的微型计算机汇编语言源程序结构简单,伪指令数目少,常用的伪指令只有几条。,1起始指令ORG格式:ORG 地址(十六进制表示)这条伪指令放于一段源程序或数据的前面,汇编时用于指明程序或数据从程序存储空间什么位置开始存放。ORG伪指令后的地址是程序或数据的起始地址。例:ORG 1000HSTART:MOV A,#7FH 指明后面的程序从程序存储器的1000H单元开始存放。,2字节定义DB格式:标号:DB 项或项表 DB伪指令用于定义字节数据,可以定义一个字节,也可定义多个字节,字义多个字节时,两两之间用逗号间隔,定义的多个字节在存储器中是连续存放的
4、。定义的字节可以是一般常数,也可以为字符,还可以是字符串,字符和字符串以引号括起来,字符数据在存储器中以ASCII码形式存放。在定义时前面可以带标号,定义的标号在程序中是起始单元的地址。,例:ORG 3000HTAB1:DB 12H,34H DB 5,A,abc汇编后,各个数据在存储单元中的存放情况如下:,3字定义DW格式:标号:DW 项或项表 这条指令与DB相似,但用于定义字数据。项或项表指所定义的一个字在存储器中占两个字节。汇编时,机器自动按高字节在前,低字节在后,即高字节存放在低地址单元,低字节存放在高地址单元。,例:ORG 3000H TAB2:DW 1234H,5678H汇编后,各个
5、数据在存储单元中的存放情况如下:,4保留字节DS格式:标号:DS 数值表达式 该伪指令用在存储器中保留一定数量的字节单元。保留存贮空间主要为以后存放数据。保留的字节单元数由表达式的值决定。,例:ORG 3000H TAB1:DB 12H,34H DS 4H DB 5汇编后,存储单元中的分配情况如下:,5等值指令EQU格式:符号 EQU 项 该伪指令的功能是将指令中的项的值赋予EQU前面的符号。项可以是常数、地址标号或表达式。以后可以通过使用该符号使用相应的项。例:TAB1 EQU 1000H TAB2 EQU 2000H 汇编后TAB1、TAB2分别等于1000H、2000H。程序后面使用10
6、00H、2000H的地方就可以用符号TAB1、TAB2替换。用EQU伪指令对某标号赋值后,该符号的值在整个程序中不能再改变。,6位定义bit格式:符号 bit 位地址 bit该伪指令用于给位地址赋予符号,经赋值后可用该符号代替bit后面的位地址。例:PLG bit F0 AI bit P1.0 定义后,在程序中位地址F0、P1.0就可以通过FLG和AI来使用。,7结束指令END格式:END 该指令放于程序最后位置,用于指明汇编语言源程序的结束位置,当汇编程序汇编到END伪指令时,汇编结束。END后面的指令,汇编程序都不予处理。一个源程序只能有一个END命令,否则就有一部分指令不能被汇编。,汇编
7、语言程序设计步骤,一.确定方案和计算方法二.了解应用系统的硬件配置、性能指标三.建立系统数学模型,确定控制算法和操作步骤四.合理分配存储器单元和了解I/O接口地址,五.编制源程序1.按功能设计程序,明确各程序之间的相互关系2.用流程图表示程序结构和功能,3.程序中用注释说明指令在程序中的作用,方便阅读、调试和修改,顺序程序设计例3-1 编程将外部数据存储器的000EH和000FH单元的内容相换。,常用程序结构 顺序程序、分支程序、循环程序、子程序,分析:外部数据存储器的数据操作只能用MOVX指令,且只能和A之间传送,因此必须用一个中间环节作暂存,设用20H单元。用R0、R1指示两单元的低八位地
8、址,高八位地址由P2指示。编程过程如下:,ORG 0000H MOV P2,#0H;送地址高八位至P2口 MOV R0,#0EH;R0=0EH MOV R1,#0FH;R1=OFH MOVX A,R0;A=(000EH)MOV 20H,A;(20H)=(000EH)MOVX A,R1;A=(000FH)XCH A,20H;A=(000EH),(20H)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A;交换后的数送各单元 SJMP$END,例3-3 设变量放在片内RAM的20H单元,其值为00H05H之间,要求编查表程序,查出变量的平方值,并放入片内RAM的21H单元。
9、,ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR;查表 MOV 21H,A SJMP$TAB2:DB 00H,01H,04H,09H,16H,25H END,分析:在程序存储器安排一张平方表,首地址为TAB,以DPTR指向表首址,A存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。表中数据用BCD码存放合乎人们的习惯.,如果平方值为两个字节,程序应如何编。,ORG 0000H MOV A,R2 JNB ACC.7,N;为正数?CPL A;负数变补 INC A MOV R2,A N:SJMP$;结束,分支程序的设计 由条件转移指令构成程
10、序判断框部分,形成分支结构。,单分支程序一个判断决策框,两种分支结构图。,例:求8位有符号数的绝对值。方法:正数不变,负数变补,多分支散转程序的设计 有一类分支程序,它根据不同的输入条件或不同的运算结果,转向不同的处理程序,称之为散转程序。这类程序通常利用JMPA+DPTR间接转移指令实现转移。有如下两种设计方法:1.查转移地址表:将转移地址列成表格,将表格的内容作转移的目标地址。2.查转移指令表:将转移到不同程序的转移指令列成表格,判断条件后查表,转到表中指令执行,下面用两个例子说明。,1.利用转移地址表实现转移 例3-7 根据R3的内容转向对应的程序,R3的内容为0n,处理程序的入口符号地
11、址分别为PR0PRn(n128)。分析:将PR0PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP A+DPTR指令(A先清零)即转移到PRn入口执行。,ORG 0000HMOV A,R3;R3AADD A,ACC;A*2MOV DPTR,#TABPUSH ACCMOVC A,A+DPTR;取地址表中高字节MOV B,A;暂存于BINC DPL POP ACCMOVC A,A+DPTR;取地址表中低字节MOV DPL,AMOV D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 汇编 语音 程序设计

链接地址:https://www.desk33.com/p-246788.html