《利用数码管显示倒计时控制器设计.docx》由会员分享,可在线阅读,更多相关《利用数码管显示倒计时控制器设计.docx(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、利用数码管显示倒计时控制器设计学 号 1322010119 天津城建大学单片机原理及应用A课程设计说明书利用数码管显示的倒计时控制器设计起止日期: 2016年05月 30日 至 2016年6月10日学生姓名杨德虎班级电气(1)班成绩指导教师(签字) 控制及机械工程学院2016年6月10日天津城建大学课程设计任务书2015 2016学年第 1学期控制及机械工程 学院 13电气工程及其自动化 专业 电气(1)班 班级课程设计名称: 单片机原理及应用A 设计题目: 利用数码管显示的倒计时控制器设计 完成期限:自 2016 年 5 月 30 日至 2016年 6 月 10日共 2 周设计依据、要求及主
2、要内容:一课程设计的目的1.进一步熟悉和掌握单片机的结构及工作原理.2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法.3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。4。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统的全过程,为今后从事相应开发打下基础.二课程设计的基本要求1。认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3。提高独立分析、解决问题的能力,逐步
3、增强实际应用训练。4.课程设计的说明书要求简洁、通顺,计算正确,图纸表达内容完整、清楚、规范。5.课程设计说明书封面格式要求见天津城建大学课程设计教学工作规范附表1。三课程设计具体要求a) 要求每位同学独立完成设计任务。b) 原理图及PCB设计1.原理图设计要符合项目的工作原理,连线要正确。2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。3.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全.4.设计完成上述原理图对应的PCB图。c) 程序调计1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。2.根据总体要求及分解的功能模块,确
4、定各功能模块之间的关系,设计出完整的程序流程图。d) 程序调试1.编写相关程序,并进行仿真。2.将程序下载到单片机,进行运行调试.e) 设计说明书1.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。2.程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。3。画出工作原理图,程序流程图并给出相应的程序清单。四 设计任务STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用数码管显示定时倒计时.一、设计利用PNP驱动LG4042BH(或同型号共阳极)数码管,显示倒计时;二
5、是利用单片机I/O口驱动继电器的控制输出电路设计;三是设计出在到达定时时间给出1s的继电器动作信号(时间因为是四位数码管,可自行设定时间的格式,设定的时间根据自己能力可扩展键盘设定或提前设定好)。指导教师(签字): 系(教研室)主任(签字): 批准日期: 年 月 日摘要 在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动
6、效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等.本篇论文讨论了简单的倒计时控制器的设计及制作,本系统采用STC12C5A60S2作为主控芯片,设计一款的倒计时器,该倒计时器能在数码管显示倒计时的时间,时间可由按键进行设定,通过控制按键进行选择59s0s、开始值由人工输入的特点。首先检测按键,当相应的按键按下时,定时中断二十次后即一秒后,初值自动减一。当初值减到零后,计时停止.关键字:stc12c5a60s2,数码管倒计时,继电器输出目 录第一章 设计任务和要求.。.11。1 单片机课程设计内容11。2 单片机课程设计要求11.3 设计总体思路1第二章 设计方案2
7、2。1 总体设计方案说明22。2 总体设计框图22。3 总体设计流程图3第三章 主要器件及简介33。1 主要器件33。2 主要器件简介3第四章 系统硬件设计64.1 最小系统64.2 8段四位共阳极数码管64.3 键盘输入电路74。4 继电器电路7第五章 仿真电路图及PCB设计8总结10参考文献11附录12附录一 原理图12附录二 源程序1217 / 23第一章 设计任务和要求1。1 单片机课程设计内容STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用数码管显示定时倒计时。一、设计利用PNP驱动LG4042BH(或同型号共阳极)数码管,显示倒计时;二是利用单片
8、机I/O口驱动继电器的控制输出电路设计;三是设计出在到达定时时间给出1s的继电器动作信号(时间因为是四位数码管,可自行设定时间的格式,设定的时间根据自己能力可扩展键盘设定或提前设定好)。1.2 单片机课程设计要求1能实现倒计时的显示;2可扩展用按键设置倒计时时间功能;3能实现到达定时时间给出1s的继电器动作信号.1.3 设计总体思路基于STC12C5A60S2单片机的数码管显示模块显示的倒计时器。主要是以单片机来控制,用按键来设定倒计时初始时刻的值,按键来进行倒计时初值的选择。本系统采用STC12C5A60S2作为主控芯片,设计一款的倒计时器,该倒计时器能在数码管显示倒计时的时间,时间可由按键
9、进行设定,4位数码管做显示,通过控制按键进行选择59s-0s、开始值由人工输入.首先检测按键,当相应的按键按下时,定时中断二十次后即一秒后,初值自动减一。当初值减到零后,计时停止。当计时停止后,继电器输出1s。 第二章 设计方案2.1 总体设计方案说明1程序设计及调试根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。2硬件调试根据仿真电路图完成电路板连接,并进行软、硬件的调试,只到达到预期目的。3后期处理对设计过程进行总结,完成设计报告.2。2 总体设计框图图22 设计框图2。3 总体设计流程图图23 流程图第三章 主要器件及简介3。1
10、 主要器件1。 STC12C5A60S2单片机;2. LG4042BH数码管;3. 键盘4. 继电器3。2 主要器件简介1STC12C5A60S2单片机简介STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快812倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。STC12C5A60S2是STC生产的单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统805
11、1,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。各管脚功能如图2所示。1.8位数据总线,16位地址总线的CPU;2。具有布尔处理能力和位处理能力;3。采用哈佛结构,程序存储器及数据存储器地址空间各自独立,便于程序设计;4.相同地址的64KB程序存储器和64KB数据存储器;5。08KB片内程序存储器(8031无,8051有4KB,8052有8KB,89C55有20KB);6。128字节片内数据存储器(8051有256字节);7。32根双向并可以按位寻址的I/O线;8。两个16位定时/计数器(8052有3个);9。一个全双工
12、的串行I/O接口;10。多个中断源的中断结构,具有两个中断优先级;11。片内时钟振荡器.图31 STC12C5A60S2引脚图2.LG4042BH数码管简介LG4042BH就是一个8段共阳极四位一体式数码管,原理图如下图所示;3。键盘S6S21为16个矩阵键盘,8条线分别及单片机的P1口相连,其中矩阵键盘的4行分别及单片机的P1.3P1.0相连,矩阵键盘的4列分别及单片机的P1。7P1。4相连.原理图如下图所示;4.继电器STC12C5A60S2系列单片机继电器模块由一个SN74HC573ADW芯片接了一个ULN2003L芯片,P2。4口为其锁存端口,原理图如下图所示;第四章 系统硬件设计4.
13、1 最小系统复位时单片机的初始化操作,只要给RST引脚加上两个机器周期以上的高电平信号,就可以使STC12C5A60S2单片机复位。本次采用的是1M晶振,按钮复位电路. 图41 最小系统接线图4。2 8段四位共阳极数码管数码管ABCDEFGDP分别及P1。0P1。7相连,实现段选,数码管的位选口34分别及P3.1及P3。0相连,实现位选.图42 数码管接线图4。3 键盘输入电路本次设计采用矩阵键盘,S6S21为16个矩阵键盘,8条线分别及单片机的P1口相连,其中矩阵键盘的4行分别及单片机的P1。3P1.0相连,矩阵键盘的4列分别及单片机的P1.7P1.4相连.图4-3 按键输入电路4。4 继电
14、器电路继电器的作用为在倒数完成后产生相应动作信号,LED在继电器工作时点亮。继电器及单片机P2.4口相连。图4-4 继电器电路第五章 仿真电路图及PCB设计用Keil和Protues进行仿真调试,仿真结果完全达到预期目的。图5-1 仿真电路图根据原理图,用proteus自动生成PCB图,PCB设计如下图所示;图52 PCB平面电路图图52 PCB 3D电路图总结 通过自己的努力,老师的耐心指导,同学们的帮助,本次单片机课程设计顺利完成,通过这次设计不仅学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍学到了不少知识,扩大了知识面,提高了知识水平。通过这次设计不仅增强了自己的动脑能力和动
15、手能力,也提高了我思考问题、分析问题、解决问题的能力,更重要的是学会用工程化的思想来解决问题。在设计过程中,从仿真电路的设计,源程序的书写和修改以及调试中都遇到了不少问题,并且从中学到了不少知识.课程设计需要很大的耐心,尤其是遇到困难的时候,这也是对我们的考验。在设计过程中,我们遇到问题不是感到急躁,而是耐心地寻找解决的办法,及老师、同学进行交流讨论,寻求最佳的解决办法.我在设计过程中还不断提出自己的疑点以及新的想法,联系实际应用,将课本上学习的东西运用到实际中,这些都令我们受益匪浅.经过单元设计和系统设计巩固了以前所学的专业知识,自己真正认识到理论联系实际的重要性。参考文献1徐爱钧,徐阳等,
16、单片机原理及应用(第二版),机械工业出版社,20132郭天祥,新概念51单片机C语言教程,电子工业出版社,20093 张毅刚,彭喜元.单片机原理及应用M。北京,高等教育出版社2007.10 4 李广弟,单片机基础M。北京北京航天航空大学出版社2001 附录附录一 原理图附录二 源程序程序代码:#include STC12C5A60S2.H#define uchar unsigned charsbit we1=P30;sbit we2=P31;sbit k1=P34;sbit dq=P24; uchar table=0x90,0x80,0xf8,0x82,0x92,0x99,0xb0,0xa4,
17、0xf9,0xc0;uchar num;uchar fg=2;uchar sg=0;uchar j=0;uchar gw=9;uchar sw=9;void chushi();void delay();void delay2();uchar keydown();void main()chushi();k1=1;dq=0;while(1)if(fg=2)switch(keydown()case(0):gw=9; break;case(4):gw=8; break;case(8): gw=7; break;case(12):gw=6; break;case(1):gw=5; break;case(
18、5):gw=4; break;case(9): gw=3; break;case(13):gw=2; break;case(2): gw=1; break;case(6): gw=0; break;case(10):sw=8; break;case(14):sw=7; break;case(3):sw=6; break;case(7):sw=5; break;case(11):sw=4; break; we1=0;we2=1;P0=tablegw;delay();we1=1;we2=0;P0=tablesw;delay();if(keydown()=15)delay2();if(keydown
19、()=15)fg=1;j=0;if(fg=1)if(j=20)j=0;gw+;if(gw=10)gw=0;sw+;if(sw=10)fg=0;j=0;we1=0;we2=1;P0=tablegw;delay();we1=1;we2=0;P0=tablesw;delay(); if(fg=0) dq=1; fg=3;j=0; gw=9;sw=9;we1=0;we2=1;P0=tablegw;delay();we1=1;we2=0;P0=tablesw;delay();if(fg=3) if(j=21)dq=0;gw=9;sw=9;we1=0;we2=1;P0=tablegw;delay();we
20、1=1;we2=0;P0=tablesw;delay();void time1() interrupt 1j+;TH0=0x3c;TL0=0xb0;void chushi()TMOD=0x01;TCON=0x10;IE=0x82;TH0=0x3c;TL0=0xb0;uchar keydown()char a;P1=0x0f;if(P1!=0x0f)delay2();if(P1!=0x0f)/测试列P1=0x0f;switch(P1)case(0X07):num=0;break;case(0X0b):num=1;break;case(0X0d): num=2;break;case(0X0e):n
21、um=3;break;default:num=17;P1=0xf0;/测试行switch(P1)case(0X70):num=num;break;case(0Xb0):num=num+4;break;case(0Xd0): num=num+8;break;case(0Xe0):num=num+12;break;default:num=17;while(a50)&(P1!=0xf0)) /检测按键松手检测delay2();a+;a=0;return num; void delay() /误差 0us unsigned char a,b,c; for(c=1;c0;c-) for(b=142;b0;b) for(a=2;a0;a-);void delay2(void) /误差 0us unsigned char a,b; for(b=4;b0;b-) for(a=248;a0;a-);