基于51单片机的自动打铃系统
- 格式:doc
- 大小:459.50 KB
- 文档页数:27
单片机系统课程设计课程设计名称:自动打铃器设计专业班级:XXXX学生姓名:XXXX学号:XXXXXXXX指导教师:XXX课程设计地点:XXXX课程设计时间:XXXXXXXXXX单片机系统课程设计任务书学生姓名专业班级自动化学号题目自动打铃器设计课题性质工程设计课题来源老师拟定指导老师XXX主要内容(参数)基于89c51单片机可以实现以下功能:1、根据自己需要设计打铃时间,到定时时间自动打铃。
2、8位LED动态显示,实现表24小时制计时和显示功能。
3、能设置当前时间4、可以随时更改打铃时间任务要求(进度)1、查阅有关资料,熟悉设计任务要求,确定设计方案,大概需要1——2天。
2、按照确定的方案设计单元电路,画出单元电路图,元件及元件参数的选择有依据,大概需要1——2天的时间3、软件设计及编写程序,大概需要1——2天的时间。
4、实验室调试,需要1——2天。
5、撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、格式规范、方案合理设计正确。
主要参考资料[1]张迎新.单片机原理、应用及接口技术[M].北京:国防工业出版社,2004[2]李光飞.单片机课程设计实例[M].北京:北京航天航空大学出版社,2004[3]周润景,袁伟婷,景晓松.Proteus在MCS-51系统中的应用[M].北京:电子工业出版社,2006[4] 邓兴成.单片机原理与实践指导.北京:机械工业出版社,2010[5] 阎石.数字电子技术基础.北京:高等教育出版社,2009审查意见系(教研室)主任签字:年月日目录1概述 (5)1.1研究背景 (5)1.2设计思想及基本功能 (5)2总体设计 (5)2.1模块设计 (5)2.2程序流程图 (5)3硬件单元设计 (6)3.1电路设计总原理图 (7)3.2各模块电路设计 (7)3.2.1键盘扫描模块 (7)3.2.2时钟与复位模块 (8)3.2.3显示模块 (8)3.2.4响铃模块 (9)4软件设计 (9)4.1键盘扫描程序 (9)4.2主程序 (10)4.3显示程序 (13)4.4响铃程序 (14)5 总结 (17)6参考文献 (17)7附录 (18)1 概述1.1研究背景现代社会的发展越来越快,人们的时间观念也越来越强。
学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。
其中正常时间显示和闹钟时间显示可用一个开关来调整。
芯片选择STC89C52程序:#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//定义显示段码uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};uchar codebbtime[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; uchar clock[]={0,0,0,0};uchar clock1[]={12,30,0};uchar weikong[6];uchar bbduration=4;uchar lingtime=9;//学校打铃时间组uchar shangwu1[]={8,30};uchar shangwu2[]={10,0};uchar shangwu3[]={10,20};uchar shangwu4[]={11,50};uchar xiawu1[]={13,30};uchar xiawu2[]={15,00};uchar xiawu3[]={15,15};uchar xiawu4[]={16,45};//按键定义sbit mode=P1^7;sbit sec_clr=P1^0;sbit min_set_add=P1^3;sbit min_set_sub=P1^4;sbit hour_set_add=P1^1;sbit hour_set_sub=P1^2;sbit bb_set_add=P1^5;sbit bb_set_sub=P1^6;sbit speaker=P2^6;//延时函数void delay(unsigned int t){while(t--);//时钟进位函数void clockjinwei(){clock[0]++;if(clock[0]==20){clock[1]++;clock[0]=0;if(clock[1]==60){clock[2]++;clock[1]=0;if(clock[2]==60){clock[3]++;clock[2]=0;if(clock[3]==24)clock[3]=0;}}}}//定时器0中断服务函数void timer0(void) interrupt 1 using 1 {TMOD=0x01;TH0=0x3c;TL0=0xb0;clockjinwei();}//时钟分位显示函数void fenwei(){weikong[0]=clock[3]/10;weikong[1]=clock[3]%10;weikong[2]=clock[2]/10;weikong[3]=clock[2]%10;weikong[4]=clock[1]/10;weikong[5]=clock[1]%10;}//闹钟分位显示函数void naofen(){weikong[0]=clock1[0]/10;weikong[1]=clock1[0]%10;weikong[2]=clock1[1]/10;weikong[3]=clock1[1]%10;weikong[4]=clock1[2]/10;weikong[5]=clock1[2]%10; }//闹钟定时显示函数void naozhongdisplay(){uchar z,s;uchar x=0x01;naofen();for(z=0;z<6;z++){P2=0;P0=table[weikong[z]];P2=x;x=_crol_(x,1);for(s=0;s<255;s++);}}//时钟显示函数void display(){uchar i,j;uchar x=0x01;fenwei();for(i=0;i<6;i++){P2=0;P0=table[weikong[i]];P2=x;x=_crol_(x,1);for(j=0;j<255;j++);}}//总显示函数void zhongxian(){if(mode==1)delay(100);if(mode==1)display();if(mode==0)delay(100);if(mode==0)naozhongdisplay();}//按键处理程序void key_set(){zhongxian();P1=0xff;if(min_set_add==0){delay(100);if(min_set_add==0){if(mode==1){clock[2]++;if(clock[2]==60){clock[2]=0;}while(min_set_add==0)zhongxian();}}if(mode==0){clock1[1]++;if(clock1[1]==60){clock1[1]=0;}while(min_set_add==0)zhongxian();}}//if(min_set_sub==0){delay(100);if(min_set_sub==0){if(mode==1){clock[2]--;if(clock[2]==0)clock[2]=59;}while(min_set_sub==0)zhongxian();if(mode==0){clock1[1]--;if(clock1[1]==0)clock1[1]=59;}while(min_set_sub==0)zhongxian();}}//if(hour_set_add==0){delay(100);if(hour_set_add==0){if(mode==1){clock[3]++;if(clock[3]==24){clock[3]=0;}while(hour_set_add==0)zhongxian();}if(mode==0){clock1[0]++;if(clock1[0]==24){clock1[0]=0;}while(hour_set_add==0)zhongxian();}}}//if(hour_set_sub==0){delay(100);if(hour_set_sub==0){if(mode==1){clock[3]--;if(clock[3]==0)clock[3]=23;}while(hour_set_sub==0)zhongxian();if(mode==0){clock1[0]--;if(clock1[0]==0)clock1[0]=23;}while(hour_set_sub==0)zhongxian();}}//if(sec_clr==0){delay(100);if(sec_clr==0){clock[1]=0;}while(sec_clr==0)zhongxian();}}//闹钟响铃函数void bb(){if(clock[1]<=bbduration){speaker=1;delay(100);speaker=0;}else speaker=0;}//打铃函数void daling(){if(clock[1]<=lingtime){speaker=1;delay(100);speaker=0;}else speaker=0;}//时间比较函数void bijiao(){if(clock[3]==shangwu1[0]){if(clock[2]==shangwu1[1])daling();}if(clock[3]==shangwu2[0]){if(clock[2]==shangwu2[1])daling();}if(clock[3]==shangwu3[0]){if(clock[2]==shangwu3[1])daling();}if(clock[3]==shangwu4[0]){if(clock[2]==shangwu4[1])daling();}if(clock[3]==xiawu1[0]){if(clock[2]==xiawu1[1])daling();}if(clock[3]==xiawu2[0]){if(clock[2]==xiawu2[1])daling();}if(clock[3]==xiawu3[0]){if(clock[2]==xiawu3[1])daling();}if(clock[3]==xiawu4[0]){if(clock[2]==xiawu4[1])daling();}}//闹钟比较void naobijiao(){if(clock[3]==clock1[0]){if(clock[2]==clock1[1]||clock[2]==clock1[1]+1||clock[2]==clock1[1]+2) bb();}}//响铃时长显示函数void bbtimeshow(){P3=bbtime[bbduration];if(bbduration>15)bbduration=0;}//响铃按键处理函数void bbtime_set(){bbtimeshow();if(bb_set_add==0){delay(100);if(bb_set_add==0)bbduration++;while(bb_set_add==0)bbtimeshow();}if(bb_set_sub==0){delay(100);if(bb_set_sub==0)bbduration--;while(bb_set_sub==0)bbtimeshow();}}//主程序void main(){EA=1;ET0=1;TR0=1;while(1){key_set();bijiao();bbtime_set();naobijiao();}}电路图:分四部分显示:如果在学习这个程序过程中有什么问题,可以发邮件到******************询问。
摘要在人们的日常生活中,控制系统已经走入了千家万户,对于学校生活来说,按时打铃提醒学生上下课是一件必不可少的事情,遗忘的打铃工作军都是依靠人为进行计时,按时打铃,第一打铃的时间并不精确,同时也浪费较多的人力,造成了很大的浪费,论文以此为切入点,结合已经学习的51单片机的知识,设计了一种自动打铃的自动化系统,改善了学校打铃工作的现状,节约了人力、物力、财力。
关键词:定时打铃;DS1302时钟;LCD1602液晶显示ABSTRACTWith the improvement of social life, a variety of automatic control system quickly into people's lives, for school life, the bell on time to remind students to attend classes is an essential thing, forgotten bell work The military relies on man-made timing, the bell on time, the first ringing time is not precise, but also a waste of more manpower, resulting in a great waste of paper as a starting point for the design of a 51-based microcontroller Automatic school timely bell system, while using LCD1602 LCD real-time display time to improve the status of the bell work. Improve the automation of this work.Key words:timing bell; DS1302 clock; LCD1602 liquid crystal display目录摘要 (1)ABSTRACT (2)第1章绪论 (5)1.1选题背景及研究意义 (5)1.2课题设计的主要内容 (5)第2章方案的总体设计 (7)2.1主控芯片的选择 (7)2.2显示模块 (7)2.3时钟模块的选择 (8)第3章系统硬件设计 (9)3.1各个主要模块功能介绍 (9)3.1.1系统主要芯片和元器件的介绍及应用 (9)3.1.2 DS1302 时钟模块介绍 (9)3.1.3 LCD液晶显示模块介绍 (13)3.1.4 蜂鸣器模块 (15)3.2单片机最小系统的设计 (16)3.2.1 时钟脉冲电路 (16)3.2.2复位电路 (16)3.3硬件设计总图 (17)第4章软件程序设计 (19)4.1软件程序整体设计 (19)4.1.1程序流程图 (19)4.2程序模块设计 (20)4.2.1 DS1302时钟显示与调节程序设计 (20)4.2.2 LCD1602显示程序设计 (21)4.2.3蜂鸣器程序设计 (22)第5章系统仿真 (23)5.1 PROTEUS软件简介 (23)5.2仿真结果 (23)参考文献 (25)致谢 (26)第1章绪论1.1 选题背景及研究意义随着社会的发展和自动化水平的提高,各种物品都在向着自动化方向运行和进展,本片的论文也是如此,为了解决学校日常生活中的打铃问题,开展了自动打铃系统的研制毕业课程设计,充分发挥了所学知识,将其用于学生的日常生活中,方便了老师的同时也方便了学生的日常生活,基于当前已经有较多产品投入了日常的生活中去,论文将以一些常见的自动打铃产品为依托进行仿造设计,从而完成整体的毕业设计任务。
基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。
单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。
该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。
STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。
校园自动打铃器作息时钟摘要本文介绍了以AT89S51单片机为控制核心的自动打铃器产品,该电路具有时钟功能,可通过产品的上的设置键对要报警的时间点逐个的设置进去,打玲器只要走到设置好的时间就能报警。
输出效果由报警模块与显示模块组成,显示模块主要采用数码管来显示时间,让人们可以看到自动打铃器的时间是否与我们生活的时间一致,如果有误差则可以通过按键对时间进行调整。
该打铃器是一种电路比较简单,功能完善,且比较实用的自动打铃器。
它不但可以适用于学校及企业工厂等场所。
关键字:单片机自动控制数码显示调整目录一.引言 (3)二.方案比较 (4)2.1方案一基于数模电路的自动打铃器 (4)2.2方案二基于A T89S51控制的自动打铃器 (5)三.硬件电路设计 (5)3.1微控制器 (5)3.2振荡电路 (6)3.3复位电路 (6)3.4控键电路 (7)3.5显示电路 (8)3.6报警电路 (9)四.软件系统设计 (10)4.1主程序设计 (10)4.2定时1mS子程序设计 (10)4.3显示子程序设计 (10)4.4软件抗干扰设计 (11)五.系统调试与测试 (13)5.1软件仿真 (13)5.2硬件电路安装 (14)5.2.1单片机振荡电路安装 (14)5.2.2单片机复位电路安装 (14)5.2.3单片机控键电路安装 (14)5.2.4单片机显示电路安装 (15)5.2.5单片机报警电路安装 (15)5.2.6整机电路安装与调试 (15)结束语............................................................................................................. 错误!未定义书签。
参考文献.. (16)附录1:总设计原理图 (17)附录2:源程序 (18)一.引言打铃器是一种广泛应用于企业和学校单位。
就以对学校单位而言,自动打铃器是为了对了广大师生的作息时间做更好的管理,它一种学校必备电子设备,也是一种逐渐成型的电子产品,打铃器多为小规模集成电路构成,其性能单一,工作起来不够理想。
课程设计(论文)题目名称基于单片机的自动打铃系统2010年6月28 日摘要本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。
设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。
计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。
关键词:AT89C51;数码管; LED目录引言 (1)第一章设计简介及方案论述 (1)1.1 作息时间控制钟系统概述 (1)1.2 本设计任务和主要内容 (1)第二章系统硬件电路设计 (2)2.1单片机总体设计思路 (2)2.2各功能模块程序实现原理分析 (2)2.21七段式数码管驱动模块 (2)2.22蜂鸣器驱动模块 (2)2.23按钮控制模块 (3)2.3系统主要硬件电路 (5)2.31七段式数码管驱动模块的硬件设计 (6)2.32蜂鸣器驱动模块的硬件设计 (7)第三章系统软件设计 (8)3.1 系统软件设计的主要内容 (8)3.2 系统软件设计的流程图 (8)第四章系统调试与测试结果分析 (10)4.1 系统调试 (10)4.11硬件调试 (10)4.12软件调试 (10)4.13硬件软件联机 (10)4.2仿真结果 (10)第五章附录及参考文献 (12)5.1汇编程序清单 (12)5.2器材仪表 (34)5.3参考资料 (34)引言本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。
掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
基于51单片机电子闹钟的设计摘要51电子闹钟是集电子技术、数字显示技术为一体的高产品,具有按时闹铃,使用方便等优点。
本论文从51电子闹钟系统的功能,硬件电路设计,软件设计和产品介绍四部分分别论述这一系统。
本系统51电子闹钟硬件部分结构简单、成本低,具有比较好的市场前景。
现代的快节奏生活给人们的精神上带来了很大压力。
如何排解或缓解这些压力已经成为很多人和探索者多年来的一个重要研究项目,电子闹钟减压正是应此而生。
目录第一章绪论 (4)1.1概述 (4)1.1.1 51电子闹钟发展趋势 (4)1.1.2 本课题研究的主要内容 (4)1.251电子闹钟简介 (4)1.2.1 开发的目的和意义 (5)1.2.2 51电子闹钟的优点 (5)1.2. 3 51电子闹钟的特点 (5)第二章系统方案的设计 (3)2.1系统概述 (6)2.1.1系统功能描述 (6)2.1.2系统方案的确定 (6)2.1.3系统设计思路与步骤 (3)2.2芯片基本工作原理及其应用 (5)2.2.1 AT89S51简介 (5)2.2.2引脚介绍 (8)2.2.3电源 (9)2.2.4存储器 (9)2.2.5应用 (9)2.3LM386简介 (9)2.3.1 LM386介绍 (10)2.3.2 LM386特点..................................... 错误!未定义书签。
第三章系统的设计.. (8)3.1系统硬件设计 (8)3.1.1单片机系统的设计 (8)3.1.2 按键电路的设计 (9)3.1.3复位电路的设计 (10)3.1.4显示电路的设计.................................. 错误!未定义书签。
3.2系统软件的设计................................... 错误!未定义书签。
3.2.1软件设计........................................ 错误!未定义书签。
目录1. 摘要 ........................................................................................................................ 错误!未定义书签。
2. 设计目的要求 (2)3. 设计实现方案 (3)3.1系统总框图 (3)3.2原理及工作过程说明 (3)3.3元器件功能说明 (4)3.3.1 AT89C51单片机 (4)3.3.2 1602LCD液晶显示器 (7)3.3.3 其他重要元件 (8)4. 软件设计 (11)4.1程序流程图 (12)4.2源代码 (12)5. 系统仿真 (22)6. 心得体会 (33)7. 参考文献............................................................................................................... 错误!未定义书签。
1. 摘要本设计师定时闹钟的设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的的电路,构成一个单片机定时闹钟。
电子钟可采用数字电路实现,也可以采用单片机来完成。
LCD显示“时”,“分”,LED闪动来做秒计数,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。
现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。
在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。
关键字:定时闹钟AT89C51 LCDSummary:The regular alarm clock designers design, by the microcontroller AT89C51 chip and LCD, LED display, combined with the necessary circuitry to form a single-chip timer alarm clock. Clock can be digital circuit, the microcontroller can also be used to complete. LCD display "when", "sub", LED flash to do the second count, regular time to be able to sound an alarm or start relay to control the electrical start and stop. Now is the era of highly developed automation, especially electronic products are relying on the internal control circuitry to achieve control of the product to achieve the purpose of automatic operation, which requires us to do the design of electrical components and circuits to support .In this design it is mainly used to carry out regular AT89S51, but also combined with other auxiliary circuit implementation of the control, in time, when you click a control button on the hour plus one hour; click the button on the control minutes plus one minute; reach preset time, this will sound an alarm circuit has prompted the point,. Keywords: time clock AT89C51 LCD2.设计目的要求1).本次课程设计应达到的目的:1、综合运用相关课程中所学到的理论知识去独立完成某一设计课题;2、通过查阅手册和相关文献资料,培养学生独立分析和解决问题的能力;3、进一步熟悉单片机和常用接口电路,加深对专业知识和理论知识学习的认识和理解;4、学会电路的安装与调试;5、进一步熟悉电子仪器的正确使用;6、学会撰写课程设计的总结报告;7、培养严肃认真的工作作风和严谨的科学态度。
0 引言伴随大数据技术的日趋成熟和人工智能的产业化发展,以及2020年5G 民用时代的来临,智能化家居已经逐步进入千家万户。
智能家居的未来发展方向是满足人民群众对家居生活的安全化、生态化、个性化和智能化的不断追求。
门铃系统作为工作和生活中不可缺少的一部分,同时也是实现家居智能化的重要一环,应该具备安全性、多元性和智能性。
本系统采用AT89S52作为控制器,采用模块化思想设计外围硬件电路。
硬件电路包括单片机最小系统,热释电红外检测电路,GSM 电路,无线通信电路,语音电路和人机接口电路等。
软件设计采用C 程序实现,可以实现居家模式和外出模式下的自动切换。
居家模式下,系统实现语音播报和液晶显示;外出模式下系统自动实现生人检测,短信提醒和语音留言。
1 总体设计方案本系统主要由室内门铃系统和室内门铃系统组成。
室内与室外之间通过一对带地址、数据编码功能的红外遥控发射/接收芯片PT2262/2272进行无线通信。
室外系统整体设计如图1所示,主要由AT89S52作为控制中心,外围电路由热释电红外检测电路、语音录放电路、GSM 电路、PT2262无线发射电路和人机交互电路(按键电路、LCD12864液晶显示电路)等组成。
图1 室外门玲系统整体设计方框图室外系统处于居家模式时,按下按键触无线发射电路,室内系统接收到信息驱动音乐铃声提醒访客来访;处于外出模式时,系统通过热释电传感器检测是否有生人长时间逗留,并通过语音提示不要逗留。
如果是访客,可以根据显示屏提示信息通过按下按键,触发语音电路自动采集访客留言。
如果用户无法及时返回家中,可以通过发送短信控制门锁的打开与关闭。
室内系统设计如下图2所示,主要由AT89S52作为控制中心,外围电路由PT2272无线接收电路、音乐播放电路、人机adapts to needs of daily life.The doorbell system has home mode and out mode.When the system is in home mode, triggering doorbell for voice broadcast and LCD display to remind users;while switching to the out mode, the system has the functions of strangers detection, SMS remote reminder, voice message, etc.The design which chose AT89S52 as the controller and the external circuit by modular design can meet the needs of daily life in different scenarios with low cost, and has achieved home intelligence.Keywords: intelligent doorbell;strangers detection;AT89S52;home intelligence外检测探头RE1和BISS0001信号处理电路组成[2]。
基于51单片机实现的简单闹钟设计本设计利用单片机AT89C52制作一个简单的倒计时定时闹钟,这是一个很实用的工具。
我们使用按键来设定需要定时的时间长短,然后利用中断设置20次中断定义一秒,利用程序设计时间倒数。
同时,我们使用4个8段数码管来显示分和秒,并且在定时结束后使用电铃警示。
在硬件系统方面,我们使用proteus仿真,这样就能观察到系统的实际运行情况。
具体地说,我们使用AT89C52单片机芯片作为控制芯片,使用四位相连的8段共阴数码管,并且使用74HC573锁存器控制数码管的显示。
在定时过程中,我们使用s1控制十分位,s2控制分位,s3控制十秒位,s4控制秒位,s5开始倒计时。
这样,我们就能实现一个简单而实用的倒计时定时闹钟。
关于AT89C52单片机芯片,它是___MCS-51系列单片机中基本的产品,采用___可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。
它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,基于标准的MCS-51单片机体系结构和指令系统,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。
80C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,80C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。
80C52有PDIP(40pin)和PLCC(44pin)两种封装形式。
8051片内有ROM,无须外接外存储器和373,更能体现“单片”的简练。
最后,关于74HC573芯片,它是一个锁存器,用于控制数码管的显示。
机电信息工程学院单片机系统课程设计报告系:电子信息工程系专业:电子信息工程班级:072班设计题目:自动打铃系统设计学生姓名:张锡斌仇龙佳指导教师:刘忠富于为民完成日期:2010年5月31日目录一、设计任务和性能指标 (2)1.1设计任务 (2)1.2性能指标 (2)二、设计方案 (2)三、系统硬件设置 (3)3.1、单片机最小系统 (3)3.2时钟电路DS1302 (4)3.3、显示电路的设计 (5)3.4、键盘接口的设计 (5)3.5打铃电路的设计 (6)四、系统软件设计 (7)4.1程序流程图 (7)4.2主程序设计 (10)4.3显示子程序的设计 (11)五、调试及性能分析 (12)5.1调试步骤 (12)5.2性能分析 (12)六、心得体会 (12)参考文献 (13)附录1 系统硬件电路图 (14)附录2 程序清单 (15)一、设计任务和性能指标1.1设计任务用单片机器件为主体,设计一台自动打铃系统。
(一)基本要求1、基本计时和显示功能(用12小时制显示)。
包括上下午标志,时、分的数字显示,秒信号指示。
2、能设置当前时间(含上、下午,时,分)。
3、能实现基本打铃功能,规定:上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。
下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。
铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。
(二)发挥部分1、增加整点报时功能,整点时响铃5秒,要求有控制启动和关闭功能。
2、增加调整起床铃、熄灯铃时间的功能。
3、增设上午4节课的上下课打铃功能,规定如下:7.30 上课,8.20下课:8.30上课,9.20下课;9.40 上课,10.30下课;10.40上课,11.30下课;每次铃声5秒。
4、特色和创新自选。
1.2性能指标1.时钟:上下午(1位)、时(2位) 、分(2位)2.校对键:确认键/设置键、右移键/灭铃键、加键、减键3.响铃:蜂鸣器二.设计方案二、设计方案按照系统设计的功能的要求,初步确定设计系统由主控模块、时钟模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示通过内部定时产生中断,从而驱动电铃打铃。
电路系统构成框图如图1.1所示。
主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位COMS 微处理芯片,市场应用最多。
时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302。
采用DS1302作为主要计时芯片、可以做到计时准确。
更重要的是,DS1302可以在很小的电流的后备电源(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流对后备电源进行慢速充电,可以保证后备电源基本不耗电。
采用串行数据传输,与单片机硬件连接简单,如果使用时钟芯片DS12887,将采用并行数据传输,占用更多的硬件资源。
因此为节省单片机端口,时钟芯片采用DS1302。
1.1 硬件电路设计设定51单片机工作在定时器工作方式1,每100ms产生一次中断,利用软件将基准100ms单元进行累加,当定时器产生10次中断就产生1S信号,这时秒单元加1。
同理,对分单元时单元和上下午单元计数,从而产生秒,分,时,上下午的值,通过五位七段显示器进行显示。
由于动态显示法需要数据锁存等硬件,接口较复杂,考虑显示只有五位,且系统没有其他复杂的处理任务,所以采用动态扫描实现LED的显示。
本系统采用四个按键,1键为功能键,另外三个做控制键。
按一下1键进入时间设置,接着按2键选择需要调整的位,然后按3和4键进行时调整,按3键进行加数,按4键进行减数,按两下1键调整结束时钟继续走动。
当时钟时间与设置时间一致时,驱动电路动作进行打铃,按时间点不同打铃规则不同,此时按2键强制灭铃。
三、系统硬件设置3.1单片机最小系统单片机最小应用系统的设计电路原理图,如图3.1所示。
本次设计我们选用了AT89C52单片机。
该单片机要求电源电压为+5V,所以40号引脚接+5V电源,20号脚接地。
因为AT89C52单片机的片内ROM为4KB,128位RAM,根据初步分析,本设计程序应该小于4KB,故无须外扩的ROM,所以单片机应直接访问片内程序存储器,单片机的31号脚接高电平。
AT89C52单片机是一种时序逻辑电路,必须有脉冲信号才能正常工作,而时钟脉冲是由振荡电路提供的,时钟可以由内部方式或外部方式产生,内部振荡方式,只要接上两个微调电容和一个晶振即可,其中微调电容选用33pF其作用是稳定振荡频率,快速起振。
本次毕业设计我们采用内部振荡方式,外接晶振为11.0592MHz,振荡周期=1/11.0592μs,时钟周期=2/11.0592μs,机器周期=12/11.0592μs,指令周期=1~4μs。
AT89C52在开机时需复位,以便CPU及其它功能部件都处于确定的初始状态,有利于进行下一步操作。
MCS-51系列单片机的有效复位信号两个机器周期以上的高电平。
其复位的实现通常可以采用开机上电复位和外部手动复位两种方式。
图中采用的是开机上电复位,复位电路由10μF的电解电容和8.2K电阻组成,其时间常数为T=RC,T=10μf×8.2k,T=82ms大于10ms,所以单片机能够有效复位,单片机只要保持82ms以上的高电平就能使单片机有效复位图3.1 单片机最小应用系统3.2时钟电路DS1302(1)性能特性实时时钟可对秒,分,时等进行计数,存在高速数据暂存的31*8位RAM,最少引脚的串行I/O口;2.5~~5.5V电压工作范围;2.5V耗电小于300nA;用于时钟或RAM数据读/写的单字节或多字节数据传送方式;简单的3线接口;可选的慢速充电的能力。
DS1302时钟芯片包括实时时钟和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟提供秒,分,时等信息,时钟运行可以采用24H,或带AM/PM的12H格式,采用三线接口与CPU进行同眇通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302有主电源/后备电源双电源引脚;(2)工作原理DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。
为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。
但是当以多个字节写RAM 时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM 。
时钟暂停:秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。
8051通过串口向DS1302写数据的程序框图如图3.2,其中,Px 可以是8051单片机的任何一位I/O 口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD 的输出端加反相器,另外,接收数据时,不能以串行口的接收方式接收,必须将串行口当作普通I/O 口进行数据接收.DS1302的晶振选用32.768KHZ ,电容推荐值为6PF ,因为振荡频率较低,也可以不接电容, 对计时精度影响不大。
图3.2 DS1302写数据的程序框图3.3显示电路的设计显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路,数码管分别为上下午,十时,时,十分,分显示,显示时采用串行口输出控制数码管,其中P2.2~P2.4口控制数码管的位选,低电平数码管显示,动态扫描显示中单片机P0口输出数码管的段码。
3.4键盘接口的设计图3.4 键盘电路8051P XTXDRXD V cc1 V cc2 DS1302 RST SCLK I/O X 2本次设计的控制电路是由4个按键组成的,用以实现时钟信息的调整。
其电路图如图3.4所示,按键与P1口的P1.0到P1.3相连。
由于P1口内有上拉电阻,所以该图中上拉电阻可以省去。
四个按键中,S1为数据+1键,S2为数据-1键,S3为数据选择键,S4为强制打铃或者强制关闭键。
3.5打铃电路的设计本次设计打铃电路如图3.5所示,单片机通过P3.7控制蜂鸣器是否发出声响。
当时间与预定打铃时间相同时,单片机通过P3.7输出为1KHz的方波,使得蜂鸣器发出声响。
图中PNP三极管作用是电流放大,以保证蜂鸣器能正常发出声音。
图3.5 打铃电路四、系统软件设计4.1程序流程图主程序流程图定时中断程序流程图显示程序流程图4.2主程序设计void main(){uchar NowKey;uchar BeforKey=0xff;uchar KeyCount=0;uchar i=0;AlarmSingal=0;RayFlag=1;RayFlag2=1;TMOD=0x10;//设置T1EA=1;ET1=1;TH1=0x3c;TL1=0xb0;TR1=1;while(1){D_Scan(TimeData,0);//动态扫描//按键控制if(KeyCount==2){KeyCount=0;NowKey=GetKey();if(NowKey!=BeforKey){switch (NowKey){case 1:TimeSet();break;case 2:AlarmSingal=0;break;default:break;}}BeforKey=NowKey;}else KeyCount++;}}4.3显示子程序的设计void D_Scan(uchar *ShowAddress,uchar FlagBit){uchar ShowBit;uchar Show;for(ShowBit=0;ShowBit<5;ShowBit++){if(FlagBit!=5){switch(ShowBit){case 0:Show=BCD_to_Text((*ShowAddress)%10);break;case 1:Show=BCD_to_Text((*ShowAddress)/10);break;case 2:Show=BCD_to_Text((*(ShowAddress+1))%10);break;case 3:Show=BCD_to_Text((*(ShowAddress+1))/10);break;case 4:Show=BCD_to_Text((*(ShowAddress+2))%10);break;}}P2=0xff;switch(FlagBit){case 0:P0=Show;break;case 1://设分闪动if(RayFlag2 && (ShowBit==0||ShowBit==1))P0=0x40;else P0=Show;break;case 2://设时闪动if(RayFlag2 && (ShowBit==2||ShowBit==3))P0=0x40;else P0=Show;break;case 3://设上下午闪动if(RayFlag2 && ShowBit==4)P0=0x40;else P0=Show;break;}P2=GetClockBit(ShowBit);Delay(1);}}五、调试及性能分析5.1调试步骤进入调试状态后应该在关键的地方设置断点然后按步运行,同时观察参数的变化,通过变化来判断程序运行的过程即可找出程序中混乱的部分,进行改正,这需要对软件熟练的掌握和对语言程序的很好的理解,实验板搭建成功后,我们就进入了程序的设计和调试阶段,开始编写程序时很顺利,但是后来在调试过程中出现了很多的错误,比如定时器准确度的设置,子程序的调用问题,最困难的就是对没步程序执行顺序的分析,由于程序中一些语句的错误理解和执行顺序的判断失误,让我掉进了误区,耽误了很长时间,最后在同学的帮助下终于找到了错误的关键点,更正成功了。