基于51单片机实现的简单闹钟设计

合集下载

(完整word版)C51单片机实现电子闹钟

(完整word版)C51单片机实现电子闹钟

课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。

本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。

一.电子闹钟简介我们设计的电子闹钟是以MCS 51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。

简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。

保证数字的输入。

2)复位电路的功能。

所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。

当输入数字时显示24小时时间功能。

4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。

二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为内核显示设计方案。

先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。

整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。

完成显示电路、数字按键、单片机时钟电路。

Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。

本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。

各部分实现功能如下:按键电路:提供按键信号。

单片机时钟电路、复位电路:提供内部时钟。

基于51单片机的简易数字钟系统设计

基于51单片机的简易数字钟系统设计

简易数字钟系统设计完成一个简易数字时钟系统设计。

要求:用3个独立按键调整时间。

一个按键控制启动运行。

在调整结束后按运行键后开始运行。

1,开机时,显示00:00:00时间从零开始调整。

2,P10控制秒的调整,每按一次加1s。

3,p11控制分的调整,每按一次加1min。

4,p12控制时的调整,每按一次加1h。

5,p13控制运行和停止。

程序:#include<reg52.h>sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;#define uchar unsigned char#define uint unsigned intuchar shi,ge,aa,num,num1,num2,tt;uint n;uchar q1,q2,b1,b2;sbit dula=P2^6;sbit wela=P2^7;void keyscan();void delay(uint);void display();uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void keyscan(){if(key1==0){ num2++;if(num2==24)num2=0;while(!key1);if(key2==0){num1++;if(num1==60)num1=0;while(!key2);}if(key3==0){num++;if(num==60)num=0;while(!key3);}if(key4==0){ TR0=~TR0;while(!key4);}}void main(){TMOD=0x00;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;while(1){ k eyscan();display();}}void time0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;if(tt==100){ tt=0;num++;if(num==60){ num=0;num1++;if(num1==60){ num1=0;num2++;if(num2==24)num2=0;}}}}void display(){q1=num2/10;q2=num2%10;b1=num1/10;b2=num1%10;shi=num/10;ge=num%10;wela=1;P0=0xfe;wela=0;P0=0xff;P0=table[q1]; dula=0; delay(1);wela=1;P0=0xfd; wela=0;P0=0xff; dula=1;P0=table[q2]; dula=0; delay(1);wela=1;P0=0xfb; wela=0;P0=0xff; dula=1;P0=table[b1]; dula=0; delay(1);wela=1;P0=0xf7; wela=0;P0=0xff; dula=1;P0=table[b2]; dula=0; delay(1);wela=1;P0=0xef; wela=0;P0=0xff; dula=1;P0=table[shi]; dula=0; delay(1);wela=1;P0=0xdf;P0=0xff;dula=1;P0=table[ge];dula=0;delay(1);}void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=110;j>0;j--); }。

基于51单片机的简易电子时钟

基于51单片机的简易电子时钟

基于51单片机的简易电子时钟设计摘要今天,电子时钟是生活中不可或缺的一部分。

电子时钟通过数码管显示,具有整点报时等功能,可以使得我们的生活变得更加有序。

电子时钟也通过不断地改进,变得功能越来越强大。

本次设计的电子时钟利用单片机STC89C51进行控制的,利用单片机自身的定时器功能,采用数码管显示,可对电子时钟进行调整校准。

此设计具有相当重要的现实意义和实用价值。

基于单片机STC89C51的电子时钟,采用数码管显示“时“分“秒”而且可用按键进行调整校准。

此次设计与传统的机械表相比,它具有走的更精准,显示更直观等特点,而且单片机的数字时钟具有灵活编程,便于功能扩充等特点。

本次所设计主要有三个模块:显示模块,按键模块,闹铃模块。

该时钟采用STC89C51单片机自身定时器进行计时,按键模块采用独立式键盘(4个按键),闹铃部分由8550三极管和蜂鸣器构成,显示时、分、秒用两个四位共阴极数码管显示,具有可调整时间功能和设定闹钟功能,在设计过程中硬件和软件应同时进行。

关键词:电子时钟,单片机,闹钟,蜂鸣器SIMPLE ELECTRONIC CLOCK DESIGN BASED ON 51MCUABSTRACTToday , the electronic clock is an integral part of life . Through the digital display electronic clock , with the whole point timekeeping function , can make our life more orderly . The electronic clock also through continuous improvement , has become more and more powerful .The design of the electronic clock using STC89C51 MCU to control the use of single-chip , self timer function , the use of digital tube display , can adjust the calibration of the electronic clock . Has very important realistic significance and practical value of this design .The electronic clock based on MCU STC89C51 , using digital tube display " when " " seconds " and the button can be used to adjust the calibration . And the design of the traditional mechanical watch , it has to go more accurate , more intuitive display characteristics , and the digital clock has flexible programming , easy to function expansion and so on .This design has three main modules : the display module , keyboard module , alarm module . The clock uses STC89C51 microcontroller timer timing , key module with separate keyboard (4 buttons), the alarm is composed of 8550 transistors and a buzzer , when the display is divided bytwo seconds , four common cathode digital display , which can adjust the time and set the alarm function , hardware and software in the design process should be carried out at the same time .Key Words : electronic clock , microcontroller , alarm clock , a buzzer目录第一章绪论....................................................... - 1 -1.1 课题背景及意义.............................................. - 1 -1.2 课题内容.................................................... - 1 -1.2.1 题目及要求 ............................................ - 1 -1.2.2 主要部分 .............................................. - 2 - 第二章方案....................................................... - 3 -2.1 功能要求.................................................... - 3 -2.3 数码管显示方案.............................................. - 3 - 第三章电子时钟的硬件设计......................................... - 5 -3.1 电子时钟的组成.............................................. - 5 -3.2 单片机最小系统图............................................ - 5 -3.3 STC89C51引脚功能 ........................................... - 6 -3.4 数码管显示模块.............................................. - 7 -3.5 闹铃部分.................................................... - 7 -3.6 按键模块.................................................... - 8 - 第四章电子时钟的软件设计......................................... - 9 -4.1 电子时钟程序流程框图........................................ - 9 -4.2 按键调整流程图............................................. - 10 -4.3 子程序的设计............................................... - 11 -4.3.1 数码管显示模块 ....................................... - 11 -4.3.2 按键子模块 ........................................... - 11 -4.3.3 主程序 ............................................... - 12 - 第五章硬件的制作与测试分析...................................... - 13 -5.1 电子时钟的硬件制作......................................... - 13 -5.2 硬件测试................................................... - 13 -5.3 软件调试................................................... - 13 -5.4 测试结果分析与结论......................................... - 14 -5.4.1 数码管测试结果分析 ................................... - 14 -5.4.2 按键测试结论 ......................................... - 14 -5.4.3测试结论.............................................. - 15 - 总结与致谢....................................................... - 17 - 参考文献......................................................... - 19 - 附录............................................................. - 21 - 附录一分组表.................................................. - 21 - 附录二程序.................................................... - 22 - 附录三电子时钟实物图.......................................... - 33 -第一章绪论1.1 课题背景及意义二十一世纪的今天,电子时钟已经融入到千千万万户家庭中,它已经成为了人们生活中不可或缺的一部分。

51单片机电子闹钟程序(亲自编写,可用)

51单片机电子闹钟程序(亲自编写,可用)

学校电子钟,有闹钟功能,按键可调时间,可调打铃时间,打铃时间长短显示,每个模块有功能注释。

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

芯片选择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单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟摘要现代社会电子闹钟已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。

本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有双闹铃和倒计时的功能,实用性非常强。

电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该电子闹钟可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。

关键词:电子闹钟;倒计时;AT89S52;液晶LCD1602;按键AbstractIn modern society, the electronic alarm clock has been widely used in various occasions and become indispensable to life.It is a good helper to our work and learning. So,there is very important significance to research more practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good.Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button目录引言 (1)1 设计要求 (2)2 方案论证 (2)2.1 计时方案的选择 (2)2.2 显示方案的选择 (2)2.3 按键功能方案设计 (3)2.4 指示灯和响铃方案设计 (3)3 系统组成 (3)4 硬件设计 (4)4.1 单片机最小系统设计 (4)4.2 显示电路设计 (1)4.3 蜂鸣器电路设计 (1)4.4 按键电路设计 (2)5 软件设计 (2)5.1 走时部分 (2)5.2 闹铃检测部分 (3)5.3 键盘扫描部分 (3)5.4 液晶部分 (4)5.5 流程图 (4)6 仿真设计 (8)7 系统调试及结果 (8)7.1 软件调试 (8)7.2 硬件调试 (10)7.3 调试结果 (10)8 总结 (10)谢辞 (11)参考文献........................................... 错误!未定义书签。

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于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位地址复⽤总线端⼝。

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟课程设计论文

基于51单片机内部定时器的简易闹钟摘要现代社会电子闹钟已广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手,因此研究实用性更强的电子闹钟具有十分重要的意义。

本设计是基于单片机的电子钟设计,不仅具有时分秒的显示功能,还具有双闹铃和倒计时的功能,实用性非常强。

电子钟的计时部分采用AT89S52单片机内部定时器实现,而显示功能是采用液晶模块LCD1602来实现,该电子闹钟可以让使用者通过按键来轻松选择的功能菜单和调节时间,具有非常良好地人机界面。

关键词:电子闹钟;倒计时;AT89S52;液晶LCD1602;按键AbstractIn modern society, the electronic alarm clock has been widely used in various occasions and become indispensable to life.It is a good helper to our work and learning. So,there is very important significance to research more practical electronic alarm clock.This design is based on single chip microcomputer,It has display function of hours,minutes and seconds,dual alarm and countdown.The internal timer of AT89S52 achieve the part of time.The liquid crystal LCD1602 achieve the part of display.The users can use the push-buttons to choice the menu of functions and adjust the time.The man-machine interface is very good.Key words: electronic alarm; countdown; AT89S52; liquid crystal LCD1602; button目录引言 (1)1 设计要求 (2)2 方案论证 (2)2.1 计时方案的选择 (2)2.2 显示方案的选择 (2)2.3 按键功能方案设计 (3)2.4 指示灯和响铃方案设计 (3)3 系统组成 (3)4 硬件设计 (4)4.1 单片机最小系统设计 (4)4.2 显示电路设计 (5)4.3 蜂鸣器电路设计 (5)4.4 按键电路设计 (6)5 软件设计 (6)5.1 走时部分 (6)5.2 闹铃检测部分 (7)5.3 键盘扫描部分 (7)5.4 液晶部分 (8)5.5 流程图 (8)6 仿真设计 (11)7 系统调试及结果 (11)7.1 软件调试 (11)7.2 硬件调试 (12)7.3 调试结果 (13)8 总结 (13)谢辞 (14)参考文献........................................... 错误!未定义书签。

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计

基于51单片机的简易电子钟设计一、设计目的现代社会对于时间的要求越来越精确,电子钟成为家庭和办公场所不可缺少的设备之一、本设计基于51单片机,旨在实现一个简易的电子钟,可以显示当前的时间,并且能够通过按键进行时间的调整和设置闹钟。

二、设计原理本设计主要涉及到51单片机的IO口、定时器、中断、LCD显示技术等方面知识。

1.时钟模块时钟模块采用定时器0的中断进行时间的累加和更新。

以1秒为一个时间单位,每当定时器0中断发生,就将时间加1,并判断是否需要更新小时、分钟和秒的显示。

同时,根据用户按键的操作,可以调整时间的设定。

2.显示模块显示模块采用16x2字符LCD显示屏,通过51单片机的IO口与LCD连接。

可以显示当前时间和设置的闹钟时间。

初次上电或者重置后,LCD显示时间为00:00:00,通过定时器中断和键盘操作,实现时间的更新和设定闹钟功能。

3.键盘模块键盘模块采用矩阵键盘连接到51单片机的IO口上,用于用户进行时间的调整和设置闹钟。

通过查询键盘的按键状态,根据按键的不同操作,实现时间的调整和闹钟设定功能。

4.中断模块中断模块采用定时器0的中断,用于1秒的定时更新时间。

同时可以添加外部中断用于响应用户按键操作。

三、主要功能和实现步骤1.系统初始化。

2.设置定时器,每1秒产生一次中断。

3.初始化LCD显示屏,显示初始时间00:00:00。

4.查询键盘状态,判断是否有按键按下。

5.如果按键被按下,根据不同按键的功能进行相应的操作:-功能键:设置、调整、确认。

-数字键:根据键入的数字进行时间的调整和闹钟设定。

6.根据定时器的中断,更新时间的显示。

7.判断当前时间是否与闹钟设定时间相同,如果相同,则触发闹钟,进行提示。

8.循环执行步骤4-7,实现连续的时间显示和按键操作。

四、系统总结和改进使用51单片机设计的简易电子钟可以显示当前时间,并且实现时间的调整和闹钟设定功能。

但是由于硬件资源有限,只能实现基本的功能,不能进行其他高级功能的扩展,例如闹铃的音乐播放、温度、湿度的显示等。

基于MCS51单片机的闹钟提醒器设计报告

基于MCS51单片机的闹钟提醒器设计报告

题目:基于MCS51单片机的闹钟提醒器设计报告目录一、设计方案选定: (3)1.1 前言 (3)1.2 实验目的 (3)1.3总体设计要求 (3)1.3.1、基本要求 (3)1.3.2、自由发挥部分 (4)1.4 方案选定 (4)二、硬件电路设计 (4)2.1 AT89C52 (4)2.2 复位电路 (5)2.3 晶振电路 (5)2.4 时钟显示 (6)2.4.1 LCD1602 (6)2.4.2 DS1302: (6)2.5 程序框图 (7)2.6 基本电路及工作原理 (8)三、软件设计和仿真 (8)3.1 软件设计 (9)3.2 Proteus仿真 (25)四、课程设计体会 (27)参考文献 (28)基于MCS51单片机的闹钟提醒器学生:陈浩敏指导教师:张水锋电气信息工程学院电子信息工程专业一、设计方案选定:1.1 前言:单片计算机即单片微型计算机,(Single-Chip Microcomputer)。

是集CPU ,RAM ,ROM,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

基于单片机的定时和控制装置在许多行业有着广泛的应用。

而数字定时闹钟是其中最基本,也是最有代表性的一个实例。

数字定时闹钟的设计方法有许多种,例如,可以用中小规模集成电路组成数字定时闹钟,也可以利用专用的时钟芯片配以显示电路及其所需要的外围电路组成数字定时闹钟,还可以利用单片机来实现数字定时闹钟。

这些方法都各有其特点,其中,利用单片机来实现数字定时闹钟具有编程灵活、精度高等特点,便于数字定时闹钟功能的扩充,同时还可以用该数字定时闹钟发出各种控制信号。

1.2 实验目的:1、熟悉集成电路的引脚安排。

2、掌握各芯片的逻辑功能及使用方法。

3、充分认识单片机设计。

基于51单片机定时闹钟设计

基于51单片机定时闹钟设计

目录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、培养严肃认真的工作作风和严谨的科学态度。

基于51单片机实现的简单闹钟设计

基于51单片机实现的简单闹钟设计

基于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芯片,它是一个锁存器,用于控制数码管的显示。

51单片机设置的电子闹钟(可调时间和闹钟)

51单片机设置的电子闹钟(可调时间和闹钟)

#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0 // 数码管的段选#define LIGHT P1 // 时分秒位的指示灯#define WS P2 // 数码管的位选sbit key1=P3^0; // 时间暂停/开始sbit key2=P3^1; // 时间/闹钟设置sbit key3=P3^2; // 增加sbit key4=P3^3; // 减少sbit alarm=P3^6; // 闹铃uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9uchar tab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 0.-9.(带小数点)uchar data1[]={0,0,0,0,0,0};uchar data2[]={0,0,0,0,0,0};uint t,k,kk,k1,flag;uint bbh,bbm,bbs,bbh1,bbm1,bbs1;uint sec,min,hour,sec1,min1,hour1; // 定义秒,分,时void init();void display();void display_bb();void delay( uint );void keyscan();void main(){init();while(1){keyscan();if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if((bbh==hour)&&(bbm==min)&&data1[4]==0&&data1[5]==5) // 5s报时{alarm=~alarm;delay(1);}if((bbs==sec)&&(bbm==min)&&(bbh==hour)) // 可调报时{alarm=~alarm;delay(1);}}}void init(){WS=LIGHT=flag=0;sec=min=hour=0; // 将0赋给时分秒TMOD=0x01; // 方式1 P129(见课本)TH0=0x3c; // 65536-50000=15536=0x3cb0(50ms) P128(见课本)TL0=0xb0;EA=1; // 开总中断P161(见课本)TR0=1; // 定时/计数器0开启ET0=1; // 定时器/计数器0溢出中断启动P161(见课本)}void delay( unsigned int t) // 延时函数{unsigned int i;while(t--)for(i=0;i<125;i++);}void display() // 显示时间函数{if(TF0==1) // 定时器/计数器溢出P130(见课本){TF0=0; // 清中断标志位t++;if(t==20) // (50ms*20=1s){t=0;sec++; // 秒加1if(sec==60) // 秒为60,则清零,分加1{sec=0;min++;}if(min==60) // 分为60,则清零,时加1{min=0;hour++;}if(hour==24)// 时为24,则清零{hour=0;}}}data1[5]=sec%10;data1[4]=sec/10;data1[3]=min%10;data1[2]=min/10;data1[1]=hour%10;data1[0]=hour/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data1[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data1[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data1[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data1[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data1[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data1[0]];delay(1);}void display_bb() // 显示闹钟函数{data2[5]=bbs%10;data2[4]=bbs/10;data2[3]=bbm%10;data2[2]=bbm/10;data2[1]=bbh%10;data2[0]=bbh/10;WS=0xdf; // 1101 1111 ,低电平显示LED=tab[data2[5]];delay(1);WS=0xef; // 1110 1111LED=tab[data2[4]];delay(1);WS=0xf7; // 1111 0111LED=tab_dp[data2[3]];delay(1);WS=0xfb; // 1111 1011LED=tab[data2[2]];delay(1);WS=0xfd; // 1111 1101LED=tab_dp[data2[1]];delay(1);WS=0xfe; // 1111 1110LED=tab[data2[0]];delay(1);}void keyscan() // 键盘扫描{if(key1==0) // 暂停/开始{++kk;while(!key1){display();if(kk==1){TR0=0;if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间{display();}if(k1==4||k1==5||k1==6) // 显示调节闹钟{display_bb();}if(key2==0) // 模式选择(调节时间/闹钟){k1++;while(!key2){if(k1==1) // 第1次按下{sec1=sec; // 保存秒的数值sec=88; // 显示88,表示可以调节秒的数值了display(); // 显示88sec=sec1; // 恢复前一刻秒的数值}if(k1==2){min1=min;min=88;display();delay(1);min=min1;}if(k1==3){hour1=hour;hour=88;delay(1);hour=hour1;}if(k1==4){sec1=bbs; // 保存秒的数值bbs=66; // 显示66,表示可以调节秒的数值了display_bb(); // 显示66bbs=sec1; // 恢复前一刻秒的数值}if(k1==5){min1=bbm;bbm=66;display_bb();delay(10);bbm=min1;}if(k1==6){hour1=bbh;bbh=66;display_bb();delay(10);bbh=hour1;}if(k1==7){k1=0;display();}}}if(key3==0) // 时间/闹钟增加设置{while(!key3){if(k1==1){sec++;// 秒加1if(sec==60)sec=0;display();}if(k1==2){min++;delay(60);if(min==60)min=0;display();}if(k1==3){hour++;delay(60);if(hour==24)hour=0;display();}if(k1==4){bbs++; // 秒加1delay(60);if(bbs==60)bbs=0;display_bb();}if(k1==5){bbm++;delay(60);if(bbm==60)bbm=0;display_bb();}if(k1==6){bbh++;delay(60);if(bbh==24)bbh=0;display_bb();if(k1==7){k1=0;display();}}}if(key4==0) // 时间/闹钟减少设置{while(!key4){if(k1==1){sec--; // 秒加1delay(60);if(sec==0)sec=60;display();}if(k1==2){min--;delay(60);if(min==0)min=60;display();}if(k1==3){hour--;delay(60);if(hour==0)hour=24;display();}if(k1==4){bbs--; // 秒减1delay(60);if(bbs==0)bbs=60;display_bb();if(k1==5){bbm--;delay(60);if(bbm==0)bbm=60;display_bb();}if(k1==6){bbh--;delay(60);if(bbh==0)bbh=24;display_bb();}if(k1==7){k1=0;display();}}}}}if(kk==2){kk=0;k1=0;TR0=1;}}}。

基于51单片机电子闹钟的设计

基于51单片机电子闹钟的设计

基于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软件设计......................................... 错误!未定义书签。

C51单片机实现电子闹钟

C51单片机实现电子闹钟
先进行系统得整体规划确定整个系统得功能,然后按照每个功能得具体要求,进行各个模块得实物设计并逐个调试,待全部通过后,进行整个系统得联调,最终实现一个完整得系统。
整个系统得设计步骤如下:
在单片机最小系统得基础上,完成按键电路与复位电路得设计.
完成显示电路、数字按键、单片机时钟电路。
Ⅰ硬件设计
系统硬件得设计可以根据系统得各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能得调度。
数码管主要包括位选与段选信号线。位选就是用来选通数码管得,只有位选信号有效该数码管才会亮并显示要现实得数字;段选就是选择数码管7段得那一笔亮,从而显示不同得数字。
本设计中单片机P0口输出段选数据,P3口输出位选数据.
数码管与单片机相连得电路如下图所示:
电路中使用了芯片74ls245,该芯片用来驱动LED。其片选引脚要接地,使其一致为低电平,芯片一直可以工作。
1)输入数字按键得功能.
保证数字得输入。
2)复位电路得功能.
所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);
3)显示电路得功能。
当输入数字时显示24小时时间功能。
4)闹铃功能
设置闹铃得时间后、能按设置好得时间准时闹铃.
二、系统方案得设计要求
根据以上各模块并结合显示屏得功能及元器件材料得情况,决定采用AT89C51为内核显示设计方案.
本题画出得虽然就是独立按键,但就是内部驱动依然就是行列式按键得驱动,这里只就是为了画图方便。
(4)复位电路
当按下复位键时单片机进入复位状态,可以进行时间得设置等。
电路图如下所示:
四、系统软件部分得设计
本设计得软件系统用来配合硬件电路实现特定得功能。程序主要包含键盘扫描模块、时间处理模块、与数码管显示程序3大部分.

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计

基于51单片机的电子时钟设计
电子时钟是一种使用电子元件和计算机技术制造的时计,它可以显示年、月、日、时、分、秒等时间信息,并且具有显示精确、功能齐全、操
作简便等特点。

本文将基于51单片机设计一个电子时钟。

一、硬件设计:
1.时钟模块:我们可以使用DS1302时钟模块作为实时时钟芯片,它
可以提供精确的时间信息,并且可以通过单片机与之进行通信。

2.显示模块:我们可以使用共阳数码管进行时间的显示,将时钟设计
成6位7段显示器。

3.按键模块:我们可以使用按键作为输入方式,通过按键调整时间信息。

二、软件设计:
1.初始化:首先,我们需要初始化时钟模块和显示模块,使它们正常
工作。

同时,设置时钟的初始时间为系统当前时间。

2.获取时间:通过与时钟模块的通信,获取当前的时间信息,包括年、月、日、时、分、秒等。

3.显示时间:将获取到的时间信息通过显示模块显示出来,分别显示
在6个数码管上。

4.时间调整:通过按键模块的输入,判断用户是否需要调整时间。


果需要,可以通过按键的不同组合来调整时、分、秒等时间信息。

5.刷新显示:通过不断更新显示模块的输入信号来实现时钟的流动性,保持秒针不断运动的效果。

6.时间保存:为了保证时钟断电后依然能够保持时间,我们需要将时
钟模块获取到的时间信息保存在特定的EEPROM中。

7.闹钟功能:可以通过按键设置闹钟,当到达闹钟时间时,会通过蜂
鸣器发出响声。

以上就是基于51单片机的电子时钟设计方案。

通过对硬件和软件的
综合设计,我们可以实现一个功能齐全的电子时钟。

基于51单片机的定时闹钟设计

基于51单片机的定时闹钟设计

目录1 系统设计 (1)1.1 实验箱主要组件 (1)1.2 系统框图及说明 (3)1.3 系统软件设计 (3)1.3.1 C51的编程基础 (3)1.3.2 系统软件设图 (4)1.3.3 部分复杂函数流程图 (5)2 系统仿真 (6)2.1 仿真软件 (6)2.2 仿真结果 (7)3 结论 (7)3.1 本课程设计的主要特点及贡献 (7)3.2 改善建议 (7)3.3 自我体会 (8)参考文献 (9)附录 (10)1 单片机定时闹钟程序源代码 (10)2 仿真软件Proteus ISIS使用方法简单介绍 (20)3.1 本课程设计的主要特点及贡献 (7)1 系统设计1.1 实验箱主要组件本课程设计使用的是河海大学常州校区刘玉宏老师设计的单片机课程实验箱中的“基础型实验”部分。

该部分主要由单片机最小系统,LED 数码管显示部分,外部中断控制部分,独立式与行列式键盘按键输入部分,串行口通信部分,蜂鸣器与继电器等部分组成。

详细电路图见图1。

单片机最小系统部分由内含FLASH ROM 的STC89C52RC ,EA 接高电平;各并行口都234567891R910k*812345678161514131211109U10SW-DIP81312U16F 74071110U16E 740798U16D 740756U16C740734U16B 740712U16A 7407D8+5R20100D7+5R1810012J22SIP162738495J1DB9-PINKEY2R 15100+5D6SW5RESETD51N4148MR 1VCC 2GND 3PFI4PFO5WDI 6RST 7WDO 8U9IMP813L +5SCL 6SDA5A12NC 1WP 7VCC 8NC 3GND4U824CXX 30p30pX T 211MC1+1V+2C1-3C2+4C2-5V-6T2OUT 7R2IN8R2OUT9T2IN 10T1IN 11R1OUT 12R1IN 13T1OUT 14GND 15VCC 16U7MAX232E510uE310uE410uE210uR13100+5D11R11100+5D10D9+5R10100456U3B 7400C410NSW9int0C347UR71KTRIG2Q3R4C V o l t5THR6DIS7V C C8G N D1U4NE555KEY1123U3A 7400C210NFC11UFR6150KR5270KTRIG2Q3R4C V o l t5THR 6DIS7V C C8G N D1U2NE555R41KR2100+5S1Q19013234567891R110k*8EA/VP 31X119X218RESET 9RD 17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P 30TXD 11RXD 10U18031D1SW123451R3150*8SW2D2SW3D3D4SW4TRIG2Q3R4C V o l t5THR6DIS7V C C8G N D1U5NE555R81KC547USW10int1C610NRO 1RE 2DE 3DI4GND5A 6B 7VCC 8U6RS485VCC +5L2L3L4L6L5L7L8L18910U3C 7400234567891R12150*8+5RXD 23248550ms 50ms f=1hz clk-offclk-on232OUT 232INX2X1+5485A485B RXDX2X1232IN>232OUT<TXDDOGSDASCL EN485DOG SDA SCL RESETT0T1INT0INT1RESETGNDVCCGND VCCGND VCC GND TTLOUT>TTLIN<DB9RX DB9TX+5T0+5+5T1+5P10P11P12P13P10P11P12P13+5+5INT0INT1EN485TXD P20P21P22P23P24P25P26P27P20P21P22P23P24P25P26P27图1 实验箱“基础型实验”部分电路图加了10K的上拉电阻;晶振为11.0592M。

基于51单片机的智能数字闹钟设计与实现

基于51单片机的智能数字闹钟设计与实现

基于51单片机的智能数字闹钟设计与实现摘要单片机自20世纪70年代问世以来,因为单片机极高的性能价格比,越发受到了人们的重视和关注,应用领域广泛、发展很快.而51单片机是各单片机中最为典型的,也是最具有代表性的一种。

本设计是一款基于AT89C51的智能数字钟,该数字钟表由主控模块、按键模块、定时模块、温度检测模块和显示模块构成.主控模块由主控芯片AT89C51、晶振电路和复位电路构成;定时模块采用时钟芯片DS1302实现精确定时;用温度传感器DS18B20作为温度采集源,检测当前温度;用液晶显示器1602显示年、月、日、时间及温度.通过这种方法的实现,使智能数字闹钟的电路简单,性能可靠,实时性好,时间和温度精度高,操作简单。

在Proteus和Keil µvision4的环境下,完成了电路原理图的绘制以及程序的编译后,用焊接的方法在电路板上焊接实物,将Keil µvision4中生成的。

hex文件的程序烧到电路中,检测并调试电路,实现智能数字闹钟的功能。

该智能数字闹钟可以应用于人们的生活和工作中,也可通过改装,将智能数字闹钟的性能提高,还可以增加新的功能,让智能数字闹钟显示更多方面的内容与功能,给人们的生活和工作带来更多的方便。

关键词:单片机,时钟芯片,温度传感器,液晶显示器,智能数字钟AT89S52 based Digital Clock Design of IntelligentAbstractAbstractSCM since the advent of the 1970s , because of high performance and low cost single chip , has been more and more people's attention and concern ,widely used in the field ,has developed rapidly。

51单片机课程设计--闹钟程序设计

51单片机课程设计--闹钟程序设计

沈阳航空航天大学课程设计报告课程设计名称:微机系统综合课程设计课程设计题目:闹钟程序设计院(系):计算机学院专业: 计算机科学与技术班级:学号:姓名:指导教师:说明:结论(优秀、良好、中等、及格、不及格)作为相关教环节考核必要依据;格式不符合要求;数据不实,不予通过。

报告和电子数据必须作为实验现象重复的关键依据。

学术诚信声明本人声明:所呈交的报告(含电子版及数据文件)是我个人在导师指导下独立进行设计工作及取得的研究结果。

尽我所知,除了文中特别加以标注或致谢中所罗列的内容以外,报告中不包含其他人己经发表或撰写过的研究结果,也不包含其它教育机构使用过的材料。

与我一同工作的同学对本研究所做的任何贡献均己在报告中做了明确的说明并表示了谢意。

报告资料及实验数据若有不实之处,本人愿意接受本教学环节“不及格”和“重修或重做”的评分结论并承担相关一切后果。

本人签名: 日期:年月日沈阳航空航天大学课程设计任务书目录学术诚信声明 (I)1 总体设计方案 (1)1.1课程设计的内容和要求 (1)1.2课程设计原理 (1)1.3课程设计思路 (1)2 详细设计方案 (2)2.1实现方法 (2)2.2模块设计 (2)2.2.1 主程序流程图 (2)2.2.2中断程序流程图 (3)2.2.2.1基本显示模块设计 (3)2.2.2.2时间设定模块设计 (3)2.2.2.3闹铃功能的实现 (4)3 调试及结果分析 (5)3.1调试步骤及方法 (5)3.2实验结果 (5)参考文献 (6)附录(源程序) (7)沈阳航空航天大学课程设计报告1 总体设计方案1.1 课程设计的内容和要求本设计是定时闹钟的设计,由MCS51单片机芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。

定时闹钟设计采用单片机来完成,用数码管显示“时”,“分”,“秒”。

使用MCS51系列单片机,单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现在的时间、闹钟定时的时间,可以设置两个闹钟,若时间到则用发光二极管显示。

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

【摘要】众所周知闹钟对我们日常生活来讲是一个很重要的工具,因而我利用单片机AT89C52制作一个简单的倒计时定时闹钟。

本设计利用单片机的内部中断资源和按键的基本使用方法构思而成。

利用按键设定需要定时的时间长短,利用中断设置20次中断定义一秒,然后利用程序设计时间倒数。

并使用4个8段数码管显示分和秒,并且定时结束后使用电铃警示。

硬件系统利用proteus仿真,在仿真中就能观察到系统的实际运行情况。

【关键字】单片机AT89C51 倒计时定时中断 protues仿真一、设计项目简介基于51单片机进行简单闹钟设计。

四位数码管从左往右分别代表十分位,分位,十秒位,秒位。

按动对应按键能增加各个位的数值,按动开始计时按键能开始倒计时。

二、硬件设计1.总体设计思路控制芯片使用比较熟悉的AT89C52单片机芯片,数码管使用四位相连的8段共阴数码管,并且使用74HC573锁存器控制数码管的显示。

在定时过程使用s1控制十分位,s2控制分位,s3控制十秒位,s4控制秒位,s5开始倒计时。

基本思路设计如下:2. AT89C52芯片介绍80C52是INTEL 公司MCS-51系列单片机中基本的产品,它采用INTEL 公司可靠的CHMOS 工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS 产品。

它结合了HMOS 的高速和高密度技术及CHMOS 的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于80C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。

80C52内置8位中央处理单元、256字节内部数据存储器RAM 、8k 片内程序存储器(ROM )32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡控制按键AT89C52控制芯片74HC573锁存器段位数码管电路。

此外,80C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。

在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。

掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

80C52有PDIP(40pin)和PLCC(44pin)两种封装形式。

8051片内有 ROM,无须外接外存储器和373,更能体现“单片”的简练。

3.74HC573芯片介绍74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。

当使能为低时,输出将锁存在已建立的数据电平上。

输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。

这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。

特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。

数据锁存当输入的数据消失时,在芯片的输出端,数据仍然保持;这个概念在并行数据扩展中经常使用到。

锁存器接单片机芯片如下:4.单片机内部中断原理内部中断是指单片机内部的功能模块产生中断信号,只要是单片机内部在CPU外围能独立工作的功能模块都会提供中断功能,常见的内部中断类型有时钟Timer、串口UART、模数转换ADC等。

内部中断的工作流程和外部中断没太多区别,只是中断请求信号是在单片机内部进行传输,中断信号不是管脚上的电平状态,而是一个寄存器里面的相应标志位,通常当某个内部中断产生中断请求时就会将相应标志位置为1,CPU响应中断时将这个标志位清0。

5.设计原理图三、软件设计C语言源程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit dula=P2^6; //段码和位码设置。

sbit wela=P2^7;sbit s1=P3^0; //设置按键,s1代表十分位,s2分位,s3十秒位,s4秒位。

sbit s2=P3^1;sbit s3=P3^2;sbit s4=P3^3;sbit s5=P3^4;sbit beep=P2^3; //设置电铃uchar code seg_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 共阴极8位段码表,带点和不带点。

uchar code seg_table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};void delay(uint t); //各个子函数的申明。

int display1();void display2(uint k);void init_t0();uint NUM;uint SEC;uint S;uint M;uint k1;uint k2;uint k3;uint k4;void main(){NUM=0,SEC=0 ,S=0,M=0,k1=0,k2=0,k3=0,k4=0,wela=0,dula=0,wela=1,P1=0x00,wela=0,dula=1,P1=seg_table[NUM],dula=0;while(1){display1(); //运行开始设置时间函数if(s5==0){goto start; //当s5按键按下,开始倒计时。

}}start: init_t0();while(1){ display2(M); //显示函数}}int display1()//按动按键开始设置时间{if(s1==0){delay(150);if(s1==0) //设置十分位{k1++;if(k1==6){ k1=0;}wela=1;P1=0xf7;wela=0;dula=1;P1=seg_table[k1];dula=0;delay(1);}}if(s2==0) //设置分位{delay(150);if(s2==0){k2++;if(k2==10){k2=0;}wela=1;P1=0xfb;wela=0;dula=1;P1=seg_table[k2];dula=0;delay(1);}}if(s3==0) //设置十秒位{delay(150);if(s3==0){k3++;if(k3==6){k3=0;}wela=1;P1=0xfd;wela=0;dula=1;P1=seg_table[k3];dula=0;delay(1);}}if(s4==0) //设置秒位{delay(150);if(s4==0){k4++;if(k4==10){k4=0;}wela=1;P1=0xfe;wela=0;dula=1;P1=seg_table[k4];dula=0;delay(1);}}S=k1*600+k2*60+k3*10+k4;return S; //返回全局变量}void delay(uint t) //延时函数{uint x,y;for(x=t;x>0;x--){for(y=120;y>0;y--){}}}void display2(uint k) //倒计时时间显示函数{uint miao,shimiao,fen,shifen;shifen=k/600;fen=k%600/60;shimiao=k%60/10;miao=k/10;wela=1;P1=0xfe;wela=0;dula=1;P1=seg_table[miao];dula=0;delay(1);wela=1;P1=0xf7;wela=0;dula=1;P1=seg_table[shifen];dula=0;delay(1);wela=1;P1=0xfb;wela=0;dula=1;P1=seg_table1[fen];dula=0;delay(1);wela=1;P1=0xfd;wela=0;dula=1;P1=seg_table[shimiao];dula=0;delay(1);}void init_t0() //内部中断T0初始化{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;}void t0() interrupt 1 //中断函数,使用方式一中断{TH0=(65536-50000)/256;TL0=(65536-50000)%256;NUM++;if(NUM==20){NUM=0;SEC++;M=S-SEC;if(M==0){TR0=0;beep=0;delay(1000);beep=1;}}}四、调试1、调试方法本设计使用Proteus软件绘制电路图,装载keil软件编写编译完成的源程序生成的hex文件,进行仿真测试检查系统运行情况,观察实验现象是否与理论一致。

2、调试步骤打开已经画好的Proteus DSN文件,双击图中的AT89S52芯片,就弹出一个窗口,在program file项中通过路径选择在keil中生成hex 文件,双击选中后确定,这样仿真图中的AT89S52芯片就已经读取了本设计中的hex文件。

然后进行仿真。

3、调试问题在调试过程中发现定时完成以后,按动开始定时按键s5发现数码管显示不正常,秒位显示不正常。

但功能使用正常,初步判断是延时出现问题,通过改变数码管显示延迟的长久,问题仍未解决。

调试图:五、心得体会本设计的数字秒表是由AT89S52单片机、共阴极数码管和控制按键等器件组成的,设有四位计时显示。

系统设计合理,线路简单,性能稳定、程序简单。

给出了较为详尽的电路设计方法。

本系统以单片机为核心,但仅单片机方面的知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软硬件结合,以作完善。

单片机应用的越来越广泛,也要求了我们对单片机知识要有更深的体会,更好的掌握单片机的相关应用。

不仅掌握理论知识,还要有相应的动手能力。

这次的课程设计便是对我们平时学习的一次很好的检测,同时也是一种复习与巩固。

通过这次的设计,我发现对单片机的认识仅仅停留在课本上的知识还是远远不够的。

那只是帮助我们认识单片机,更多的知识还要靠我们自己去发现在不断地尝试设计和实验中领悟。

这次设计在实际生活中可能切实的用处不是很大,但对我们来说却是非常有用的,不管是学习知识还是对以后的就业工作都会有很大的价值。

【参考文献】百度百科(74HC573,AT89C52管脚资料)高显生《我和单片机的21天之旅》视频资料李全利.《单片机原理及接口技术(第2版)》。

北京:高等教育出版社。

相关文档
最新文档