基于单片机的跑马灯系统的设计与实现.docx
- 文档编号:30351861
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:19
- 大小:586.24KB
基于单片机的跑马灯系统的设计与实现.docx
《基于单片机的跑马灯系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的跑马灯系统的设计与实现.docx(19页珍藏版)》请在冰豆网上搜索。
基于单片机的跑马灯系统的设计与实现
《单片机及操纵系统设计》
课程设计报告
题目:
基于单片机的跑马灯系统的设计与实现
院(系):
机电与自动化学院
专业班级:
电气自动化技术0901
学生姓名:
詹志鹏
学号:
20202822006
指导教师:
汪媛
2020年12月26日至2012年1月10日
华中科技大学武昌分校
1设计题目及要求………………………………………………………………………1
…………………………………………………………………………1
………………………………………………………………………1
…………………………………………………………………………1
2硬件设计………………………………………………………………………………2
………………………………………………………………………2
2.1.1单片机的引脚………………………………………………………………2
…………………………………………………………3
…………………………………………………………………………4
……………………………………………………………………4
……………………………………………………………………5
EA/VPP(31脚)的功能和接法………………………………………………6
2.6P0口外接上拉电阻……………………………………………………………6
2.7发光二级管………………………………………………………………………7
2.8显示电路部份……………………………………………………………………8
2.9AT89C51单片机最小系统………………………………………………………9
3软件设计……………………………………………………………………………10
…………………………………………………………………10
3.2软件编译、调试与烧入……………………………………………………11
总结………………………………………………………………………………16
附录实物图……………………………………………………………………………17
参考文献………………………………………………………………………………18
1.设计题目及要求
单片机小系统版操纵LED灯
1.单片机最小应用系统的硬件设计技术训练;
2.ASM语言或C51语言软件编程与调试技术训练;
3.“下载及烧录(固化)程序”开发技术训练;
4.Protell软件应用技术训练;
按键及外部中断操纵二级管灯(自右向左)
7→5→3→1→7→5→3→1……
8→6→4→2→8→6→4→2……
单片机简介
单片机的引脚
(1)电源:
40号引脚VCC是芯片电源,接+5V。
20号引脚VSS为电源接地端。
(2)时钟引脚:
XTAL2(18号脚)采纳内部时钟电路时,外接晶体振荡器;采纳外部时钟电路时,此引脚接地。
XTAL1(19号脚)采纳内部时钟电路时,外接晶体振荡器;采纳外部时钟电路时,此引脚接外部时钟源。
(3)操纵引脚:
ALE/为地址锁存许诺信号,用来把低8位地址锁存到外部地址锁存器。
ALE引脚以不变的1/6振荡频率周期性地发出正脉冲信号,可用做对外输出的时钟信号。
(4)I/O口线:
P0口(32~39号脚)为双向输入/输出端口。
P1口(1~8号脚)为准双向输入/输出端口。
P2口(21~28号脚)为准双向输入/输出端口。
P3口(10~17号脚)为准双向输入/输出端口。
单片机的内部结构
51系列单片机要紧包括CPU、程序存储器、数据存储器和接口电路等各组成部份。
单片机内部结构框图
单片机的内部结构:
①1个8位的CPU。
②时钟电路。
③程序存储器。
④数据存储器。
⑤按时器/计数器。
⑥4个并行口。
⑦1个全双工串行口。
⑧5个中断源。
电源电路
电源模块通过7805稳压以后稳固的输出5v电压,以供整个系统工作。
7805系列为三端正稳压电路,TO-220封装,能提供多种固定的输出电压,应用范围广。
内含过流、过热和过载爱惜电路。
带散热片时,输出电流可达1A。
尽管是固定稳压电路,但利用外接元件,可取得不同的电压和电流。
要紧特点:
输出电流可达1A,输出电压有:
5V,过酷爱惜,短路爱惜,输出晶体管SOA爱惜。
在设计时钟电路之前,让咱们先了解下51单片机上的时钟管脚:
XTAL1(19脚):
芯片内部振荡电路输入端。
XTAL2(18脚):
芯片内部振荡电路输出端。
XTAL1和XTAL2是独立的输入和输出反相放大器,它们能够被配置为利用石英晶振的片内振荡器,或是器件直接由外部时钟驱动。
图中采纳的是内时钟模式,即采纳利用芯片内部的振荡电路,在XTAL一、XTAL2的引脚上外接按时元件(一个石英晶体和两个电容),内部振荡器便能产生自激振荡。
一样来讲晶振能够在1.2~12MHz之间任选,乃至能够达到24MHz或更高,可是频率越高功耗也就越大。
在本实验套件中采纳的11.0592M的石英晶振。
和晶振并联的两个电容的大小对振荡频率有微小阻碍,能够起到频率微调作用。
当采纳石英晶振时,电容能够在20~40pF之间选择(本实验套件利用30pF);当采纳陶瓷谐振器件时,电容要适本地增大一些,在30~50pF之间。
通常选取33pF的陶瓷电容就能够够了。
复位电路
在单片机系统中,复位电路是超级关键的,当程序跑飞(运行不正常)或死机(停止运行)时,就需要进行复位。
MCS-5l系列单片机的复位引脚RST(第9管脚)显现2个机械周期以上的高电平常,单片机就执行复位操作。
若是RST持续为高电平,单片机就处于循环复位状态。
复位操作通常有两种大体形式:
上电自动复位和开关复位。
图中所示的复位电路就包括了这两种复位方式。
上电刹时,电容两头电压不能突变,现在电容的负极和RESET相连,电压全数加在了电阻上,RESET的输入为高,芯片被复位。
随之+5V电源给电容充电,电阻上的电压慢慢减小,最后约等于0,芯片正常工作。
并联在电容的两头为复位按键,当复位按键没有被按下的时候电路实现上电复位,在芯片正常工作后,通过按下按键使RST管脚显现高电平达得手动复位的成效。
一样来讲,只要RST管脚上维持10ms以上的高电平,就能够使单片机有效的复位。
图中所示的复位电阻和电容为经典值,实际制作是能够用同一数量级的电阻和电容代替,也可自行计算RC充电时刻或在工作环境实际测量,以确保单片机的复位电路靠得住。
EA/VPP(31脚)的功能和接法
51单片机的EA/VPP(31脚)是内部和外部程序存储器的选择管脚。
当EA维持高电平常,单片机访问内部程序存储器;当EA维持低电平常,那么不管是不是有内部程序存储器,只访问外部存储器。
关于现今的绝大部份单片机来讲,其内部的程序存储器(一样为flash)容量都专门大,因此大体上不需要外接程序存储器,而是直接利用内部的存储器。
在本实验套件中,EA管脚接到了VCC上,只利用内部的程序存储器。
2.6P0口外接上拉电阻
51单片机的P0端口为开漏输出,内部无上拉电阻。
因此在当做一般I/O输出数据时,由于V2截止,输出级是漏极开路电路,要使“1”信号(即高电平)正常输出,必需外接上拉电阻。
P0端口的1位结构
另外,幸免输入时读取数据犯错,也需外接上拉电阻。
在那个地址简要的说下其缘故:
在输入状态下,从锁存器和从引脚上读来的信号一样是一致的,但也有例外。
例如,当从内部总线输出低电平后,锁存器Q=0,Q=1,场效应管V1开通,端口线呈低电平状态。
现在不管端口线上外接的信号是低电平仍是高电平,从引脚读入单片机的信号都是低电平,因此不能正确地读入端口引脚上的信号。
又如,当从内部总线输出高电平后,锁存器Q=1,Q=0,场效应管V1截止。
如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。
因此当P0口作为通用I/O接口输入利历时,在输入数据前,应先向P0口写“1”,现在锁存器的Q端为“0”,使输出级的两个场效应管V一、V2均截止,引脚处于悬浮状态,才可作高阻输入。
总结来讲:
为了能使P0口在输出时能驱动NMOS电路和幸免输入时读取数据犯错,需外接上拉电阻。
在本实验套件中采纳的是外加一个10K排阻。
另外,51单片机在对端口P0—P3的输入操作上,为幸免读错,应先向电路中的锁存
器写入“1”,使场效应管截止,以幸免锁存器为“0”状态时对引脚读入的干扰。
发光二极管
发光二级管是由III-IV族化合物半导体制成的,其核心是PN结。
因此它具有一样P-N结的I-N特性,即正向导通,反向截止、击穿特性。
另外,在必然条件下,它还具有发光特性。
在正向电压下,电子由N区注入P区,空穴由P区注入N区。
进入对方区域的少数载流子一部份与多数载流子复合而发光。
如下图:
假设发光是在P区中发生的,那么注入的电子与价带空穴直接复合而发光,或先被发光中心捕捉后,在与空穴复合发光。
除这种复合发光外,还有些电子被非发光中心捕捉,而后在与空穴复合。
每次释放的能量不大,不可能形成可见光。
发光的复合量相关于非发光的复合量的比例越大,光量子效率越高。
由于复合是在少子扩散去内发光的,因此光线仅在靠近PN结面数um之内产生。
发光二极管的特性有极限参数的意义、电参数的意义。
极限参数的意义有许诺功耗、最大正向直流电流、最大反向电压和工作环境。
电参数的意义有光谱散布和峰值波长、发光强度、光谱半宽度、半直角和视角、正向工作电流、正向工作电压和V-I特性。
发光二极管的应用:
由于发光二极管的颜色、尺寸、形状、发光强度及透明情形等不同,因此利用发光二极管时应依如实际需要进行恰被选择。
由于发光二极管具有最大正向电流、最大反向电压的限制,利历时,应保证不超过此值。
发光二极管被普遍应用于各类电子仪器和电子设备中,可作为电源指示灯、电平指示或微光源之用。
红外发光二极管被经常使用于电视机、录象机等的遥控中。
显示电路部份
显示部份主若是由八个LED和两个七段数码管组成,八个LED由限流电阻限流后接入p1口,p0口接入上拉电阻,并接限流电阻和数码管DYP-7-1的七段LED,数码管DYP-7-2的七段LED和限流电阻接入p2口,两个数码管的公共端并接限流电阻后接VCC。
2.9AT89C51单片机最小系统
3.软件设计
ORG0000H;下一条语句的地址为0000H
LJMPKS;长跳转到KS标号执行程序
ORG0003H;下一条语句的地址为0003H
LJMPMAIN;长跳转到MAIN标号执行程序
KS:
SETBIT0;设置IT0(interrupttype)=1,意思是int0下降沿触发
SETBEX0;设置EX0(externelextended)=1,意思是打开外部中断int0允许位
SETBEA;设置EA(enableall)=1,意思是打开总中断开关(即开中断)
MOVA,#0BFH;将0BFH立即数送至A寄存器
L:
MOVP1,A;将A寄存器的值送到P1口
ACALLDAY;调用DAY函数
RRA;Rotateright,将A寄存器向右循环1次
RRA;同上
SJMPL;短跳转到L标号处执行程序
MAIN:
MOVA,#7FH;将7FH立即数送至A寄存器
MOVP1,A;将A寄存器的值送至P1口
ACALLDAY;调用函数DAY
RRA;Rotateright,将A寄存器向右循环1次
RRA;同上
MOVP1,A;将A寄存器的值送至P1口
RETI;中断函数返回
DAY:
MOVR0,#0FFH;将0FFH立即数送至R0工作寄存器组
DL2:
MOVR1,#0FFH;将0FFH立即数送至R1工作寄存器组
DL1:
NOP;空机器周期,什么都不做,亦即等待12个时钟周期
NOP;同上
DJNZR1,DL1;将R1的内容-1,测试是否为0,如果不等于0,则跳至DL1标号执行程序
DJNZR0,DL2;将R0的内容-1,测试是否为0,如果不等于0,则跳至DL2标号执行程序
RET;DAY函数返回
ENDKS;程序结束
3.2软件编译、调试与烧入
1.启动Vision
Vision2是一个标准的Windows应用程序,双击KeilVision2图标即可启动,也能够选择“开始”→“程序”KeilVision2”命令来启动运行。
其主界面如下图。
2.创建一个项目并选择单片机
选择“Project”(项目)→“NewProject”(新建项目)命令,如下图,将弹出“GreateNewProject”(新建项目)对话框,如下图。
随后会弹出一个对话框,要求选择单片机的型号,如下图。
在该对话框中显示了Vision2的器件数据库,从中能够依照利用的单片机来选择。
3.创建一个新的源程序文件,并把那个源文件添加到项目中
单击工具栏中的新建文件图标(或选择“File”(文件)→“New”(新建)命令),文件操作窗口即可显现新建文件。
保留该空白文件,单击工具栏中的保留图标(或选择“File”(文件)→“Save”(保留)命令),弹出如下图的“Saveas”(保留为)对话框,在“文件名”文本框中输入欲保留的文件名,保留时注意加上正确的后缀名。
单击Target1前面的+号,然后在SourceGroup1上单击鼠标右键,弹出快捷菜单,如下图。
选择“AddFilestoGroup’SourceGroup1’”(添加文件到项目)命令,弹出如下图的对话框。
选中LED.ASM文件(注意选择文件类型),然后单击“Add”(添加)按钮,即可添加LED.ASM到项目中。
4.输入源程序:
现在就能够够输入源程序了,如下图。
5.“Output”选项卡
如下图,其中有多个选项,此处选择“CreateHEXFile”复选框用于生成可执行代码文件,该文件能够用编程器写入单片机芯片,文件的扩展名为.HEX,默许情形下该项未被选中,若是要写芯片做硬件实验,就必需选中该项。
其余选项均取默许值,不做任何修改。
6.编译项目并创建HEX文件
设置好项目参数后,即可进行编译、连接。
选择“Project”(项目)→“Buildtarget”(连接工程)命令,对当前工程进行连接。
若是当前文件已修改,将先对该文件进行编译,然后再连接以产生目标代码;若是选择“RebuildAlltargetfiles”(从头编译所有文件后再连接)将会对当前工程中的所有文件从头进行编译然后再连接,确保最终生产的目标代码是最新的,而选择“Translate…”(编译)命令那么仅对当前文件进行编译,不进行连接。
以上操作也能够通过工具栏中的图标直接进行。
如下图,从左到右的图标别离是:
编译、编译连接、全数重建、停止编译和对工程进行设置。
对源程序修改以后再次编译,最终要取得如下图的结果,提示0个错误,0个警告,该文件即可被编程器读入并写到AT89C51芯片中。
同时还可看到,该程序的内部RAM的利用量(data=8.0),外部RAM的利用量(xdata=0),代码量(code=13)等一些信息。
7.本实验板上所用的STC单片机通过串口下载程序。
其上位机软件界面如下图。
烧写操作很简单,点击“OpenFile”按钮阅读找到所生成要烧写的Hex文件后,单片机断电,点击“下载”按钮,单片机上电,程序就可下载到单片机中了。
总结
通过这次课程设计,我感觉自己学到了很多东西。
大学大部份时刻都是在学习理论基础知识,并未真正专门好地去应用和实践。
通过这次竞赛,第一次接触了51系列单片机,第一次把学到的汇编语言应用于实践。
学会了怎么用汇编语言编写单片机有效程序,学会了如何去调试程序能力,对过去所学和所把握的知识的运用,对单片机的原理及内部结构,有了必然的了解。
也发觉了自己很多不足的地方,体会到了所学理论知识的重要性:
知识把握得越多,设计得就更全面、更顺利、更好。
了解进行一项相对照较大型的科技设计所必不可少的几个时期。
关于自己要设计的作品,要做好充分的熟悉和有一个专门好的计划,以避免在以后的功能扩展上的,没有留有余地,在项目的的开始就要计划好,尤其是编程这一块,必然要留有余地。
学会了如何查阅资料和利用工具书。
一个人不可能什么都学过,什么都懂,因此,当你在设计进程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,学会如何去学习,学会如何学会学习。
做东西要有耐心,不管是一个很简单的小制作也好,仍是比较大型的一个项目也好,都要有始有终,当碰着问题时,不要一味的寻求的他人,要学会自己去查资料,学会分析,如此才能学到东西,解决问题以后那种带来的成绩感,只有经历过的人材能知道。
实物图
文献资料
[1]张义和,陈敌北.《例说8051[M]》.北京:
人民邮电出版社,2006.
[2]杨恢先,黄辉先.《单片机原理及应用[M]》.北京:
人民邮电出版社,2007.
[3]王晓勇,张文祥,胡天云.《C语言程序设计》.科学出版社,2007.
[4]李群芳,张世军,黄建.《单片微型运算机与接口技术》.北京:
电子工业出
版社,2007.
[5]孙育才.《MCS-51系列单片微型运算机及其应用》.南京:
东南大学出版社,
1997.
课程设计成绩评定表
成
绩
评
定
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
指导教师(签名):
20年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 跑马 系统 设计 实现