第4章80C51单片微机的设计解说.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
注意事项: ⑴ 子程序入口条件 ⑵ 保护现场与恢复现场 断点、数据 压栈、出栈顺序 说明文件,一般包含如下内容: ?? 子程序名 ?? 子程序功能 子程序入口条件和出口结果 ?子程序所用的寄存器、存储单元、标志位等,提示主程序或调用程序是否需要在调用本子程序前对此进行保护 子程序嵌套 ⑶ 子程序的特性 应用软件来进行数字滤波。中值滤波就是连续输入三个检测信号值,从中选择一个中间值为有效信号。 入口条件:三次采集数据分别存储在内部存储器的20H、 21H和22H中。 出口结果:中间值在R0寄存器中。 使用资源:累加器A、R0及内存20H、21H和22H。 例. 中值数字滤波子程序 ORG 2100H FILLE:PUSH PSW ;PSW及ACC保护入栈 PUSH ACC MOV A,20H ;取第一个数据 CLR C SUBB A,21H ;与第二个数据比较 JNC LOB1 ;第一个数据比第二个数据大,转 ;LOB1 MOV A,20H ;第一个数据比第二个数据小,交换 ;二个数的位置 XCH A,21H MOV 20H,A LOB1:MOV A,22H CLR C SUBB A,20H ;第三个数据与前二个数据中的较大 ;数比较 JNC LOB3 ;第三个数据大于前二个数据中的较 ;大数,转LOB3 MOV A,22H CLR C SUBB A,21H;第三个数据与前二个数据中的较小数比较 JNC LOB4 MOV A,21H MOV R0,A LOB2:POP ACC ;恢复ACC和PSW POP PSW RET LOB3:MOV A,20H MOV R0,A AJMP LOB2 LOB4:MOV A,22H ;存入中值 MOV R0,A AJMP LOB2 习题 14、15、16、17 指令格式为:<标号> DW <表达式或表达式表> 含义:把字或字串值存入由标号开始的连续存储单元中,且把字的高字节数存入低地址单元,低字节数存入高地址单元。按顺序连续存放。 DW 100H,3456H,814 表示按顺序存入01H,00H,34H,56H,03H,2EH 注:DB和DW定义的数表,数的个数不得超过80个。若数据的数目较多时,可以使用多个定义命令。 一般以DB来定义数据,以DW来定义地址。 ⒍ DW(Define Word) 定义字伪指令 指令格式为:标号 DS 表达式 含义:通知汇编程序,在目标代码中,以标号为首地址保留表达式值的若干存储单元以备源程序使用。汇编时,对这些单元不赋值。例如: BASE DS 100H 通知汇编程序,从标号BASE开始,保留100H个存储单元,以备源程序另用。 注意:对于80C51单片微机,DB、DW、DS等伪指令只能应用于程序存储器,而不能对数据存储器使用。 ⒎ DS(Define Storage) 定义存储区伪指令 ? 命令格式为:字符名称 BIT 位地址 含义:给字符名称赋予位地址。其中,位地址可以是绝对地址,也可以是符号地址。 例:ABC BIT P3.1 把P3.1位地址赋值给ABC,在后面的编程中,ABC即可作为位地址P3.1使用 ⒏ BIT 位定义伪指令 例1. 伪指令应用 ORG 8100H BUFFER DS 10H DW “A B” DW 100H,1ACH,-814 说明:① 从8100H至810FH为缓冲区空间 ② (8110H)=41H (‘A’) (8111H)=42H (‘B’) ③ 8112H单元起存放01H、00H、01H、ACH、FCH、D2H 4.2 80C51汇编语言程序设计 4.2.1 顺序结构程序设计? 例2. 数据传送和交换。 将R0与R7内容互换,R4与内存20H单元内容互换。 XCHR:MOV A,R0 XCH A,R7 XCH A,R0 ;R0与R7内容互换 MOV A,R4 XCH A,20H XCH A,R4 ;R4与20H单元内容互换 设被加数存放于片内RAM的20H(低位字节)、21H(高位字节),加数存放于22H(低位字节)和23H(高位字节),运算结果的

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档