基于单片机的数字钟设计-(1)
基于单片机设计的多功能数字钟设计报告[1]
多功能数字钟设计报告指导老师:龙光利队员:霍宝龙(物理与电信工程学院)王阳阳(电气工程学院,电气李伟涛(电气工程学院,电气101)101)目录1. 设计任务与要求2. 设计原理及方案3. 主要元器件清单4. 电路原理图5. 原理说明6. 系统软件部分7. 整机调整过程8. 总结六位多功能数字钟制作报告•设计任务与要求。
1.任务。
设计制作一个24小时制多功能数字钟。
示意图如下(仅供参考):布转开闹铃关/□口口谡査时间设査闹请」、时分神7□。
口口2要求.基本要求(1)具有时间设置(小时和分钟)、闹钟时间设置、闹钟开、闹钟关功能。
(2)数字显示小时、分钟,有AM、PM指示器,闹钟就绪灯,蜂鸣器。
(3)220V 供电。
发挥部分(1 )键盘切换现场环境温度显示。
(0〜60 °C 1°C)(2)键盘切换电网频率、电压显示。
(3)电压欠压、过压报警(〜220V 10 %)功能。
二,设计原理及方案1,计数原理数字计中是一个对标准频率进行校准的计数电路。
它的计时周期是24小时,由于计数器的起始时间不可能与标准时间一致,所以采用校准功能和报时功能。
数字钟电路主要由译码显示器、校准电路、报时电路、时计数、分计数、秒计数器,振荡器和单脉冲产生组成。
其中电路系统由秒信号产生器是整个系统基本信号,它直接决定计数器的精度,用石英振荡器加分频器来实现,将标准秒信号送入秒计数器。
分、秒计数器采用60进制,时计数器采用24进制,。
译码器显示电路将时、分、秒计数器的输出状态通过三个两位共阳数码管显示出来。
整点报时电路根据计时系统的输出状态产生一个脉冲信号,用蜂鸣器输出。
二、模块电路设计与比较1、时钟方案选择采用带RAM的时钟芯片AT89C2051。
该芯片可以进行时分秒的计数,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,完全能满足题目的要求。
C程序:#include<REG2051.H>code senen_seg[10]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0}; //P1.7(冒号)口高电平bitkey1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0; // 状态标志unsigned char program=0,program_variable=0,count_bit=0,count=0;unsigned char hour=10,minute=10,second=0;// 时间变量unsigned char delayed_hour=22,delayed_minute=10,delayed_second=0;// 定时变量unsigned char count_hour=0,count_minute=0,count_second=0;// 计时计数变量unsigned char count_time=0,count_count=0;void delay(unsigned int t) {unsigned int i,j;for(i=0;i<t;i++) for(j=0;j<10;j++) }void time0_init(void){ 始化EA=0;TR0=0;TMOD=0x01;TH0=0xec;TL0=0x73;ET0=1;// 延时子程序// 定时计数0器初TR0=1;EA=1;}static void timer0_isr(void) interrupt TF0_VECTOR using 1 // 定时计数0器中断函数{TR0=0;TH0=0xec;TL0=0x73;TR0=1;count_time++; // 时钟计时程序if(count_time>=199){count_time=0;second++;if(second>=60){second=0;minute++; if(minute>=60){minute=0;hour++;if(hour>=24)hour=0;}}}if(delayed_hour==hour && delayed_minute==minute && second<4) P3_7=0; else P3_7=1; if(countdown_mark==1){ // 倒计时程序count_count++;if(count_count>=199 &&(count_second!=0|count_minute!=0|count_hour!=0)){ count_count=0;count_second--; if(count_second>=60){ count_second=59;count_minute--; if(count_minute>=60){ count_minute=59; count_hour--;if(count_hour>=100) count_hour=99;}}}} if(count_second==0&&count_minute==0&&count_hour==0&&count_count<=12000)P3_7=0;else P3_7=1;if(count_count>=15000) count_count=14000;}if(stopwatch_mark==1){ // 秒表程序count_count++;if(count_count>=2){count_count=0;count_second++; if(count_second>=100){count_second=0;count_minute++; if(count_minute>=60){ count_minute=0; count_hour++;if(count_hour>=60) count_hour=0;unsigned char show_key (void){unsigned char x=0,y=0;switch (program){case 0: P1&=senen_seg[second%10];//break;case 1: if(count_time>=90) P1&=senen_seg[second%10]; //break;case 2: if(delayed_hour==24) P1=0xfe; //else P1&=senen_seg[delayed_second%10];break;case 3: if(count_bit>=0) P1&=senen_seg[count_second%10];//else P1=0xff;break;case 4: P1&=senen_seg[count_second%10];break;// 秒表秒的个位case 5: P1&=senen_seg[count_second%10];break;//P3_3=0;delay(10);// 计数器百位if(P3_5==0){ key1_enter=1;if(count<=254)count++; } if(P3_4==0) key2_enter=1; if(P3_2==0) key3_enter=1; // P3_3=1; P1|=0xff;switch (program){case 0: P1&=senen_seg[second/10]; // break;case 1: if(count_time>=90) P1&=senen_seg[second/10]; // break; case 2: if(delayed_hour==24) P1=0xfe; // elseP1&=senen_seg[delayed_second/10];break;case 3: if(count_bit>=1) P1&=senen_seg[count_second/10];//else P1=0xff; break;case 4: P1&=senen_seg[count_second/10];break;case 5: P1&=senen_seg[count_second/10];break;}P3_1=0; delay(10); P3_1=1; P1|=0xff; switch (program){case 0: P1&=senen_seg[minute%10]; // break;case 1: if(count_time>=90) P1&=senen_seg[minute%10]; // break; case 2: if(delayed_hour==24) P1=0xfe;else P1&=senen_seg[delayed_minute%10]; break; case 3: if(count_bit>=2) P1&=senen_seg[count_minute%10];//else P1=0xff; break;case 4: P1&=senen_seg[count_minute%10];break;case 5: P1&=senen_seg[count_minute%10];// 功能键 1识别// 功能键 2识别 功能键 3识别时钟秒的十位 校正秒的十位 闹钟秒的十位倒计时秒的十位// 秒表秒的十位 // 计数器十位时钟分的个位 校正分的个位 // 闹钟分的个位倒计时分的个位// 秒表分的个位// 计数器万位}break;}P3_2=0; delay(10); P3_2=1; P1|=0xff; switch (program){ case 0: P1&=senen_seg[minute/10]; // 时钟秒的个位 break; case 1: if(count_time>=90) P1&=senen_seg[minute/10]; // break; case 2: if(delayed_hour==24) P1=0xfe; else P1&=senen_seg[delayed_minute/10];break;case 3: if(count_bit>=3) P1&=senen_seg[count_minute/10];// else P1=0xff; break; case 4: P1&=senen_seg[count_minute/10]; break;case 5: P1&=senen_seg[count_minute/10]; break; } P3_5=0; delay(10); P3_5=1; P1|=0xff;校正秒的个位 // 闹钟秒的个位倒计时秒的个位// 秒表秒的个位 // 计数器千位switch (program){ case 0: P1&=senen_seg[hour%10]; // 时钟时的个位 break; case 1: if(count_time>=90) P1&=senen_seg[hour%10]; // 校正时的个位 break; case 2: if(delayed_hour==24) P1=0xfe; // 闹钟时的个位else P1&=senen_seg[delayed_hour%10]; break; case 3: if(count_bit>=4) P1&=senen_seg[count_hour%10];// 倒计时时的个位else P1=0xff; break; case 4: P1&=senen_seg[count_hour%10]; break; case 5: P1&=senen_seg[count_hour%10];// 秒表时的个位 break;// 闹钟菜单P3_0=0; delay(10);if(P3_4==1 &&key2_enter==1){ x=3; // key2_enter=0; } P3_0=1; 确认功能键 2识别,返回 3P1|=0xff;switch (program){ case 0: P1&=senen_seg[hour/10]; break; case 1: if(count_time>=90) P1&=senen_seg[hour/10]; // break;case 2: if(delayed_hour==24) P1=0xfe; else P1&=senen_seg[delayed_hour/10]; break; case 3: if(count_bit>=5)P1&=senen_seg[count_hour/10]; // else P1=0xff; break;case 4: P1&=senen_seg[count_hour/10]; break; case 5: P1&=senen_seg[count_hour/10]; break;// 时钟时的个位 校正时的个位 // // // 闹钟时的个位倒计时时的个位秒表时的个位 计数器万位} P3_4=0; delay(10); if(P3_5==1 && key1_enter==1){ 个功能 if(count>=127) x=1; else x=2; key1_enter=0; count=0; } if(P3_2==1 && key3_enter==1){ x=4; // key3_enter=0; } P3_4=1; P1|=0xff;if(program<=1 && count_time>=100) P1&=0xff; 号闪烁 // 确认功能键 1识别,执行退出或进入下一 //// 确认功能键 1为长按,返回 1 确认功能键 1为短按,返回 2 确认功能键 3识别,返回 4 // 校时和显示功能时钟时冒 if(program<=1 && count_time<=100) P1&=0x7f; if(program==2) P1&=0x7f; // 设置闹钟功能时冒号长亮if(program==3) P1&=0xff; if(program==4) P1&=0x7f; if(program==5) P1&=0xff; y=x; x=0;// 设置倒计时功能时冒号长灭// 设置秒表功能时冒号长亮// 设置计数时冒号长灭return y;void main(){ // 主程序P1=0xff;P3=0xff;time0_init();while(1){ switch(program){ case 0:while(program==0){ switch(show_key()){ case 0: break;case 1: program=0;break;case 2: program=1;break;}}break;case 1: while(program==1){ switch(show_key()){ case 0: break;case 1: program=0; break;case 2: program=2;break;case 3: hour++;if(hour>=24)hour=0; break;case 4: minute++; if(minute>=60)minute=0;break;}}break;case 2: while(program==2){ switch(show_key()){ case 0: break; // 时钟菜单// 校时菜单case 1: program=0;break;case 2: program=3;break;case 3: delayed_hour++;if(delayed_hour>=25)delayed_hour=0;break;case 4: delayed_minute++;if(delayed_minute>=60)delayed_minute=0;break;}}break;case 3: while(program==3){switch(show_key()){case 0: break;case 1: program=0;break;case 2: program=4;break;case 3: count_bit++; if(count_bit>=7)count_bit=0;break;case 4: switch(count_bit){case 0: count_second+=1;break;case 1: count_second+=10;break;case 2: count_minute+=1;break;case 3: count_minute+=10;break;case 4: count_hour+=1;break;case 5: count_hour+=10;break;case 6: break;}if(count_hour>=100) count_hour-=100;if(count_minute>=60) count_minute-=60;if(count_second>=60) count_second-=60;break;}if(count_bit==6) countdown_mark=1;// 倒计时菜单// 闹钟菜单else countdown_mark=0; } break; case 4: count_hour=0;count_minute=0; count_second=0;while(program==4){ switch(show_key()){ case 0: break; case 1: program=0; break; case 2: program=5;break;case 3: stopwatch_mark=~stopwatch_mark;break;case 4: if(stopwatch_mark==0){count_hour=0; count_minute=0; count_second=0;}break;} }break;case 5: count_hour=0;count_minute=0;count_second=0;while(program==5){ switch(show_key()){ case 0: break;case 1: program=0;break; case 2: program=0;break;case 3: count_second++;if(count_second>=100){ count_second=0; count_minute++; if(count_minute>=100){ count_minute=0; count_hour++; if(count_hour>=100)count_hour=0;break;case 4: coun t_hour=0;count_minu te=0; coun t_sec on d=0;break;} if(P3_7==0){ while(P3_7==0) show_key();coun t_sec on d++;if(cou nt_seco nd>=100){ coun t_sec on d=0;count_minu te++;if(cou nt_mi nu te>=100){ count_minu te=0; coun t_hour++; if(co un t_hour>=100)co un t_hour=0; } }}// 秒表菜单// 计数器菜单}break;}if(program!=3) coun tdow n_mark=0; if(program!=4) stopwatch_mark=0;}}2、电压有效值方案选择采用7805五伏稳压电源,电路图如下:T肚卫血3、显示模块的选择采用数码管显示。
基于单片机的数字电子钟
基于单片机的数字电子钟摘要:数字电子钟是以数字信号为基础显示时间的电子设备,目前已有多种实现方式。
本文介绍了基于单片机实现数字电子钟的原理、方法和实现步骤,包括单片机的选择、时钟模块、驱动模块、电源等硬件电路设计,以及软件程序实现部分。
此外,文章还对数字电子钟进行了功能扩展,实现了闹钟、备忘录、开关灯等实用功能,提高了使用体验。
关键词:数字电子钟,单片机,时钟模块,驱动模块,扩展功能一、引言随着科技的发展,数字电子钟越来越普及,其取代机械钟的趋势也越来越明显。
数字电子钟具有精度高、操作方便、造型美观等优点。
本文将介绍一种基于单片机的数字电子钟实现方法,包括硬件电路设计和软件程序实现。
二、硬件电路设计2.1 单片机的选择在数字电子钟的实现过程中,单片机是必不可少的控制核心。
常见的单片机有AT89C52、STC89C52等,可以根据自己的需求选择相应的芯片。
2.2 时钟模块时钟模块是数字电子钟的核心部分,它能够提供系统所需的时间信息。
常见的时钟模块有DS1302、DS3231等,它们都可以提供精确的时间信息。
2.3 驱动模块驱动模块是数字电子钟的重要组成部分。
在数码管的驱动中,常用的方法有直接驱动和扫描驱动两种方式。
直接驱动即将单个数码管的8段LED直接连接到单片机的8个I/O口上,扫描驱动则是将多个数码管按照一定的顺序扫描,并用单片机的一组I/O口控制。
在本文中,我们采用扫描驱动。
2.4 电源数字电子钟的电源一般采取AC/DC电源适配器输出DC9V稳压电源,或使用5号电池供电。
三、软件程序实现3.1 初始化在程序开头,需要将各个I/O口和时钟模块进行初始化,同时设定系统初始时间。
3.2 显示时间显示时间是本文设计的重点。
在程序中,将采用定时器来精确控制时间,并将当前时间显示在LED上。
同时,为了使得LED的亮度更好,还可以在程序中加入占空比的调节函数。
3.3 闹钟功能的实现闹钟功能是实现数字电子钟的一个重要功能。
基于单片机的数字电子时钟设计
基于单片机的数字电子时钟设计数字电子时钟是一种非常常见的电子产品,它可以帮助我们实现精确的时间显示,让我们的生活更加方便。
随着科技的不断发展,数字电子时钟也在不断更新和发展,基于单片机的数字电子时钟已经成为当前最先进的技术之一。
本文将介绍基于单片机的数字电子时钟的设计原理和实现方法。
一、数字电子时钟的设计原理数字电子时钟的实现原理就是把时间信号转换成数字信号,再通过计算机芯片来显示时间。
其中,时间信号可以是电缆信号或者无线信号,并且也可以通过外部的控制电路进行调节。
而计算机芯片可以采用单片机、PLC控制器等方案进行设计。
基于单片机的数字电子时钟,可以使用数字时钟芯片和定时器芯片来完成。
数字时钟芯片是一种能够实现数据的统计、时钟显示等功能的IC芯片,通过将其与定时器芯片相连,就能够实现精确的时间统计和显示。
此外,在设计时还需要进行软硬件电路的优化和调试。
二、基于单片机的数字电子时钟的实现方法1、硬件设计基于单片机的数字电子时钟的硬件设计,主要包含单片机控制电路、显示电路、外设接口电路、供电电路、时钟芯片和定时器芯片等部分。
其中,时钟芯片用于提供精准的时间信号,定时器芯片则用于进行计时,而单片机和外设接口电路则用于控制整个数字电子时钟的功能。
另外,数字电子时钟还需要进行外观设计,通常采用的是数码管或液晶屏幕显示时间。
通过优化电路布局和参数匹配,可以有效地提高整个数字电子时钟的稳定性和精度。
2、软件设计在数字电子时钟的软件设计中,主要包含固件设计和操作系统设计两部分。
固件设计是指对单片机系统进行程序编写、调试和优化,以实现时钟的各种功能;而操作系统设计,则是对固件进行封装,建立起一套完整的操作环境,方便用户进行操作。
在固件设计中,需要考虑到时钟的显示、调节、闹钟、定时等多种功能的实现。
通常,这些功能都会涉及到多个模块和数据结构的设计,需要通过循序渐进的方式逐步实现。
在操作系统设计中,需要对时钟的各种操作进行封装,形成一套完整的操作界面。
基于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 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
基于单片机的数字钟毕业设计(附程序全)
基于单片机的数字钟毕业设计(附程序全) 电子时钟设计随着现代人类生活节奏的加快,人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以以数码管为显示器的时钟比指针式的时钟表现出了很大的优势。
数码管显示的时间简单明了而且读数快、时间准确性更高~数字钟是采用数字电路实现对“时”、“分”、“秒”数字显示的计时装置。
数字钟的精度、稳定度远远超过老式机械钟。
在这次设计中,我们采用LED数码管显示时、分、秒,以24小时计时方式,根据数码管动态显示原理来进行显示,用12MHz的晶振产生振荡脉冲,并且由单片机的定时器计数。
在此次设计中,电路具有显示时间的其本功能,还可以实现对时间的调整。
数字钟是其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,因此得到了广泛的使用。
关键词:数字钟;单片机;数码管;时间;准确性1目录第一章绪论1. 数字电子钟的意义和应用…………………………………………………………………… 3 第二章整体设计方案2.1 单片机的选择…………………………………………………………………………… 3 2.2 单片机的基本结构……………………………………………………………………… 5 第三章数字钟的硬件设计3.1 最小系统设计…………………………………………………………………………… 9 3.2 LED显示电路…………………………………………………………………………… 12 3.3 键盘控制电路…………………………………………………………………………… 14 第四章数字钟的软件设计4.1 系统软件设计流程图…………………………………………………………………… 15 4.2 数字电子钟的原理图…………………………………………………………………… 18 4.3 主程序…………………………………………………………………………………… 19 4.4 时钟设置子程序………………………………………………………………………… 20 4.5 定时器中断子程序……………………………………………………………………… 20 4.6 LED显示子程序………………………………………………………………………… 21 4.7 按键控制子程序………………………………………………………………………… 23 第五章系统仿真5.1 PROTUES软件介绍................................................................................. 24 5.2 电子钟系统PROTUES仿真........................................................................ 24 结束语. (2)5 参考文献 (26)2第一章绪论1.数字电子钟的意义和应用数字钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
基于单片机的数字钟的设计--毕业设计(论文)
毕业设计(论文)题目:基于单片机的数字钟的设计学院:自动化学院专业:自动化起止时间:2010年 3月 21日至2010年 6月 25日摘要这次毕业设计通过对单片机的学习、应用,以AT89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它主要通过DP-51PROC单片机综合仿真实验仪实现,通过数码管能够准确显示时间,调整时间,它的计时周期为24小时,从而到达学习、设计、开发软、硬件的能力。
主要实现功能为显示时间,时间校准调时(采用手动按键调时),闹铃功能(设置定时时间,到点后闹铃发出响声)。
通过键盘可以进行校时、定时。
闹铃功能使用I/O 口定时翻转电平驱动的无源蜂鸣器。
本文主要介绍了工作原理及调试过程。
关键词:单片机电子时钟单片机综合仿真实验仪AbstractThe MCU through graduation learning applications to AT89S51 chip as the core, supplemented by the necessary circuitry to design a simple electronic clock, it is mainly through the DP-51PROC Single Chip Experimental Device to achieve, through the digital control can be accurately show time, adjustment time, it's time period is 24 hours, so get to learn, design, development hardware and software capabilities. Main achieved function to show time, the time when calibration transfer (using the manual button adjustment time), alarm clock (set the regular time, the point to issue after the alarm sound). When the keyboard can be school, regularly. Alarm clock using the I / O port level drivers regularly turn passive buzzer.This paper describes the working principle and the debugging process.Keywords:MCU electronics clock DP-51PROC目录摘要 (2)Abstract (3)第一章概述 (5)第二章方案论证与比较 (6)2.1数字时钟方案 (6)2.2数码管显示方案 (6)2.3闹铃方案 (6)2.4校准方案 (7)第三章系统设计 (7)3.1总体设计 (7)3.1.1系统说明 (7)3.2模块设计 (7)3.2.1电源部分 (8)3.2.2复位电路 (8)3.2.3程序下载接口 (8)3.2.4位选部分 (9)3.2.5数码管的连接电路 (9)3.2.6控制部分 (10)3.2.7蜂鸣器驱动电路 (11)第四章原理 (12)4.1系统总体方案选择与说明 (12)4.2工作原理 (13)4.3各单元硬件设计说明及计算方法 (14)4.4软件设计与说明 (14)第五章软件设计 (15)5.1主程序流程 (15)5.2闹铃程序..................................................................................................... 错误!未定义书签。
基于单片机的数字时钟
目录1 设计任务与要求 (1)2 设计方案 (2)3 硬件设计 (3)3.1单片机型号的选择 (3)3.2数码管显示工作原理 (3)3.3键盘电路设计 (4)3.4整个电路原理图 (5)4 软件设计 (6)4.1程序流程图 (6)4.2程序设计 (8)4.3仿真结果 (12)4.4仿真结果分析 (13)5 小结 (14)6 附录 (15)7参考文献 (24)1 设计任务与要求1. 设计一个基于单片机的电子时钟,并且能够实现时分秒的现实和调节。
2. 设计出硬件电路。
3. 设计出软件编程方法,并写出源代码。
4. 用PROTEUS进行仿真。
5.用汇方式实现目的。
7.系统的各各功能模块要编语言编实现程序设计。
6.利用查表,中断等清楚,有序。
8.程序运行时有友好的用户界面。
本设计主要设计了一个基于AT89C51单片机的电子时钟。
并在数码管上显示相应的时间。
并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。
应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
该设计的硬件部分主要包括89C51多功能接口芯片用于开发电子时钟芯片、LED 七段数码显示器用于显示时间、8031集成定时器用于定时、0.125W、8欧姆的扬声器用于定时发声。
软件部分包括主程序、定时计数中断程序、时间调整程序、延时程序四大模块。
通过中断程序进行定时器计数,时间调整程序是当键按下时间小于1秒,关闭显示(省电)进入调节时间状态,延时程序用于时间的延迟。
先设计个秒钟程序,在秒钟程序中先不设计按钮,直接通电运行,使用40H存放计数值,从00—59,一直循环,把40H中的数值拆分成个位和十位,分别存在30H与31H中,要求动态扫描时,使用21H当标志位,用指令JB控制显示个位与十位,程序中使用中间寄存器R0与R1用于存放拆分后的字型,再传到30H与31H中去,再设计时钟程序。
3.1 单片机型号的选择通过对多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。
开题报告-基于单片机的数字钟设计
一、选题的依据及意义(一)选题依据随着人类生活水平的提高,身边的电子产品越来越多,例如无人不知无人不晓的手机,电脑,家电等,而且我们对这些电子产品也是越来越依赖。
与此同时,人们的生活变得越来越忙碌,俗话说的好,时间就是金钱。
在竞争如此激烈的世界,合理安排好自己的工作和休息时间也就变得非常重要,所以我们需要有个自动计时的电子产品—数字时钟。
随着科技的不断提升,数字时钟不仅仅是应用在我们日常接触到的手表、手机、计算机当中,其实它还渗透在各个领域,诸如每个学校都需要用到的全自动响铃器、定时自动报警器、乘车唤醒器、以及娱乐场所经常用到的定时开关等。
另外,在制作方面,电子钟从原始的纯硬件电路转变为了软硬件结合。
而单片机开发工具具有很强的软硬件调试功能,加上它现场运行环境的可靠性,改变了最早机械钟的笨重,成为体积小、功耗小、功能多、精度高、性价比高的电子时钟。
不过,为了我国国防、航空、工业、医学等科技领域的快速发展,数字时钟作为这些科技不可缺少的一部分,就必须对数字钟进行改造,使现代的时钟不仅体积小,携带方便;还需要在款式方面和功能对其进行改进,让其不仅是受广大群众欢迎的产品,同时也是壮大我国科技好帮手。
所以,随着电子行业的不断更新,现代数字钟的计时部分是数字电路的一个典型应用,其原理是电信号经过分频器得到相应的秒脉冲,时计数器为24进制,分秒计数器都是60进制。
三个计数器的输出则经过译码器传送到数码管中,最终显示出精准的结果。
所以,美观、多功能化、寿命长的产品都很容易让大家所接受。
之所以选择用单片基的原理来完成此次毕业设计是因为单片机具有较高的性价比、体积小、可靠性高、控制功能强、使用也比较方便,容易产品化等特点。
同时,随着当今世界微控制技术的不断完善和发展,以及自动化程度的日益提高,单片机的应用正在导致传统的人工控制技术发生天翻地覆的变化。
在单片机模块中,最常见的就是数字钟,本次的毕业设计就是为了研究数字时钟的原理,利用所学过的单片机的的最小应用系统及其强大的系统扩展能力,设计出多功能数字钟的电路结构,利用protues软件绘制出原理图进行仿真,成功之后再在protel软件平台上画出原理图并进行PCB板块的制作,最后制作出实物,进行调试。
基于单片机的数字钟电子钟设计
目录一概述 (1)1.1 数字钟简介 (1)1.2 数字钟的发展前景 (2)1.3 51 单片机 (3)1.4 汇编语言 (3)二课题设计功能要求及总体方案 (4)2.1 功能要求 (4)2.2 设计总体方案介绍 (4)三数字电子钟硬件系统的设计 (6)3.1芯片介绍 (6)3.2 硬件系统各模块功能简要介绍 (10)3.3 数字钟原理图 (11)四数字电子钟软件系统的设计 (12)4.1 数字电子钟使用单片机资源情况 (12)4.2 数字电子钟软件系统各模块功能简要介绍 (12)4.3 数字钟软件系统程序流程框图 (13)4.3.1 主程序流程框图 (13)4.3.2 键扫描子程序流程框图 (14)4.3.3 显示子程序流程框图 (15)4.3.4 加1子程序流程图 (16)4.3.5 中断服务子程序流程图 (16)五仿真与误差分析 (18)5.1 数字电子钟的设计结论及使用说明 (18)5.2 设计课题的仿真结果 (18)5.3 设计课题的误差分析 (20)心得 (21)参考文献 (22)致谢 (23)附录 (24)1硬件原理图 (24)2仿真电路图 (25)3数字电子钟程序清单 (26)摘要:数字钟广泛应用于生活生产中,对其深入了解很有必要,在此用单片机设计了一个简单的数字电子钟。
本设计为基于AT89S52单片机,辅以必要的外围电路,用自制单片机实验板设计了一个简单的数字电子时钟。
在硬件方面,除了单片机外,用数码管来进行显示,LED采用动态扫描显示。
通过LED能够比较准确显示时、分、秒,三个简单的按键实现对时间的调整。
软件方面采用A51汇编语言编程。
整个电子钟系统能完成时间的显示,调时,调分,调秒,复位功能。
本次设计的电子钟带采用独立式键盘,用共阳数码管显示,因为LED亮度较高,显示醒目所以此电子钟在部分场所推广很大。
关键词数字电子钟;AT89S52;汇编语言ABSTRACT: Widely used in digital electronic clock production life, its understanding is necessary, in this single chip design with a simple digital electronic clock.AT89S52 microcontroller based on the design, combined with the necessary peripheral circuits, a simple digital electronic clock. On the hardware side, in addition to SCM, the use of digital control for display, LED display using dynamic scanning. Can accurately through the LED display hours, minutes, seconds, three simple buttons to adjust the time to achieve. Software exchange with A51。
基于单片机的数字钟设计-(1).
基于单片机的数字钟设计-(1).基于单片机的数字时钟摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。
通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。
关键词:数字钟,单片机,数码管AbstractAuthor:cheng dongTutor:wang xinElectronic technology has been developed rapidly in the 20 century,with its modern electronic products, pushed by almost permeated every area of society has vigorously promoted social productive forces development and improvement of social informatization level, also make modern electronic product performance further improved, and the rhythm of upgrade its products is becoming more and more quickly.The most common SCM module is a digital clock, a digital clock is a kind of digital circuit technology implementation, minutes and seconds, the timing device with mechanical clock compared with higher accuracy and intuitive and no mechanical device, has more longer service life, so it has been widely used.This topic research is the digital clock design based on SCM, AT89C51 SCM as the main control chip system, external LED display circuit, key circuits, crystals circuit, reset circuit module constitute a simple digital clock. Through the key circuits can respectively the diffculties, minutes and seconds setting and real-time adjustment, and the result showed that in the digital tube.Key words: digital clock SCM ; digital目录1 引言 (3)2 单片机介绍 (5)3 数字钟硬件设计 (6)3.1 系统方案的确定 (6)3.2功能分析 (7)3.3数字钟设计原理 (7)3.3.1晶振电路 (8)3.3.2复位电路 (9)3.3.3数码显示电路 (10)4.数字钟的软件设计 (12)4.1程序设计内容 (12)4.2 系统设计流程图 (12)4.2.1主程序流程 (12)4.2.2定时器中断流程 (13)4.2.3时间显示流程图 (15)5.系统调试 (16)5.1 Keil C51软件环境简介 (16)5.2 Proteus软件环境简介 (18)5.3 数字钟系统PROTEUS仿真调试结果 (19)参考文献 (21)致谢 (22)内蒙古大学鄂尔多斯学院12级电子信息科学与技术学年论文附录 (25)元件列表 (25)源程序 (26)1 引言在单片机技术日趋成熟的今天,其灵活的硬件电路和软件电路的设计,让单片机得到广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。
基于单片机的多功能数字钟的设计
一、概述现代社会,时间被视为人们生活的重要组成部分。
而数字钟作为时间的一种展现形式,已经成为人们生活中不可或缺的一部分。
基于单片机的多功能数字钟设计,将为人们提供更加准确、便捷、多功能的时间展现方式,满足人们对时间的精准要求,同时也为人们的生活带来更多便利。
二、设计目标1. 实现精准的时间显示功能,包括时、分、秒的显示;2. 实现对日期的显示,包括年、月、日的显示;3. 实现多种报时功能,如定时报时、闹钟报时等;4. 实现多种显示效果,如渐变显示、闪烁显示等;5. 实现对时间的调整功能,包括校时、调整日期等;6. 实现对亮度的调节功能,适应不同环境下的使用需求。
三、设计思路1. 硬件设计1.1 硬件采用单片机作为核心控制器,通过外部晶振提供时钟信号;1.2 采用数码管作为显示设备,通过单片机控制数码管进行时间、日期的显示;1.3 通过按钮、旋钮等输入设备,实现时间调节、报时设置等操作;1.4 通过EEPROM等存储设备,实现时间、设置的存储和读取功能;1.5 通过光敏电阻等光敏传感器,实现对环境光强的检测,调节数码管显示亮度。
2. 软件设计2.1 设计合理的时钟系统,确保时间的准确显示;2.2 设计报时功能模块,实现定时报时、闹钟报时等功能;2.3 设计显示控制模块,实现数字、日期的显示效果控制;2.4 设计操作响应模块,实现对按钮、旋钮等输入设备的操作响应;2.5 设计存储管理模块,实现时间、设置数据的存储和读取功能;2.6 设计光敏控制模块,实现对数码管显示亮度的实时调节。
四、实现方法1. 硬件设计1.1 选择合适的单片机作为核心控制器,根据需要进行外围电路的设计;1.2 选择合适的数码管作为显示设备,设计驱动电路以及显示控制电路;1.3 选择合适的按钮、旋钮等输入设备,设计输入电路以及操作响应电路;1.4 选择合适的EEPROM芯片,设计存储管理电路实现数据的存储和读取;1.5 选择合适的光敏电阻或光敏二极管,设计光敏控制电路实现显示亮度的调节。
基于单片机的数字时钟课程设计
目录第一章选题背景 (2)第二章课程设计说明 (3)1.1课程设计目的 (3)1.2 课程设计要求 (3)第三章系统方案与总体结构 (4)第四章数字时钟硬件构成 (5)4.1 数字时钟框图设计 (5)4.2 选用芯片简介 ......................................... 错误!未定义书签。
4.2.1 80C51简介 .................................... 错误!未定义书签。
4.2.2 BCD 7段译码74LS47简介.......... 错误!未定义书签。
4.2.3 3-8线译码器74LS138简介........ 错误!未定义书签。
4.2.4 LED数码显示器简介 .................... 错误!未定义书签。
4.3数字时钟工作原理图 (5)4.3.1 数字时钟电路总图 (5)4.3.2 复位电路原理图 (6)4.3.3 按键电路原理图 (7)4.3.4 时钟电路原理图 (7)4.3.5 LED数码管硬件电路原理图 (7)第五章数字时钟软件设计 (8)第六章数字时钟汇编程序 (11)第七章心得体会 (19)参考文献 (20)第一章选题背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
基于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程序流程图三、实验分析与体会(一)实验分析我们通过软硬结合的方法调试系统。
在电脑上使用星研编译器,进行程序的编程和编译,发现很多语法和逻辑的错误。
通过这个编译器可以很好的发现并解决问题,程序调试完毕,编译没问题后,进行测试,并分析程序,直到完成要求为止。
本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率,定时器溢出误差、延迟误差。
课程设计实验报告基于单片机的数字时钟设计
绪论随着时代的进步和发展,单片机技术已经普及到生活、工作、科研等各个领域,已经成为一种比较成熟的技术。
本文将介绍一种基于单片机控制的数字温度计和数字钟,本数字温度计属于多功能温度计,可以任意设置温度的上下限报警功能,当温度不在设定范围内时,可以报警;本数字钟可以同步显示时间日历,日期和时间都可通过按键校整。
本系统采用的DS1302可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
本系统显示部分采用LCD液晶显示屏显示,工作方便,外形美观一、方案设计本项目拟设计基于单片机的数字时钟和数字温度计,并将时间和温度显示在液晶显示器上。
本系统由主控模块、时钟模块、显示模块、测温模块共4个模块组成。
主控芯片使用89系列的AT89C52单片机。
时钟芯片使用DS1302,DS1302做为计时芯片,可以做到及时准确。
DS1302可以在很小电流的后备电源(2.5~5.5V电源,在2.5V时耗小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。
测温模块采用DS18B20,具有测温准确,测温范围宽,电路简单的优点。
显示模块采用液晶显示屏LCD1602,LCD1602电路简单,功耗低,显示信息量大,显示质量高,显示界面美观、友好。
1、主控制器的选择ATmega16是AVR系列中的一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准AVR指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的ATmega16单片机可为您提供许多较复杂系统控制应用场合。
另外,在校期间所涉及到也主要是MCS-51系列单片机,对于其内部功能和指令系统较为熟悉,能在较为短的项目内完成项目的设计和验证。
2、时钟功能的实现时钟功能的实现有两种方案:一是用软件实现,直接用单片机的定时器编程以实现时钟;二是用专门的时钟芯片实现时钟的记时,再把时间数据送入单片机,由单片机控制显示。
基于单片机的数字钟的设计
2007~2008学年第2学期毕业设计(论文)课题基于单片机的数字钟的设计姓名臧晓亮系部机电工程系专业机电一体化技术班级05机电(1)班学号056210110 指导教师徐良雄武汉交通职业学院教务处制武汉交通职业学院毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
本人完全意识到本声明的法律后果由本人承担。
作者签名:臧晓亮2008年4 月10 日目录摘要 (I)关键词 (I)1前言 (1)1.1单片机简介 (1)1.1.1分类 (1)1.1.2发展状况 (1)1.1.3应用前景 (4)1.2LED数码管简介 (4)1.3译码器简介 (5)2系统设计方案 (6)2.1单片机的基本原理 (6)2.2单片机型号的选择 (7)2.3译码器原理 (7)2.4硬件电路图及其原理说明 (9)3程序详细设计 (11)3.1程序流程图 (11)3.2程序清单 (13)3.3硬件电路元件明细表 (19)3.4调试结果说明 (19)4小结 (20)参考文献 (21)致谢 (22)基于单片机的数字时钟设计摘要:单片机数字时钟是以单片机为核心,在它的基础上设计出来的数字时钟数字钟.,在日常生活中最常见,应用也最广泛。
本论文的数字钟,以80C51单片机为核心,配备LED显示模块、时钟芯片、等功能模块。
数字钟采用12/24小时制方式显示时间,定时信息等功能。
文章的核心主要从硬件设计和软件编程两个大的方面。
硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成,为了用电池作电源,采用低功耗的CMOS芯片及LED显示器.软件用汇编语言来实现。
其中本论文最大特点就是采用拉蜂鸣器来做提醒,使人不仅仅是通过视觉来感受单片机数字时钟带来的方便!关键词:单片机;LED显示器;数字钟;汇编语言;1 前言1.1 单片机简介在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。
基于单片机的数字时钟的设计
摘要多功能数字钟的应用非常普遍,由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。
通过键盘可以进行校时、定时等功能。
输出设备显示器可以用LED显示技术来显示技术。
本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件,以蜂鸣器实现闹钟,同时采用LED动态显示“时”,“分”,“秒”的现代计时装置。
另外具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
简要介绍了LED显示的发展状况和其所特有的优势,简述了该系统中一些重要芯片的基本工作原理,着重论述了硬件线路各个模块的设计思想。
LED显示与单片机的接口采用动态显示技术,利用了时钟芯片的系统自带电池功能来实现断电时保存一些重要数据,以便来电时正确显示信息的功能。
模块化的设计和调试方法在整个课题研究过程中至关重要,事实上在任何设计中也同样关键和有效。
关键词:数字钟系统;单片机; LED显示;蜂鸣器Graduation design based on SCM digital clockYang yaboAbstractMulti-function digital clock is very common, by single chip microcomputer as the core of the digital clock controller, through its function of timing clock signal, the time data by the MCU output, using the monitor display. Through the keyboard to school, timing, etc. Output devices display can use the LED display technology to display technology.This system USES single chip microcomputer to realize digital clock with timing, when the school and other functions, is based on single chip microcomputer AT89C51 as the core element, with a buzzer alarm clock, and USES the LED dynamic display "when", "points", "second" modern timing devices. Also has the function of the school when, stopwatch functions, and timer function, using the single chip microcomputer implementation of digital clock with flexible programming, function expansion conveviently.This paper briefly introduces the development of LED display and its peculiar advantage, this paper expounds some important chip in this system the basic working principle, mainly discusses the hardware circuit design of each module. LED display and single chip microcomputer interface dynamic display technology, using the function of clock chip system comes with battery power to implement save some important data, in order to call the right shows the function of information.Modular design and debug method is of vital importance in the whole research process, in fact is also the key in any design and effective.Keywords:Digital clock system; Single chip microcomputer; LED display. buzzer目录1绪论 (1)2系统总体设计方案 (2)2.1系统功能实现总体设计思路 (2)2.1.1方案选择 (2)3硬件设计 (3)3.1 AT89C51简介 (3)3.1.1 AT89C51主要性能参数 (4)3.1.2 AT89C51单片机的功能特性概述 (4)3.2 LED数码管 (7)3.2.1 LED显示器的结构 (8)3.2.2LED的接线形式 (8)3.3键盘电路设计 (8)3.4硬件设计总体框图 (9)4软件设计 (11)4.1主程序流程图 (11)4.2总中断程序流程 (11)5毕业设计结果仿真 (16)5.1时钟运行时仿真图 (16)5.2秒表记时仿真图 (17)5.3闹钟运行仿真图 (17)总结 (19)参考文献 (20)附录 A (21)致谢 (31)1绪论随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。
基于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.连接单片机和计算机串接................................................................... ................13 6.2.3实施过程................................................................... ..................................................................... . (14)6.3测试结果187 实验总结 (18)7.1代码编写过程中出现问题................................................................... . (18)7.2整个实验过程的体会................................................................... (19)7.3实验误差分析。
基于单片机的数字时钟设计1
基于单⽚机的数字时钟设计1毕业论⽂基于单⽚机的数字时钟设计专业名称:班级:学⽣姓名:指导教师:完成时间:摘要单⽚机因将其主要组成部分集成在⼀个芯⽚上⽽得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接⼝电路等部件集成在⼀个芯⽚上。
基于单⽚机设计的数字钟精确度较⾼,因为在程序的执⾏过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。
本设计使⽤12MHZ晶振与单⽚机AT89C51相连接,以AT89C51芯⽚为核⼼,采⽤动态扫描⽅式显⽰,通过使⽤该单⽚机,加之在显⽰电路部分使⽤7407驱动电路,实现在6个LED数码管上显⽰⽇期、时间、定时、闹铃,通过6个按键实现设置⽇期、进⾏调时、设定闹铃、倒计时等功能,在实现各功能时数码管进⾏相应显⽰,闹铃或定时时间到时蜂鸣器响,按下闹铃键或定时键时,声⾳停⽌。
软件部分⽤汇编实现,分为显⽰、延迟、调时、闹铃、定时、调整⽇期等部分。
通过软硬件结合达到最终⽬的。
关键词:电⼦钟; 单⽚机; 动态扫描; 汇编语⾔AbstractBecause of its main microcontroller component integrated in a chip named, is the MCU, ram and ROM, interrupt system, timer/counter and I/O interface circuit and other parts in a singl e chip int egrated.This design uses a 12 MHZ crystal to connect with the machine AT89C51, takes AT89C51 chips as core. It adopts the dynamic state of the scanning method to show. Using this MCU and 7407 drive electric circuit, we are able to show date, time, fix the time, and make bell on 6 LED figures tubes. We can use 6 key to constitute date, adjust time, enact the bell and set the countdown timer. When the electric carrying out each function, the figures tube shows the tight function .When the alarm clock and the countdown timer were reached, the voice begins. While 3 or 4 is pressed, the voice stops. The software part is realized by assembler language. It was divided into to show, delay, adjust, make bell, in fixed time, and adjust date etc. part. We get the end purpose combining the software and the hardware.Keywords:Electric clock; MCU; Dynamic state scanning ;Assembler language⽬录1 引⾔ (1)2整体设计思路 (2)3 主要元件的使⽤⽅法 (4)3.1 AT89C51单⽚机 (4)3.2 7407驱动器 (5)3.3数码管 (6)4 电路设计 (7)4.1整体设计 (7)4.2 分块设计 (7)4.2.1 输⼊部分 (8)4.2.2 输出部分(显⽰电路) (8)4.2.3 晶振与复位电路: (9)5 程序设计 (10)5.1程序思路 (10)5.2程序设计步骤 (11)5.3程序的主要模块 (12)5.3.1延迟程序 (12)5.3.2 中断服务⼦程序 (12)5.3.3 主程序 (15)5.3.4显⽰程序 (16)5.3.5 闹铃程序和定时程序 (17)5.4程序调试 (17)6 功能仿真 (17)6.1 软件介绍 (18)6.2仿真过程: (18)6.2.1仿真图的绘制 (18)6.2.2功能的实现 (19)7 ⽇历功能的实现 (21)附录完整程序 (27)参考⽂献 (42)基于单⽚机的数字时钟设计1 引⾔单⽚机因将其主要组成部分集成在⼀个芯⽚上⽽得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O 接⼝电路等部件集成在⼀个芯⽚上。
基于单片机的数字钟设计
DOI:10.19551/j.cnki.issn1672-9129.2019.16.046基于单片机的数字钟设计于 莉(河南理工大学电气工程与自动化学院 焦作 454000)摘要:随着系统设计要求和复杂程度的不断提高,传统时钟系统已经很难满足应用需求。
本文介绍一款基于单片机的数字钟设计,该设计给出了以AT89C52单片机为核心,采用外接LED显示屏和集成按键的形式,具有高精度、可拓展的特点,具有广泛的应用性。
关键词:单片机;数字钟;数字闹钟中图分类号:TH714 文献标识码:A 文章编号:1672-9129(2019)16-0049-01Abstract:withtheimprovementofsystemdesignrequirementsandcomplexity,thetraditionalclocksystemhasbeendifficulttomeettheapplicationrequirements.Thispaperintroducesadigitalclockdesignbasedonsinglechipmicrocomputer,thedesigngivesthecoreofAT89C52singlechipmicrocomputer,theuseofexternalLEDdisplayscreenandintegratedkeysform,withhighprecision,ex pandablecharacteristics,withawiderangeofapplications.Keywordst:SCM;Digitalclock.Digitalalarmclock 1 总体方案设计数字钟系统的设计是以单片机AT89C52作为核心元件,利用6位7段共阴LED作为显示器件,通过连接LED的位选和段选电路来显示当前时间的时、分和秒六位数字,单片机外围接有调时设置电路,定时闹钟电路,可以来调整当前时间和设置闹钟时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的数字时钟摘要20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
本课题主要研究的是基于单片机的数字钟设计,采用AT89C51单片机作为系统的主控芯片,外接LED显示电路,按键电路,晶振电路,复位电路模块构成一个简单的数字钟。
通过按键电路能对时、分、秒分别进行设置和实时调整,并将结果显示在数码管上。
关键词:数字钟,单片机,数码管AbstractAuthor:cheng dongTutor:wang xin Electronic technology has been developed rapidly in the 20 century,with its modern electronic products, pushed by almost permeated every area of society has vigorously promoted social productive forces development and improvement of social informatization level, also make modern electronic product performance further improved, and the rhythm of upgrade its products is becoming more and more quickly.The most common SCM module is a digital clock, a digital clock is a kind of digital circuit technology implementation, minutes and seconds, the timing device with mechanical clock compared with higher accuracy and intuitive and no mechanical device, has more longer service life, so it has been widely used.This topic research is the digital clock design based on SCM, AT89C51 SCM as the main control chip system, external LED display circuit, key circuits, crystals circuit, reset circuit module constitute a simple digital clock. Through the key circuits can respectively the diffculties, minutes and seconds setting and real-time adjustment, and the result showed that in the digital tube.Key words:digital clock SCM ; digital目录1 引言 (3)2 单片机介绍 (4)3 数字钟硬件设计 (5)3.1 系统方案的确定 (5)3.2功能分析 (5)3.3数字钟设计原理 (5)3.3.1晶振电路 (6)3.3.2复位电路 (7)3.3.3数码显示电路 (7)4.数字钟的软件设计 (9)4.1程序设计容 (9)4.2 系统设计流程图 (9)4.2.1主程序流程 (9)4.2.2定时器中断流程 (10)4.2.3时间显示流程图 (11)5.系统调试 (12)5.1 Keil C51软件环境简介 (12)5.2 Proteus软件环境简介 (12)5.3 数字钟系统PROTEUS仿真调试结果 (13)参考文献 (15)致 (15)附录 (16)元件列表 (17)源程序 (17)1 引言在单片机技术日趋成熟的今天,其灵活的硬件电路和软件电路的设计,让单片机得到广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。
单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。
基于单片机的定时和控制装置在许多行业有着广泛的应用,而数字钟是其中最基本的,也是最具有代表性的一个例子,用数字电路实现对时、分、秒数字显示的计时装置。
因为机具有体积小、功耗低、功能强、性价比高、易于推广应用的优点,在自动化装置、智能仪器表、过程控制、通信、家用电器等许多领域得到日益广泛的应用,因此具有很大的研究价值。
2 单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。
单片机主要有如下特点:(1)性价比高;(2)集成度高、体积小、可靠性强。
机把各功能部件集成在一块芯片上,部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作;(3)控制功能强;(4)功耗小、电压低、便于生产的携式产品。
;(5)外部总线采用串行总线连接,以此缩小了体积;(6)单片机的系统扩展和系统配置典型、规,容易构成各种规模的应用系统。
3 数字钟硬件设计3.1 系统方案的确定硬件电路是一个系统的重要部分,在本次设计中主要是以AT89C51为核心控制器,外加一些控制电路来实现数字钟的基本功能。
单片机芯片作为控制系统的核心部件,它除了具备微机CPU 的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制,外围控制电路主要包括晶振电路模块、复位电路模块、按键电路模块以及数码管显示电路模块,通过这些控制电路的连接构成完整的电路,其结构框图如图3.1所示。
图3.1 数字钟系统结构图 3.2功能分析1.准确计时,以数字形式显示时、分的时间;2. 小时的计时为24小时制,分和秒的计时要求为60进位;3.四位数码管 显示HH-MM(时分), 4.晶振电路起到减小误差,提高精确度的作用;5.复位电路是对单片机的初始化操作。
3.3数字钟设计原理数字钟的实现一般有两种方法:其一是直接用单片机的定时计数器产生固定时间,这种方法的优点是可以省去一些外围的芯片,其缺点是只能适用于一些要求不是十分精确、不作长期保留的场合;而对于要求较高的场合,则必须选用专用的芯片,本设计采用的是第一种方法。
直接用单片机的定时计数器产生固定时间,这种方法的工作原理是利用单片机芯片的定时器产生固定时间,模拟时钟的时、分、秒。
基于这一原理构成的数字钟系统主要由以下几部分组成:89C51单片机控制器电路, 4位数码管显示电路,复位电路,晶振电路四部分构成。
其工作原理电路图如图3.3所示。
图3.3 数字钟设计原理图3.3.1晶振电路晶振的全称叫晶体振荡器,它在单片机系统里作用非常大,主要作用是产生单片机所需的时钟频率,单片机执行程序所需的时间完全取决于单片机晶振所提供的时钟频率,时钟频率越高,那么单片机运行速度就越快。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定围调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
晶振电路如图3.3.1所示。
图3.3.1 晶振电路3.3.2复位电路复位是单片机的初始化操作。
单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。
因而,复位是一个很重要的操作方式。
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作:07H写入堆栈指针SP,P0口—P3口均置1,程序计数器PC和其他特殊功能寄存器SFR全部清零。
只要RST持续为高电平,单片机就处于循环复位状态。
单片机的复位方式有上电自动复位和手工复位两种,本设计采用的是手动复位方式,其电路图如图3.3.2所示。
图3.3.2 复位电路3.3.3数码显示电路发光二极管显示器驱动(点亮)的方法有两种。
一种是静态驱动法,即给欲点亮的LED通以恒定的定流。
这种驱动方法要有寄存器,译码器,驱动电路等逻辑部件。
当需要显示的位数增加时,所需的逻辑部件及连线也相应增加,成本也增加。
另一种是动态驱动方法,这种方法是给欲点亮的LED通过通以电流,此时LED的亮度是通断的平均亮度。
为保证亮度,通过LED的脉冲电流应数倍于其额定电流值。
利用动态驱动法可以减少需要的逻辑部件和连线,单片机应用系统中常采用动态驱动法。
数码管有两种接法即共阳极接法和共阴极接法。
所谓共阳共阴,是针对数码管的公共脚而言的。
一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。
共阳指的是公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。
共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮,本次设计选择共阴极数码管,其中有4位显示“时”,“分”,,数码管A~DP 接单片机P0端口用于段选,1~4接单片机P2端口用于位选。
4位共阴极LED数码显示电路如图3.3.3所示。
图3.3.3 八位8段共阴极LED数码显示4.数字钟的软件设计4.1程序设计容单片机软件设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。
设计步骤如下所示。
1. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;2. 根据流程图,编写源程序;3. 上机调试各模块程序;4. 与硬件一起联调,最后完成全部调试工作。