51单片机汇编语言.pdfVIP

  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文档。上传文档
查看更多
51单片机汇编语言 a)单个与多个LED灯,位操作与字节操作—输出 ORG 0000HSTART:CLR CMOV P0.0,CMOV P1.1,CMOV P2.2,CMOV P3.3,CCLR ACPL AMOV P0,AMOV P1,AMOV P2,AMOV P3,AEND程序说明:可以用7段数码管来代替各端口的8个LED灯,硬件的这种显示 方式使得数字表达成为实用。数字显示由数码管的硬件结构与工作原理(7个LED灯的几何变形组合)和 数字表达的数据格式确定。如:共阳极数码管显示数字3 ,则有P1 口送数据#4FH ;MOVP1, #0B0H共阴 极数码管显示数字8 ,则有P1 口送数据#80H ;MOVP1, #7F H用数据表表示则有:TABshuziyang: //阳极管 (共阴极管取反即可)DB (数字0~F) C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H,83H,C6H,A1H,86H,8EHTABshuziyin: //阴极管(共阳极 管取反即可)DB (数字0~F) 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71Hb)单个与多个LED灯闪烁—延 时子程序—注意定时器 前边已经看到,通过改变位或字节的赋值,可以使得LED灯亮或灭,以此形成闪烁效果。但是硬件的响 应时间太短,使得效果不佳。虽然可以通过改变单片机的时钟设置来改变效果。但时钟的改变极其不方 便,因此需要利用延时指令(注意定时器功能)获得理想的效果。延时效果是利用单片机空转来实现 的。ACALLDELAY;调延时子程序 *************************************************************************DELAY:;延时子程序 —这是一个非常有用、而且常见的一个子程序MOV R5,#04H ;将16进制数04H传递给寄存器R5F3:MOV R6,#0FFH ;将16进制数0FFH传递给寄存器R6F2:MOV R7,#0FFH ;将16进制数0FFH传递给寄存器 R7F1:DJNZR7, F1 ;寄存器R7减1非0跳转到F1 ,直到减为0顺序执行下一指令DJNZR6, F2 ;寄存器R6减1 非0跳转到F2 ,直到减为0顺序执行下一指令DJNZR5, F3 ;寄存器R5减1非0跳转到F3 ,直到减为0顺序执 行下一指令RET;子程序结束,返回子程序入口处ACALLDELAY;调延时子程序 ***************************************************************************应用实例 MAIN:CLR C MOV P0.0,C MOV P1.1,C MOV P2.2,CMOV P3.3,C ACALLDELAY;调延时子程序;CLR ACPL AMOV P0,AMOV P1,AMOV P2,AMOV P3,AACALL DELAY;调延时子程序SJMP MAIN ;相对转移 时间短,用AJMP绝对转移时间长,RET是用于子程序的返回DELAY:;延时子程序-这是一个非常有用、 而且常见的一个子程序MOV R5,#04H;将16进制数04H传递给寄存器R5F3:MOV R6,#0FFH;将16进制数 0FFH传递给寄存器R6F2:MOV R7,#0FFH;将16进制数0FFH传递给寄存器R7F1:DJNZR7, F1 ;寄存器R7减1 非0跳转到F1 ,直到减为0顺序执行下一指令DJNZR6, F2 ;寄存器R6减1非0跳转到F2 ,直到减为0顺序执行 下一指令DJNZR5, F3 ;寄存器R5减1非0跳转到F3 ,直到减为0顺序执行下一指令RET;子程序结束,返回 子程序入口处ACALLDELAY;调延时子程序END程序说明:注意延时子程序中的DJNZR7, F1 ;DJNZR6, F2 ;DJNZR5, F3 ;通过增加或减少循环数目控制或改变延时时间c)单个与多个LED灯流动—位循环、字 节循环与延时子程序 ORG 0000HMAIN: ;****************位循环—扫描—流水灯—逐级增加灯的数目 *******************CLR C MOV P0.0,C ACALLDELAY;调延时子程序 MOV P0.1,CACALLDELAY MOV P0.2,CACALLDELAY MOV P0.3,C ACALLDELAY MOV P0.4,C ACALLDELA

文档评论(0)

文库垃圾佬 + 关注
实名认证
文档贡献者

这个人很懒

1亿VIP精品文档

相关文档