用数码管设计的可调式电子钟概要
- 格式:doc
- 大小:157.00 KB
- 文档页数:19
中国………..电子技术课程设计总结报告题目:数字电子钟学生姓名:系别:专业年级:指导教师:年月日一、设计任务与要求1、用单片机设计一个数字电子钟,采用LED数码管来显示时间。
2、显示格式为:XX:XX:XX,即:时:分:秒。
3、时间采用24小时制显示,4、设置一个按键用于时间显示方式的切换,能进行时间的调整,可暂停时间的变动。
..二、方案设计与论证图1 系统整体框图1、单片机芯片选择方案方案一:AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器。
主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。
方案二:AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes 的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM)。
主要性能有:兼容MCS51指令系统、32个双向I/O口、256x8bit内部RAM、3个16位可编程定时/计数器中断、时钟频率0-24MHz、2个串行中断、可编程UART串行通道、2个外部中断源、6个中断源、2个读写中断口线、3级加密位、低功耗空闲和掉电模式、软件设置睡眠和唤醒功能。
从单片机芯片主要性能角度出发,本数字电子钟单片机芯片选择设计采用方案一。
2、数码管显示选择方案方案一:静态显示。
静态显示,即当显示器显示某一字符时,相应的发光二极管恒定导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小电流能获得较高的亮度,且字符不闪烁。
但因当所需显示的位数较多时,静态显示所需的I/O口数较大,造成资源的浪费。
基于单片机数码管的电子钟(郭天祥系列单片机)功能说明(D本电子钟可以显示当前时刻、年月日和闹钟时刻。
不同时间的显示可以用key4来切换。
(2)、独立键盘key—key4(左到右)调节不同功能,7段数码管显示。
(3)整点提示功能:当时间为整点时,蜂鸣器会滴滴滴响,响20秒;(4)闹铃功能:本程序有闹铃功能,当定时时间到时,闹铃会滴滴滴报警,报警30秒;(5)附加功能:当在闹铃和整点时,8个发光二极管会闪亮;(6)时、分、秒之间和年、月、日之间也是用分割。
2、键盘控制(1)key1-键移动调整单位,每按一次移动一个单位,可调整时分秒、年月日和闹钟时间。
比如:在显示时分秒时,按下keyl 键, 可通过key2和key3对'秒'加减;再按一下keyl,可对"分'加减;再按一下keyl,可对"时'加减;再按keyl,时间开始走动(2)key2-加 1 ; key3-减 1;(3)key4-键切换时分秒、年月日和闹铃时间的显示。
比如:当前为时分秒,按一下key4,则显示年月;再按一下,则显示闹铃时间;再按一下,则显示时分秒时间。
附录:C语言程序〃设计项目:带闹铃的电子钟//功能:keyV键:开始/调时分秒/调年月日/调定时// key2 ■键:加 1// key3-键:减 1// key4-键:切换页面#in clude<reg52.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2A6;sbit wela=P2A7;sbit key1=P3A4;sbit key2=P3A5;sbit key3=P3A6;sbit key4=P3A7;sbit bear=P2A3;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};uchar sed ,hour1 ,year1 ,mon1 ,day1,tempi ,temp2,sec2,min2,hour2; void keyscan();void display(uchar hour,uchar min,uchar sec);void delay(uint z){uint x,y;for(x=0;x<z;x++)for(y=0;y<110;y++);}void init(){TMOD=0X02;TH0=6;TL0=6;EA=1;ET0=1;TR0=1;hour1=00;mini =00;sed =00;year1=12;mon1=03;day1=10;void display(uchar hour,uchar min,uchar sec) { uchar s1 ,s2,m15m2,h1 ,h2;s2=sec/10;s1=sec%10;m2=min/10;m1=min%10;h2=hour/10;h1=hour%10;dula=1;P0=table[h2];dula=0;P0=0XFF;wela=1;P0=0XFE;delay(1);dula=1;P0=table[h1]+0x80;dula=0;P0=0XFF;wela=1;P0=0XFd;delay(1);dula=1;P0=table[m2];dula=0;P0=0XFF;wela=1;P0=0XFb;delay(1);dula=1;P0=table[m1]+0x80;dula=0;P0=0XFF;wela=1;P0=0XF7;delay(1);dula=1;P0=table[s2];dula=0;PO=OXFf;wela=1;P0=0Xef;delay(1);dula=1; PO=table[s1J; dula=0; P0=0XFF; wela=1; PO=OXdf; delay(1);}void keyscan()if(key1 ==0)delay(10); if(key1 ==0)//TR0=0; tempi++; if(temp1 ==4){tempi=;TR0=1;while(!key1)switch(temp2){case 0:display(hour1,sec1 );break; case1:display(year1 ,mon1 ,day1 );break; case2:display(hour2,min2,sec2);break;if(key2==0){delay(10); if(key2==0){ if(temp2==0) { TR0=0;switch(templ){case 1:sed ++;if(sec1 ==60)sec1 =O;break;case 2:min1 ++;if(min1 ==60)min1 =O;break;case 3:hour1 ++;if(hour1 ==24)hour1 =O;break;while(!key2) display(hour1 ,min1 ,sec1);if(temp2==1) { TR0=1;switch(templ)case 1:day1 ++;if(day1==31 )day1=1 ;break; case 2:mon1 ++;if(mon1==13)mon1 =1 ;break;case 3:year1 ++;if(year1 ==100)year1 =0;break; } while(!key2)display(year1 ,mon1 ,day1);if(temp2==2) { TR0=1;switch(templ)case 1:sec2++;if(sec2==60)sec2=0;break;case 2:min2++;if(min2==60)min2=0;break;case 3:hour2++;if(hour2==24)hour2=0;break; }while(!key2)display(hour2,min2,sec2);if(key3==0){delay(10); if(key3==0){if(temp2==0){ TR0=0;switch(templ){case 1:if(sec1 ==0)sec1 =60;sec1 ~;break;case 2:if(min1 ==0)min1 =60;min1 -;break;case 3:if(hour1 ==0)hour1 =24;hour1 -;break; } while(!key3)display(hour1 ,min1 ,sec1);if(temp2==1){ TR0=1;switch(templ){case 1:if(day1==1 )day1=31 ;day1-;break;case 2:if(mon1==1 )mon1 =13;mon1 ・-;break;case 3:if(year1 ==0)year1 =100;year1 -;break; } while(!key3) display(year1 ,mon1,day1);}if(temp2==2){ TR0=1;switch(templ){case 1:if(sec2==0)sec2=60;sec2-;break;case 2:if(min2==0)min2=60;min2-;break;case 3:if(hour2==0)hour2=24;hour2-;break; } while(!key3)display(hour2,mi n2,sec2);if(key4==0)delay(10); if(key4==O)tempi =0;temp2++; if(temp2==3)temp2=0;while(!key4) switch(temp2){case 0:display(hour1 ,min1 ,sec1);break; case1:display(year1 ,mon1 ,day1 );break;case 2:display(hour2,min2,sec2);break;switch(temp2){case 0:display(hour1 ,min1 ,sec1 );break;case 1:display(year1 ,mon1 ,day1 );break; case2:display(hour2,min2,sec2);break;void alarm(){uint i;if((hour1==hour2&&min1==min2&&(sec1 >=sec2&&sec1 <sec2+30))||(min1==0 &&sec"l <20)) { for(i=0;i<20;i++){bear=~bear;P1=~P1;switch(temp2){case 0:display(hour1,mi,sec1 );break;case 1:display(year1 ,mon1 ,day1);break;case 2:display(hour2,min2,sec2);break;}delay(30);}bear=1;P1=Oxff;void main(){init();while(1){keyscan();{if (key 1 ==0 || key2==0 || key3==0 || key4==O )Bear=0}alarm();void time1()interrupt 1{uint m;m++;if(m==3686){m=0;sec1++;if(sec1 ==60){sec1=0;min1++;if(min1==60){min1=0; hour1++; if(hour1==24)hour1=0;day1++; if(day1==31) {day1=1;mon 1++;if(mon1==13){mon1 =1; year1++; if(year1==100) year1=0;。
2012~ 2013 学年第2 学期《单片机原理及应用》课程设计报告题目:基于数码管的电子时钟设计专业:自动化班级:电气工程系2013年5月1日1、任务书摘要随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
本设计主要基于单片机技术原理,设计制作出一个电子时钟系统。
6位LED 数码管显示,使用按键扫描进行时间校准。
这种实现方法的优点是电路简单,性能可靠,实时性好,时间精确,操作简单,编程容易。
最后将设计的时钟系统在Protues仿真软件上进行仿真验证所设计的时钟系统稳定可靠。
关键词: AT89C51单片机;电子时钟;数码管;按键扫描基于数码管的电子时钟设计目录摘要........................................................................................ 错误!未定义书签。
第一章绪论................................................................................ 错误!未定义书签。
1.1 单片机的应用和特点............................................................ 错误!未定义书签。
1.2 单片机的发展趋势......................................................... 错误!未定义书签。
1.3 电子时钟简介及其基本特点......................................... 错误!未定义书签。
第二章控制系统的硬件设计...................................................... 错误!未定义书签。
多功能数字式电子时钟设计说明:本设计内容是利用51单片机最小系统设计一个电子时钟,时钟采用24小时制,时、分、秒各采用2个共阳极LED数码管显示。
具体实现的的功能如下:(1)能够正常显示时钟。
六个LED数码管依次显示时钟的时、分、秒位。
(2)可以完成键盘采样,实现键值判断;(3)实现简单的键盘功能,例如运行键、暂停键处理。
(4)每当整点时,所有LED闪烁显示,显示次数等于整点数。
若为0点钟,则显示正常;(5)实现键盘功能,包括运行键、暂停键、上升键、下降键、切换健、校准健处理。
通过键盘来实现时钟的暂停、运行、调时等功能。
该电子时钟主要由硬件和软件两部分组成,其中硬件部分主要包括:六个七段LED显示器,用来显示时钟的时、分、秒、位。
集成电路74LS240(反相器)和PNP型三极管9012,用于增加驱动电流的目的.还有AT89S51单片机以及RC组成的振荡电路。
软件部分则是通过软件编程利用51单片机来控制时钟,使其正常走动及按照我们的设计想法实现上述的:暂停、运行、调时及校准等功能。
设计完成后的电子钟可实现以下功能:当通电后,时钟开始正常走动。
当按下键后,时钟暂停运行、再按键时钟开始正常走动。
按下键(六)设计思路1、显示电路51单片机与七段LED显示器的接口为动态接口,需使用2组寄存器进行控制。
其中,一组寄存器控制几个显示器的七段发光二极管,该寄存器称为段选寄存器;另一组寄存器控制这几个七段显示器的公共端,控制这几个显示器逐个循环点亮。
适当的选择循环速度,利用人眼的“视觉暂留”效应,使其看上去好像这几个显示器同时在显示一样,该寄存器称为位选寄存器。
时钟的时、分、秒各用两个共阳极的七段LED显示器来显示,因此共需外接6个七段显示器。
所有显示器相同的段并接在一起,由P1口控制。
每个显示器的公共端分别由P3口的某一位控制。
集成电路74LS240(反相器)只起到增加驱动电流的目的,PNP型三极管9012也是为了增加驱动能力。
LED数码管设计的可调式电子钟说明说可调式电子钟的设计理念是提供用户多样化的时间显示和闹钟设定选项,以满足用户不同的需求和喜好。
以下是对设计的详细说明:1.数码管显示:LED数码管采用7段共阳极连接方式,每个数码管由7个LED灯组成,通过控制各个LED灯的点亮与否,可以显示0-9的数字。
数码管的显示仿真效果要清晰、鲜明,确保用户可以轻松辨认时间。
2.时间调节功能:可调式电子钟具备时间调节的功能,用户可以通过按钮或旋钮调整时间。
其中旋钮可以实现小时和分钟的调节,而按钮可以实现小时和分钟的增加或减少。
设计时需考虑人机交互的便利性,确保时间调节操作简单明了。
3.闹钟设定:可调式电子钟还具备闹钟功能,用户可以设定一个或多个闹钟时间点。
用户可以通过按钮或旋钮设置闹钟的小时和分钟,还可以设定是否重复响铃。
闹铃可以通过声音、震动或LED灯闪烁等方式提醒用户。
为了避免误操作,设计时需要考虑设置闹钟的过程,确保用户能够轻松设置闹钟。
4.电源供应:可调式电子钟可采用外部电源或内置电池供电。
设计时需考虑到电源的稳定性和可靠性,确保时钟长时间准确运行。
当外部电源断开时,内置电池可以提供备用电源,防止时间设置的丢失。
5.背光功能:可调式电子钟还可以考虑添加背光功能,在光线不好的情况下,用户可以通过按下按钮或通过传感器自动点亮背光。
背光的亮度可以根据用户偏好进行调节。
6.美观设计:除了功能性,可调式电子钟的外观设计也很重要。
设计时可以考虑采用简约设计风格,以及时尚的外壳材料。
同时,数字显示的对齐和间距,以及按钮和旋钮的位置、大小都需要细致推敲,确保整体外观美观大方。
总之,可调式电子钟的设计需要满足用户对时间显示和闹钟功能的需求。
通过合理的控制功能,人性化的设计以及简洁好看的外观,可为用户提供一台方便、易用的电子钟。
《综合设计实训I》可调式数字时钟姓名:学号:班级:实训地点:指导教师:通信与电子学院编制年月日一、设计要求数字时钟是采用数字电路实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人,家庭,车站,码头,办公室等公共场所,成为人们日常生活中的必需品。
1,、设计时可以利用单片机内部定时器,也可以利用外部实时时钟芯片。
(I/O,I2C总线)2、有年,月,日,时,分,秒功能,而且要能够校正前面五项。
3、显示时可以用8位数码管,也可以用LCD液晶屏。
(年只需显示后2位)4、可选功能:闹钟功能。
二、设计方案1、芯片分析AT89C51引脚图管脚说明:VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写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门电流。
《单片机原理及应用》课程设计说明书题目LED数码管显示电子钟设计系(部)专业(班级)姓名学号指导教师起止日期课程设计任务书系(部):专业:目录目录 (3)一、摘要 (4)二、设计内容 (4)2.1、任务要求 (4)2.2、设计程序方案 (4)2.3 设计电路仿真图 (6)三、心得体会 (9)四、参考文献 (9)一、摘要单片机全称为单片机微型计算机(Single Chip Microsoftcomputer)。
从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。
单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。
单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。
在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法,典型的时钟芯片有:DS1302,DS12887,X1203等都可以满足高精度的要求。
二、设计内容2.1、任务要求本次设计时钟电路,使用了A TC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的年、月、日、时、分、秒,还有设定闹钟,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求。
单片机应用课程设计说明书用1602LCD设计的可调式电子钟专业自动化学生姓名班级自动化142学号 14100指导教师蒋完成日期 20年1 月23 日目录1 概述 (3)2 课题研究背景与意义 (3)2.1 课题研究背景 (3)2.2 课题研究意义 (3)3 系统方案设计与主要设计工作 (3)3.1 设计任务 (3)3.2 功能要求说明 (4)4设计课题总体方案 (4)4.1硬件设计方案 (5)4.2系统软件设计 (7)5. 软件仿真及实物设计调试 (9)5.1PROTUES仿真软件介绍 (9)5.2仿真运行结果说明 (10)5.3实物设计结果与调试 (11)6课程设计实验总结 (11)参考文献 (13)附录 (14)附录1:程序清单 (14)附录2:系统电路原理图 (21)附录3:元器件清单 (22)用1602LCD设计电子钟1 概述数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
2 课题研究背景与意义2.1 课题研究背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
摘要电子式秒表从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
本设计中数字秒表的最大计时是59秒,最后计数结果用数码管显示,需要实现启动计时、暂停计时、继续计时等功能。
采用两片74LS161芯片级联构成60进制计数器来实现秒表的计数功能。
利用555定时器构成的多谐振荡器为电路提供脉冲源以驱动电路工作。
关键字:数字秒表;振荡器;74LS161;数码管ABSTRACTElectronic stopwatch principle is a typical digital circuits, including combinational logic circuits and sequential circuits. This design, digital stopwatch timing is 59 seconds, the final count results with digital display, and need to start the timer, pause time, continue to timing and other functions. Two 74LS161 chips cascaded 60 binary counter stopwatch count. Multivibrator circuit constituted by the 555 timer pulse source to drive the circuit.Keywords:Digital stopwatch; oscillator; 74LS161; digital tube目录摘要 (I)目录 ............................................................................................................................. I I 1 设计要求及方案选择.. (1)1.1 设计要求 (1)1.2 方案选择 (1)2 理论设计与分析 (2)2.1 电子时钟电路的分析及设计 (2)2.2 电路主要芯片功能 (4)3 电路设计 (5)3.1 整体电路图 (6)3.2 PCB图 (7)4 系统测试 (8)4.1 调试所用的基本仪器 (8)4.2 测试结果 (8)4.3 测试结果分析 (8)5 设计中的收获与体会 (10)参考文献 (11)1 设计要求及方案选择1.1 设计要求(1)设计秒计时(六十进制计数)电路。
目录一、设计的目标和实现的主要功能 (2)1.设计内容 (2)2.显示内容 (2)3.按键功能 (2)4.设置提示显示要求: (2)5.显示时间要求: (2)二、硬件电路设计及描述 (3)1.51单片机最小系统 (3)2.蜂鸣器模块 (4)3.LED显示电路 (4)4.按键模块 (5)三、软件设计流程及描述 (6)1.主程序 (6)2.中断程序 (7)3.复位程序 (8)4.闹钟程序 (9)5.键盘程序 (10)6.显示程序 (11)四、调试结果 (12)五、课程设计总结 (12)1.问题难点 (12)2.能力提高 (12)六、参考文献 (13)七、附录 (14)1.源程序代码 (14)2.原理图 (26)3.PCB图 (27)一、设计的目标和实现的主要功能1.设计内容1)显示内容:时-分-秒2)具有闹铃设定功能、时间调整功能3)具有按键设置功能2.显示内容显示时间:用六位7段数码管闹铃提示:用2个发光二极管设置提示:用2个发光二极管3.按键功能P1.0——功能设置键;P1.1——显示区切换键;P1.2——“+”键;P1.3——“-”键。
4.设置提示显示要求:1)正常显示状态,2个发光二极管全灭;2)时间调整状态,P1.7亮;3)闹铃设定状态,P1.7和P1.6亮。
5.显示时间要求:1)显示时-分-秒,分三个显示区。
功能设置键K1是一个多功能键:按第一次,进入时间调整状态按第二次,进入闹铃设定状态按第三次,退出设置状态,时钟正常显示。
备注:其他键在K1退出设置状态时无效。
显示区切换键K2:在设置状态,用于切换不同的显示区,每按一次,将切换一次。
“+”键K3:在设置状态,用于对相应的显示区数字进行累加,每按一次,数字加1。
“-”键K4:在设置状态,用于对相应的显示区数字进行自减,每按一次,数字减1。
二、硬件电路设计及描述1.51单片机最小系统图2-1单片机最小系统51单片机+晶振电路+复位电路,复位电路使用按键复位方式。
单片机原理及应用课程设计题目:基于T89C51设计可调式的电子钟学院:信息工程学院专业:计算机科学与技术班级:专升本班姓名:张永明学号: 2013052109指导老师:杜俊1概述 (4)1.1课题研究的目的和意义 (4)2 课题方案论证 (4)2.1系统总体设计要求 (4)2.2系统模块结构论证 (5)3 系统硬件设计 (5)3.2最小单片机系统 (6)3.3按键电路 (7)3.4显示电路 (8)4软件设计 (9)4.1 主程序 (9)5软硬件联调及调试结果 (18)5.1调试步骤 (18)结束语 (18)参考文献 (18)附录 (19)附录3 proteus仿真图 (19)基于T89C51设计可调式的电子钟摘要:数字电子时钟电路设计系统,以AT89C51单片机为控制核心,由开关显示、LED 共阴极数码管和LED灯显示等功能模块组成。
基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。
本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。
本系统不仅成功的实现了要求的基本功能,而且有一定的创新功能。
关键字:单片机;AT89C51;数字钟1概述1.1课题研究的目的和意义此次设计是单片机内部的定时/计数器来实现电子时钟的方法以及借助键盘直接控制整时的调整,本设计根据AT89C51单片机系统扩展的基本原理和方法,由单片机AT89S51芯片,LED数码管和键盘为核心,辅以必要的电路,构成了一个单片机电子时钟。
一块单片机芯片就是一台计算机,由于单片机以其集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点使它应用于智能仪器仪表、机电一体化、实时程控、人类生活中。
除此之外还广泛应用办公自动化领域、商业营销领域、汽车及通信系统、计算机外部设备等各领域中,并且单片机已成为计算机发展和应用的一个重要方面。
由此可见掌握单片机的使用方法和利用单片机解决实际问题具有重要的意义。
而此次的设计刚好用到单片机相关的知识可以说这是这次设计的重要意义和目的所在。
再者,此设计的LED电子时钟主要是显时间的,是时钟用途。
在此设计的基础上人们还可根据不同的需求和不同的设计水平做出不同的设计项目。
也可以加上日期,温度的显示和闹钟的功能。
如果设计水平还更高的话还可以设计LED 电子显示屏。
因此说,LED电子时钟设计是最简单和基础的。
而且电子时钟很实用,准确性也很好,也容易调节,若有毁坏更换元器件也简单,制作原理和过程也很易懂易做,成本也不高。
在此设计间也包含了很多的知识,跟我所学专业又对口,所以,做这个LED电子时钟是个很用很好很值得做的设计。
2 课题方案论证2.1系统总体设计要求本次设计中的LED数码管电子时钟电路采用24小时制记时方式。
本次设计采用AT89C51单片机的扩展芯片和1个74LS04做驱动,由八块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。
设计采用AT89C51单片机,配备12MHz晶振,复位电路为上电复位。
采用软件译码动态显示,考虑直接用单片机I/O口作为位选时可能驱动功率不够,可采用三极管作驱动共阳极数码管显示。
8位8段LED数码管作正常、调时显示,时间按时分秒排列,时钟误差:24小时误差3~5秒,并且在按键的作用下可以进行调时,调分,复位功能。
本电路采用直流5V电源供电。
同时为了限流保护电路也用了若干个阻值不等的电阻。
在本文一开始做了一些概述主要说明此设计的目的和意义,并会对这类设计项目发展情况做个简介。
这是对这次设计很重要的一个认识是前提和设计者必须明确和了解的。
然后本文对此设计做了一些简要分析,这对理清设计思想很重要。
然后还对设计中用到的元器件进行比较全面的介绍。
只有真正了解了元器件的特性和功能才能让这些元器件在设计中起到作用。
电子整个设计第一步是电路原理图,它直接关系着后续的工作。
紧接着就是程序了,如果只有硬件电路而没有程序,那么这个设计将一文不值,也就是说是一堆破铜烂铁。
所以这部分也是非常重要的。
最后结合整个设计总结了一些心得体会为这次的设计画上完满的句号。
也为以后更好的设计提供经验。
2.2系统模块结构论证按照系统设计功能的要求,确定系统由4个模块组成:主控制器、扫描驱动、调节电路和显示电路。
数码管电子钟电路结构框图如图2-2所示图2-2 电路结构图3 系统硬件设计电子钟的原理框图如图3-1所示。
它由以下几个部件组成:单片机AT89C51、电源、时分秒显示部件。
时分秒显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
时分显示模块以及显示驱动都通过AT89C51的I/O口控制。
电源部分:整流稳压来得到+5V电压,维持系统的正常工作。
电子钟系统原理框图如图3-1所示:图3-1电子钟系统原理框图3.2最小单片机系统51单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用10~30uF ,51单片机最小系统容值越大需要的复位时间越短。
51单片机最小系统晶振Y1也可以采用6M H Z 或者12MHz ,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。
51单片机最小系统起振电容C2、C3一般采用15~33pF ,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般为10k 。
设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
计数值N 乘以机器周期Tcy 就是定时时间t 。
设置为计数器模式时,外部事件计数脉冲由T0或T 1引脚入到计数器。
在每个机器周期的S5P2期间采样T0、T1引脚电平。
当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。
由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周12MHz 时,最高计数频率不超过1/2MHz ,即计数脉冲的周期要大于2 ms最小系统如图3-2所示:图3-2最小系统3.3按键电路按键电路使用的是AT89C51单片机的P1和P2管脚,可调试电子中的按键总共为二个,按键功能分别为分钟,小时的加减。
通过按键电路,我们可以随意调整电子钟的时间,使单片机发挥它的作用。
按键电路图如图3-3所示:图3-3:按键电路图3.4显示电路可调试电子钟的显示电路采用8位数码管,显示出时间的时,分,秒。
使用的是AT89C51单片机的P0和P2管脚,显示电路中还将用到一块74LS245。
显示电路图如图3-4所示:图3-4显示电路4软件设计4.1 主程序Q0000: LJMP Q00DBNOPNOPNOPNOPNOPNOPNOPNOPLJMP Q0167INC R0INC R1NOPNOPCJNE R7,#00H,Q0015 Q0015: CJNE R7,#00H,Q0018 Q0018: NOPNOPNOPLJMP Q01A1Q001E: MOV P0,#0FFHMOV P3,#0FFHMOV TMOD,#11HMOV TH0,#0FCHMOV TL0,#18HMOV TH1,#0DCHCLR AMOV TL1,AMOV TCON,#01HSETB EASETB ET0SETB ET1MOV 14H,#0CHMOV 08H,AMOV 16H,AMOV 15H,AMOV A,14HMOV B,#0AHDIV ABMOV DPTR,#024DH MOVC A,@A+DPTR MOV 09H,AMOV A,14HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTR MOV 0AH,AMOV A,15HMOV B,#0AHDIV ABMOVC A,@A+DPTR MOV 0CH,AMOV A,15HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTR MOV 0DH,AMOV A,16HMOV B,#0AHDIV ABMOVC A,@A+DPTR MOV 0FH,AMOV A,16HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTR MOV 10H,AMOV 13H,#0FEH CLR AMOV 12H,ASETB TR0MOV 11H,#0FFHQ0091: MOV A,P1XRL A,11HJZ Q0091MOV R7,#0AHLCALL Q023BMOV A,P1XRL A,11HJZ Q0091MOV 11H,P1CLR EAMOV A,11HJB ACC.0,Q00B1LCALL Q0217SJMP Q00D7Q00B1: MOV A,11HQ00B3: JB ACC.1,Q00D7MOV A,15HINC AMOV B,#3CHDIV ABMOV 15H,BMOV A,15HMOV B,#0AHDIV ABMOV DPTR,#024DHMOVC A,@A+DPTRMOV 0CH,AMOV A,15HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTRMOV 0DH,AQ00D7: SETB EASJMP Q0091Q00DB: MOV R0,#7FHQ00DE: MOV @R0,ADJNZ R0,Q00DEMOV SP,#16HLJMP Q0122Q00E7: LJMP Q001EQ00EA: CLR AMOVC A,@A+DPTRINC DPTRMOV R0,AQ00EE: CLR AMOVC A,@A+DPTRINC DPTRJC Q00F6MOV @R0,ASJMP Q00F7Q00F6: MOVX @R0,AQ00F7: INC R0DJNZ R7,Q00EESJMP Q0125Q00FC: CLR AMOVC A,@A+DPTRINC DPTRMOV R0,AANL A,#07HADD A,#0CHXCH A,R0CLR CRLC ASWAP AANL A,#0FHORL A,#20HXCH A,R0MOVC A,@A+PCJC Q0114CPL AANL A,@R0SJMP Q0115Q0114: ORL A,@R0Q0115: MOV @R0,ADJNZ R7,Q00FCSJMP Q0125AJMP Q0002INC AINC R0JBC 24H.0,Q0161SJMP Q00B3NOPINC R6Q0125: CLR AMOV R6,#01HMOVC A,@A+DPTRJZ Q00E7INC DPTRMOV R7,AANL A,#3FHJNB ACC.5,Q013BANL A,#1FHMOV R6,ACLR AMOVC A,@A+DPTRINC DPTRJZ Q013BINC R6Q013B: XCH A,R7ANL A,#0C0HADD A,ACCJZ Q00EAJC Q00FCCLR AMOVC A,@A+DPTRINC DPTRMOV R2,ACLR AMOVC A,@A+DPTRINC DPTRMOV R0,AQ014C: CLR AMOVC A,@A+DPTRINC DPTRXCH A,R0XCH A,DPLXCH A,R0XCH A,R2XCH A,DPHXCH A,R2MOVX @DPTR,AINC DPTRXCH A,R0XCH A,DPLXCH A,R0XCH A,R2XCH A,DPHXCH A,R2Q0161: DJNZ R7,Q014CDJNZ R6,Q014CSJMP Q0125Q0167: PUSH ACCPUSH PSWMOV PSW,#00HPUSH 00HPUSH 07HMOV TH0,#0FCHMOV TL0,#18HMOV P3,13HMOV A,#09HADD A,12HMOV R0,AMOV A,@R0CPL AMOV P0,AMOV R7,13HMOV R0,#01HMOV A,R7INC R0SJMP Q018DQ018C: RL AQ018D: DJNZ R0,Q018CMOV 13H,AMOV A,12HINC AANL A,#07HMOV 12H,APOP 07HPOP 00HPOP PSWPOP ACCRETIQ01A1: PUSH ACCPUSH BPUSH DPHPUSH DPLPUSH PSWMOV TH1,#3CHMOV TL1,#0B0HINC 08HMOV A,08HCJNE A,#14H,Q01BEMOV 08H,#00HLCALL Q01F0Q01BE: POP PSWPOP DPLPOP DPHPOP BPOP ACCRETIQ01C9: INC 15HMOV A,15HSETB CSUBB A,#3BHJC Q01D8CLR AMOV 15H,ALCALL Q0217Q01D8: MOV A,15HMOV B,#0AHDIV ABMOV DPTR,#024DHMOVC A,@A+DPTRMOV 0CH,AMOV A,15HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTRMOV 0DH,ARETQ01F0: INC 16HMOV A,16HSETB CSUBB A,#3BHJC Q01FFCLR AMOV 16H,ALCALL Q01C9Q01FF: MOV A,16HMOV B,#0AHDIV ABMOV DPTR,#024DHMOVC A,@A+DPTRMOV 0FH,AMOV A,16HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTRMOV 10H,ARETQ0217: INC 14HMOV A,14HSETB CSUBB A,#17HJC Q0223CLR AMOV 14H,AQ0223: MOV A,14HMOV B,#0AHDIV ABMOV DPTR,#024DHMOVC A,@A+DPTRMOV 09H,AMOV A,14HMOV B,#0AHDIV ABMOV A,BMOVC A,@A+DPTRMOV 0AH,ARETQ023B: MOV R5,07HDEC R7MOV A,R5JZ Q024CCLR AMOV R6,AQ0243: MOV A,R6CLR CSUBB A,#78HJNC Q023BINC R6SJMP Q0243Q024C: RETPUSH 0F9HMUL ABANL C,/TIMOV P0.2,CMOV R0,ASJMP Q01E7MOV R7,A5软硬件联调及调试结果5.1调试步骤(1)在KEIL软件中编写程序,完成后,单击“项目”下的“编译”,产生“.hex”文件。