ImageVerifierCode 换一换
格式:DOCX , 页数:3 ,大小:15.37KB ,
资源ID:22809426      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22809426.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(实现8个LED流水灯汇编语言程.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

实现8个LED流水灯汇编语言程.docx

1、实现8个LED流水灯汇编语言程START:MOV ACC,#0FEH ;ACC中先装入LED1亮的数据(二进制的) MOV P1,ACC ;将ACC的数据送P1口 MOV R0,#7 ;将数据再移动7次就完成一个8位流水过程 LOOP: RLA ;将ACC中的数据左移一位MOV P1,A ;把ACC移动过的数据送p1口显示ACALL DELAY ;调用延时子程序DJNZR0,LOOP ;没有移动够7次继续移动 AJMPSTART ;移动完7次后跳到开始重来,以达到循环流动效果;- 延时子程序 -DELAY:MOV R0,#255 ;延时一段时间D1: MOV R1,#255DJNZR1,$DJ

2、NZR0,D1RET ;子程序返回END ;程序终止START:CLR ;输出低电平,使LED1点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED1熄灭CLR ;输出低电平,使LED2点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED2熄灭CLR ;输出低电平,使LED3点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED3熄灭CLR ;输出低电平,使LED4点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED4熄灭CLR ;输出低电平,使LED5点亮ACALL DELAY;调用延时子程序SETB ;输

3、出高电平,使LED5熄灭CLR ;输出低电平,使LED6点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED6熄灭CLR ;输出低电平,使LED7点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED7熄灭CLR ;输出低电平,使LED8点亮ACALL DELAY;调用延时子程序SETB ;输出高电平,使LED8熄灭ACALL DELAY;调用延时子程序AJMPSTART;8个LED流了一遍后返回到标号START处再循环;- 延时子程序 -DELAY:MOV R0,#255;延时一段时间D1: MOV R1,#255DJNZR1,$DJNZR0,D1R

4、ET ;子程序返回END;程序终止ORG 0000H ;上电复位,程序从0000H开始执行START:MOV SP,#60H ;堆栈初始化为60HMOV DPTR,#LIU_TAB ;流水花样表首地址送DPTRLOOP: CLR AMOVCA,A+DPTRCJNEA,#0FFH,SHOW;检查流水结束标志AJMPSTART ;所有花样流完,则从头开始重复流SHOW: MOV P1,A;将数据送到P1口ACALL DELAYINC DPTRAJMPLOOP;- 延时子程序 -DELAY:MOV R0,#255;延时一段时间D1: MOV R1,#255DJNZR1,$DJNZR0,D1RET ;

5、子程序返回;- 下面是流水花腔数据表 -LIU_TAB: DB 01111111B ;二进制表示的流水花腔数据DB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB BDB 01111111BDB 7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;十六进制表示DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FHDB 7EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,7EHDB 7FH,3FH,1FH,0FH,07H,03H,01H,00HDB 0FFH ;流水花样

6、结束标志0FFHEND;程序结束延时子程序,12M晶振延时约250毫秒DELAY:MOV R4,#2L3: MOV R2 ,#250L1: MOV R3 ,#250L2: DJNZ R3 ,L2 DJNZ R2 ,L1DJNZ R4 ,L3 RETorg 00h;程序上电从00h开始ajmpmain;跳转到主程序org0030h;主程序起始地址main:mov a,#0feh;给A赋值成loop:movp1,a;将A送到P1口,发光二极管低电平点亮lcall delay;挪用延时子程序rl a;累加器A循环左移一名ajmploop;从头送P1显示delay:mov r3,#20;最外层循环二十

7、次d1:mov r4,#80;次外层循环八十次d2:mov r5,#250;最内层循环250次djnz r5,$;总共延时2us*250*80*20=djnz r4,d2djnz r3,d1retend如何精准计算延时子程序的执行时刻?汇编语言的一大优势确实是能够精准操纵程序的执行时刻,这在编写一些对时序要求严格的外围器件驱动时由为重要!;延时子程序,12M晶振延时约253毫秒DELAY:MOV R4,#2执行1个机械周期,耗时1微秒L3: MOV R2 ,#250执行1个机械周期,耗时1微秒L1: MOV R3 ,#251执行1个机械周期,耗时1微秒L2: DJNZ R3 ,L2执行2个机械周期,反复执行251次(2x251)502微秒)DJNZ R2 ,L1执行2个机械周期,反复执行250次(15022)*250126250微秒)DJNZ R4 ,L3执行2个机械周期,反复执行2次 (1+1+502+126250+2)*2253512微秒)RETdelay 加上第一条总共延时1+253512=253513微秒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1