当前位置:文档之家› 单片机作息时间控制

单片机作息时间控制

成绩课程名称单片机原理与应用课程设计课题名称单片机作息时间控制器专业自动化班级学号姓名指导老师2015年6月29日电气信息学院课程设计任务书课题名称单片机作息时间控制器姓名专业自动化班级1202学号指导老师课程设计时间2015年6月29日-2015年7月10日一、任务及要求本课题要求以单片机为核心,设计一个具有定时和计数功能的智能化作息时间控制器,用于学校教学楼的时间控制,实现时间基准定时,并配合“启动”、“复位”等按键的操作,并按作息时间显示的内容要求有有以下功能:(1)按作息时间接通/断开电铃;(2)课间接通/断开播放音乐设备;(3)时间的设置与值显示(显示的内容要求有时、分、秒各两位)设计要求:(1)确定系统设计方案;(2)进行系统的硬件设计;(3)完成必要的参数计算与元器件选择;(4)完成应用程序设计;(5) 应用系统的硬件和软件的调试。

二、进度安排第一周:周一:集中布置课程设计任务和相关事宜,查资料确定系统总体方案。

周二~周三:完成硬件设计和电路连接周四~周日:完成软件设计第二周:周一~周三:程序调试周四~周五:设计报告撰写。

周五进行答辩和设计结果检查。

三、参考资料[1]王迎旭等.单片机原理及及应用[M]. 2版.机械工业出版社,2012[2]胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.[3]戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010第1章总体方案设计 (4)1.1 设计要求 (4)1.2优点及意义 (4)1.3 系统硬件电路设计 (4)1.4初步设计思路 (5)第2章硬件电路设计 (6)2.1时钟电路设计 (6)2.2 复位电路设计 (6)2.3 键盘电路设计 (6)2.4 显示电路设计 (7)2.5继电器电路 (8)2.6 I/O接口的分配 (8)第3章应用软件设计 (9)3.1 主程序设计 (9)3.2 子程序设计 (9)3.2.1 显示子程序 (9)3.2.2 响铃子程序 (11)3.2.3键盘扫描子程序 (12)第4章系统调试与性能分析 (13)第5章总结 (15)参考文献 (16)附录 (17)附录A硬件电路原理图 (17)附录B 程序清单 (18)第1章 总体方案设计1.1 设计要求本课题要求以单片机为核心,设计一个具有定时和计数功能的智能化作息时间控制器,用于学校教学楼的时间控制,实现时间基准定时,并配合“启动”、“复位”等按键的操作,并按作息时间显示的内容要求有有以下功能:(1)按作息时间接通/断开电铃; (2)课间接通/断开播放音乐设备;(3)时间的设置与值显示(显示的内容要求有时、分、秒各两位)1.2优点及意义本课题要求设计一个具有定时和计数功能的智能化作息时间控制器,用于学校教学楼的时间控制,实现时间基准定时。

数码管显示电路采用LED 动态控制方式,显示时分秒。

按键电路控制定时计时。

闹铃指示电路控制铃声。

1.3 系统硬件电路设计本方案采用一种是用以STC89C52为核心,外加8位数码管,蜂鸣器,继电器和按键完成系统的设计要求。

系统硬件设计框图。

根据设计要求,确定系统的设计方案,图1-1为系统总体设计计框图。

硬件电路由6个部分组成,即单片机时钟电路、复位电路、键盘输入电路、LED 数码管显示电路、蜂鸣器电路、继电器电路。

图1-1系统设计框图STC90C52复位电路时间电路 键盘输入电路继电器电路蜂鸣器电路LED 显示电路1.4初步设计思路(1)定义一组数表,存字形码(2)定义4个数据缓冲区,对应4个数码管,将要显示的字符的偏移量存入。

通过查表指令从P1口输出。

(3)LED数码管通过驱动电路,显示相应的状态。

位选由P2口高四位产生,(4)通过P3口接通继电器和蜂鸣器。

(5)系统设置3个按键,分别是选择键、时间加键、时间减键。

第2章硬件电路设计2.1时钟电路设计单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图2-1所示。

图2-1时钟电路电路中器件选择可以通过计算和实验确定,也可以参考一些典型电路参数。

电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在22±0.1PF,一般晶振为12MHZ,电容取22PF。

石英晶体选择12MHZ。

2.2 复位电路设计表2-2复位电路设计单片机系统的复位电路在可以采用的是按钮式上电复位电路形式,其中电阻R采用10KΩ的阻值,电容采22μF的电容值。

2.3 键盘电路设计为了减少键盘与单片机接口时所占用的I/O线的数目,独立是键盘。

由于只要使用3个按键,按键分别接p2.7 p2.6 p2.5。

J6跳线帽短接,是按键按下是接通到地。

图2-3按键电路设计2.4 显示电路设计根据显示器显示接口的驱动方式采用动态显示。

显示器的选择位接P2口高四位P2.0-P2.3。

用动态扫描的方法进行显示,即逐个循环点亮各位显示器,实现4位共阳极LED 的动态显示。

每次显示完4位,就判断时间是否超出,若超出则修改。

图2-4显示电路设计2.5继电器电路图2-5继电器电路通过与设定时间比较,相等时P3.5接通继电器,继电器常闭断开,常开闭合,蜂鸣器接通,开始响铃。

同时接通D2是LED灯点亮作为指示灯。

2.6 I/O接口的分配表2-1 I/O借口分配表PO 数码管显示P3.7 蜂鸣器P2.7 K1 P2.0 数码管位选P2.6 K2 P2.1 数码管位选P2.5 K3 P2.2 数码管位选P3.5 继电器P2.3 数码管位选第3章应用软件设计3.1 主程序设计作息时间控制器的基本功能就是时间显示,要准确定时,就使用了定时器T0,定时50ms,同时用R2做软件计数,计数20次。

完成1s定时。

在主程序中对定时器赋初值,数据缓冲区初始化,同时对显示子程序、按键子程序、时间修改子程序、和响铃子程序的一次循环调用。

开始初始化单片机定时器赋值显示子程序键盘子程序时间修改子程序响铃子程序图3-1主程序流程图3.2 子程序设计3.2.1 显示子程序采用动态显示,通过P2口P2.0-P2.3实现显示器位的控制。

令P2=0F7H,开始时取第一位待显参数(缓存区30H单元中的数,字形码的偏移量),将位控数据输出到P2口,将30H单元中的数转换为段码送入P0口。

再取下一位位控数,缓存区指针加一,延时。

循环显示,显示4次后结束循环。

LED数码管显示流程图:是 否否是图3-2显示程序流程图 开始位控信号给P2口查表后待显字符给P0口将秒显示与入后显示直接显示R0指向数据缓冲区30H指针R0加1位控信号左移R0是否大于34H显示结束位控指向第3位没3.2.2 响铃子程序每次显示完4位时间后,就依次和预设的时间进行比较,看是否相等,若相等则对P3.7置1,开始响铃,同时判断20s 时间完成没。

当20s 响铃完成后,对P3.7口置0,响铃结束。

否是否 是图3-3响铃子程序流程图开始响铃 结束当前时间与 设定比较 响铃20s 完成3.2.3键盘扫描子程序系统设计中需要用到3个按键。

按键个数少,采用独立式键盘可以节约硬件资源。

编程也相对简单一点。

当读取到有按键按下时,加上延时去抖动,防止误读。

否是 否是否是图3-4按键子程序流程图开始调用显示程序 延时去抖动 读键值 执行功能 返回按键按下? 按键按下?按键松开?第4章系统调试与性能分析先按电路原理图把线连接好,通过STC软件下载好程序后就可以进行硬件调试了。

(1)开机显示时间电源接通后按下开机键,单片机开始工作,时间显示为16:09。

其中小时的个位下面的点的闪烁用来表示秒针的自加。

闪烁30次后系统默认1分钟,时钟自加1。

图4-1开机时间显示(2)定时响铃当时间到设定值时如16:40,上课打铃开始,蜂鸣器发出20s的声音。

图4-2定时打铃上课(3)播放音乐。

当时间到大课间时,系统就会播放音乐,这里用第2位LED的点亮来代替音乐的播放。

图4-3课间休息放音乐(4)修改时间,按下S1键后根据按下的次数,会分别点亮左边LED6 LED5 LED4 LED3 分别表示可以修改时间个4位。

图4-4修改时间在按键修改时出现过一些小问题,如可以调出24点25点等不存在的时间,经过后续的修改,这些问题都得到了解决第5章总结2周的课程设计就有结束了,对与自己能设计出一个作息时间控制器,并且功能也都基本实现感到高兴。

但是设计的东西也还只是试验阶段,做出来用还是会有好多毛病的,比如说音乐,就是用了个led代替,并不会真正唱歌。

还有就是调时间的时候,我想调第4位的话,要按4次,还不可以连续按4次,按太快的话系统读取不到按键。

总的来说,真真使用还是有好多小毛病需要改进的。

同时通过这次课程设计,然我们对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。

在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。

除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。

参考文献[1]王迎旭等.单片机原理及及应用[M]. 2版.机械工业出版社,2012[2]胡汉才.单片机原理及其接口技术[M].3版.清华大学出版社,2010.[3]戴灿金.51单片机及其C语言程序设计开发实例[M].清华大学出版社,2010附录附录A硬件电路原理图附录B 程序清单ORG 0000HSJMP MAINORG 000BHAJMP DVT0ORG 0030HMAIN: MOV 30H,#09HMOV 31H,#00HMOV 32H,#06HMOV 33H,#01HMOV 34H,#7FHMOV 20H,#0FFHMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0HSETB ET0SETB EAMOV R3,#10MOV R4,#60MOV R5,#00MOV R7,#2FHMOV R2,#0FFHSETB TR0W1: LCALL PANLCALL SHIJIANLCALL SHIJIAN1LCALL LOLCALL ANJIANLJMP W1DVT0: MOV TH0,#3CHMOV TL0,#0B0HDJNZ R3,RTNCPL 20H.7MOV R3,#10DJNZ R4,RTNINC 30HMOV R4,#60RTN: RETILO: MOV A,#00H ;显示子程序MOV P2,AMOV A,#0FFHMOV P0,AMOV R0,#30H ;指针指向数据缓冲区MOV R1,#0F7H ;数码管位控制LOOP1:MOV A,R1 ;位信号给p2 点亮对应的位MOV P2,AMOV DPTR,#TABLEMOV A,R0CJNE A,#32H,LOOP4 ;判断R0是否指向第3位,若指向则将32H单元的数和20H单元数ANL后在显示MOV A,@R0MOVC A,@A+DPTRANL A,20HSJMP LOOP5LOOP4:MOV A,@R0 ;不等于32H则跳转下来,将30H单元的数给A,后查表MOVC A,@A+DPTRLOOP5:MOV P0,A ;显示出来LCALL DELYINC R0 ;指针自加指向下一位MOV A,R1SETB CRRC AMOV R1,AJC LOOP1 ;判读4次是否显示完成RETDB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HSHIJIAN: MOV A,30HCLR CSUBB A,#0AHJNZ LP1MOV 30H,#00HINC 31HMOV A,31HCLR CSUBB A,#06HJNZ LP1MOV 31H,#00HINC 32HMOV A,33HCLR CSUBB A,#02HJZ LP2MOV A,32HCLR CSUBB A,#0AHJNZ LP1MOV 32H,#00HINC 33HSJMP LP1LP2: MOV A,32HCLR CSUBB A,#04HJNZ LP1MOV 32H,#00HMOV 33H,#00HLP1: RETPAN: MOV A,30H ;8:00定时CJNE A,#00H,LP0MOV A,31HCJNE A,#00H,LP0MOV A,32HCJNE A,#08H,LP0MOV A,33HCJNE A,#00H,LP0JMP LP20LP0: MOV A,30H ;8:45定时CJNE A,#05H,LP1AMOV A,31HCJNE A,#04H,LP1AMOV A,32HCJNE A,#08H,LP1AMOV A,33HCJNE A,#00H,LP1AJMP LP20LP1A: MOV A,30HCJNE A,#05H,LP2AMOV A,31HCJNE A,#05H,LP2AMOV A,32HCJNE A,#08H,LP2AMOV A,33HCJNE A,#00H,LP2AJMP LP20LP2A: MOV A,30HCJNE A,#00H,LP3MOV A,31HCJNE A,#04H,LP3MOV A,32HCJNE A,#09H,LP3MOV A,33HCJNE A,#00H,LP3JMP LP22LP3: MOV A,30HCJNE A,#00H,LP4MOV A,31HCJNE A,#01H,LP4MOV A,32HCJNE A,#00H,LP4MOV A,33HCJNE A,#01H,LP4JMP LP20LP4: MOV A,30HCJNE A,#05H,LP5MOV A,31HCJNE A,#05H,LP5MOV A,32HCJNE A,#00H,LP5MOV A,33HCJNE A,#01H,LP5JMP LP20LP5: MOV A,30HCJNE A,#05H,LP6MOV A,31HCJNE A,#00H,LP6MOV A,32HCJNE A,#01H,LP6MOV A,33HCJNE A,#01H,LP6JMP LP20LP6: MOV A,30HCJNE A,#00H,LP7MOV A,31HCJNE A,#04H,LP7MOV A,32HCJNE A,#01H,LP7MOV A,33HCJNE A,#01H,LP7JMP LP20LP7: MOV A,30HCJNE A,#00H,LP8MOV A,31HCJNE A,#03H,LP8MOV A,32HCJNE A,#04H,LP8MOV A,33HCJNE A,#01H,LP8JMP LP20LP8: MOV A,30HCJNE A,#05H,LP9MOV A,31HCJNE A,#01H,LP9MOV A,32HCJNE A,#05H,LP9MOV A,33HCJNE A,#01H,LP9JMP LP20LP9: MOV A,30HCJNE A,#00H,LP10MOV A,31HCJNE A,#01H,LP10MOV A,32HCJNE A,#06H,LP10MOV A,33HCJNE A,#01H,LP10JMP LP22LP10: MOV A,30HCJNE A,#00H,LP11MOV A,31HCJNE A,#04H,LP11MOV A,32HCJNE A,#06H,LP11MOV A,33HCJNE A,#01H,LP11LP11: MOV A,30HCJNE A,#05H,LP12MOV A,31HCJNE A,#02H,LP12MOV A,32HCJNE A,#07H,LP12MOV A,33HCJNE A,#01H,LP12JMP LP20LP12: MOV A,30HCJNE A,#05H,LP13MOV A,31HCJNE A,#03H,LP13MOV A,32HCJNE A,#07H,LP13MOV A,33HCJNE A,#01H,LP13JMP LP20LP13: MOV A,30HCJNE A,#00H,LP14MOV A,31HCJNE A,#02H,LP14MOV A,32HCJNE A,#08H,LP14MOV A,33HCJNE A,#01H,LP14JMP LP20LP20: CLR C ;判断响铃20s完成没MOV A,#40SUBB A,R4JNC LP21 ;到20s跳转出去MOV A,#7FHMOV P3,AMOV P1,ALP21: MOV A,#0FFHMOV P3,AMOV P1,AJMP LP14LP22: MOV A,#40CLR CSUBB A,R4JNC LLPMOV A,#0FDHMOV P1,AINC R5CJNE R5,#28,LP14LLP: MOV A,#0FFHMOV P1,ALP14:RETANJIAN: JB P2.7,JIESU ;判断按键是否按下KAN: LCALL SHIJIANLCALL SHIJIAN1LCALL LOJNB P2.7 ,KANINC R7MOV A,34HRR AMOV P1,AMOV 34H,ACJNE R7,#34H,AN1MOV R7,#2FHMOV P1,#0FFHMOV 34H,#7FHJMP JIESUNOPAN1: MOV 35H,#0FFHAN11: LCALL DELYJNB P2.6,AN2LCALL DELYJNB P2.5,AN3LCALL SHIJIAN1LCALL LODJNZ 35H,AN11JMP JIESU AN2:AN22: LCALL SHIJIAN1LCALL LOJNB P2.6 ,AN22MOV A,R7MOV R1,AINC @R1JMP AN1AN3: NOPAN33:LCALL LOJNB P2.5 ,AN33MOV A,R7MOV R1,ADEC @R1JMP AN1 JIESU: MOV P1,#0FFHRETSHIJIAN1: MOV A,30HCLR CSUBB A,#0AHJNZ LPP1MOV 30H,#00HLPP1: MOV A,31HCLR CSUBB A,#06HJNZ LPP11MOV 31H,#00HLPP11: MOV A,33HCLR CSUBB A,#02JZ LPP2MOV A,32HCLR CSUBB A,#0AHJNZ LPP3MOV 32H,#00H LPP2: MOV A,32HCLR CSUBB A,#04HJNZ LPP3MOV 32H,#00H LPP3: MOV A,33HCLR CSUBB A,#03HJNZ LPP4MOV 33H,#00HLPP4: MOV A,30HCLR CSUBB A,#0FFHJNZ LPP5MOV 30H,#09H LPP5: MOV A,31HCLR CSUBB A,#0FFHJNZ LPP6MOV 31H,#05H LPP6: MOV A,33HCLR CSUBB A,#02JZ LPP66MOV A,32HCLR CSUBB A,#0FFHJNZ LPP7MOV 32H,#09H LPP66: MOV A,32HCLR CSUBB A,#0FFHJNZ LPP7MOV 32H,#03H LPP7: MOV A,33HCLR CSUBB A,#0FFHJNZ LPP8MOV 33H,#02H LPP8:RETDEL Y:LOOP2:DJNZ R2,LOOP2MOV R6,#0FFHLOOP3:DJNZ R6,LOOP3RET《单片机原理及应用》课程设计评分表项目评价优良中及格不及格设计方案的合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果* (10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综合评分课程设计成绩评定为:□优□良□中□及格□不及格指导老师签名:______________日期:______________注:①表中标*号项目是根据课题实际情况二选一;②此表装订在课程设计说明书的最后一页。

相关主题