简单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单片机作为控制核心,通过数码管显示时间。
以下是一个简单的51单片机数字钟设计步骤:
1. 硬件设计
首先,需要选择一个合适的51单片机型号,如AT89C51、AT89S52等。
然后,需要选择数码管显示模块,可以选择多个数码管显示小时、分钟和秒。
同时,还需要选择适当的电源模块为数码管和单片机提供电源。
2. 软件设计
在软件设计方面,需要编写程序来控制数码管的显示,并实现时间的计数和更新。
可以使用定时器中断来实现时间的计数和更新。
同时,还需要编写程序来读取按键输入,以便用户可以调整时间。
3. 调试
在完成硬件和软件设计后,需要进行调试。
首先,需要检查硬件连接是否正确,然后通过调试程序来检查数码管的显示是否正确,以及时间计数和更新是否正常。
以上是一个简单的51单片机数字钟设计步骤,实际的设计可能需要根据具体需求进行修改和调整。
基于51单片机的数字钟设计
基于51单片机的数字钟设计目录1 作品的背景与意义 12 功能指标设计 13 作品方案设计 13.1总体方案的选择 13.1.1方案一:基于单片机的数字钟设计 23.1.1方案二:基于数电实验的数字钟设计 33.1.2两种方案的比较......... (3)3.2控制方案比较 33.3显示方案比较 33.4单片机理论知识介绍 43.4.1单片机型号........ (5)3.4.2硬件电路平台.............. (6)3.4.3内部时钟电路........... . (7)3.4.4复位电路............. . (7)3.4.5按键部分............ (8)4 硬件设计94.1显示模块电路图95 软件设计115.1主程序流程图115.2中断服务以及显示 126 系统测试136.1测试环境136.2测试步骤136.2.1硬件测试6.2.2软件测试1.连接单片机和计算机串接............ ..136.2.3实施过程............. .. (14)6.3测试结果187 实验总结................ . (18)7.1代码编写过程中出现问题........... .. (18)7.2整个实验过程的体会................. . (19)7.3实验误差分析。
19参考文献20附录1 系统电路图21附录2 系统软件代码21附录3 系统器件清单261 作品的背景与意义数字钟是采用数字电路实现对.时,分,秒。
数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 而且大大地扩展了钟表原先的报时功能。
基于单片机的数字钟具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,生活中诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等也可广泛应用,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
51单片机数字时钟设计参数计算
51单片机数字时钟设计参数计算一、概述1.1 51单片机数字时钟的设计意义1.2 研究背景和意义1.3 文章内容概要二、数字时钟的基本结构2.1 数字时钟的组成要素2.2 51单片机在数字时钟设计中的应用三、时钟参数计算3.1 时钟频率的选择3.2 倍频电路的设计3.3 分频电路的设计3.4 时钟精度的计算四、时钟电路的仿真与测试4.1 仿真软件的选择4.2 时钟电路仿真实验步骤4.3 实验结果分析与讨论五、数字时钟功能设计5.1 显示模块的选择与设计 5.2 时间调整与校准5.3 报警功能设计5.4 其他功能设计六、数字时钟的电路设计6.1 电源电路设计6.2 主控模块电路设计6.3 显示模块电路设计6.4 控制模块电路设计七、数字时钟的外壳设计7.1 外壳材料与工艺选择 7.2 外观设计要素7.3 外壳制作与装配八、数字时钟的成品制作8.1 PCB制作8.2 元件焊接8.3 软件编程8.4 调试与测试九、总结与展望9.1 设计过程总结9.2 设计成果评价9.3 后续工作展望结语以上是对51单片机数字时钟设计参数计算的一份初步构思,希望上述内容能够对相关领域的研究者或爱好者有所帮助。
感谢您的阅读。
十、时钟参数计算在数字时钟的设计中,时钟频率的选择是至关重要的。
时钟频率决定了数字时钟的精度和稳定性。
而在使用51单片机设计数字时钟时,我们需要根据具体的要求和应用场景来确定合适的时钟频率。
3.1 时钟频率的选择针对数字时钟而言,我们通常需要考虑其显示的精度和稳定性,因此要选用较高的时钟频率。
一般来说,数字时钟的显示要求在秒级,所以时钟频率需要能够满足秒级的计数要求。
时钟频率过高会增加功耗和电路复杂度,过低则会影响时钟的显示精度。
我们需要综合考虑这些因素来选择合适的时钟频率。
3.2 倍频电路的设计在实际应用中,我们常常会对晶振的频率进行倍频,以获得更高的时钟频率。
倍频电路一般采用锁相环(PLL)或者数字锁相环(DLL)来实现,通过合理的倍频系数,我们可以将晶振的频率提升到所需的高频率,以满足数字时钟的要求。
51单片机数字钟实验(原理图及程序)
51单片机数字钟实验(原理图及程序)1.实验任务(1.开机时,显示12:00:00的时间开始计时;(2.P0.0/AD0控制“秒”的调整,每按一次加1秒;(3.P0.1/AD1控制“分”的调整,每按一次加1分;(4.P0.2/AD2控制“时”的调整,每按一次加1个小时;2.电路原理图图4.20.13.系统板上硬件连线(1.把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;(2.把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;(3.把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;4.相关基本知识(1.动态数码显示的方法(2.独立式按键识别过程(3.“时”,“分”,“秒”数据送出显示处理方法5.程序框图6.汇编源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.0MINITEK BIT P0.1SECONDK BIT P0.2DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHSTART: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISPMOV TMOD,#01HMOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 SETB TR0SETB ET0SETB EAWT: JB SECONDK,NK1LCALL DELY10MSJB SECONDK,NK1INC SECONDMOV A,SECONDCJNE A,#60,NS60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MINITEK,NK2LCALL DELY10MSJB MINITEK,NK2INC MINITECJNE A,#60,NM60 MOV MINITE,#00H NM60: LCALL DISPJNB MINITEK,$ NK2: JB HOURK,NK3LCALL DELY10MS JB HOURK,NK3INC HOURMOV A,HOURCJNE A,#24,NH24 MOV HOUR,#00H NH24: LCALL DISPJNB HOURK,$NK3: LJMP WTDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETDISP:MOV A,#DISPBUF ADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10MOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,MINITE MOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,SECOND MOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1INT_T0:MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 MOV A,#DISPBUFADD A,DISPBITMOV R0,AMOV A,@R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P1,AMOV A,DISPBITMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,AINC DISPBITMOV A,DISPBITCJNE A,#08H,KNAMOV DISPBIT,#00HKNA: INC T2SCNTAMOV A,T2SCNTACJNE A,#100,DONEMOV T2SCNTA,#00HINC T2SCNTBMOV A,T2SCNTBCJNE A,#05H,DONEMOV T2SCNTB,#00HINC SECONDMOV A,SECONDCJNE A,#60,NEXTMOV SECOND,#00HINC MINITEMOV A,MINITECJNE A,#60,NEXTMOV MINITE,#00HINC HOURMOV A,HOURCJNE A,#24,NEXTMOV HOUR,#00HNEXT: LCALL DISPDONE: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHEND7.C语言源程序#include <AT89X51.H>unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void main(void){TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1){if(P0_0==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_0==0){second++;if(second==60){second=0;}dispbuf[0]=second%10; dispbuf[1]=second/10; while(P0_0==0);}}if(P0_1==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_1==0){minite++;if(minite==60){minite=0;}dispbuf[3]=minite%10; dispbuf[4]=minite/10; while(P0_1==0);}}if(P0_2==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_2==0){hour++;if(hour==24){hour=0;}dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);}}}}void t0(void) interrupt 1 using 0{mstcnt++;if(mstcnt==8){mstcnt=0;P1=dispcode[dispbuf[dispbitcnt]]; P3=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt==8){dispbitcnt=0;}}tcnt++;if(tcnt==4000){tcnt=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24) {hour=0; }}}dispbuf[0]=second%10; dispbuf[1]=second/10; dispbuf[3]=minite%10; dispbuf[4]=minite/10; dispbuf[6]=hour%10; dispbuf[7]=hour/10; }}。
MCS-51单片机数字钟设计
MCS-51单⽚机数字钟设计MCS-51单⽚机数字钟设计⽬录第⼀部分课程设计任务书 (1)⼀、课程设计题⽬ (1)⼆、课程设计时间 (1)三、课程设计提交⽅式 (1)四、设计要求 (1)第⼆部分课程设计报告 (2)⼀、单⽚机发展简史 (2)⼆、MCS-51单⽚机系统简介 (2)三、设计思路 (3)四、硬件设计电路 (4)五、软件设计流程 (4)六、程序源代码 (5)七、结束语 (21)⼋、参考⽂献 (22)第⼀部分课程设计任务书⼀、课程设计题⽬MCS-51单⽚机数字钟设计⼆、课程设计时间6⽉24⽇⾄6⽉30⽇三、课程设计提交⽅式提交打印课程设计报告四、设计要求1)⾃动计时,显⽰24⼩时制时间,由6位LED显⽰器显⽰时、分、秒。
2)起始时间为:00:00:00。
3)具备校准功能,可以直接由按键设置当前时间。
4)具有整点报时功能5) 具有设置闹钟,闹钟时间到,蜂鸣器响。
第⼆部分课程设计报告⼀、单⽚机发展概况单⽚机也被称为微控制器(Microcontroller Unit),常⽤英⽂字母的缩写MCU 表⽰单⽚机,它最早是被⽤在⼯业控制领域。
单⽚机由芯⽚内仅有CPU的专⽤处理器发展⽽来。
最早的设计理念是通过将⼤量外围设备和CPU集成在⼀个芯⽚中,使计算发展出了MCS51系列单⽚机系统。
基于这⼀系统的单⽚机系统直到现在还在⼴泛使⽤。
随着⼯业控制领域要求的提⾼,开始出现了16位单⽚机,但因为性价⽐不理想并未得到很⼴泛的应⽤。
90年代后随着消费电⼦产品⼤发展,单⽚机技术得到了巨⼤提⾼。
随着INTEL i960系列特别是后来的ARM系列的⼴泛应⽤,32位单⽚机迅速取代16位单⽚机的⾼端地位,并且进⼊主流市场。
⽽传统的8位单⽚机的性能也得到了飞速提⾼,处理能⼒⽐起80年代提⾼了数百倍。
⼆、MCS-51单⽚机系统简介MCS-51系列单⽚机产品有8051,8031,8751,80C51,80C31等型号(前三种为CMOS芯⽚,后两种为CHMOS芯⽚)。
基于51单片机的数字时钟设计
一设计要求及方案证 (1)二系统基本方案选择和论证 (2)2.1单片机芯片的选择方案和论证 (2)2.2显示模块选择方案和论证 (3)2.3时钟芯片的选择方案和论证 (4)三系统的硬件设计和实现 (5)3.1电路设计框图 (5)3・2主要单元电路的设计 (5)3.2. 1晶体振荡电路 (5)3. 2.2分频器电路 (6)3. 2.3时间计数器电路 (6)3. 2.4内部时钟电路 (6)3. 2. 5复位电路 (7)3. 2.6按键部分 (8)3. 2.7声光报警电路 (8)四、电路原理分析 (9)4・1显示原理 (9)4.2键盘及读数原理 (9)4.3连击功能的实现 (9)五、程序设计思想和相关指令介绍 (9)5.1数据和代码转换 (9)5・2计时功能的实现和中断服务程序 (10)5.3时间控制功能和比较指令...................................10六、系统的软件设计................................................106.1主程序部分 (11)6.2计时显示中断子程序部分 (13)6. 3调时功能流程图 (14)6. 4程序.....................................................15七设计心得........................................................24一设计要求及方案证设计制作和调试一个由8051MCU单片机组成的数字时钟系统。
通过这个过程学习熟悉键盘控制和七段数码管得使用,掌握 51系列单片机控制和测试的方法。
设计以89S51单片机为核心,以 LED为显示方式的万年历时钟显示,完成基本要求。
1)数码管显示:年月日时分秒。
2)键盘输入修改时间、日期设置。
系统基本方案选择和论证2. 1单片机芯片的选择方案和论证方案采用89C51芯片作为硬件核心,其内部采用Flash ROM,具有 4KB ROM存储空间,能于3V的超低压工作,但运用于电路设计中时由于不具备ISP在线编程技术,烧入程序时需要专门的C编程器(当前可用的实验烧写开发板只支持具有 ISP在线编程功能的AT89S**系列的芯片),当在对电路进行调试时,更显麻烦,并且增加了造价,采用89S51芯片作为主控模块,AT89S51是MCS-51系列单片机目前运用较多的一种芯片,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且具备ISP在线编程技术,方便对电路进行调试•但由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。
(完整word版)51单片机数字钟
目录1 设计任务与要求 (I)2 设计方案 (1)3 硬件设计 (2)3.1 AT89C51单片机简介 2 3.2单片机型号的选择 (6)3.3数码管显示工作原理 (6)4 软件设计 (7)4.1主程序模块介绍 (7)4.2主程序 (7)5 仿真调试 ......................................... 错误!未定义书签。
5.1K EIL仿真结果.................................. 错误!未定义书签。
5.2仿真结果分析 (13)6 小结 ............................................. 错误!未定义书签。
1 设计任务与要求1. 设计一个基于单片机的电子时钟,并且能够实现时分秒的现实和调节。
2. 设计出硬件电路。
3. 设计出软件编程方法,并写出源代码。
4. 用PROTEUS进行仿真。
5.用汇方式实现目的。
7.系统的各各功能模块要编语言编实现程序设计。
6.利用查表,中断等清楚,有序。
8.程序运行时有友好的用户界面。
2 设计方案本设计主要设计了一个基于AT89C51单片机的电子时钟。
并在数码管上显示相应的时间。
并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。
应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
该设计的硬件部分主要包括89C51多功能接口芯片用于开发电子时钟芯片、LED七段数码显示器用于显示时间、8031集成定时器用于定时、0.125W、8欧姆的扬声器用于定时发声。
软件部分包括主程序、定时计数中断程序、时间调整程序、延时程序四大模块。
通过中断程序进行定时器计数,时间调整程序是当键按下时间小于1秒,关闭显示(省电)进入调节时间状态,延时程序用于时间的延迟。
先设计个秒钟程序,在秒钟程序中先不设计按钮,直接通电运行,使用40H 存放计数值,从00—59,一直循环,把40H中的数值拆分成个位和十位,分别存在30H与31H中,要求动态扫描时,使用21H当标志位,用指令JB控制显示个位与十位,程序中使用中间寄存器R0与R1用于存放拆分后的字型,再传到30H与31H中去,再设计时钟程序。
用51单片机和1602液晶做的数字钟
用51单片机和1602液晶做的数字钟数字钟是人们日常生活中常见的时间显示设备,它能够精确显示当前的时间,并且兼具简约和实用性。
本文将介绍使用51单片机和1602液晶屏幕制作自己的数字钟的方法。
所需材料在开始制作之前,我们需要准备以下材料: - 51单片机开发板 - 1602液晶屏幕 - 数字时钟芯片RTC(Real-Time Clock) - 面包板和导线 - 电阻和电容 - 编程器和烧录器硬件连接首先,我们需要将51单片机、1602液晶屏幕和RTC芯片连接起来。
根据硬件接口的定义和引脚功能的规定,我们可以进行以下连接: - 将51单片机的VCC 引脚连接到1602液晶屏幕的VCC引脚,用于提供电源。
- 将51单片机的GND引脚连接到1602液晶屏幕的GND引脚,用于地线连接。
- 将51单片机的P0口连接到1602液晶屏幕的数据线D0-D7,用于数据传输。
- 将51单片机的P2口连接到1602液晶屏幕的RS引脚,用于选择数据和命令传输。
- 将51单片机的P3口连接到1602液晶屏幕的EN引脚,用于启用LCD。
此外,还需要将RTC芯片连接到51单片机上,以实现时间的准确显示。
具体的连接方式可以参考RTC芯片的规格说明书。
软件编程完成硬件连接后,我们需要进行软件编程,以便控制51单片机、1602液晶屏幕和RTC芯片的功能。
初始化首先,我们需要对51单片机和1602液晶屏幕进行初始化设置。
这包括设置引脚的功能模式、初始化1602液晶屏幕的显示模式和清空显示区域。
读取时间接下来,我们需要通过RTC芯片来读取当前的时间。
这通常包括读取RTC芯片存储的年、月、日、时、分和秒的数据。
显示时间读取时间后,我们可以将其显示在1602液晶屏幕上。
这可以通过更新特定的LCD显示区域来实现。
我们可以在指定的位置、特定的行和列上显示时间。
更新时间为了实现实时的时间显示,我们需要定期更新显示的时间。
可以使用定时器中断来定期更新时间,并根据需要刷新液晶屏幕上的显示。
基于51单片机的数字钟设计与制作
一.基于52单片机制作的数字钟1.设计任务⑴时间显示: 上电后,系统自动进入时钟显示,从00:00:00开始计时,此时可以设定当前时间.⑵时间调整:按下k1,k2,k3键可以顺序设置秒、分、时,并在相应数码管上显示设置值,直至6位设置完毕。
2.系统基本方案选择和论证本时钟的设计具体有两种方法。
一是通过单纯的数字电路来实现;二是使用单片机来控制实现。
本次设计选取了较为简单的单片机控制;而选择这一方法后还要进行各个芯片的选择。
以下是我在这次设计中所用的方案。
2.1 芯片的选择方案一:采用AT89C51芯片,其为高性能CMOS 8位单片机,该芯片内含有4k bytes的可反复擦写的只读程序存储器(PEROM)、128 bytes的随机存取数据存储器(RAM)、 32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式,但是由于AT89C51芯片可擦写的空间不够大,且中断源提供的较小,为防止运行过程中出现不必要的问题,我们不选用AT89C51。
方案二:采用AT89C52芯片,它除了具备AT89C51的所有功能与部件外,其最大的优势就是AT89C52提供了8K字节可擦写Flash闪速存储器空间、8个中断源、及256*8字节内部存储器(RAM),解决了我们对可反复擦写的Flash闪速存储器空间大小与中断源的不够问题的担心。
2.2显示模块选择方案和论证方案一:采用LCD,电路比较简单,且在软件设计上也相对简单,具有低功耗功能。
价格贵。
方案二:采用LED数码管显示,显示较为清楚。
价格便宜。
所以本方案采用LED数码管显示。
2.3 时钟信号的选择方案和论证直接采用单片机定时计数器提供的秒信号,使用程序实现年、月、日、周、时、分、秒计数。
采用此种方案可减少芯片的使用,节约成本,实现的时间误差较小。
2.4 电路设计最终方案决定综上各方案所述,对此次数字时钟的方案选定为: 采用AT89C52作为主控制系统; 并由其定时计数器提供时钟; LED作为显示电路来实现功能。
51单片机数字钟设计程序
51单片机数字钟设计程序51单片机是一种常用的单片机芯片,它具有体积小、功耗低、性能稳定等特点,被广泛应用于各种电子设备中。
本文将以51单片机数字钟设计程序为主题,介绍如何使用51单片机设计并实现一个简单的数字钟。
我们需要了解一下数字钟的基本原理。
数字钟主要由时钟芯片、数码管、按键等组成。
时钟芯片负责计时和控制,数码管用于显示时间,按键则用于设置和调整时间。
在设计数字钟的程序时,我们需要考虑以下几个方面:1. 时钟设置:首先,我们需要设置时钟芯片的工作模式。
一般来说,时钟芯片有两种工作模式,分别是24小时制和12小时制。
我们可以通过按键来选择工作模式,并将选择结果保存到相应的寄存器中。
2. 时间显示:接下来,我们需要将时钟芯片中的时间数据通过数码管显示出来。
数码管通常由7段LED组成,每段LED对应一个数字或字符。
我们可以通过控制数码管的引脚状态来实现不同数字的显示。
同时,为了使时间显示更加清晰,我们可以在数码管之间加入冒号等分隔符。
3. 时间调整:为了保证时间的准确性,我们需要提供时间调整的功能。
可以通过按键来实现时间的增加和减少,从而调整时钟芯片中的时间数据。
当按键按下时,我们可以检测到相应的信号,并将其转换为时间调整的命令。
4. 闹钟功能:除了显示时间,数字钟还可以具备闹钟功能。
我们可以设置一个闹钟时间,并在达到闹钟时间时触发相应的报警信号。
一般来说,闹钟功能可以通过按键设置,并将设置结果保存在相应的寄存器中。
当时钟芯片中的时间与闹钟时间一致时,我们可以通过控制蜂鸣器等外设来发出报警信号。
通过以上的设计,我们可以实现一个简单的数字钟。
当然,如果我们希望数字钟具备更多的功能,比如温湿度显示、定时器等,我们还可以在程序中添加相应的代码来实现。
总结一下,本文以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单片机多功能数字时钟1系统设计1.1设计要求设计制作一个24小时制多功能数字钟。
1.1.1主要性能指标1、数字显示年、月、周、日、时、分、秒。
1.1.2创意部分要求准确的进行年、月、周、日、时、分、秒的转换,切换两种显示模式。
1.2总体设计方案1.2.1概述及设计思路该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天)。
1.2.2方案论证(1)时钟模块【方案一】采用单片机内置定时/计数器。
它的处理过程主要是先设定单片机内部定时/计数器的工作方式,对机器周期计数确定基准时间,然后用另外一个定时器软件计数的方法对基准时间形成秒,秒计60次形成分,分计60次形成小时。
依此类推,获取日期也是采用相同的方法。
该方案在具体实现过程中,计时存在较大的误差。
如果晶振受到其他外界信号干扰,或者基准时间计算不准确,都会导致时间显示错误。
【方案二】采用555多谐振荡器。
由555定时器组成一个多谐振荡器,产生周期为100HZ的脉冲,然后经过两个74LS160组成的分频器得到1HZ的秒脉冲。
多谐振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用成品晶振构成振荡器电路。
计时精度取决于振荡器的频率,振荡器频率越高计时精度越高。
【方案三】采用DS1302时钟芯片。
DS1302是一种高性能、超低功耗的实时时钟芯片,附加31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
芯片内部集成备用电源,当外围电路电路有电源供应的时候,备用电源充电储能。
当外围电路掉电时,DS1302芯片工作在休眠状态,以备用电源供电。
当外围电路再次供电,即可唤醒休眠进入正常工作状态,显示时间无任何异常。
基于51单片机的数字钟设计
基于51单片机的数字钟设计一、实验要求设计一个数字钟,采用六个数码管,高两位显示小时,中间两位显示分钟,低两位显示秒,时间显示采用24小时制。
并且设计的数字钟应当满足以下要求:(1)能够实现数字钟的基本功能;(2)能通过开关控制数字钟的启动、停止、复位和调整时间。
二、实验内容(一)时钟计时设置使用80c51的定时/计数器来实现时钟计时。
(1)计算计数初值,时钟计时的关键问题是秒的产生,使用80c51的定时/计数器来进行定时,即按照工作方式1,其最大定时能达到131ms。
因此,要把秒计时用硬件定时和软件计数相结合的方法实现。
吧定时设为125ms,这样计数溢出8 次就可以的到1秒,而8次计数可用软件方法实现。
(2)采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,计满8次记得到秒计时。
(3)通过程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。
(4)设置停止、复位、调时功能模块。
(5)设置时钟显示缓冲区。
在内部RAM中设置6 个单元的显示缓冲区,从左到右依次存放时、分秒的数值。
显示单元与LED显示位的对应。
(二)流程框图1、时钟计数主程序2、中断服务程序3、加1程序图1 时钟计数主程序流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元个位就加1,秒单元个位到9时,秒单元十位加1。
秒单元十位到5,个位到9时,分单元个位加1,秒单元清零。
分单元个位到9时,分单元十位加1。
分单元十位到5,个位到9时,时单元个位加1,分单元清零。
时单元十位到2,个位到4时,时单元、分单元、秒单元都清零。
图2 中断服务程序流程图图3 加1程序流程图三、实验分析与体会(一)实验分析我们通过软硬结合的方法调试系统。
在电脑上使用星研编译器,进行程序的编程和编译,发现很多语法和逻辑的错误。
通过这个编译器可以很好的发现并解决问题,程序调试完毕,编译没问题后,进行测试,并分析程序,直到完成要求为止。
本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率,定时器溢出误差、延迟误差。
基于C51单片机的数字时钟课程设计(C语言带闹钟)
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
基于51单片机的数字钟设计
一.数字钟QQ:415264859,1315954620(欢迎大家加我们QQ,免费为大家写程序(C语言和汇编语言都行)。
1.设计任务(1)开机时,显示00-00-00的时间开始计时。
(2)K1控制秒的调整,每按一次秒加1。
(3)K2控制分的调整,每按一次分加1。
(4)K3控制时的调整,每按一次时加1。
2.电路设计2.1时钟电路(1)单片机时钟时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
电路设计如图2-1所示。
图2-1 单片机时钟AT89S52单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
(2) 复位电路AT89S52单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC 对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图 2-2 复位电路如图 2-2所示,上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
也能手动复位。
51单片机电子钟程序设计 - 单片机
51单片机电子钟程序设计 - 单片机硬件部分基于51单片机、 ds1302时钟芯片、 ds18b20温度芯片、以及1602液晶显示的实时时间和实时温度显示。
同时可通过按键设置年、月、日、时、分、星期。
并且可以设置闹钟当闹钟时间到时蜂鸣器持续发出滴..声同时led灯不停闪烁且在一分钟内没有按指定停止按键闹钟将自动停止。
软件部分#include reg52.h#define uchar unsigned char#define uint unsigned intsbit spk=P1^7;sbit led=P1^5;sbit DQ=P1^0;sbit RS=P2^4;sbit RW=P2^5;sbit EN=P2^6;sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit IO=P3^6;sbit RST=P3^7;sbit SCLK=P3^5;uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; int nian,xing,yue,ri,shi,fen,miao;ucharnum,temp,c,d,time[7],a,b,aa,bb,ns,ng,ys,yg,rs,rg,ss,sg,fs,f g,ms,mg,flag;/*******************1602************************/void delay(int z){int x,y;for(x=z;x0;x--)for(y=100;y0;y--);}void write_com(uchar com) //写命令{RS=0;P0=com;delay(5);EN=1;delay(5);EN=0;}void write_data(uchar date) //写数据{RS=1;P0=date;delay(5);EN=1;delay(5);EN=0;}void init() //初始化{RW=0;EN=0;write_com(0x38); //显示模式设置write_com(0x0c); //开显示不显示光标不闪write_com(0x06); //写一个字符地址指针光标加一整屏不移动write_com(0x01); //显示清零write_com(0x80+0x04);write_data('2');write_com(0x80+0x05);write_data('0');write_com(0x80+0x00);write_data('c');write_com(0x80+0x01);write_data('a');write_com(0x80+0x02);write_data('i');write_com(0x80+0x4e);write_data(0xdf);write_com(0x80+0x4f);write_data('C');write_com(0x80+0x4b);write_data(0x2e); //显示"。
简单的51单片机数字钟设计
07级单片机课程设计题目:简单51单片机数字时钟设计院系: 电子信息工程专业:电信专业班级:08级电信本科三班姓名:刘涛学号:200810312340老师:杨加国2010-6摘要班级学号 (1)设计内容 (3)进度安排 (3)MCS-51单片机系统简介 (3)课程设计背景 (4)课程设计目的 (4)MCS-51单片机内部定时器/计数器中断系统简介 (4)课程设计原理 (5)课程设计代码 (6)设计相关说明 (10)→设计内容利用单片机的定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。
在数码管显示器上实现电子时钟,并且能进行设置时间和暂停、启动控制。
→进度安排地点:电路CAD室设备:计算机,KEIL 51软件、PROTEUS软件准备一周,仿真、调试一周。
→MCS-51单片机系统简介MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。
INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国A TMEL公司开发生产的。
以后我们将用89C51、89S51来完成一系列的实验。
MCS-51系列单片机MCS-51系列单片机分为两大系列,即51子系列与52子系列。
51子系列:基本型,根据片内ROM的配置,对应的芯片为8031、8051、8751、895152子系列:增强型,根据片内ROM的配置,对应的芯片为8032、8052、8752、8952这两大系列单片机的主要硬件特性如下表:上表中可以看到,8031、8031、8032、80C32片内是没有ROM的,对应着上表看,我们可以发现,51系列的单片机的RAM大小为128B,52系列的RAM大小为256B,51系列的计数器为两个16位的,52系列的计数器为三个16位计数器。
基于51单片机设计的多功能数字时钟
基于51单片机多功能数字时钟姓名:刘波学号:1系统设计1.1设计要求设计制作一个24小时制多功能数字钟。
1.1.1主要性能指标1、数字显示年、月、周、日、时、分、秒。
1.1.2创意部分要求准确的进行年、月、周、日、时、分、秒的转换,切换两种显示模式。
1.2总体设计方案1.2.1概述及设计思路该设计方案是以MC51单片机为核心,采用LCD液晶屏幕显示系统,温度采集模块、日期提醒、键盘时间调整预设置等模块,所构建的数字时钟系统,能动态显示实时时钟的时、分、秒,数据显示(误差限制在30每天)。
1.2.2方案论证(1)时钟模块【方案一】采用单片机内置定时/计数器。
它的处理过程主要是先设定单片机内部定时/计数器的工作方式,对机器周期计数确定基准时间,然后用另外一个定时器软件计数的方法对基准时间形成秒,秒计60次形成分,分计60次形成小时。
依此类推,获取日期也是采用相同的方法。
该方案在具体实现过程中,计时存在较大的误差。
如果晶振受到其他外界信号干扰,或者基准时间计算不准确,都会导致时间显示错误。
【方案二】采用555多谐振荡器。
由555定时器组成一个多谐振荡器,产生周期为100HZ的脉冲,然后经过两个74LS160组成的分频器得到1HZ的秒脉冲。
多谐振荡器的稳定度及频率的准确度决定了数字钟计时的准确程度,通常选用成品晶振构成振荡器电路。
计时精度取决于振荡器的频率,振荡器频率越高计时精度越高。
【方案三】采用DS1302时钟芯片。
DS1302是一种高性能、超低功耗的实时时钟芯片,附加31字节静态RAM,可以通过串行接口与单片机进行通信。
实时时钟提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。
芯片内部集成备用电源,当外围电路电路有电源供应的时候,备用电源充电储能。
当外围电路掉电时,DS1302芯片工作在休眠状态,以备用电源供电。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目:简单51单片机数字时钟设计院系: 物理与电气工程学院专业:自动化专业班级:10级自动化******学号:********* ******引言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS 化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对时,分,秒数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
→设计内容利用单片机的定时/计数器,中断系统,以及阵列键盘和LED显示器进行设计。
在数码管显示器上实现电子时钟。
→课程设计背景近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
关键字:单片机时钟设计MC51→课程设计目的1、综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机软硬知识的理解,获得初步的应用经验。
2、学习AT89C51定时/计数器的原理及基本应用。
3、掌握多为数码管动态显示方法。
4、掌握Keil uVision2 IDE的使用方法。
【包括项目文件的建立,给项目添加程序文件,编译、连接项目,形成目标文件,运行调试观察结果,多文件的处理,仿真环境的设置。
】5、掌握Keil C51的调试技巧。
【包括如何设置和删除断点,如何查看和修改寄存器的内容,如何观察和修改变量,如何观察存储器区域,并行口的使用,定时/计数器的使用,串行口的使用,外中断的使用。
】6、掌握PROTEUS软件使用过程。
→MCS-51单片机中断系统的结构5个中断源的符号、名称及产生的条件如下。
INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。
INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。
T0:定时器/计数器0中断,由T0计满回零引起。
T1:定时器/计数器l中断,由T1计满回零引起。
课程设计原理单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。
此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。
显示器件选用LED七段数码管。
在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。
针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。
使用动态数码显示的方法,运用独立式按键识别过程,按“时”,“分”,“秒”数据送出显示处理方法。
数字钟流程图设计代码;简要说明:实现24小时制电子钟,8位数码管显示,显示时分秒; 显示格式:23-59-59(小时十位如果为0则不显示); P0口输出段选信号,P3口输出位选信号; P1.0为调秒按钮,P1.1为调分按钮,P1.2为调时按钮;晶振12MS_SET BIT P1.0 ;数字钟秒控制位M_SET BIT P1.1 ;分钟控制位H_SET BIT P1.2 ;小时控制位SECOND EQU 30HMINUTE EQU 31HHOUR EQU 32HTCNT EQU 34HORG 00HSJMP STARTORG 0BHLJMP INT_T0START: MOV DPTR,#TABLEMOV HOUR,#0 ;初始化MOV MINUTE,#0MOV SECOND,#0MOV TCNT,#0MOV TMOD,#01HMOV TH0,#(65536-50000)/256 ;定时50毫秒MOV TL0,#(65536-50000)MOD 256MOV IE,#82HSETB TR0;****************************************************;判断是否有控制键按下,是哪一个键按下A1: LCALL DISPLAYJNB S_SET,S1JNB M_SET,S2JNB H_SET,S3LJMP A1S1: LCALL DELAY ;去抖动JB S_SET,A1INC SECOND ;秒值加1MOV A,SECONDCJNE A,#60,J0 ;判断是否加到60秒MOV SECOND,#0LJMP K1S2: LCALL DELAYJB M_SET,A1K1: INC MINUTE ;分钟值加1MOV A,MINUTECJNE A,#60,J1 ;判断是否加到60分MOV MINUTE,#0LJMP K2S3: LCALL DELAYJB H_SET,A1K2: INC HOUR ;小时值加1MOV A,HOURCJNE A,#24,J2 ;判断是否加到24小时MOV HOUR,#0MOV MINUTE,#0MOV SECOND,#0LJMP A1;**************************************************** ;等待按键抬起J0: JB S_SET,A1LCALL DISPLAYSJMP J0J1: JB M_SET,A1LCALL DISPLAYSJMP J1J2: JB H_SET,A1LCALL DISPLAYSJMP J2;***********************************************;定时器中断服务程序,对秒,分钟和小时的计数INT_T0: MOV TH0,#(65536-50000)/256MOV TL0,#(65536-50000)MOD 256INC TCNTMOV A,TCNTCJNE A,#20,RETUNE ;计时1秒INC SECONDMOV TCNT,#0MOV A,SECONDCJNE A,#60,RETUNEINC MINUTEMOV SECOND,#0MOV A,MINUTECJNE A,#60,RETUNEINC HOURMOV MINUTE,#0MOV A,HOURCJNE A,#24,RETUNEMOV HOUR,#0MOV MINUTE,#0MOV SECOND,#0MOV TCNT,#0RETUNE: RETI;****************************************** ;显示控制子程序DISPLAY:MOV A,SECOND ;显示秒MOV B,#10DIV ABCLR P3.6MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.6MOV A,BCLR P3.7MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.7CLR P3.5MOV P0,#40H ;显示分隔符LCALL DELAYSETB P3.5MOV A,MINUTE ;显示分钟MOV B,#10DIV ABCLR P3.3MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.3MOV A,BCLR P3.4MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.4CLR P3.2MOV P0,#40H ;显示分隔符LCALL DELAYSETB P3.2MOV A,HOUR ;显示小时MOV B,#10DIV ABCLR P3.0MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.0MOV A,BCLR P3.1MOVC A,@A+DPTRMOV P0,ALCALL DELAYSETB P3.1RETTABLE: D B 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FH DELAY: MOV R6,#10D1: MOV R7,#250DJNZ R7,$DJNZ R6,D1RETEND→设计相关说明参考元器件清单:单片机:80C51按键:BUTTON电阻:RES电容:CAP晶振:CRYSTALLED数码管:7SEG-MPX8- CC -BLUE(CA:共阳,CC:共阴)地:GRAND电源:POWER→参考资料:《单片机电路设计、分析与制作》《单片机原理与应用》《proteus仿真MCS51一百例》。