- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
修改版走马灯软件设计
第一章课题简介
1.1课题简介
跑马灯,顾名思义,就是“会像马儿一样跑动”的小灯,故取名“跑马灯”。跑马灯在单片机系统中一般是用来指示和显示单片机的运行状态,一般情况下,单片机的跑马灯由8个LED发光二极管组成.
LED发光二极管与单片机的接口一般可以分为直接式、扫描式与多路复用式三种
本实验采用优领域-电子领域?E?X8z?L?H?]?G直接式:每个LED发光二极管对应单片机的一个唯一的输出引脚,即单片机的一个输出端口(P0、P1或P2)就能够控制8个LED发光二极管。当相应引脚输出为低时,电流从VCC流入单片机,LED发光二极管开始发光,发光亮度由匹配的串联电阻控制;当相应引脚输出为高时,没有电流通过LED发光二极管,LED发光二极管熄灭。
1.2课题研究的目的与意义 ?
3X?M?]?R?dZ?a2`/`0通过本次的课程设计掌握单片机系统设计思路和基本步骤:掌握AT89C51芯片的使用,掌握LED驱动电路,延时程序和按键处理程序设计。能熟练使用Protel99SE, Visio等相关软件的使用。单片机嵌入式系统中的跑马灯就像C语言的“Hello World!”程序一样,虽然简单,却是一个非常经典的例子。对初学者来说,通过跑马灯系统设计的学习与编程,能很快熟悉单片机的操作方式,了解单片机系统的开发流程,并通过第一个实例增强自己学习单片机系统设计的信心。下面详细讲解跑马灯电路的设计。优领域-电子领域?A(NU)P?b)W优领域-电子领域?
第二章 软件设计
2、1 软件设计实现的功能 1具有走马灯,霓虹灯功能;
2走马灯规律:自右向左隔两个灯;
3霓虹灯规律:每隔一秒闪烁一次,隔灯亮灭为一秒;4走马灯显示个数为8个;
5由走马灯转为霓虹灯由按钮控制;
2、2 软 件 结 构 模 块 图
图2.1结构模块图2、3 软 件 编 程 流 程 思 想
?
图2.2 软件编程流程思想
中断是指CPU在执行程序的过程中,当出现异常情况或特殊请求时,停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回现行程序的间断处,继续执行原程序。
中断是单片机实时地处理内部或外部事件的一种内部机制。当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。
第三章软件分析
3.1 流程总图设计
图3.1软件流程总图设计
3.2软件分部程序设计 ??
3.2.1初始化程序
TIME ?BIT 20H.0DISPLAY ?BIT 20H.1把位地址20H.1赋给变量DISPLAY
ORG 0000H ;程序开始地址
JMP MAIN;跳转到主程序
MAIN:
MOV ?SP ,#40H;堆栈入口地址40H
MOV ?TMOD,#01H;T0工作在模式1
MOV ?TH0, #3CH;给高8位赋初值
MOV ?TL0, ?#B0H;给低8位赋初值SETB ?IT0;下降沿有效SETB ?TR0; 打开定时器T0启动控制位
SETB ?EX0; 开外部中断INT0SETB ?ET0; 开定时器T0
SETB ?EA;开中断总允许
CLR ?TIME;取反直接寻址位TIME
CLR ?DISPLAY;取反直接寻址位DISPLAY
MOV ?A, ?#FEH;给累加器赋初值FEH
LPP: JNB ?DISPLAY LPP00;直接寻址位为0就跳转到LP00处
LCALL ?SHINE;调用霓虹灯指令
JMP ?LPP ;跳转到LPP处
LPP00: LCALL ?WATERLIGHT;调用走马灯指令
??JMP ?LPP ;跳转到LPP处
3.2.2延时模块程序编辑
图3.2延时模块流程图工作模式程序方式选择
?选择T0的方式1
计数初值的计算
机器周期:T=12M/6M=2us
则T0的定时初值N=2^16-50000=15536=3CB0H
主程序中关于T0的部分
?MOV ?TMOD, #01H;T0工作在模式一
?MOV ?TH0, #3CH;给高8位赋初值
?MOV ?TL0, #B0H;给低8位赋初值
SETB ?TR0;打开定时器T0启动控制位
SETB ?ET0;允许T0中断溢出
SETB ?EA;打开中断允许总控位
T0的中断入口地址
?ORG 000BH;T0的中断入口地址
? JMP ?T0 ;跳转到T0处
T0中断服务入口程序
T0: ?? CLR ?TR0;关闭T0启动控制位
?????DJNZ ?R0,LOOP;寄存器减一,不为0则转移到LOOP
?????MOV ??R0,#0AH;给R0赋初值10;
?????SETB ??TIME;启动计时?LOOP: MOV ?
文档评论(0)