ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:421.49KB ,
资源ID:9891947      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9891947.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的自动打铃系统设计很完整.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于单片机的自动打铃系统设计很完整.docx

1、基于单片机的自动打铃系统设计很完整摘 要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。简易自动打铃系统的出现,使学校上下课铃声得以有效管制,对于减轻学校管理人员工作量、提高学校各工作效率,减少管理人员因忘记打铃,从而导致老师拖延课程时间起到明显效果。本系统采用单片机STC89C52为中心器件来设计简易自动打铃控制器,系统实用性强、操作简单、扩展性强。关键词:单片机;8255扩张芯片

2、;数码管显示时钟模块;键盘调时钟模块;定时蜂鸣器鸣叫模块。简易自动打铃系统设计要求利用单片机作为控制核心,完成一个简易自动打铃系统。具体功能要求如下: (1)基本计时和显示功能(12小时制)。可设置当前时间(包括上下午标志,时、分的数字显示)。(2)能实现基本打铃功能,规定:上午7:30早自习:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。 1 方案论证与对比1.1 方案一根据设计要求,由于本设计是可调时钟显示与打铃功能,可以使用中断之类的器件利用其转换效应。在有键按下时,就可以用单片机进行数据的处理,从而实现调时钟与打铃功能。在显示电路上,就可以用数码管将

3、被调时钟显示出来,直接用AT89C52引脚接数码管、键盘、蜂鸣器,这种设计需要用用到大量的CPU I/O口,若要同时实现更多功能则CPU I/O口不够用。1.2方案二 根据开发板设计原理图与实物图,我们的开发板有8255扩张芯片可用,调时可不用中断按键,同时外中断1与蜂鸣器同时都接着STC89C52的口,因此要实现同时用外中断1调时和蜂鸣器打铃会产生冲突,不可取。这里利用8255扩张键盘和数码管减少CPU接口的浪费,矩阵式键盘调时能更好的实现所需的功能。1.3方案对比与选择从以上两种方案,很容易看出,采用方案二,能充分利用资源,软件设计思路也比较简单,故采用了方案二。本方案的计时部分使用单片机

4、内部的可编程定时器,根据单片机是利用STC-52中的89C52作为其核心部分,其内部的定时/计数器进行中断定时,配合软件延时实现时、分的计时,键盘输入部分,系统用8255作为单片机的键盘输入,其采用3*1矩阵结构,其中两个键用于调整时间分和时,另一个键用于调上下午标志。上电后系统自动进入时钟显示,从A00-00开始计时,此时可以设定当前时间。系统内部设定时间鸣叫,定时时间到,蜂鸣器鸣叫。(参考于:李军,51系列单片机高级实例指南)2单元电路设计与计算2.1复位电路STC-52单片机的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每

5、个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。上电复位:上电复位电路是种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。电路图如下: 图 1复位电路上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位

6、。2.2时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。本文用的是内部时钟方式。电路图如下: 图 2时钟电路STC-52单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。2.3按键电路按键的开关状态通过一定的电路转换为高、低电平状态。按键闭合过程在相应的I/O端

7、口形成一个负脉冲。闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。抖动持续时间的长短与开关的机械特性有关,一般在5-10ms之间。为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。,每个按键的工作状态不会产生互相影响。电路图如下: 图 3按键电路 电路图PC0PC3接低电平做输入,PC4PC7做扫描线。当有按键按下时即把低电平送入8255的PC4PC7使得所连引脚置低。实现调时钟的功能。2.4数码显示功能说明八段LED数码管显示器能够显示十进制或十六进制数字及某些简单的字符,这种显示器显示的字符较少,形状有些失真,但控制简单,使用方

8、便,在单片机应用系统中使用较多,我们采用六位八段共阳极数码管显示时钟,每个数码管的8段是有芯片8255的PB口控制亮灭,每个数码管的公共脚分别由8255的PA0-P5经三极管扩流后进行控制,电路原理图如下:(参考于:楼然苗,单片机课程设计指导)图 4显示电路2.5蜂鸣器电路单片机的引脚用来控制蜂鸣器的工作,当输出高电平时,三极管截止,蜂鸣器不工作,当引脚输出低电平时,三极管导通,蜂鸣器工作,同时二极管发光。电路原理图如下图所示:图 5响铃电路3系统软件工作流程3.1系统软件设计流程图这次的自动打铃设计用到很多子程序,它们的流程图分别如下所示。主程是先开始,然后启动定时器,定时器启动后显示A00

9、-00,再进行按键检测,检测完后,可调时。接着进行响铃检测,检测是否响铃。 图 6系统软件3.2按键处理流程图按键处理是先检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就检测上下午标志按键是否按下,上下午标志按键如果按下,上下午就交替转变;如果没有按下,就把时间显示出来。(参考于:王俊峰,8051单片机实践与应用) 图 7按键检测3.3定时器中断流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加

10、1,如果没到,就显示时间。时间显示是先分个位计算显示,然后是分十位计算显示,再然后是时个位显示,再就是时十位计算显示。(参考于: 张鑫,单片机原理及应用)图 8定时器3.4响铃流程图响铃是系统自动到规定的时间则把蜂鸣器置低,使得蜂鸣器鸣叫,从而达到打铃的效果,时间有软件预定。图 9响铃4系统功能测试与整体指标单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。4.1系统各功能模块的性能调试与测试硬件电路板:我们用的电路板有机的融合了单片机的各功能单元,电路板将所有的I/O接口引出,采用USB线供电模式,STC

11、89C52支持串口方式直接下载程序。8255芯片做扩张用。6位数码管做动态扫描显示,蜂鸣器做单片机发声。4*4矩阵式键盘做计键盘动态扫描检测。拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。4.2系统功能测试走时:默认为走时状态,按12小时制分别显示“A/P-时时-分分”,有2

12、个“-”动态显示,时间会按实际时间以秒为最少单位变化。走时调整:按S12对上下午进行调整,按一下变换一次;按S4对分进行调整,按一下加一分;按S8对时进行调整,按一下加一小时,从而达到快速设定时间的目的。4.3系统误差原因分析时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S0表示秒单元数值的刷新超前,即走时误差为“快”

13、。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。4.4系统整体指标测试软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。软件调试可以采取离线调试和在线调试两种方式。前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。本次课题,Keil软件来调试程序,通过各个模块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。仿真部分采用protus 6 prof

14、essional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。首先打开protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择wave6000已经编译好的*.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。5详细仪器清单表格1 仪器清单仪器名称数量电阻10蜂鸣器18255芯片1STC89C5218段数码管6键盘3LED指示灯2电源16总结与思考致谢我在这一次简易自动打铃系统的设计过程中,很是受益匪浅。通过对自己在大学三年时间里所学的知识的回顾,并发挥对所学知识的理

15、解和思考及书面表达能力,自己亲手设计,最终完成目标了。这为自己今后进一步深化学习,积累了一定宝贵的经验。把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,以增强自己的动手能力。这个课程设计十分有意义 ,我获得宝贵经验。通过这次课程设计,我们知道了理论和实际的距离。自己今后将会更加的把理论知识和实际应用结合起来,提高自己的能力。在此感谢学校各级领导给予我们这次自我学习的机会,同时感谢指导老师的精心指导,在老师的指导与帮助下,使得我们自己动手设计的能力得到很大的提高。7参考文献1张鑫

16、,单片机原理及应用.(F) 北京:电子工业出版社,2王俊峰,8051单片机实践与应用.(H) 北京:清华大学出版社,2003.43楼然苗,单片机课程设计指导。(G) 北京:北京航空航天大学出版社,4李军,51系列单片机高级实例开发指南(M) 北京:北京航空航天大学出版社,20045朱定华,戴汝平,单片机原理与应用.(M) 北京:清华大学出版社,20036刘国钧,陈绍业,王凤翥.图书馆目录M.北京:高等教育出版社,.附录一:总设计原理图附录二:总设计PCB板图附录三:程序BEEP EQU ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0中断入口地址 LJM

17、P TIMER_0 ORG 0030H/*程序开始,初始化*/ START: SETB BEEP ;关闭蜂鸣器 CLR 44H MOV 20H,#00H ;用于控制秒基准时钟源的产生 MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器 MOV 24H,#30H ;A,P寄存器 MOV IP,#02H ;IP,IE初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器0工作方式1 MOV TH0,#3CH MOV TL0,#0B0H ;赋定时初值,定时50ms SETB EA SETB TR0 ;启动定时

18、器0 MOV SP,#40H ;重设堆栈指针 /*主程序*/ MAIN: LCALL DISPLAY ;调用显示子程序 LCALL BIJIAO ;调用早自习,熄灯打铃子程序 LCALL DALING ;调用打铃子程序 LCALL KEYBOARD ;调用键盘扫描 LJMP MAIN ;重新循环 /*定时中断服务程序*/ TIMER_0: PUSH ACC PUSH PSW ;保护现场 MOV TH0,#3CH MOV TL0,#0B0H ;重新赋定时初值 INC 20H MOV A,20H CJNE A,#20,RETI1 ;产生1秒基准时钟 MOV 20H,#00H ;一秒钟时间到,清零2

19、0H MOV A,21H ADD A,#01H DA A ;作十进制调整 MOV 21H,A CJNE A,#60H,RETI1 MOV 21H,#00H ;一分钟到 MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,RETI1 MOV 22H,#00H ;一小时到 MOV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#13H,RETI1 MOV 23H,#01H ;到12点,转到1点 MOV A,24H CJNE A,#30H,A1 MOV 24H,#70H SJMP RETI1 A1: MOV 24H,#30H

20、 RETI1:POP PSW POP ACC ;恢复现场 RETI ;中断返回/*显示处理*/ DISPLAY:MIN: MOV A,22H ;分 ANL A,#0FH MOV 2DH,A ;转换出分个位,存入2DH MOV A,22H ANL A,#0F0H SWAP A MOV 2CH,A ;转换出分十位,存入2CHHOUR: MOV A,23H ;时 ANL A,#0FH MOV 2BH,A ;转换出时个位,存入2BH MOV A,23H ANL A,#0F0H SWAP A MOV 2AH,A ;转换出时十位,存入2AH/*数码管动态扫描显示*/ MOV DPTR,#0D7FFH MO

21、V A,#81H MOVX DPTR,A MOV A,#B MOV R2,A MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,2DH MOV DPTR,#TABLE MOVC A,A+DPTR MOV DPTR,#0D2FFH MOVX DPTR,A CALL D1MS ;分个位 MOV A,#B MOV R2,A MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,2CH MOV DPTR,#TABLE MOVC A,A+DPTR MOV DPTR,#0D2FFH MOVX DPTR,A CALL D1MS ;分十位 MOV A,#B MOV R2,A

22、 MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,#7FH MOV DPTR,#0D2FFH MOVX DPTR,A CALL D1MS MOV A,#B MOV R2,A MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,24H MOV DPTR,#0D2FFH MOVX DPTR,A CALL D1MS ;上下午标志 MOV A,#B MOV R2,A MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,2BH MOV DPTR,#TABLE MOVC A,A+DPTR MOV DPTR,#0D2FFH MOVX DPTR,A C

23、ALL D1MS ;时个位 MOV A,#B MOV R2,A MOV DPTR,#0D1FFH MOVX DPTR,A MOV A,2AH MOV DPTR,#TABLE MOVC A,A+DPTR MOV DPTR,#0D2FFH MOVX DPTR,A CALL D1MS ;时十位D1MS: MOV R7,#02HDMS: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,DMS RET/*数码管字形编码表*/TABLE: DB 0XA0,0XBB,0X62,0X2A,0X39,0X2C,0X24,0XBA,0X20,0X28 ;字形显示编码/*键盘扫描*/ KEYBOARD

24、: MOV DPTR,#0D7FFH MOV A,81H MOVX DPTR,A MOV DPTR,#0D5FFH MOV A,#0FFH MOVX DPTR,A MOV DPTR,#0D5FFH MOV A,#10H MOVX DPTR,A MOVX A,DPTR ANL A,#0FH JNZ DELAY100 SJMP EXITDELAY100: MOV R1,#200D100: MOV R2,#248 DJNZ R2,$ DJNZ R1,D100 MOVX A,DPTR ANL A,#0FH JNZ KEY SJMP EXITKEY: MOV R0,A CJNE R0,#08H,D1 M

25、OV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#13H,RE MOV 23H,#01H RE: LCALL DISPLAY SJMP EXITD1: CJNE R0,#04H,D2 MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,REY MOV 22H,#00H /MOV 22H,AREY: LCALL DISPLAY SJMP EXIT D2: CJNE R0,#02H,EXIT MOV A,24H CJNE A,#30H,A0 MOV 24H,#70H SJMP EXIT A0: MOV 24H,#30H

26、EXIT: RET /*打铃时间对比程序(起床、熄灯)*/BIJIAO: MOV A,24H CJNE A,#30H,B0 MOV A,23H CJNE A,#07H,B0 MOV A,22H CJNE A,#30H,B0 ;上午7:30到 SETB 44H ;开启响铃方式1 RETB0: MOV A,24H CJNE A,#70H,EXIT_1 MOV A,23H CJNE A,#10H,EXIT_1 MOV A,22H CJNE A,#30H,EXIT_1 ;下午10:30到 SETB 44H ;开启响铃方式1 RETEXIT_1: CLR 44H RET/*响铃方式1程序(响5秒停2秒再响5秒)*/DALING: JNB 44H,EXIT_DALING MOV A,21H ;响铃起始时间由秒实时控制 CJNE A,#00H,L1 CLR BEEPL1: MOV A,21H CJNE A,#05H,L2 SETB BEEP L2: MOV A,21H CJNE A,#07H,L3 CLR BEEPL3: MOV A,21H CJNE A,#12H,EXIT_DALING SETB BEEP RETEXIT_DALING: RET END

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2