单片机设计电子打铃器
单片机电子闹钟程序亲自编写-可用

单片机电子闹钟程序(亲自编写-可用)————————————————————————————————作者:————————————————————————————————日期:学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。
其中正常时间显示和闹钟时间显示可用一个开关来调整。
芯片选择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 选题的目的与意义电铃广泛应用于学校、机关及工矿企事业单位,可实现作息时间的固定周期打铃,提示人们工作、学习或是休息。
基于51单片机的自动打铃机设计

单片机系统课程设计课程设计名称:自动打铃器设计专业班级: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研究背景现代社会的发展越来越快,人们的时间观念也越来越强。
基于单片机无线控制的多功能打铃仪设计

表2 G P S 接收测试
l 旦 坚 I 里l
不 同动作 。
l
8 : 0 o 1 0 : 0 0 1 2 : 0 0 1 6 : 0 0 1 8 : 0 0 2 0 : 0 0 2 4 : O 0
巡检控制包为3 个字节 ,0 B :命令字 , 不同的命 令代 表
( 6 ) 传感 器巡 检包 ( 子机接 收 )
! l !
l 里 I 兰 呈 I
l
I
】
巡检控制包为2 个字节 , O B : 命令字 , 不 同的命令代表 不 同动作 ;1 B :I D 号 ,存放子机2 的I D 地址 ; 2 B : 传感器 型
号 ;3 B : 传感器动作
2 ol 3. 07
进行打铃时 间比较
进行打铃时 间比较
N
间是 为l 2 点
切换为0 0 信道并发射检 测信号,对子机进行检 测, 等待子机应答
一
Y
时间是否为 打铃时间
N
切换为o 0 信道并发射 打铃信号
J r Y
L—]
子机指示灯保持长亮I ຫໍສະໝຸດ l 子机指示灯灭 I m m I m I
2 . 4 报警功 能
如果 有报 警 按键 按下 去 , 则 停 下子 机工 作 ,子机 切
.
换 到C H 3 信 道 向主机发送 报警信 号 ,并 打铃 ,直到警 报解 1 0 B( H) I l B I 2 B l 3 B I 4 B l 5 B 除 。如果外 接有无 线传 感器 ,子机通 过C H 5 信 道巡检 各传 打铃控制包为6 个字节 , : 命令字 ,不 同的命令代表
l
l! 旦l
基于单片机的自动打铃器设计

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

湖南商学院《单片机课程设计》报告题目教学用数字打铃器姓名: 申千林学号:专业: 电子信息工程班级:指导教师: 肖老师职称: 教授计算机与电子工程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),数码管分别显示:“时”、“分”,用二极管的“点”作为时、分的间隔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计目录摘要 (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欧姆的电阻。