修改版走马灯软件设计.docx
- 文档编号:2975885
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:15
- 大小:175.21KB
修改版走马灯软件设计.docx
《修改版走马灯软件设计.docx》由会员分享,可在线阅读,更多相关《修改版走马灯软件设计.docx(15页珍藏版)》请在冰豆网上搜索。
修改版走马灯软件设计
第一章课题简介
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?
d"Z?
a2`/`0通过本次的课程设计掌握单片机系统设计思路和基本步骤:
掌握AT89C51芯片的使用,掌握LED驱动电路,延时程序和按键处理程序设计。
能熟练使用Protel99SE,Visio等相关软件的使用。
单片机嵌入式系统中的跑马灯就像C语言的“HelloWorld!
”程序一样,虽然简单,却是一个非常经典的例子。
对初学者来说,通过跑马灯系统设计的学习与编程,能很快熟悉单片机的操作方式,了解单片机系统的开发流程,并通过第一个实例增强自己学习单片机系统设计的信心。
下面详细讲解跑马灯电路的设计。
优领域-电子领域?
A(N'U)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 BIT20H.0;把位地址20H.0赋给变量TIME
DISPLAY BIT20H.1把位地址20H.1赋给变量DISPLAY
ORG0000H;程序开始地址
JMPMAIN;跳转到主程序
MAIN:
MOV SP,#40H;堆栈入口地址40H
MOV TMOD,#01H;T0工作在模式1
MOV TH0,#3CH;给高8位赋初值
MOV TL0, #B0H;给低8位赋初值1
SETB IT0;下降沿有效
SETB TR0;打开定时器T0启动控制位
SETB EX0;开外部中断INT0
SETB 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的中断入口地址
ORG000BH;T0的中断入口地址
JMP T0;跳转到T0处
T0中断服务入口程序
T0:
CLR TR0;关闭T0启动控制位
DJNZ R0,LOOP;寄存器减一,不为0则转移到LOOP
MOV R0,#0AH;给R0赋初值10;
SETB TIME;启动计时
LOOP:
MOV TH0,#3CH;给高8位赋初值
MOV TL0,#B0H;给低8位赋初值
SETBTRO;打开定时器T0启动控制位
RETI;中断返回
3.2.3显示功能模块编程
图3.3显示功能模块流程图
主程序部分
MOVSP,#40H;堆栈入口改为40H
SETB IT0;下降沿有效
SETB EX0;开外部中断INT0
SETB EA;打开中断允许总控位
中断入口
ORG0003H;外部中断T0入口地址
JMP INT0;跳到INT0处
中断服务程序
INT0:
CLR EX0;关闭外部中断
JB DISPLAY,LOP;如果DISPLAY为位1则跳转到LOP处
MOV A,#0FFH;给累加器赋初值A,FFH
LOP0:
CPL DISPLAY;取反DISPLLAY位
SETB EX0;开外部中断INT0
RETI ;中断返回
LOP:
MOV A,#0FEH;给累加器赋初值A,FEH
JMPLOP0
3.2.4走马灯模块流程图
图3.4走马灯模块流程图
WATERLIGHT:
CLR EX0;关闭外部中断T0
MOV P0,A;将累加器的值传送到P0口
JNB TIME,$;直接寻址位TIME为0则等待
CLR TIME;TIME位清零
RL A;将累加器A中值左移一位
RL A;将累加器A中的值左移一位
SETBEX0;关闭外部中断INT0
RET;程序返回
3.2.5霓虹灯模块流程图
图3.5霓虹灯模块流程图
SHINE:
CLR EX0;关闭外部中断INT0
MOV P0,A;累加器的值传送到P0口
JNB TIME,$;直接寻址位TIME为0则等待
CLR TIME;TIME位清零
SETB EX0;打开外部中断INT0
RET;程序返回
第四章设计心得体会
经过多天的努力,终于完成了第一次任务,设计出了走马灯!
也可以说是经过了多天的学习,尽管期间苦难重重,但我还是从中学习了不少新的知识和解决困难的方法,也体验到了自主创作的快乐
对于本次课题的心得体会,我觉得有以下几点:
1、不管做什么事,计划是很重要的。
没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。
而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。
这样才能提高成功率。
2、做事要多动脑,选出最好的方法。
一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。
3、要注意细节。
细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。
因此我们不仅仅要有整体意识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。
5、最后,也是最重要的一点,通过这次课题,我们学到了很多有关单片机方面的知识,也对单片机有了更深入的了解。
使我们受益匪浅。
第五章附录
附录一硬件图,总程序
5.1硬件图
图5.1硬件图
5.3总程序
TIME BIT20H.0;把位地址20H.0赋给变量TIME
DISPLAY BIT20H.1;把位地址20H.1赋给变量DISPLAY
ORG0000H;程序开始地址
JMPMAIN;跳转到主程序
ORG0003H;INT0的中断入口地址
JMP INT0;跳转到INT0
ORG000BH;T0的中断入口地址
JMP T0;跳转到T0处
MAIN:
MOV SP,#40H;堆栈入口地址40H
MOV TOMD,#01H;T0工作在模式1
MOV TH0,#3CH;给高8位赋初值
MOV TL0, #B0H;给低8位赋初值1
SETB IT0;下降沿有效
SETB TR0;打开定时器T0启动控制位
SETB EX0;开外部中断INT0
SETB ET0;开定时器T0
SETB EA;开中断总允许
CLR TIME;取反直接寻址位TIME
CLR DISPLAY;取反直接寻址位DISPLAY
MOV A, #FEH;给累加器赋初值FEH
LPP:
JNBDISPLAY,LPP00;直接寻址位为0就跳转到LP00处
LCALL SHINE;调用霓虹灯指令
JMP LPP;跳转到LPP处
LPP00:
LCALL WATERLIGHT;调用走马灯指令
JMP LPP;跳转到LPP处
T0:
CLR TR0;关闭T0启动控制位
DJNZ R0,LOOP;寄存器减一,不为0则转移到LOOP
MOV R0,#0AH;给R0赋初值10
SETB TIME;启动计时
LOOP:
MOV TH0,#3CH;给高8位赋初值
MOV TL0,#B0H;给低8位赋初值
SETB TRO;打开定时器T0启动控制位
RETI;中断返回
INT0:
CLR EX0;关闭外部中断
JB DISPLAY,LOP;如果DISPLAY为位1则跳转到LOP处
MOV A,#0FFH;给累加器赋初值A,FFH
LOP0:
CPL DISPLAY;取反DISPLLAY位
SETB EX0;开外部中断INT0
RETI ;中断返回
LOP:
MOV A,#0FEH;给累加器赋初值A,FEH
JMPLOP0
WATERLIGHT:
CLR EX0;关闭外部中断T0
MOV P0,A;将累加器的值传送到P0口
JNB TIME,$;直接寻址位TIME为0则等待
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 修改 走马灯 软件设计