单片机设计电子打铃器
- 格式:doc
- 大小:298.00 KB
- 文档页数:19
单片机电子闹钟程序(亲自编写-可用)————————————————————————————————作者:————————————————————————————————日期:学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。
其中正常时间显示和闹钟时间显示可用一个开关来调整。
芯片选择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();}}电路图:分四部分显示:如果在学习这个程序过程中有什么问题,可以发邮件到询问。
本科毕业设计(论文)题目基于单片机的时控打铃设计专业班级学号学生姓名指导教师设计所在单位基于单片机的时控打铃设计摘要:随着家用电器的越来越普及和人们生活节奏的加快,人们对电器的依赖性进一步提高,对电器的定时需求也进一步增大。
定时开关打铃可用于工厂、学校等需要定时打铃的场合。
定时开关打铃的使用能够做到节能、安全、方便等。
本文介绍了一种基于STC89C52RC单片机的定时开关打铃设计方案。
本文首先介绍定时开关打铃设计要实现的功能,接着阐述系统电路的设计及原理说明,包括设计方案选择、关键元器件介绍、电路设计说明(包括电源电路、键盘、单片机控制电路、液晶1602显示、蜂鸣器工作电路)软件设计流程以及系统的测试。
最后总结了定时开关打铃设计完成的任务,分析系统的不足并提出了系统的应用展望。
关键词:STC89C52RC;定时打铃;1602液晶;键盘Design of Control Outlet Based on SCMAbstract: with the increasing popularity of household appliances and people life rhythm speeding up, people for the dependence of the electrical appliances to further improve, demand for electric timing also increases further. Time switch ringing the bell can be used in factories, schools and so on need to regular the occasion of ringing the bell. Time switch the use of ringing the bell can achieve energy saving, safety, convenience, etc. This paper introduces a kind of based on STC89C52RC single-chip microcomputer timer switch design of ringing the bell.This paper introduces the time switch design in order to realize the function of ringing the bell, and then expounds design and principle of the circuit system, including design scheme selection, key components, circuit design specificSTCion (including power circuit, keyboard, 1602 single chip microcomputer control circuit, liquid crystal display, relay circuit) software design process, and system test. Finally summarizes the time switch ringing the bell design task, the shortcoming of the system and put forward the applicSTCion prospect of the system. Key words:STC89C52RC,Timer switch,LCD 1602,Keyboard目录第一章绪论 (1)1.1 选题的目的与意义 (1)第二章系统设计方案 (2)2.1 系统结构与功能 (2)2.2 方案框图 (2)2.2.1 方案1 (2)2.2.2 方案2 (2)2.3 开关的选择 (3)2.4 显示方式选择 (4)2.5 时钟的实现及单片机的选择 (4)2.6 按键控制部分的实现 (4)第三章主要元器件原理及其应用 (6)3.1 单片机STC89C52简介 (6)3.1.1 主要特性 (6)3.1.2 引脚功能说明 (7)3.2 1602工业字符型液晶简介 (9)3.2.1 主要特性 (9)3.3 蜂鸣器介绍 (10)3.3.1 蜂鸣器的继电特性 (10)3.3.2 蜂鸣器工作原理及特性 (10)3.3.3 蜂鸣器主要产品技术参数 (11)3.3.4 蜂鸣器的选用 (12)第四章硬件电路的设计 (13)4.1 单片机最小系统 (13)4.2 液晶显示 (14)4.3 蜂鸣器驱动电路 (15)4.4 键盘电路 (15)第五章系统软件设计 (17)5.1 开发环境 (17)5.2 各模块程序设计 (17)5.2.1 主程序流程图 (17)5.2.2 DS1302计时程序的编写 (18)5.2.3 LCD1602显示电路程序编写 (20)5.2.4 按键电路程序编写 (21)第六章系统制作及调试 (22)6.1 硬件制作 (22)6.2 硬件电路调试 (22)6.2.1 独立元件的检测 (22)6.2.2 单片机最小系统的调试 (22)6.2.3 显示模块的调试 (23)6.2.4 键盘模块的调试 (23)6.2.5 蜂鸣器电路的调试 (23)6.3 软件调试 (23)6.3.1 显示模块调试 (23)6.3.2 时钟模块调试 (23)6.3.3 键盘模块调试 (23)6.3.4 人机界面模块调试 (23)结束语 (24)致谢 (25)参考文献 (26)附录一系统原理图 (27)附录二程序清单 (28)第一章绪论1.1 选题的目的与意义电铃广泛应用于学校、机关及工矿企事业单位,可实现作息时间的固定周期打铃,提示人们工作、学习或是休息。
单片机系统课程设计课程设计名称:自动打铃器设计专业班级: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研究背景现代社会的发展越来越快,人们的时间观念也越来越强。
基于单片机的自动打铃器设计随着社会的发展和科学技术的进步,大部分单位对于时间有严格的管理制度,能够实现在预定时间进行打铃的设备也成为必需品。
本文单片机AT89C51为核心,加入了键盘输入,时间显示等模块,可以满足日常使用所需的功能。
标签:AT89C51;自动打铃器;时间;显示为了方便人们的生活和工作,自动打铃器广泛于学校、工厂、企业等有比较固定作息时间的单位。
尤其是学校,要按时打铃,以指挥师生员工上课、下课等统一行动。
现在我们可以利用单片机设计自动打铃器,在预定的时间打铃。
这项设计涉及到单片机的定时器、中断、键盘输入、LCD数码和字符显示、I2C总线、单总线、开关量输出等内容。
1 总体设计总体设计,其中最主要的就是原理设计。
根据设计要求和现有的技术条件,在满足功能、性能等用户需求的基础上,初步提出可选技术路线,并对各方案进行必要的分析,充分听取方方面面的意见,选择一种实施方案。
本项目的实施方案如下:选用机型:AT89C51(可以使用简化版AT89C2051)。
这是美国ATMEL公司生产的与INTEL公司的MCS-51系列全兼容的单片机产品,指令兼容,引脚兼容,可以直接代换。
其优点是片内程序存储器是电擦写的,使用方便,耗电少,价格低。
时间显示:16位×2行的液晶显示模块1602,显示内容比较多。
并行口连接。
键盘输入:4个独立式按键,分别是对表、定时、临时打铃和上、下、左、右调整键打铃输出:经二级晶体管放大驱动12V直流继电器,控制220V电源通、断电铃。
系统扩展:不需要扩展RAM、ROM、和其它I/O接口,只需要通过I2C总线扩展一片24LC16B,用于保存打铃时间,以保证掉电不丢失,免得重新设置之麻烦。
电源部分:220V交流电经降压、整流、滤波、稳压,提供+12V和+5V两种直流电源,再加可充电电池作备用电源,停电时保持时钟和作息时间表。
交流供电时给电池充电。
现在,专用的日历时钟芯片很多,性能也很好,尤其是精度可以很高,省电,使用方便。
湖南商学院《单片机课程设计》报告题目教学用数字打铃器姓名: 申千林学号:专业: 电子信息工程班级:指导教师: 肖老师职称: 教授计算机与电子工程2012年9月目录1 概述 (1)1.1设计要求 (1)2 设计方案.................................... 错误!未定义书签。
3 硬件电路设计 (2)3.1晶振模块 (2)3.2电源电路................................ 错误!未定义书签。
3.3复位模块 (3)3.4键盘扫描模块 (3)3.5显示模块 (3)3.6响铃模块 (4)3.7主要元器件 (4)4 测试与仿真 (4)5 程序设计 (6)6 收获与总结 (11)参考文献 (11)附录一电路原理图 (12)《专业实习》报告评审表姓名申千林学院计算机与电子工程学号专业班级题目教学用数字打铃器评审意见评审成绩指导教师签名职称评审时间年月日课程设计(实习)作品验收表题目教学用数字打铃器参与人员姓名申千林班级学号设计任务与要求:(1)设计一个自动打铃器,满足要求有:能任意设置十个打铃时间,时间到时自动打铃,系统包括复位,显示,打铃和按键模块。
(2)设计单片机打铃器硬件电路,绘制出电路原理图。
(3)编程实现打铃器的各项功能。
作品完成情况:实现计时和显示功能,能在设计的十个定点时间打铃,当数码管显示时间与程序内定时间相吻合就打铃,且每次打铃均为十次滴声长度。
验收情况:验收教师签名:___________年月日注:1. 除“验收情况”栏外,其余各栏均由学生在作品验收前填写。
2. “验收情况”栏由验收小组按实际验收的情况如实填写。
教学用数字打铃器1 概述1.1 设计要求通过学习和借鉴单片机最小系统的基本设计方法,设计单片机打铃器应用系统。
(1)设计一个自动打铃器,满足要求有:能任意设置十个打铃时间,时间到时自动打铃,系统包括复位,显示,打铃和按键模块。
【关键字】设计CHANGZHOU INSTITUTE OF TECHNOLOGY科研实践题目:基于单片机的打铃器设计二级学院(直属学部):延陵学院专业:电气工程及其自动化班级:10电Y3学生姓名:学号:指导教师姓名:范力旻职称:副教授至摘要单片机自1976年由Inter公司推出MCG-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已经从面相工业控制、通讯、交通。
智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
按照内部数据通道的宽度,单片机可分为4位、8位、16位及32位等。
单片机的中央处理器(CPU)和通用微处理器基本相同,只是增设了“面向控制”的处理功能。
例如:位处理、查表、多种地址询问方式、多种跳转、乘除法运算、状态监控、中断处理器,强了实时性。
本设计以AT89S52芯片为核心,利用DS1302作时钟芯片,具有实时显示当前时间,按设定时间报时,能修改当前时钟等功能。
关键词:定时打铃;DS1302时钟;LCD1602液晶显示目录第一章绪论1.1 选题背景及研究意义随着科技的不断发展,各种芯片都得到了很好的发展,89S52同样如此,从开始的无人问津到现在的随处可见,红绿灯,记分牌,电子秒表,遥控器,电饭煲,电视等只要是电子产品,都会和芯片有关,其实芯片并不是什么神秘的高科技,它只是里面装了一些己编好的程序而己.而自动打铃系统是用汇编语言来编程的一个系统,它能够让一个学校或企业集团实现打铃自动化,总之,一个需要时间系统的机构实现自动提醒功能。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目录1、课程设计目的 (2)2、总体设计 (2)2.1 模块设计 (2)2.2 程序流程图 (2)3、硬件单元设计 (4)3.1电路设计总原理图 (4)3.2各模块电路设计 (4)3.2.1 键盘扫描模块 (4)3.2.2 时钟和复位模块 (4)3.2.3 显示模块 (5)3.2.4 响铃模块 (6)4、软件设计 (7)4.1键盘扫描程序 (8)4.2数码管显示程序 (10)4.3主程序 (11)4.4响铃程序 (12)5、课程设计总结 (15)6、参考文献 (16)2.总体设计2.1 模块设计教学用电子打铃器主要由AT89S51单片机、键盘扫描模块、时钟和复位模块、打铃器模块、八段数码管显示模块等组成。
运用汇编语言来控制单片机80C51来实现、动态数码显示等功能。
且本设计中的80C51单片机是整个工作过程的核心,是整个设计灵魂,它控制了脉冲时序的产生,显示信号的发送控制显示LED 的选择。
所用到的芯片元器件:80C51单片机, 3个按键,1个蜂鸣器,4个八段LED 数码管 80C51是一种带4K 字节存储器(的低电压、高性能CMOS 8位微处理器,俗称单片机。
2.2 程序流程图图2.2(1) 主程序流图2.2(1) 主程序程序流程图图2.2(2) 定时中断程序流程图3.硬件单元设计开始初始化参数设置调用显示子程序调用打铃对比程序调用键盘子程序3.1 电路设计总原理图图3.1 总体原理图3.2 各模块电路设计3.2.1 键盘扫描模块利用四个按键进行校时,按键K1是调整时间选择,按键K2进行小时加1,按键K 3进行分钟加1,按键K4则调整时间结束返回主程序, K1接P1.1,K2接P1.2,K3接P1.3,K4接P1.4。
3.2.2 时钟和复位模块图3.2.2 时钟和复位模块3.2.3显示模块及芯片说明根据设计要求系统需要4个共阳LED,数码管显示电路使用80C51的动态显示功能。
4个LED八段(a、b、c、d、e、f、g、dp),数码管分别显示:“时”、“分”,用二极管的“点”作为时、分的间隔。
校园自动打铃器作息时钟摘要本文介绍了以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)一.引言打铃器是一种广泛应用于企业和学校单位。
就以对学校单位而言,自动打铃器是为了对了广大师生的作息时间做更好的管理,它一种学校必备电子设备,也是一种逐渐成型的电子产品,打铃器多为小规模集成电路构成,其性能单一,工作起来不够理想。
基于单片机控制的电铃控制器一.设计要求(一)基本功能1.显示:可以显示星期、时、分和秒2.打铃:每天可设置20次,打铃持续时间每次1-90秒可调,每次打铃的间隔时间1-99分钟可调。
3.铃声:内置蜂鸣器可以发出监控声音(二)性能时间日误差< 1.5秒(三)扩展功能1.可设定单/双休息日不打铃2.随季节变化,每天自动调整开与关的时间二.计划完成时间三周1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。
2.第二周完成软件的具体设计和硬件的制作。
3.第三周完成软件和硬件的联合调试。
三.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。
四.答辩在规定时间内,完成叙述并回答问题。
目录1引言 (1)2总体设计方案 (1)2.1设计思路 (1)2.2总体设计框图 (1)2.3设计方案 (1)3设计原理分析 (2)3.1按键功能 (2)3.2状态指示 (2)3.3打铃控制 (2)3.4电路原理图 (2)4程序流程框图 (3)4.1总体程序流程图 (3)4.2主程序流程图 (3)4.3校时程序流程图 (4)4.4时钟打铃程序流程图 (4)5心得与体会 (5)参考文献 (5)附录 (6)基于单片机控制的电铃控制器班级:应教053班姓名:李胜涛摘要:该设计介绍了一种以AT89S51单片机为核心,以七段数码管显示星期、时、分和秒,发光二极管作为指示灯标志及按键较时、定时的自动打铃器。
关键词:单片机电铃自动数码管1引言当今社会,随着科学技术的快速发展,自动控制在人们的生活中可以说“无孔不入”,小到遥控儿童玩具,大到冰箱空调的智能化,都体现了科学技术的进步。
特别是单片机(Single-Chip Microcomputer SCM)技术的应用,不但降低了生产成本,同时也方便了消费者,使操作简洁、安全。
单片机的应用使许多复杂的事情,都能够简单、方便的实现了。
用单片机控制的自动打铃器,充分发挥单片机体积小,价格便宜,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。
单片机课程设计目录摘要 (1)引言 0第一章设计简介及方案论述 (1)第二章设计思路与方案 (1)2.1单片机总体设计思路 (1)2.2各功能模块程序实现原理分析 (2)2.3 AT89C51单片机性能介绍 (2)第三章电子打铃系统硬件设计 (4)3.1系统主要硬件电路 (4)3.3蜂鸣器驱动模块的硬件设计 (6)第四章系统软件设计 (7)4.1系统软件设计的主要内容 (7)4.2主程序流程设计 (7)第五章系统调试与测试结果分析 (9)5.1系统调试 (9)5.2调试现象及分析 (9)5.3仿真结果 (9)第六章、心得体会 (11)参考文献: (11)附录: (12)单片机课程设计摘要本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED 数码管稳定显示。
设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。
计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。
关键词:AT89C51;数码管; LED单片机课程设计引言本设计是根据我们所学习的单片机课程,按照大纲要求对我们进行的一次课程检验,是进行单片机课程训练的必要任务,也对我们掌握单片机应用有很大的帮助。
掌握单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。
近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
学习单片机的最有效的方法就是理论与实践并重,本文用AT89C51单片机设计的一个电子打铃系统。
第一章设计简介及方案论述1.1作息时间控制钟系统概述:本设计是一个具有打铃功能的作息时间控制钟。
它利用89C51单片机的2Hz时基计时,进行年历计算,并用的蜂鸣器驱动模块将它打出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。
由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。
现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。
本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。
1.2设计要求:①利用单片机组成一个电子打铃器。
②按照学校上下课铃声次序设定定时间③用一个蜂鸣器模拟电铃,响铃10s。
④周六周日不打铃⑤通过“周”“时”键和“分”键分别校正周、时和分,每按一次对应+1。
第二章设计思路与方案2.1单片机总体设计思路(1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏;(2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒;(3)在秒计数器的基础上设计一个24小时时钟,并设计若干定时功能;(4)设计打铃执行机构,完成自动打铃功能。
2.2各功能模块程序实现原理分析图2-1模块组成框图如图2-1所示,该模块由蜂鸣器驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成。
且三部分都通过AT89C51来实现。
○1七段式数码管驱动模块采用动态扫描方式,通过一组单片机端口驱动并联在一起的LED发光管的一端(共阴或共阳端),LED发光管的另一脚接通用I/O口,控制其亮灭。
该方法能驱动较多的LED,控制方式较灵活,而且节省单片机的资源。
○2.蜂鸣器驱动模块采用压电式蜂鸣器,压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。
多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5-15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。
○3按钮控制模块四个按钮的一端分别接地,另一端接单片机一个端口的四个引脚,当某一个按钮按下的时候,其对应的引脚就由高电平变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。
2.3 AT89C51单片机性能介绍AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
引脚说明:VCC:供电电压。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。
89C51各部分引脚图如下:P1.0 1 40 VccP1.1 2 39 P0.0P1.2 3 38 P0.1P1.3 4 37 P0.2P1.4 5 36 P0.3P1.5 6 35 P0.4P1.6 7 34 P0.5P1.7 8 33 P0.6RST/Vpd 9 32 P0.7RXD P3.0 10 31 EA/VppTXD P3.1 11 30 ALE/-PINT0 P3.2 12 29 PSENINT1 P3.3 13 28 P2.7T0 P3.4 14 27 P2.6T1 P3.5 15 26 P2.5WR P3.6 16 25 P2.4RD P3.7 17 24 P2.3X2 18 23 P2.2X1 19 22 P2.1GND 20 21 P2.0图2-2 89C51引脚图RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
为使该模块化自动打铃系统具有更加方便和灵活性,我们对系统的硬件做了精心设计。
硬件电路包括七段式数码管驱动模块、蜂鸣器驱动模块、按钮控制模块等三大模块。
第三章电子打铃系统硬件设计3.1系统主要硬件电路系统主要硬件电路作为驱动整个打铃系统的电路又分为七段数码显示电路和蜂鸣器驱动电路。
由显示七段数码显示电路和蜂鸣器驱动电路组成的系统硬件主要电路如下:图3-3:系统主要硬件电路该系统通过按钮控制(系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮;调整选择键SET_KEY :P1.0通过选择键选择调整位,选中位闪烁;增加键ADD_KEY :P1.1按一次使选中位加1;减少键DEC_KEY :P1.2按一次使选中位减1;如果长按ADD_KEY 或DEC_KEY ,识别后则进行调时快进,此时停止闪烁)AT89C51的计时和定时,在七段数码管上显示出来(实现24小时制电子钟,8位数码管显示,显示时分秒),再通过蜂鸣器 (BEEP :P3.7)来实现打铃。
3.2七段式数码管驱动模块的硬件设计LED 数码管显示器内部有七个条形发光二极管和一个小圆点发光二极管组成,其结果图如下所示:图3-4:七段数码显示管因而它的控制原理和发光二极管的控制原理是相同的。
根据各管接线的形式,可分成共阴极型和共阳极型。
其八个接口对应的字形如下表:显示字形dp g f e d c b a 共阴极字型码共阳极字型码1111110x3F0xC0A B C D E F Gcom1 0 0 0 0 0 1 1 0 0x06 0xF92 0 1 0 1 1 0 1 1 0x5B 0xA43 0 1 0 0 1 1 1 1 0x4F 0xB04 0 1 1 0 0 1 1 0 0x66 0x995 0 1 1 0 1 1 0 1 0x6D 0x926 0 1 1 1 1 1 0 1 0x7D 0x827 0 0 0 0 0 1 1 1 0x07 0xF88 0 1 1 1 1 1 1 1 0x7F 0x809 0 1 1 0 1 1 1 1 0x6F 0x90A 0 1 1 1 0 1 1 1 0x77 0x88B 0 1 1 1 1 1 0 0 0x7C 0x83C 0 0 1 1 1 0 0 1 0x39 0xC6D 0 1 0 1 1 1 1 0 0x5E 0xA1E 0 1 1 1 1 0 0 1 0x79 0x86F 0 1 1 1 0 0 0 1 0x71 0x8E3.3蜂鸣器驱动模块的硬件设计本设计中的蜂鸣器驱动模块用到了蜂鸣器(SPEAKER)、三极管、100欧姆的电阻。