基于单片机的跑马灯设计课程设计论文.docx
- 文档编号:16662185
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:30
- 大小:290.27KB
基于单片机的跑马灯设计课程设计论文.docx
《基于单片机的跑马灯设计课程设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的跑马灯设计课程设计论文.docx(30页珍藏版)》请在冰点文库上搜索。
基于单片机的跑马灯设计课程设计论文
课程设计(论文)
题目基于单片机的跑马灯
学院名称电气工程学院
摘要:
单片机最小系统是在以STC89C52RC单片机为基础上扩展,使其能更方便地运用于测试系统中。
本设计主要在单片机上扩展I/O口,复位电路,晶振电路,LED显示电路并写好底层程序,做出能应用于跑马灯的最小系统。
关键词:
最小系统,STC89C52RC,跑马灯
ThesmallestsystemonechipcomputerisinexpandsatthebaseofMCS-52onechipcomputer,makeitusedmoreconvientinthetestsystem.ThisdesignmainlyexpandsI/Ointhetake52onchipcomputer,resetcircuit,crystalscircuit,theLEDdisplaycircuitandwritesthefirstfloorprocedure.Makeforscrollingminimumsystem.
Keyword:
minimumsystem,AT89C52,scrolling
南华大学电气工程学院
《单片机原理及应用课程设计》任务书
设计题目:
基于单片机的跑马灯
专业:
电气工程及其自动化
学生姓名:
耿翼鹏学号:
20104450216
起迄日期:
2013年12月23日—2014年1月5日
指导教师:
肖金凤老师
《单片机原理及应用课程设计》任务书
1.课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
1.1设计题目
基于单片机的跑马灯
1.2设计目的
1.单片机最小应用系统的硬件设计技能训练;
2.ASM语言或C51语言软件编程与调试技能训练;
3.“下载及烧录(固化)程序”开发技能训练;
4.Protell软件应用技能训练;
1.3控制要求
按键及外部中断控制二级管灯(自右向左)
1.按键控制16个LED灯循环自右向左依次点亮
2.间隔时间可以自行设计
《单片机原理及应用课程设计》任务书
2.对课程设计成果的要求〔包括图表、实物等硬件要求〕:
1认真阅读课程设计任务书,熟悉有关设计资料及参考资料,熟悉各种设计规范的有关内容,认真完成任务书规定的设计内容。
2课程设计的成果为“课程设计报告”。
课程设计报告内容要正确,概念要清楚,完成任务书规定的内容,附有原理图及程序流程图,程序清单,文字要通顺,书写要工整,设计图纸必须符合规范。
3课程设计报告含相关图纸和计划书等,用A4纸打印。
3.主要参考文献:
[1]楼然苗、李光飞.51系列单片机设计事例.北京:
北京航空航天大学出版社,2003
[2]高吉祥.模拟电子技术.北京:
电子工业出版社,2004.2
[3]黄智伟.全国大学生电子设计竞赛训练教程.北京:
电子工业出版式社,2005.1
[4]陈龙三..8051单片机C语言控制与应用;北京:
清华大大学学出版社,1999.8
4.课程设计工作进度计划:
序号
起迄日期
工作内容
1
2013.12.24-2013.12.25
布置任务,教师讲解设计方法及要求
2
2013.12.26-2013.12.28
学生查找阅读资料,初定方案,小组会议讨论并确定方案
3
2013.12.30-2013.12.31
设计及计算
4
2013.1.1-2013.1.3
仿真实验并写说明书,小组讨论
5
2013.1.5
答辩
指导教师
肖金凤
日期:
2014年1月5日
1.绪论7
2.电路设计方案及功能分析8
4.系统的软件设计14
4.1跑马灯及程序14
7.参考文献18
8.附录:
19
8.1PCB图:
19
8.2程序19
1.绪论
由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中MCS-52系列单片机以其优越的性能、成熟的技术及高可靠性和高性能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。
目前,可用于MCS-52系列单片机开发的硬件越来越多,与其配套的各类开发系统、各种软件也日趋完善,因此,可以极方便地利用现有资源,开发出用于不同目的的各类应用系统。
单片机最小系统是在以MCS-52单片机为基础上扩展,使其能更方便地运用于测试系统中,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被测试的技术指标,从而能够大大提高产品的质量和数量。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,称为在实时检测和自动控制领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。
本毕业设计主要在STC89C52RC单片机上扩展I/O口,复位电路,晶振电路,LED显示电路,数码管显示电路,蜂鸣器电路。
适合于我们学生用于单片机的学习掌握和一些各种科研立项等的需求。
因此,研究单片机最小系统有很大的实用意义。
2.电路设计方案及功能分析
2.1设计目的
学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
学习单片机课程以后,为了加深对理论知识的理解,加强理论知识在实际当中的运用,强化自己的动手能力,通过课程设计,提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计打基础。
2.2设计要求
(1)采用单片机STC89C52RC做成最小系统来控制。
(2)利用最小系统做出跑马灯,其LED灯的闪烁间隔时间采用延时程序控制,每种模式可采用不同的延时,灵活多变。
(3)供电采用电池供电的方式,运用稳压电源模块,稳定输出5V电压。
2.3系统基本方案选择和论证
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路、按键输入、显示输出等。
单片机接口电路主要用来连接计算机和其它外部设备。
各功能模块的选择及论证如下:
复位电路:
由电容和电阻构成,由电路图并结合"电容电压不能突变"的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定.典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。
本设计中R=10K,C=10uF。
晶振电路:
典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)同时也可取12MHz(产生精确的微秒级时歇,方便定时操作),因设计需要,本设计采用12M晶振。
单片机:
一片AT89S51/52或其他51系列兼容单片机,本设计采用STC89C52RC。
接口电路:
具有人机交互接口。
具有一定的可扩展性,单片机I/O口可方便地与其他电路板连接。
通过该最小系统,我们可以用keil软件进行编程从而实现对一些外设的控制!
比如一些简单的实验:
闪烁灯、跑马灯、数码管和蜂鸣器的展示等等!
2.3.1、STC89C52RC介绍
STC89C52RC单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可以任意选择。
主要特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051.
2.工作电压:
5.5V~3.3V(5V单片机)/3.8V~2.0V(3V单片机)
3.工作频率范围:
0~40MHz,相当于普通8051的0~80MHz,实际工作频率可达48MHz
4.用户应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片
8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。
即定时器T0、T1、T2
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown模式可由外部中断低电平触发中断方式唤醒
12.通用异步串行口(UART),还可用定时器软件实现多个UART
13.工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
14.PDIP封装
STC89C52RC单片机的工作模式
●掉电模式:
典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序
●空闲模式:
典型功耗2mA
●正常工作模式:
典型功耗4Ma~7mA
●掉电模式可由外部中断唤醒,适用于水表、气表等电池供电系统及便携设备
图1
STC89C52RC引脚图
STC89C52RC引脚功能说明
VCC(40引脚):
电源电压
VSS(20引脚):
接地
P0端口(P0.0~P0.7,39~32引脚):
P0口是一个漏极开路的8位双向I/O口。
作为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输入。
在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用总线。
此时,P0口内部上拉电阻有效。
在FlashROM编程时,P0端口接收指令字节;而在校验程序时,则输出指令字节。
验证时,要求外接上拉电阻。
P1端口(P1.0~P1.7,1~8引脚):
P1口是一个带内部上拉电阻的8位双向I/O口。
P1的输出缓冲器可驱动(吸收或者输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。
P1口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流(
)。
此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体参见下表:
在对FlashROM编程和程序校验时,P1接收低8位地址。
P1.0和P1.1引脚复用功能
引脚号
功能特性
P1.0
T2(定时器/计数器2外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器2捕获/重装触发和方向控制)
P2端口(P2.0~P2.7,21~28引脚):
P2口是一个带内部上拉电阻的8位双向I/O端口。
P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。
P2作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(
)。
在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX@DPTR”指令)时,P2送出高8位地址。
在访问8位地址的外部数据存储器(如执行“MOVX@R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
在对FlashROM编程和程序校验期间,P2也接收高位地址和一些控制信号。
P3端口(P3.0~P3.7,10~17引脚):
P3是一个带内部上拉电阻的8位双向I/O端口。
P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写入1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。
P3做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流(
)。
在对FlashROM编程或程序校验时,P3还接收一些控制信号。
P3口除作为一般I/O口外,还有其他一些复用功能,如下表所示:
P3口引脚复用功能
引脚号
复用功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外部中断0)
P3.3
(外部中断1)
P3.4
T0(定时器0的外部输入)
P3.5
T1(定时器1的外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
RST(9引脚):
复位输入。
当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。
看门狗计时完成后,RST引脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/
(30引脚):
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(
)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址位8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOV指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址位8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
(29引脚):
外部程序存储器选通信号(
)是外部程序存储器选通信号。
当AT89C51RC从外部程序存储器执行外部代码时,
在每个机器周期被激活两次,而访问外部数据存储器时,
将不被激活。
/VPP(31引脚):
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,
必须接GND。
注意加密方式1时,
将内部锁定位RESET。
为了执行内部程序指令,
应该接VCC。
在Flash编程期间,
也接收12伏VPP电压。
XTAL1(19引脚):
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2(18引脚):
振荡器反相放大器的输入端。
特殊功能寄存器
在STC89C52RC片内存储器中,80H~FFH共128个单元位特殊功能寄存器(SFR),SFR的地址空间如下表1所示。
并非所有的地址都被定义,从80H~FFH共128个字节只有一部分被定义。
还有相当一部分没有定义。
对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。
不应将“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“0”。
STC89C52RC除了有定时器/计数器0和定时器/计数器1之外,还增加了一个一个定时器/计数器2.定时器/计数器2的控制和状态位位于T2CON(见表2)和T2MOD(见表4)。
定时器2是一个16位定时/计数器。
通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器(特殊功能寄存器T2CON的描述如表2所列)。
定时器2有3种操作模式:
捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON中的位进行选择(如表2所列)
2.3.2、LED灯管
LED具有功耗少、寿命长、光谱宽(眼睛看得舒适度好)、使用广泛,能灵活拼装各种需要的形状等优点。
一般来说LED的工作电压是2V-3.6V。
工作电流是0.02-0.03A。
这就是说:
它消耗的电能不超过0.1W。
在恰当的电流和电压下,LED的使用寿命可达10万小时。
此外,LED基本上是一块很小的晶片被封装在环氧树脂里面,所以它非常的小,非常的轻,硬件电路实现起来比较方便。
因此本设计采用15个发光二级管,组合成三角形,从而控制其灵活变化,设计出展示的方案。
3.系统的硬件设计与实现
单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。
最小系统原理图如图3所示。
图3原理图
3.1电源供电模块
图3.2电源模块图
对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。
51单片机虽然使用时间最早、应用范围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。
此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。
如图3.2本设计通过模块外接US口供电。
3.2复位电路
图3.3复位电路图
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
3.3晶振电路
图3.4晶振电路图
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。
如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。
AT89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
4.系统的软件设计
4.1跑马灯及程序
此设计主要是采用控制系统的定时中断来完成的,应为设计要求16LED灯循环点亮,而且第一圈为1盏灯依次点亮,第二圈为2盏灯依次点亮,直到7盏灯依次点亮。
按下复位键即可返回到第一圈。
具体程序见附录。
5.系统调试及结果分析
本设计整体采用芯片较少,线路少,又标准板,谨慎按照电路图焊好元件后,检测电路全部正常,不存在虚焊或漏焊,焊错。
应用KeilC51根据设计要求编写出程序后,调试中出现符号错误及无用编码,根据提示改进后最终成功编写出所要求的程序,并用仿真程序调用后得到预期效果。
采用STC-ISP烧写软件进行程序烧写,开始不能下载,经检查串口线出现问题,另换串口线后,成功下载软件到单片机。
6.总结和体会
经过努力,我终于完成这次最小系统的的课程设计任务。
在这次的单片机课程设计中我感觉受益匪浅,不用说我在其中学到的新知识是多么有价值,也不用说它拓宽了我多少的眼界,只是说它让我的能力得到了提高就已足以成为我努力付出的回报。
通过课程设计,我增强了对单片机的理解,学会查寻资料﹑比较方案,学会单片机的设计﹑计算;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。
7.参考文献
【1】模拟电子技术基础(第4版)(作者:
华成英,童诗白)出版社:
高等教育出版社
【2】单片机原理与接口技术(修订版)(作者:
赵嘉蔚,张家栋,霍凯)出版社:
清华大学出版社
【3】谭浩强.C程序设计.出版社:
清华大学出版社(第三版),2005年7月
【4】潘明莲.为计算机原理(第二版).出版社:
电子工业出版社,2003年9月
【5】谭博学.集成电路原理及应用(第三版).出版社:
电子工业出版社,2001年6月
【6】单片机原理及应用.出版社:
西安电子科技大学出版社
8.附录:
8.1PCB图
8.2程序
#include
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitkey=P1^0;
sbitled1=P0^0;
sbitled2=P0^1;
sbitled3=P0^2;
sbitled4=P0^3;
sbitled5=P0^4;
sbitled6=P0^5;
sbitled7=P0^6;
sbitled8=P0^7;
sbitled9=P2^0;
sbitled10=P2^1;
sbitled11=P2^2;
sbitled12=P2^3;
sbitled13=P2^4;
sbitled14=P2^5;
sbitled15=P2^6;
sbitled16=P2^7;
ucharji=0xfe;
ucharaa,bb;
voiddelayms(uintxms)
{
uinti,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
voidkeyscan()
{
if(key==0)
{
delayms(10);
if(key==0)
{
ji=ji+1;
while(!
key);
}
}
}
voidmain()
{
aa=ji;
/*bb=0xfc;
while
(1)
{
keyscan();
if(aa!
=ji)
{
aa=ji;
}
P2=aa;
delayms(500);
aa=_crol_(aa,1);
P0=bb;
bb=_cror_(bb,1);
//led4=0;
//led13=0;
}
while
(1)
{
}
}*/
#include
#include
#defineucharunsignedchar//这个头文件是这个方法的核心,它包含了逐步移位函数功能
ucharcodetable1[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80};
ucharcodetable2[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01};
sbitkey=P1^0;//定义按键输入口
ucharji=0;
ucharnumt0=0;
voiddelay(unsignedinti)
{
unsignedintj;
unsignedchark;
for(j=i;j>0;j--)
for(k=12
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 跑马 设计 课程设计 论文