- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理、接口及应用 内 容 提 要 ★伪指令 ★汇编语言程序设计步骤 ★顺序程序设计 ★分支程序设计 ★循环程序设计 ★位操作程序设计 ★子程序 ★小结 二.伪指令 常用伪指令及功能: 1.起始指令 ORG nn 功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序存储器中。 指令地址 机器码 源程序 ORG 2000H 2000H 78 30 MAIN: MOV R0,#30H 2002H E6 MOV A,@R0 … 3. 字定义 标号:DW (字常数或表达式) 作用: 指示在程序存储器中以标号为起始地址 的单元里存放的数为字数据(即16位的二进制数),例如: GH :DW 1234H,5678H,08 5. 等值指令 标号 EQU(数值表达式) 表示EQU两边的量等值,用于为标号或标识符赋值。例如: X1 EQU 2000H X2 EQU 0FH … MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH 6. 位定义 标号 BIT [位地址] 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1。 汇编语言程序设计步骤 一.确定方案和计算方法 二.了解应用系统的硬件配置、性能指标 三.建立系统数学模型,确定控制算法和操作步骤 四.合理分配存储器单元和了解I/O接口地址 常用程序结构 顺序程序、分支程序、循环程序、子程序 顺序程序设计 例3-1 编程将外部数据存储器的000EH和000FH单元的内容相换。 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 顺序程序设计 顺序程序(简单程序),程序走向只有一条路径 例3-3 分解压缩式BCD码,使其成为非压缩式BCD码。 ORG 0000H MOV R0,#40H ;设指针 MOV A,@R0 ;取一个字节 MOV R2,A ;暂存 ANL A,#0FH ;清0高半字节 INC R0 MOV @R0,A ;保存数据个位 例 3-9 设计一个延时10ms的延时子程序,已知单片机使用的晶振为6MHz。 分析 : 延时时间与两个因素有关:晶振频率和循环次数。由于晶振采用6MHz,一个机器周期是2μs,用单循环可以实现1ms延时,外循环10次即可达10ms延时。 内循环如何实现1ms延时呢,程序中可先以未知数MT代替,从附录A查每条指令机器周期计算程序的执行时间。 ORG 0020H MOV R0,#0AH ;外循环10次 DL2: MOV R1,#MT ;内循环MT次 DL1: NOP NOP ;空操作指令 DJNZ R1,DL1 DJNZ R0,DL2 RET 例3-10 编写多字节数×10程序。 内部RAM以20H为首址的一片单元中存放着一个多字节符
文档评论(0)