学习任务四 简易计算器和秒的设计与制作 《单片机应用技术》教学课件.ppt

学习任务四 简易计算器和秒的设计与制作 《单片机应用技术》教学课件.ppt

  1. 1、本文档共150页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学习任务四 简易计算器和秒的设计与制作 《单片机应用技术》教学课件

知识链接 74S48功能表 1. 1)七段译码功能(=空,RBI=空) 在灯测试输入端()和动态灭零输入端(RBI)都接无效电平时,输入DCBA经74S48译码,输出高电平有效的七段字符显示器的驱动信号,显示相应字符。除DCBA = 0000外,RBI也可以接低电平,见表4-4中1~16行。 知识链接 2)消隐功能(BI=0) 此时BI/RBO端作为输入端,该端输入低电平信号时,表4-4中倒数第3行,无论 和RBI输入什么电平信号,不管输入DCBA为什么状态,输出全为“0”,七段显示器熄灭。该功能主要用于多显示器的动态显示。 知识链接 3)灯测试功能(=0) 此时BI/RBO端作为输出端,该端输入低电平信号时,表4-4中最后一行与RBI及DCBA输入无关,输出全为“1”,显示器7个字段都点亮。该功能用于七段显示器测试,判别是否有损坏的字段。 知识链接 4)动态灭零功能(=1,RBI=0) 此时BI/RBO端也作为输出端, 端输入高电平信号,RBI 端输入低电平信号,若此时DCBA = 0000,表4-4中倒数第2行输出全为“0”,显示器熄灭,不显示零。DCBA≠0,则对显示无影响。该功能主要用于多个七段显示器同时显示时熄灭高位的零。 知识链接 十进制数调整指令 二、 十进制调整指令DA 1. 在进行BCD码运算时,十进制调整指令总是跟在ADD或ADDC指令之后,其功能是将执行加法运算后存于累加器A中的结果进行调整和修正,使结果也为正确的BCD码。 指令格式:DA  A 指令功能:对加法运算后存在累加器A中的BCD码加法结果进行调整。两个BCD码按二进制数相加之后,必须经本指令调整,才能得到正确BCD码的和数。 知识链接 1)十进制调整问题 上述的BCD码运算中:(A)结果正确;(B)结果不正确,因为BCD码中没有1111这个编码;(C)结果不正确,正确结果应为17,而运算结果却是11。可见,二进制数加法指令不能完全适用于BCD码十进制数的加法运算,要对结果做有条件的修正,这就是所谓的十进制调整问题。 对BCD码加法运算,只能借助于二进制加法指令。但二进制数加法原则上并不适于十进制数的加法运算,有时会产生错误结果。例如, 知识链接 2)出错原因和调整方法 出错原因在于BCD码共有16个编码,但只用其中的10个,剩下6个没用到。这6个没用到的编码(1010、1011、1100、1101、1110、1111)为无效编码。在BCD码加法运算中,凡结果进入或者跳过无效编码区时,结果出错。因此一位BCD码加法运算出错的情况有以下两种。 (1)加结果大于9,说明已经进入无效编码区。 (2)加结果有进位,说明已经跳过无效编码区。 无论哪种错误,都是由6个无效编码造成的。因此,只要出现上述两种情况之一,就必须调整。方法是把运算结果加6调整,即十进制调整修正。 知识链接 DA指令具体调整方法为:若累加器A中的低4位数值大于9或者低3位向低4位产生进位,即AC=1,则需将A的低4位内容加6调整,以产生低4位正确的BCD码值。如果加6调整后,低4位产生进位,且高4位均为1,则内部加法将置位CY,使CY=1。 若累加器A中的高4位值大于9或最高进位位CY=1,则高4位需加6调整,以产生高4位的正确BCD码值。同样,在加6调整后产生最高进位,则置位CY,反之,原CY的值不变,表示和数BCD码值大于等于100。这对多字节十进制加法有用,不影响OV标志。 知识链接 由此可见,十进制调整指令是根据累加器A的原始数值和PSW的状态,对累加器A进行加06(低4位有进位时)、60(高4位有进位时)或66(低4位和高4位都有进位时)的操作。必须注意,本指令不能简单地把累加器A中的16进制数交换成BCD码,也不能用于十进制减法的调整。 知识链接 应用程举例 2. 设计将两个4位压缩BCD码数相加的程序。其中一个加数存放在30(存放十位、个位)、31(存放千位、百位)单元,另一个加数存放在32(存放十位、个位)、33(存放千位、百位)单元,和数存入30、31单元。 参考程序段如下。 MOV R0,#30  ;地址指针指向一个加数的个位、十位 MOV R1,#32;另一个地址指针指向第二个加数的个位、十位 MOV A,@R0;一个加数送累加器A ADD A,@R1;两个加数的个位、十位相加 D AA;调整为正确的BCD码 MOV @R0,A;和数的个位、十位送30单元 INC R0;两个地址指针分别指向两

您可能关注的文档

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档