单片机设计电子打铃器

合集下载

单片机电子闹钟程序亲自编写-可用

单片机电子闹钟程序亲自编写-可用

单片机电子闹钟程序(亲自编写-可用)————————————————————————————————作者:————————————————————————————————日期:学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。

其中正常时间显示和闹钟时间显示可用一个开关来调整。

芯片选择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();}}电路图:分四部分显示:如果在学习这个程序过程中有什么问题,可以发邮件到询问。

基于单片机的自动打铃器的设计毕业设计-精品

基于单片机的自动打铃器的设计毕业设计-精品

毕业设计题目:基于单片机的自动打铃器的设计院:电气信息学院诚信声明本人声明:1、本人所呈交的毕业设计是在老师指导下进行的研究工作及取得的研究成果;2、据查证,除了文中特别加以标注和致谢的地方外,毕业设计中不包含其他人已经公开发表过的研究成果,也不包含为获得其他教育机构的学位而使用过的材料;3、我承诺,本人提交的毕业设计中的所有内容均真实、可信。

作者签名:日期:年月日毕业设计(论文)任务书题目:基于单片机的自动打铃器的设计一、基本任务及要求:1.学习单片机的相关知识,利用单片机编程,实现相关控制;2.设计一个自动打铃器,要求具备一般电子时钟的功能;能进行多点时间的定时以及定时时间到自动打铃,要求定时点数至少是40,定时精度是1分钟,且要求能通过键盘查看各定点时间,要求具备掉电保护功能。

3.利用相关软件绘制原理电路图和PCB板图;4.对实验电路编写程序进行调试,保证各部分正常工作,保证电路板正常完成所规定的任务。

二、进度安排及完成时间:(1)第一周至第三周:查阅资料、撰写文献综述和开题报告;(2)第四周至第五周:学习并掌握单片机及外围设备接口;(3)第六周至第七周:在实验板上完成硬件设置和连线;(4)第八周至第十一周:在开发机上调好软件,然后固化到EPROM中,能脱机运行;(5)第十二周至第十三周:用PROTEL工具软件绘制完整电路原理图,标志各元器件序号和脚号;画出软件流程框图。

包括主程序和各子程序。

撰写设计说明书;(6)第十四周:毕业设计答辩;目录摘要 (I)Abstract (II)第一章绪论 (1)1.1 单片机设计的目的和意义 (1)1.2 单片机发展现状和前景展望 (1)1.2.1 课题发展现状 (1)1.2.2 课题前景展望 (2)1.3 Protel 99 SE概述 (2)1.3.1 Protel 99 SE的组成 (3)1.3.2 Protel 99 SE的应用 (4)1.3.3 电路板的设计步骤 (6)第二章单元模块的设计 (8)2.1电源模块 (8)2.2单片机最小系统模块 (8)2.3时钟模块 (9)2.4按键模块 (11)2.5显示模块 (12)2.5.1 主要技术参数 (13)2.5.2 引脚功能 (13)2.5.3 基本操作时序 (14)2.5.4 状态字说明 (14)2.5.5 RAM地址映射图 (14)2.5.6 指令说明 (15)2.5.7 接口时序图 (16)2.6喇叭模块 (18)第三章系统软件设计 (19)3.1 系统软件按键程序设计 (20)3.2 系统软件打铃器时间设置设计 (21)第四章系统功能介绍及调试 (22)4.1 打铃器功能简介 (22)4.2 打铃器优点 (22)4.3 打铃器缺点与不足 (22)4.4 系统调试 (22)4.3.1 硬件调试 (22)4.3.2 软件调试 (23)结束语 (24)参考文献 (25)致谢 (26)附录 (27)附录1 (27)附录2 (41)基于单片机的自动打铃器的设计摘要:单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

基于单片机的自动打铃器设计

基于单片机的自动打铃器设计

基于单片机的自动打铃器设计随着社会的发展和科学技术的进步,大部分单位对于时间有严格的管理制度,能够实现在预定时间进行打铃的设备也成为必需品。

本文单片机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两种直流电源,再加可充电电池作备用电源,停电时保持时钟和作息时间表。

交流供电时给电池充电。

现在,专用的日历时钟芯片很多,性能也很好,尤其是精度可以很高,省电,使用方便。

申千林单片机课程设计教学楼打铃器1

申千林单片机课程设计教学楼打铃器1

湖南商学院《单片机课程设计》报告题目教学用数字打铃器姓名: 申千林学号:专业: 电子信息工程班级:指导教师: 肖老师职称: 教授计算机与电子工程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)设计一个自动打铃器,满足要求有:能任意设置十个打铃时间,时间到时自动打铃,系统包括复位,显示,打铃和按键模块。

基于单片机的电铃控制器设计

基于单片机的电铃控制器设计

目录1 引言 (1)2 总体设计方案 (1)2.1 设计思路 (1)2.2 设计方案 (2)3 程序流程图框 (2)3.1 总体程序流程图框 (2)3.2 时钟打铃程序流程图框 (3)4 设计原理分析 (4)4.1 驱动显示电路 (4)4.2 打铃控制电路 (4)4.3 打铃控制 (5)4.4 信号输入电路的设计 (5)5 总结与体会 (5)参考文献 (6)附录1原理图 (7)附录2 PCB图 (8)附录3仿真图 (9)附录4程序清单 (10)电铃控制器摘要:该设计介绍了一种以AT89S51单片机为核心,以七段数码管显示星期;时;分钟和秒,发光二极管作为指示灯标志及按键校时定时的自动打铃控制器。

关键词:单片机;数码管;电铃;定时;74LS2451 引言当今时代是一个新技术层出不穷的时代,在电子领域有尤其是自动化自动控制了领域,传统的分立元件或数学逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。

单片机具有体积小,功能强,成本低,应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。

目前,一个学习与应用单片机的高潮正在工厂,学校及企业单位大规模的兴起。

学习单片机的最有效的方法就是理论与实践并重。

打铃器由AT89S51及其它器件组成,采用按键控制调时和定时等功能,用7个数码管来分别显示星期、时、分和秒.用5V直流电源,可以设定20多个打铃时间点。

以AT89S51为核心的单片机控制. 主要作用:解除作息管理麻烦、改变人工打铃、人工控制电器落后现象,实行电铃周期性工作的自动化控制.同时设有数字显示器及控制系统体积小,重量轻等优点。

充分发挥单片机体积小,价格便宜,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。

2 总体设计方案2.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),数码管分别显示:“时”、“分”,用二极管的“点”作为时、分的间隔。

单片机打铃控制器

单片机打铃控制器

目录第1章概述 ........................................................................ 错误!未定义书签。

第2章总体方案设计 .......................................................... 错误!未定义书签。

2.1 设计思路 .................................................................. 错误!未定义书签。

2.2 设计方框图 (2)2.3 软件系统流程图 (3)2.3.1 软件系统流程图 ................................................... 错误!未定义书签。

2.3.2 软件系统流程图 ................................................... 错误!未定义书签。

2.3.3 软件系统流程图 ................................................... 错误!未定义书签。

2.3.4 软件系统流程图 ................................................... 错误!未定义书签。

第3章硬件电路设计 .......................................................... 错误!未定义书签。

3.1电源电路设计 ........................................................... 错误!未定义书签。

3.2 键盘控制电路 .......................................................... 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录摘要本次设计中的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:七段数码显示管因而它的控制原理和发光二极管的控制原理是相同的。

根据各管接线的形式,可A B C D E F Gcom分成共阴极型和共阳极型。

其八个接口对应的字形如下表:表一:数码管字型码表3.3蜂鸣器驱动模块的硬件设计本设计中的蜂鸣器驱动模块用到了蜂鸣器(SPEAKER)、三极管、100欧姆的电阻。

将蜂鸣器的一段接地,另一端接三极管的发射极,三极管的基极通过100欧姆的电阻接在三极管的P3.7引脚,三极管的集电极接+5V的电源。

其电路图如下图所示:图3-5:蜂鸣器驱动电路图第四章系统软件设计软件是该LED显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。

4.1系统软件设计的主要内容系统软件设计由三个模块编程组成:蜂鸣器打铃编程,七段显示管显示编程,按键编程。

4.2主程序流程设计主程序初始化,并打开中断,然后执行中断服务程序。

实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示)到预定时间启动蜂鸣器模拟打铃,蜂鸣器BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮调整选择键SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁增加键ADD_KEY:P1.1;按一次使选中位加1减少键DEC_KEY;P1.2;按一次使选中位减1,如果长按ADD_KEY或DEC_KEY,识别后则进行调时快进,此时停止闪烁。

相关文档
最新文档