第04章节单片机程序的设计基本.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第04章节单片机程序的设计基本

第4章 单片机程序设计基础;§4.1 编程的步骤、方法和技巧;§4.1.1 编程的步骤;§4.1.2 编程的方法和技巧;一、模块化的程序设计方法;1、程序功能模块化的优点;2、划分模块的原则;二、编程技巧;§4.1.3 汇编语言程序的基本结构;§4.2 汇编语言源程序的编辑和汇编;§4.2.1 源程序的编辑;§4.2.2 源程序的汇编;§4.2.3 伪指令;ORG 汇编起始命令;END 汇编结束指令;EQU 赋值命令;DATA 数据地址赋值命令;DB 定义字节命令;DW 定义字命令;DS 定义存储空间命令;BIT 位地址符号命令;§4.3 汇编语言程序设计举例;一、 简单程序设计举例;例2:16位数求补。设16位二进制数在R1R0中,求补结果存于R3R2中。; 例1:片内RAM ONE和TWO两个单元中存有两个无符号数,将两个数中的小者存入RES单元。程序如下:;例2 使用多条CJNE实现多分支程序转移 某温度控制系统,采集的温度值(Ta)放在A中,此外,在内部RAM 54h单元存放控制温度的下限值(T54),在55h单元中存放控制温度的上限(T55),若TaT55,程序转向JW(降温处理),若TaT54,程序转向SW(升温处理),否则,转向FH(返回主程序).;例3 使用散转指令实现多分支程序 设键盘上有3个操作键 键值:01 功能:读数据 键值:02 功能:写数据 键值:03 功能:插入数据 假定键值放在A中;;JMP_128: MOV A, R3 RL A MOV DPTR, #JMPTAB JMP @A+DPTR JMPTAB: AJMP ROUT00 ; 128个子程序首址 AJMP ROUT01 … … AJMP ROUT7F;三 、循环程序;循环程序;四、 子程序设计举例;例:片外RAM2000H单元中有一BCD码,编一子程序将其转换成ASCII码。;六 、运算类程序设计举例;例2:编写将30H,31H单元中的两字节二进制数乘以2的程序(积小于65536)。;例1 利用查表的方法编写Y= X2 (X=0,1,2…9 )的程序。 编程说明: 设变量X的值存放在内存30H单元中,变量Y的值存入内存31H单元。 先用远查表指令MOVC A, @A+DPTR 编写程序(参考程序1);再用近查表指令MOVC A , @A+PC 编写程序(见参考程序2)。;参考程序1: ORG 1000H START: MOV A , 30H MOV DPTR , #TABLE MOVC A , @A+DPTR MOV 31H , A TABLE: DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81 END;参考程序2: ORG 1000H START: MOV A , 30H ADD A , #03H;思考该指令的作用? MOVC A , @A+PC MOV 31H , A RET DB 0 , 1 , 4 , 9 , 16 DB 25 , 36 , 49 , 64 , 81 END;例2 将1位十六进制数,转换成相应ASCⅡ码。用计算求解和查表求解,进行比较。 (1) 计算求解: 编程说明: 设待转换的一位十六进制数存放在40H 单元中,转换后的ASCⅡ码仍存放在40H 中。 编程思路: 十六进制数0~9 ASCⅡ码:30H~39H,加30H, 十六进制数A~F ASCⅡ码:41H~46H,加37H。;Date;参考程序如下: ORG 0100 H MOV A , 40 H ANL A , # 0F H CLR C SUBB A, # 0AH ;A10? JC NEXT ADD A , #0AH ADD A , #37H SJMP SAVE NEXT: ADD A , #0AH ADD A , #30H SAVE: MOV 40H , A RET END;(2) 查表求解: ORG 0100H MOV A , 40H

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档