资源描述:
《北方工业大学单片机课件4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单元四汇编语言程序设计4.1任务七单片机计数4.2任务八LED显示电路返回主目录4.1任务七单片机计数学习目标:通过学习任务七的完成方法,掌握MCS-51单片机汇编语言中的伪指令的功能特点。任务描述:利用实验开发板上的555振荡电路产生的4HZ的脉冲信号进行计数,要求每计十个数单灯向左移动一次。4.1.1硬件电路ORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#06HMOVTH0,#0F6HMOVTL0,#0F6HSETBTR0MOVA,#0FEHLOOP:MOVP1,AJBCTF0,M
2、LOOPSJMPLOOPMLOOP:RLASJMPLOOPEND4.1.2程序设计硬件演示:用“伟福”模拟仿真软件进行程序的编辑、编译。打开“ISP下载软件”将目标文件下载到ISP-4实验开发板上的AT89S51单片机芯片,观察程序运行结果。提出问题:1、ORGEND这样指令有什么意义?2、什么是伪指令?有哪些常用伪指令?4.1.3源程序编辑、编译、下载什么是伪指令伪指令又称汇编程序控制译码指令,属说明性汇编指令。伪”字体现在汇编时不产生机器指令代码,不影响程序的执行,仅产生供汇编时用的某些命令,在汇编时执行某些
3、特殊操作。如EDN表示编译到此结束。4.1.4相关知识---伪指令(1)定位伪指令ORG格式:[标号:]ORG地址表达式功能:规定程序块或数据块存放的起始位置。例如:ORG1000H;MOVA,#20H表示下面指令MOVA,#20H存放于1000H开始的单元(2)定义字节数据伪指令DB格式:[标号:]DB字节数据表功能:字节数据表可以是多个字节数据、字符串或表达式,它表示将字节数据表中的数据从左到右依次存放在指定地址单元。2.常用伪指令例如:ORG1000HTAB:DB2BH,0A0H,‘A’,2*4;表示从10
4、00H单元开始的地方存放数据2BH,0A0H,41H(字母A的ASCII码),08H(3)定义字数据伪指令DW格式:[标号:]DW字数据表功能:与DB类似,但DW定义的数据项为字,包括两个字节,存放时高位在前,低位在后。例如:ORG1000HDATA:DW324AH,3CH;表示从1000H单元开始的地方存放数据32H,4AH,00H;3CH(3CH以字的形式表示为003CH)`(4)定义空间伪指令DS格式:[标号:]DS表达式功能:从指定的地址开始,保留多少个存储单元作为备用的空间。例如:ORG1000HBUF
5、:DS50;TAB:DB22H;22H存放在1032H单元。表示从1000H开始的地方预留50(1000H~1031H)个存储字节空间。(5)符号定义伪指令EQU或“=”格式:符号名EQU表达式或符号名=表达式功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,并且必须遵循先定义后使用的原则,因此该语句通常放在源程序的开头部分。例如:LEN=10SUMEQU21H…MOVA,#LEN;执行指令后,累加器A中的值为0AH…(6)数据赋值伪指令DATA格式:符号名DATA表达式功能:将表达
6、式的值或某个特定汇编符号定义为一个指定的符号名,只能定义单字节数据,但可以先使用后定义,因此用它定义数据可以放在程序末尾进行数据定义。例如:…MOVA,#LEN…LENDATA10尽管LEN的引用在定义之前,但汇编语言系统仍可以知道A的值是0AH。7.数据地址赋值伪指令XDATA格式:符号名XDATA表达式功能:将表达式的值或某个特定汇编符号定义为一个指定的符号名,可以先使用后定义,并且用于双字节数据定义。例如:DELAYXDATA0356H…LCALLDELAY;执行指令后,程序转到0356H单元执行8.汇编结
7、束伪指令END格式:[标号:]END功能:汇编语言源程序结束标志,用于整个汇编语言程序的末尾处。小结:1.伪指令在程序中的作用是什么?2.单片机汇编语言程序中常用的有哪些伪指令?思考与练习:4.24.34.2任务八LED显示电路学习目标:通过学习任务八的完成方法,掌握单片机汇编语言程序设计的结构化设计方法,如分支结构、循环结构、子程序结构、查表程序结构等。任务描述:将0~9这十个数循环送P1口七段LED上显示。4.2.1硬件电路START:ORG 0100HMAIN:MOV R0,#00HMOV D
8、PTR,#TABLEDISP:MOV A,R0MOVC A,@A+ADPTRMOV P1,AACALLDELAYINC R0CJNE R0,#0AH,DISPAJMP MAINDELAY:MOV R1,#0FFHLOOP0:MOV R2,#0FFHLOOP1:DJNZ R2,LOOP1DJNZ R1,LOOP0RETTABLE: