课程设计(论文)-基于单片机的定时器设计

上传人:na****u 文档编号:56504749 上传时间:2022-02-21 格式:DOCX 页数:32 大小:9.31MB
收藏 版权申诉 举报 下载
课程设计(论文)-基于单片机的定时器设计_第1页
第1页 / 共32页
课程设计(论文)-基于单片机的定时器设计_第2页
第2页 / 共32页
课程设计(论文)-基于单片机的定时器设计_第3页
第3页 / 共32页
资源描述:

《课程设计(论文)-基于单片机的定时器设计》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于单片机的定时器设计(32页珍藏版)》请在装配图网上搜索。

1、电气信息学院课程设计任务书课题名称基于单片机的定时器设计姓 名Front专业班级学号校内指导老师企业指导老师课程设计时间2017年3月6日-2017年3月17日(3、4周)教研室意见意见: 审核人:一、设计任务及要求1、设计任务: 以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。设计4个按键设置现在想要倒数的时间:K1-可调整倒数时间为1-60分钟;K2设置倒数计时时间为5分钟,显示为“05”;K3设置倒数计时时间为20分钟,显示为“20

2、”;K4设置倒数计时时间为60分钟,显示为“60”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为05。2、设计要求:1) 设计方案要合理、正确;2) 系统硬件设计;3) 系统软件设计及调试;4) 系统联调;5)写出设计报告。二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。周二周三:完成硬件设计和电路连接周四周日:完成软件设计第二周:周一周三:程序调试周四周五:设计报告撰写。周五进行答辩和设计结果检查。三、参考文献1) 微型计算机原理及应用许立梓编 机械工业出版社 20022) 微型计算机接口技术及应用刘乐善编 华中理工大学

3、出版社 2000 3) 计算机硬件技术基础试验教程邹逢兴编 高等教育出版社 20004) 16位微型计算机原理接口及其应用周佩玲编 中国科学技术大学出版社2000 5) 微型计算机原理与接口技术吴秀清编 中国科学技术出版社 20016) 微型计算机接口技术邓亚平编 清华大学出版社 20017) 单片机原理及及应用王迎旭编 机械工业出版社 20018) 单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 20029) 单片机实用技术问答 谢宜仁 主编 人民邮电出版社 2002目录第1章系统概述11.1定时器简介11.2设计内容及要求1第2章系统方案设计22.1 系统硬件方案设计22.2

4、系统软件方案设计2第3章 系统软件设计33.1主控芯片AT89C5233.2振荡电路设计33.3复位电路设计43.4 按键电路设计43.5 显示电路设计53.6 报警电路设计6第4章 系统软件设计74.1键盘程序设计74.2定时程序设计74.3数码管显示程序设计94.4报警程序设计9第5章系统调试105.1程序下载105.2实物调试11设计总结13附录A实物图14附录B电路图15附录C程序清单16第1章 系统概述1.1定时器简介人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的。1876年,英国外科医生索加取得一

5、项定时装置的专利,用来控制煤气街灯的开关。它利用机械钟带动开关来控制煤气阀门。 定时器确实是一项了不起的发明,使相当多需要人控制时间的工作变得简单了许多,家用电器都安装了定时器来控制开关或工作时间。1.2设计内容及要求设计任务:以单片机为核心设计一个音乐提示定时器,具备倒数计时、时间修改、音乐演奏等功能。可作为微电脑倒数计数器,做一小段时间计时,放在家中使用,例如煮泡面、煮开水或小睡片刻等;用于全自动洗衣机洗涤完毕音乐提示定时器。设计4个按键设置现在想要倒数的时间:K1-可调整倒数时间为1-60分钟;K2设置倒数计时时间为5分钟,显示为“05”;K3设置倒数计时时间为20分钟,显示为“20”;

6、K4设置倒数计时时间为60分钟,显示为“60”;一旦按键后则开始倒计时,当计时为0则演奏一曲音乐;内定倒数计时时间为5分钟,显示为05。设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成必要的参数计算与元器件选择;(4)开发板焊接及测试(5)完成应用程序设计;(6)应用系统的硬件和软件的调试第2章 系统方案设计2.1系统硬件方案设计系统的组成原理框图如图2.1所示,定时器在硬件部分应该具有振荡电路、复位电路、按键电路、显示电路、报警电路,从而实现定时器的操作和执行。此定时器设计具有的功能为:1.1-60分钟可调倒数计时并报警。2.5分钟倒数计时并报警。3.20分钟倒数计时并

7、报警。4.60分钟倒数计时并报警。图2.1 系统的组成原理框图2.2系统软件方案设计本系统软件方案设计由主程序模块、数码管显示程序模块、按键程序模块、播放音乐程序和延时程序模块等组成。主程序主要完成定时器初始化,显示数值,检查有无按键按下、报警程序等等。系统程序结构图如图2.2所示:图2.2 系统程序结构图第3章 系统硬件设计3.1主控芯片AT89C52AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。AT89C52是一个低电压,高性

8、能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。图3.1 AT89C52芯片管脚图3.2振荡电路设计在MCS-51芯片内部有一个高增益反向放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2,在芯片外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成一个稳定的自激振荡器,如图3-2所示:图3.2 振荡电路3.3复

9、位电路设计 复位操作有上电复位和按键手动复位两种方式。上电自动复位是通过外部复位的电容来实现的,其电路如图4-5所示。只要电源的上升时间不超过1ms,就可以实现自动上复位,即接通电源就完成了系统的复位操作,在此系统中,我们只需要进行上电复位即可。3.4按键电路设计由于本设计所用到的按键只有4个。采用的是独立按键键盘,按键的一端接到地,另外一端接到单片机的P14、P15、P16、P17口。定时模式由键盘输入完成。图3.4 按键电路3.5显示电路设计显示电路由P0口和P1.0P1.3控制,其为八段共阴极数码管,由P0口控制,当输入信号为高电平时其对应的数码管会发亮。图3.5 显示电路3.6报警电路

10、设计报警电路由蜂鸣器组成,到时间后蜂鸣器放出音乐。图3.6 蜂鸣器第4章 系统软件设计4.1键盘程序设计程序包括判别有无按键按下、对LedNumVal重新赋值,延时消除抖动等。其中K1为1-60分可调定时的赋值,K2,K3,K4分别为5,20,60分定时的赋值,下面列举了K2。 if (K1=0)Delay10ms(1);if (K1=0)TR0 = 0;LedNumVal=(LedNumVal/60+1)*60+30;if(LedNumVal3601)LedNumVal=30;while (!K1);TR0 = 1;if (K2=0)Delay10ms(1);if (K2=0)LedNumV

11、al=300;while (!K2);4.2定时程序设计定时程序利用T0定时间采用方式1定时,定时5ms,采用软件计算初值为 TH0 = 0xee; TL0 = 0x00; 图4.2 初值计算定时器初始化程序如下void system_Ini() TMOD = 0x01; TH0 = 0xee;TL0 = 0x00; IE = 0x8A; TR0 = 1; 中断响应程序如下,循环200次后为定时一秒,LedNumVal减一,到时间后一直执行beep();报警程序。void T0zd(void) interrupt 1 TH0 = 0xee; TL0 = 0x00; g+; if(g=200)

12、g=0; LedNumVal-; if(LedNumVal=-1) while(1)beep(); 4.3数码管显示程序设计此程序与外设电路P0口连接,P0控制数码管段选,P10,P11,P12,P13控制数码管位选,采用动态显示,先选定数码管,将数据对应显示,延时后进行下一位数码管选定,重复程序直至四位数码管显示完毕。void DigDisplay1()unsigned int j;a=0,b=1,c=1,d=1;GPIO_DIG = DisplayData0; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=0,c=1,d=1;GPIO_DIG = Disp

13、layData1; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=1,c=0,d=1;GPIO_DIG = DisplayData2; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=1,c=1,d=0;GPIO_DIG = DisplayData3; j = 100;while(j-);GPIO_DIG = 0xff;4.4报警程序设计当到时间后,一直执行蜂鸣器程序,并将数码管显示 - - - - 图形,代表已到时间。void beep() a=b=c=d=0; P0= 0x40; T= 1; Delay10ms(50); T

14、= 0; Delay10ms(50);第5章 系统调试5.1程序下载将程序下载线与PC机接好,运行stc-isp-15xx-v6.85H.exe (1) 运行stc-isp-15xx-v6.85H出现如图5.8界面:图5.1.1 程序下载界面(2)按照图中左边提示的步骤,分别选择单片机型号、打开待下载的程序文件(.HEX文件)、选择通信口和通信波特率;(3)下载程序,先关电源点击Down Load/下载 框,然后再接通电源(冷启动),在左下框中若出现如下信息则程序下载成功。图5.1.2 程序下载5.2实物调试 单片机上电后数码管显示初始状态05.00(默认计时5分钟)。如图5.2.1图5.2.

15、1 初始状态按下K3键后计时20分钟如图5.2.2图5.2.2 20分钟计时按下K4键后计时60分钟如图5.2.3图5.2.3 60分钟计时按下K1键后计时1-60分钟可调,如图5.2.4图5.2.4 1-60分钟可调计时 计时结束时如下,此时蜂鸣器持续响,如图5.2.5图5.2.5 1-60分钟可调计时设计总结这次的课程设计,自我感觉收获良多,学会了用keil软件进行编程、AD软件进行原理图的绘制,检查程序是否能运行其功能和定时器的初值计算,由于之前学过一点单片机,所以这次的单片机实习还是蛮得心应手的,经过几天的坚持设计后终于完成,其中也遇到了一些问题,在调试过程中数码管显示得不是很好,延时

16、时间对显示有很大的关系,太大了显示就断断续续,太小了就分辨不清显示的数值,所以应延时一个恰当的时间,报告做到这里,我的课设就告一段落了。过程中也让我深深地体会到,很多问题也许一次两次都解决不了,但是只要还有时间,我们就可以再尝试,因为一次又一次的尝试也许就是一种进步。附录A实物图附录B电路图附录C程序清单#include #include sbit a=P10;sbit b=P11;sbit c=P12;sbit d=P13;sbit T = P20;sbit K1 = P14;sbit K2 = P15;sbit K3 = P16;sbit K4 = P17;#define GPIO_DIG

17、 P0unsigned char code DIG_CODE17 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned int LedNumVal,g,m,DisplayData4;void Delay10ms(unsigned int c); void DigDisplay1();void beep();void system_Ini() TMOD = 0x01; TH0 = 0xee; TL0 = 0x00; IE = 0x8A; TR0 = 1; void ma

18、in() unsigned char i; system_Ini(); LedNumVal=300; g=0; while(1) i=0; DisplayData0 = DIG_CODELedNumVal/60/10; DisplayData1 = (DIG_CODELedNumVal/60%10|0x80); DisplayData2 = DIG_CODELedNumVal%60/10; DisplayData3 = DIG_CODELedNumVal%10; DigDisplay1(); if (K1=0)Delay10ms(1);if (K1=0)TR0 = 0;LedNumVal=(L

19、edNumVal/60+1)*60+30;if(LedNumVal3601)LedNumVal=30;while (!K1);TR0 = 1;if (K2=0)Delay10ms(1);if (K2=0)LedNumVal=300;while (!K2);if (K3=0)Delay10ms(1);if (K3=0)LedNumVal=1200;while (!K3);if (K4=0)Delay10ms(1);if (K4=0)LedNumVal=3600;while (!K4); void T0zd(void) interrupt 1 TH0 = 0xee; TL0 = 0x00; g+;

20、 if(g=200) g=0; LedNumVal-; if(LedNumVal=-1) while(1)beep(); void beep()a=b=c=d=0;P0= 0x40;T= 1;Delay10ms(50);T= 0;Delay10ms(50);void Delay10ms(unsigned int c) unsigned char a, b; for (;c0;c-)for (b=38;b0;b-)for (a=130;a0;a-); void DigDisplay1() unsigned int j;a=0,b=1,c=1,d=1;GPIO_DIG = DisplayData0

21、; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=0,c=1,d=1;GPIO_DIG = DisplayData1; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=1,c=0,d=1;GPIO_DIG = DisplayData2; j = 100;while(j-);GPIO_DIG = 0xff;a=1,b=1,c=1,d=0;GPIO_DIG = DisplayData3; j = 100;while(j-);GPIO_DIG = 0xff;电气信息学院课程设计评分标准环节项目评价优良中及格不及格实践环节(70%)1、设计方案合理性与创造性2、开发板焊接及其调试完成情况3、硬件设计或软件编程完成情况4、硬件测试或软件调试结果*5、解决问题能力及答辩情况6、纪律和出勤情况设计报告(30%)1、 设计报告内容完整、规范,2、 图纸正确、清晰,3、 设计步骤规范、正确,4、 设计结果可行综合评价课程设计成绩评定为:优 良 中 及格 不及格 指导老师签名:_ 日 期:_29

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!