单片机可调时钟课程设计报告(C语言)

合集下载

单片机闹钟设计程序报告

单片机闹钟设计程序报告

单片机闹钟设计程序报告1. 引言闹钟作为人们日常生活中的常用物品,不仅有叫醒人们起床的功能,还可以作为提醒的工具。

随着科技的进步,单片机闹钟逐渐取代了传统的机械闹钟,成为人们生活中不可或缺的一部分。

本报告旨在介绍一个基于单片机的简单闹钟设计程序。

2. 设计方案本设计方案使用了单片机和数码管作为主要硬件,通过对单片机的编程,实现了闹钟的基本功能,包括时间设置、闹钟时间设置、闹钟触发、蜂鸣器报警等。

2.1 硬件设计硬件方面,本设计基于某型号的单片机和数码管。

单片机通过相关的引脚与数码管相连,通过控制引脚的电平来显示不同的数字。

2.2 软件设计软件方面,本设计使用C语言编程实现。

主要的功能包括获取当前时间、显示时间、设置时间、设置闹钟时间、闹钟触发检测、蜂鸣器报警等。

3. 程序实现3.1 初始化设置在程序的开始部分,需要对单片机进行初始化设置。

包括设置引脚的输入输出模式、设置计时器、设置中断等。

3.2 时间显示为了实现时间显示的功能,我们需要通过单片机的计时器来不断获取当前时间,并将其转换为时、分、秒的格式。

然后通过数码管显示出来。

3.3 时间设置通过给单片机的某个引脚接入按钮,实现时间设置功能。

当按钮被按下时,单片机进入时间设置模式。

此时,用户可以通过另外的按钮来逐个调整时、分、秒的数值。

3.4 闹钟时间设置类似于时间设置,闹钟时间设置也需要通过按钮来实现。

用户可以按下对应的按钮来设置闹钟的时、分,设置完毕后,单片机会将设置的时间保存起来。

3.5 闹钟触发检测在每一次时间显示的循环中,程序都会检测当前时间是否与闹钟时间相符。

如果相符,则触发闹钟,蜂鸣器开始报警。

3.6 蜂鸣器报警通过单片机的一个输出引脚,连接到蜂鸣器,实现蜂鸣器的报警功能。

当闹钟触发时,单片机会给对应的引脚输出一个高电平,从而使蜂鸣器发声。

4. 总结通过对单片机闹钟设计程序的实现,我们成功实现了闹钟的基本功能,包括时间设置、闹钟时间设置、闹钟触发、蜂鸣器报警等。

C语言数字钟(单片机)

C语言数字钟(单片机)

Fax:86-0731-******* Mail:dsc52@ Web: 源点教育项目报告一、功能要求:(1)、电路图对学员要求是一样,完整电路图请见原理图。

(2)、由图1所示:正常显示(上电显示)如下:星期时分两红灯亮秒闪(3)、●按下key1第一次,显示如下:年月{阳历}日{阳历}两红灯亮两灯亮●再按下key1,则回到正常显示,依次类推。

(4)、在任何显示状态下,按下key1超过2秒,则进入设置状态,同时显示“时、分、秒”闪烁。

此时按下key2,“秒”闪,进入设置状态。

再按下key2,“分”闪,进入设置状态。

再按下key2,“时”闪,进入设置状态。

再按下key2,显示“星期、月{阳历}、日{阳历}”,同时“日{阳历}”闪,进入设置状态。

再按下key2,“月{阳历}”闪,进入设置状态。

再按下key2,“星期”闪,进入设置状态。

再按下key2,显示“年(四个数码管显示)”,同时“年”闪,进入设置状态。

再按下key2,则回到“秒”重复设计置。

注:进入设置状态时,key3作减键,key4作加键,并且key3,key4具有连动功能(如果key3或者key4按下持续1秒后,以0.5秒时间连减或者连加)(5)、在(2)的任何状态下,按下key5,则回正常显示。

(6)、在正常显示状态下:按下key5超过2秒,则进入闹钟设置状态。

Fax:86-0731-******* Mail:dsc52@ Web: 再按key5则回正常显示。

三、扩展功能要求。

(1)、按下key6,把闹钟时间存于AT24C16里。

(2)、由图1所示:正常显示(上电显示)如下:星期时分两红灯亮秒闪(3)、●按下key1第一次,显示如下:年月{阳历}日{阳历}两红灯亮两灯亮●按下key1第二次,显示如下:年月{阴历}日{阴历}两红灯闪两灯闪●再按下key1,则回到正常显示,依次类推。

(4)、在任何显示状态下,按下key1超过2秒,则进入设置状态,同时显示“时、分、秒”闪烁。

基于C51单片机的数字时钟课程设计(C语言带闹钟)

基于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 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)

单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。

二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。

2.软件设计通过C语言编写单片机程序,用于实现时钟功能。

3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。

(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。

(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。

(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。

三、实验结果经过调试,电子时钟的各项功能都能够正常实现。

在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。

在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。

同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。

四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。

通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。

在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

51单片机C语言可调时钟(2)(1)

51单片机C语言可调时钟(2)(1)

/*这是一个真正有意义的时钟key1功能键选择可调位,短按,每按一下有一位闪烁长按闪烁不断向下一位推移key2 加键短按相应闪烁的位加1,长按连续加1;key3 减键短按相应闪烁的位减1,长按连续减一;key4 确定键按下退出调时,正常显示;*/#include<reg52.h>#define uint unsigned int#define uchar unsigned char#define LED P0#define KEY_1 0x0e#define KEY_2 0x0d#define KEY_3 0x0b#define KEY_4 0x07#define KEY_NULL 0x0f#define KEY_PRESS 0x80#define KEY_LONG 0x40#define KEY_STATE_INIT 0#define KEY_STATE_PRESS 1#define KEY_STATE_LONG 2#define KEY_STATE_UP 3#define KEY_LONG_PERIOD 20#define KEY_CONTINUE_PERIOD 10bit set;bit dao1S=0;bit dao2MS=0;bit dao10MS;sbit dula=P2^6;sbit wela=P2^7;sbit key1=P3^4;sbit key2=P3^5;sbit key3=P3^6;sbit key4=P3^7;int main_flag,exit_flag,up_flag,down_flag;int tab[]={0,0,0,0,0,0};uchar weitable[]={0x01,0x02,0x04,0x08,0x10,0x20};uchar tab1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void nint(){ TMOD=0X01;TH0=0XF8;TL0=0XCC;TR0=1;ET0=1;}uchar KeyScan(){if(key1==0) return KEY_1;if(key2==0) return KEY_2;if(key3==0) return KEY_3;if(key4==0) return KEY_4;return KEY_NULL;}uchar GetKey(){uchar keyRetu=0,keyTemp=KEY_NULL;static uchar s_keyState=KEY_STATE_INIT,keyTime=0,keyLast=KEY_NULL;keyTemp=KeyScan();switch (s_keyState){case KEY_STA TE_INIT:if(keyTemp!=KEY_NULL){s_keyState=KEY_STA TE_PRESS;}break;case KEY_STA TE_PRESS:if(keyTemp!=KEY_NULL){s_keyState=KEY_STA TE_LONG;keyTime=0;keyLast=keyTemp;}else{s_keyState=KEY_STA TE_INIT;}break;case KEY_STA TE_LONG:if(keyTemp==KEY_NULL){s_keyState=KEY_STA TE_INIT;keyRetu=(keyLast|KEY_PRESS);}else{if(++keyTime>=KEY_LONG_PERIOD) //按下时间>1s{s_keyState=KEY_STATE_UP;keyTime=0;}}break;case KEY_STA TE_UP:if(keyTemp==KEY_NULL){s_keyState=KEY_STA TE_INIT;}else{if(++keyTime>=KEY_CONTINUE_PERIOD) //按下时间>0.5s {keyTime=0;keyRetu=(keyLast|KEY_LONG);}}break;}return keyRetu;}void updatetime(){if(dao1S){dao1S=0;if(++tab[5]==10){ tab[5]=0;if(++tab[4]==6){tab[4]=0;if(++tab[3]==10){ tab[3]=0;if(++tab[2]==6){ tab[2]=0;if(tab[0]<2){if(++tab[1]==10){ tab[1]=0;tab[0]++;}}else{ if(tab[1]==4){ tab[1]=0;tab[0]=0;}} }}}}}}void display(){ static uchar k=0;dula=1;LED=tab1[tab[k]];if(set&&((k==main_flag-1))){LED=0XFF;}dula=0;LED=0Xff;wela=1;LED=weitable[k];wela=0;if(++k>5) k=0;}void sittime(uchar hour,uchar minute,uchar second ) { uchar a1,a2,b1,b2,c1,c2;a1=hour/10;a2=hour%10;b1=minute/10;b2=minute%10;c1=second/10;c2=second%10;tab[0]=a1;tab[1]=a2;tab[2]=b1;tab[3]=b2;tab[4]=c1;tab[5]=c2;}void main(){ nint();EA=1;sittime(15,20,15);while(1){updatetime();if(dao2MS){dao2MS=0;display();}if(dao10MS){dao10MS=0;switch (GetKey()){case (KEY_1|KEY_PRESS):if(++main_flag>=7)main_flag=0;break;case (KEY_1|KEY_LONG):if(++main_flag>=7)main_flag=0;break;case (KEY_2|KEY_PRESS):switch(main_flag){case 1:{if(++tab[0]>=3)tab[0]=0;}break;case 2:{if(++tab[1]>4)tab[1]=0;}break;case 3:{if(++tab[2]>5)tab[2]=0;}break;case 4:{if(++tab[3]>9)tab[3]=0;}break;case 5:{if(++tab[4]>5)tab[4]=0;}break;case 6:if(++tab[5]>9)tab[5]=0;}break;case (KEY_2|KEY_LONG): switch(main_flag) {case 1:{if(++tab[0]>=3)tab[0]=0;}break;case 2:{if(++tab[1]>4)tab[1]=0;}break;case 3:{if(++tab[2]>5)tab[2]=0;}break;case 4:{if(++tab[3]>9)tab[3]=0;}break;case 5:{if(++tab[4]>5)tab[4]=0;}break;case 6:if(++tab[5]>9)tab[5]=0;}break;case (KEY_3|KEY_PRESS):switch(main_flag){case 1:{if(--tab[0]<0)tab[0]=2;}break;case 2:{if(--tab[1]<0)tab[1]=4;}break;case 3:{if(--tab[2]<0)tab[2]=5;}break;case 4:{if(--tab[3]<0)tab[3]=9;}break;case 5:{if(--tab[4]<0)tab[4]=5;}break;case 6:if(--tab[5]<0)tab[5]=9;}break;case (KEY_3|KEY_LONG): switch(main_flag){case 1:{if(--tab[0]<0)tab[0]=2;}break;case 2:{if(--tab[1]<0)tab[1]=4;}break;case 3:{if(--tab[2]<0)tab[2]=5;}break;case 4:{if(--tab[3]<0)tab[3]=9;}break;case 5:{if(--tab[4]<0)tab[4]=5;}break;case 6:if(--tab[5]<0)tab[5]=9;}break;case (KEY_4|KEY_PRESS):main_flag=0;display();}}}}void timer() interrupt 1{ static count=0;static count1=0;TH0=0XF8;TL0=0XCC;dao2MS=1;count++;if(++count1==10){ c ount1=0;dao10MS=1;}if(!(count%25)) set = !set;if(count==500) {count=0;dao1S=1; }}。

电子钟单片机课程设计报告(含源码)

电子钟单片机课程设计报告(含源码)

一、总设计思路电子时钟是我们日常生活中最常见的一种钟表,由于它结构简单、功耗低、时间精度比较准、等优点,使得广泛应用,在未来肯定有很大的市场。

这次课程设计我的目的就是尝试着做一个电子时钟。

1、系统功能显示时间、声音提示、调整时间、设置闹钟的功能。

2、功能硬件实现方案时间显示:时间的显示我选用的是六位七段数码管,由于数码管控制简单,而且显示效果好,所以选用它。

由于静态显示方式比较占资源,而且电路比较复杂,所以我们选择了动态显示方式,电路简单,效果挺好。

时间调整和闹钟设置:是通过外部两个按键触发单片机中断进而控制时间的调整。

其中一个按键是模式选择按键通过触发外部中断0来选择功能,功能主要是选择要调时、调分、调秒、闹钟调时、闹钟调分、闹钟调秒六种模式。

第二个按键通过触发外部中断1来在相应的模式下对时间的大小做调整。

声音提示:通过利用蜂鸣器来作为发生装置,有整点提示功能和闹铃功能。

时间发生:利用单片机自带定时器0做定时,通过软件控制来产生时、分、秒。

3、功能软件实现方案由于单片机C语言已经全面普及,它的程序容易理解、简单易写、可移植性好,所以我们选择用单片机C语言来写。

4、开发环境操作系统:window 7旗舰版64位程序编辑编译软件:KEIL μVision V4.60.6.10仿真软件;Proteus V ersion 7.85.、总设计原理框图STC89C52RC6位七段数码管显示时、分、秒蜂鸣器发声装置时钟复位电路按键调时模块一、硬件设计定时和程序执行及控制模块:我们选择的是宏晶科技生产的STC89C52RC芯片,它在很多硬件资源上比8051提升了不少,所以在后期我们可以做更多扩展和维护。

时间显示模块::采用六个七段带小数点的共阴极数码管。

声音提示模块:采用简单蜂鸣器做声音提示。

调时模块:通过两个简单按键来触发中断调时。

时钟复位模块:采用11.0592MHz的晶振,提供单片机工作频率。

二、设计原理图三、芯片解说STC89C52:是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。

51单片机时钟设计(c语言)

51单片机时钟设计(c语言)

利用51单片机内部定时设计的简易时钟(LCD1602显示)有时间调整功能,按键1切换调整的是时,分,秒。

按键2为加键,按键3为减。

仿真图调整时间C程序#include<reg52.h>unsigned char tab[]=" 23:58:48";unsigned char code tab2[]="hello";#define lcdp P0sbit rs=P3^5;sbit rw=P3^6;sbit en=P3^7;sbit led=P1^7;sbit s1=P1^0;sbit s2=P1^1;sbit s3=P1^2;unsigned char n,count,mu;char ss=23,ff=58,mm=55;void delay(unsigned char z){unsigned char i,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}void write_com(unsigned char com)//写指令{rs=0;rw=0;en=0;lcdp=com;delay(5);en=1;delay(5);en=0;}void write_date(unsigned char date)//写数据{rs=1;rw=0;en=0;lcdp=date;delay(5);en=1;delay(5);en=0;}void write_sj(unsigned add,unsigned date){unsigned char shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(shi+0x30);write_date(ge+0x30);}void init() //初始化{write_com(0x38); //设置16x2显示,5x7点阵,8位数据接口write_com(0x06); //写一个字符后地址指针自动加1write_com(0x01); //显示清零,数据指针清零write_com(0x0c); //开显示,不显示光标//write_com(0x08);//write_com(0x0e);//光标开启,但不闪烁write_com(0x80); //显示位置for(n=0;n<10;n++){write_date(tab[n]);delay(1);}write_com(0x80+0x40+3);//第二行显示for(n=0;n<8;n++){write_date(tab2[n]);delay(1);}//定时器初始化TH0=(65536-50000)/256;TL0=(65536-50000)%256;TMOD=0x01;EA=1;ET0=1;TR0=1;}void key(){if(s1==0){delay(5);if(s1==0){mu++;while(!s1);}if(mu==1){TR0=0;write_com(0x80+9);write_com(0x0f);//光标闪烁}if(mu==2){write_com(0x80+6);write_com(0x0f);//光标闪烁}if(mu==3){write_com(0x80+3);write_com(0x0f);//光标闪烁}}if(mu==4){TR0=1;mu=0;write_com(0x0c);//关闭光标}if(mu!=0){if(s2==0){delay(5);if(s2==0){while(!s2);if(mu==1){mm++;if(mm==60)mm=0;write_sj(8,mm);write_com(0x80+9);}if(mu==2){ff++;if(ff==60)ff=0;write_sj(5,ff);write_com(0x80+6);}if(mu==3){ss++;led=!led;if(ss==24)ss=0;write_sj(2,ss);write_com(0x80+3);}}}if(s3==0){delay(5);if(s3==0){while(!s3);if(mu==1){mm--;if(mm==-1)mm=59;write_sj(8,mm);write_com(0x80+9);}if(mu==2){ff--;if(ff==-1)ff=59;write_sj(5,ff);write_com(0x80+6);}if(mu==3){ss--;led=!led;if(ss==-1)ss=23;write_sj(2,ss);write_com(0x80+3);}}}}}void main(){init();while(1){key();}}void time0() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count==20){count=0;mm++;if(mm==60){mm=0;ff++;if(ff==60){ff=0;ss++;if(ss==24){ss=0;}write_sj(2,ss);}write_sj(5,ff);}write_sj(8,mm);}}。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、引言。

随着科技的不断发展,电子产品已经渗透到我们生活的方方面面。

其中,电子时钟作为一种常见的电子产品,被广泛应用于各个领域。

本课程设计旨在通过单片机技术,设计并实现一个功能强大、稳定可靠的电子时钟,以满足人们对精准时间的需求。

二、设计方案。

1. 硬件设计。

本课程设计选用了51单片机作为核心处理器,配合数码管显示模块、时钟芯片等外围器件,构成了电子时钟的硬件平台。

通过对硬件电路的设计和布线,实现了对时间的精准显示和控制。

2. 软件设计。

在软件设计方面,本课程设计采用了C语言作为编程语言,利用单片机的定时器、中断等功能模块,编写了精确的时钟控制程序。

通过对时钟的分、秒、小时的精准控制,实现了电子时钟的正常运行和显示。

三、功能实现。

1. 时间显示。

经过精心设计的软件程序,实现了对时间的精准显示。

时钟的显示界面清晰明了,数字显示稳定可靠,能够满足人们对时间的基本需求。

2. 时间调整。

通过设置按键,可以对时钟进行时间的调整。

用户可以根据实际需求,随时对时钟的时间进行调整,保证时钟的准确性。

3. 闹铃功能。

本课程设计还实现了闹铃功能,用户可以通过设置闹铃时间,让时钟在设定的时间点发出提示音,提醒用户重要事件的发生。

四、实验结果。

经过实际测试,本课程设计的电子时钟能够稳定可靠地运行,显示精准,功能完善。

时钟的硬件和软件设计均达到了预期的要求,符合设计的初衷和要求。

五、总结与展望。

本课程设计通过对单片机电子时钟的硬件和软件设计,成功实现了一个功能强大、稳定可靠的电子时钟。

但是,仍有一些功能可以进一步完善和优化,比如增加温湿度显示功能、实现无线时间校准等。

未来,我们将继续努力,不断完善电子时钟的功能,为人们的生活带来更多的便利。

六、参考文献。

[1] 《单片机原理与接口技术》,XXX,XXX出版社,2008。

[2] 《C语言程序设计》,XXX,XXX出版社,2010。

七、致谢。

感谢所有为本课程设计提供帮助和支持的老师和同学们,在他们的帮助下,本课程设计得以顺利完成。

单片机数字时钟课程设计报告

单片机数字时钟课程设计报告

第1章绪论1. 设计要求(1)系统可以按“秒”进行计时。

(2)数字时钟可以显示小时(00-23)、分钟(00-59)和秒(00-59)。

(3)可通过按键K1来选择设置“小时”、“分钟”和“秒”。

设置时可通过“加”和“减”按键(K2、K3)来调整时间;设置过程中时钟停止计时。

(4)无键按下三秒后,自动进入时钟的计时程序。

2. 设计方案采用AT89C51芯片作为硬件核心,其内部采用Flash ROM,具有4KB ROM 存储空间,能于3V的超低压工作,本系统的计时方案是利用单片机内部的定时/计数器进行中断定时,配合软件延时实现对时、分、秒的计时。

整个系统的控制方案是:上电后系统自动进入时间显示,从00:00:00 开始计时。

按下P1.0键,进入调秒状态,时钟停止计时;按P1.1或P1.2键可进行加1或减1操作;继续按P1.0键可分别进行分位、时调整;无键按下3秒钟后退出调整状态,自动进入时钟的计时和显示。

整个系统的硬件原理框图如图1.1,它采用的是AT89C51单片机,只用了P1口。

为了简化硬件电路,LED显示采用了动态扫描的方式实现,LED采用共阳极数码管,驱动电流由三极管9012提供。

为了提高计数精度,所采用的晶振频率为12MHz。

第2章硬件设计1单片机的选择本课程选用AT89C51型号的单片机。

AT89C51 是美国ATMEL 公司生产的低电压,高性能CMOS8 位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(PEROM)和128 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS-51 指令系统,片内置通用8 位央处理器(CPU)和Flash 存储单元,功能强大AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

主要性能参数:·与MCS-51 产指令系统完全兼容·4k 字节可重擦写Flash 闪速存储器·1000 次擦写周期·全静态操作:0Hz-24MHz·三级加密程序存储器·128×8 字节内部RAM·32 个可编程I /O 口线·2 个16 位定时/计数器2. 显示方案由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。

单片机电子时钟课程设计报告(一)

单片机电子时钟课程设计报告(一)

单片机电子时钟课程设计报告(一)单片机电子时钟课程设计报告随着科技的不断发展,电子时钟软件的应用越来越广泛。

本文将介绍一个单片机电子时钟的设计过程与实现方法。

一、设计目标本次课程设计我们的目标是设计一款能够进行时间显示的电子时钟。

具体要求如下:1. 时钟实时显示当前时间,包括时、分、秒和星期;2. 描述时钟功能,实现时间的调校、时间格式的调亮和调暗等操作;3. 显示格式清晰美观,操作方便简单,能够长时间稳定地工作。

二、硬件设计1. 硬件搭建:本设计采用单片机AT89C51作为核心CPU。

同时使用16MHz的晶振电路来为微控制器提供准确的时基。

另外,为了实现更好的人机交互,本设计还需要使用LCD液晶显示屏和4个按键。

2. 硬件接口:液晶显示屏需要采用并行接口,并且需要对显示屏背光进行控制。

而4个按键需要分别连接到4个I/O口上,从而实现对电子时钟的各项控制功能。

三、软件设计1. 程序框架:本设计使用Keil编程软件进行程序编写,并采用C语言进行程序设计。

主要的程序框架分为4个部分:数据收集模块、处理模块、显示模块和按键扫描模块。

2. 数据收集模块:数据收集模块采用中断方式,以1秒为间隔进行一次数据收集。

同时还需要对实时时间进行调校和校验。

3. 处理模块:处理模块主要用于完成各种时间处理和格式设置功能,包括对时、分、秒等时间数据进行读取、存储和操控操作。

同时,还要完成处于闹钟和日历两种状态的时间判断和时间更新操作。

4. 显示模块:显示模块主要用于将处理过的时间数据显示在LCD液晶显示屏上,实现时间的实时显示功能。

5. 按键扫描模块:按键扫描模块主要用于检测按键的按下和松开状态,并且根据不同按键的功能实现对时钟的不同控制操作。

四、总结本次设计采用单片机AT89C51作为核心CPU,对硬件和软件进行优化设计,结构合理,功能完善。

最终实现了日期时间的实时显示、闹钟功能、日历功能等多种功能。

同时,本设计能够进行时间调亮和调暗,具有操作方便简单、显示清晰美观等特点。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、引言。

电子时钟是现代社会中常见的时间显示设备,其精准的时间显示功能在各个领域都有着重要的应用价值。

本课程设计旨在通过单片机技术,设计并实现一个简单的电子时钟,以帮助学生深入理解单片机的工作原理和应用技术。

二、课程设计内容。

1. 电子时钟的基本原理。

电子时钟是通过内部的振荡器产生稳定的脉冲信号,再经过分频和计数等操作,最终显示出精确的时间。

学生需要了解时钟电路的基本组成和工作原理,包括振荡器、分频器、计数器等模块的功能和相互配合关系。

2. 单片机的应用技术。

本课程设计中,我们选用了常见的单片机作为控制核心,学生需要学习单片机的基本结构、工作原理以及编程技术,掌握单片机与外围元器件的连接和通信方法,以及如何利用单片机实现电子时钟的各项功能。

3. 电子时钟的功能设计。

在课程设计中,学生需要设计电子时钟的基本功能,包括时间的显示、设置和调整功能,以及闹钟、定时器等附加功能。

通过设计和实现这些功能,学生能够更好地理解单片机的应用和程序设计技术。

4. 硬件电路的搭建与调试。

除了软件设计,学生还需要学会如何搭建电子时钟的硬件电路,并进行相应的调试工作。

这将帮助他们更深入地理解电子时钟的工作原理,以及单片机与外围电路的配合方式。

5. 系统整体性能测试与优化。

最后,学生需要对设计的电子时钟系统进行整体性能测试,并对系统进行优化,提高其稳定性和可靠性。

这一步骤将帮助他们更全面地掌握电子时钟设计的整体流程和技术要点。

三、课程设计实施。

在课程设计实施过程中,学生将分为若干小组,每个小组负责一个电子时钟系统的设计与实现。

在指导老师的指导下,他们将逐步完成电子时钟的功能设计、硬件搭建、软件编程、系统调试和性能优化等工作。

通过实际动手操作,学生将更好地理解课程内容,并培养实际动手能力和团队合作意识。

四、课程设计总结。

通过本课程设计,学生将全面掌握单片机技术在电子时钟设计中的应用,深入理解电子时钟的工作原理和设计方法,提高动手能力和实际应用能力。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告Single-Chip Microcontroller Electronic Clock Course Design ReportIntroductionThe purpose of this course design is to design and implement an electronic clock based on a single-chip microcontroller. Through this course design, students can have a deep understanding of the basic principles of single-chip microcontrollers and various peripheral modules, and at the same time, they can improve their practical skills in program design and hardware debugging.Hardware Design1. Overall DesignThe hardware design of the electronic clock consists of three parts: the single-chip microcontroller MCU, the display module, and the clock circuit module. The main control chip selects AT89S52, which is a widely used single-chip microcontroller with strong anti-interference ability. The display module uses a common cathode digital tube, whichhas the advantages of low cost and convenient wiring. The clock circuit module includes a clock crystal, a reset circuit, and a power supply circuit.2. Schematic DesignThe schematic diagram of the electronic clock circuit is shown in Figure 1.Figure 1: Schematic diagram of electronic clock circuit3. Component SelectionThe components used in the electronic clock circuit are shown in Table 1.Table 1: Component selection tableSoftware Design1. Functional DesignThe functions of the electronic clock include displaying the current time, setting the clock time, and adjusting the time.2. Program DesignThe program flowchart of the electronic clock is shown in Figure 2. The program is mainly divided into three parts: timing control, button control, and display control.Figure 2: Program flowchart for electronic clockConclusionThrough the design and implementation of the electronic clock, students can not only understand the basic principles of single-chip microcontrollers, but also improve their practical skills in program design and hardware debugging. This course design is not only beneficial to the undergraduate curriculum, but also lays the foundation for students who want to engage in the research and development of electronic products in the future.。

基于C51单片机的数字时钟课程设计(C语言带闹钟)

基于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 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

单片机时钟课程设计

单片机时钟课程设计

单片机时钟 课程设计一、课程目标知识目标:1. 理解单片机时钟的基本原理,掌握时钟电路的组成和功能。

2. 学会使用相关编程语言(如C语言)编写时钟程序,实现时钟的显示与控制。

3. 了解实时时钟(RTC)芯片的工作原理及其在单片机系统中的应用。

技能目标:1. 能够独立设计并搭建单片机时钟电路,完成硬件连接和调试。

2. 掌握编程技巧,编写出可稳定运行的单片机时钟程序,实现对时、分、秒的准确显示。

3. 学会使用调试工具对程序进行调试,解决常见的问题和故障。

情感态度价值观目标:1. 培养学生对单片机技术及电子制作的兴趣,激发学生的创新意识和动手能力。

2. 增强学生团队协作意识,培养合作解决问题的能力。

3. 引导学生关注科技发展,认识到单片机技术在实际应用中的价值。

针对课程性质、学生特点和教学要求,本课程将目标分解为具体学习成果,以便后续教学设计和评估。

学生应通过本课程的学习,能够掌握单片机时钟相关知识,具备实际操作和解决问题的能力,并在情感态度上得到积极的引导和培养。

二、教学内容1. 单片机基础理论:介绍单片机的概念、发展历程、基本结构和工作原理,以课本第二章内容为基础。

- 时钟电路原理:讲解时钟电路的组成、作用和分类,结合课本第三章第二节内容。

2. 硬件设计:学习时钟电路的硬件搭建,包括单片机、RTC芯片、显示屏等元件的选型和连接。

- 选用STC89C52单片机,结合课本第四章内容进行讲解。

3. 软件编程:学习使用C语言编写时钟程序,实现时钟的显示和控制功能。

- 编程基础:回顾C语言基础知识,以课本第五章内容为参考。

- 时钟程序设计:讲解程序结构、函数调用、中断处理等,结合课本第六章内容。

4. 程序调试与优化:学习使用仿真器、调试器等工具对程序进行调试和优化,确保时钟程序稳定运行。

- 调试技巧:介绍常见问题的排查与解决方法,参考课本第七章内容。

5. 实践与拓展:安排实际操作环节,让学生动手搭建时钟电路,编写并调试程序。

基于c语言单片机电子时钟课程设计报告书

基于c语言单片机电子时钟课程设计报告书

课程设计报告课程名称:单片机程序设计报告题目:电子时钟学生姓名:所在学院:信息科学与工程学院专业班级:学生学号:指导教师:2013年12月25日课程设计任务书摘要单片计算机即单片微型计算机。

由RAM、ROM、CPU构成。

定时,计数和多种接口于一体的微控制器。

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

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

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

本设计主要设计了一个基于AT89C51单片机的电子时钟。

并在数码管上显示相应的时间。

并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。

应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。

该方法仿真效果真实、准确,节省了硬件资源。

关键词:单片机;子时钟;键控制目录一、概述 (5)1.1电子时钟简介 (5)1.2电子时钟的基本特点 (5)1.3电子时钟的原理 (5)二、方案设计选择 (5)2.1计时方案 (5)2.2显示方案 (5)三、硬件设计 (6)3.1单片机型号选择 (6)3.2数码管显示工作原理 (6)3.3键盘电路设计 (7)3.4电路原理图 (7)四、软件设计 (7)五、结论与心得 (15)六、参考文献 (16)一、概述1.1 电子时钟简介1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。

现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。

从而达到计时的功能,是人民日常生活补课缺少的工具。

1.2 电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

c语言单片机定时闹钟课程设计

c语言单片机定时闹钟课程设计

课程设计任务书摘要单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

随着生活水平的提高,人们越来越追求人性化的事物。

传统的时钟已不能满足人们的需求。

而现代的时钟不仅需要模拟电路技术和数字电路技术而且更需要单片机技术,增加数字钟的功能。

利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,减小因元器件精度不够引起的误差。

本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件同时采用LED数码管显示器动态显示“时”、“分”的现代计时装置。

另外具有校时功能和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

关键词:单片机,定时器,中断,闹钟,LED目录一、概述 (1)1.51电子闹钟发展趋势 (1)2.本课题研究的主要内容 (1)3.51电子闹钟简介 (1)3.1开发的目的和意义 (2)3.2 51电子闹钟的优点 (2)3.3 51电子闹钟的特点 (2)二、方案选择和与论证 (2)1.单片机型号的选择 (2)2.按键的选择 (3)3.显示器的选择 (3)4.发音部分的设计 (3)5.显示器驱动电路 (3)6.电源的选择 (3)三、单元电路设计与分析 (4)1.系统原理图 (4)2.主程序部分的设计 (4)3.中断定时器的设置 (4)4.按键电路设计 (5)5.蜂鸣器驱动电路 (5)6.数码管显示电路 (6)四、实验结果 (7)五、课程设计的心得 (13)六、参考文献 (14)一、概述电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。

单片机电子时钟课程设计报告.

单片机电子时钟课程设计报告.

单片机电子时钟课程设计报告.
本设计利用单片机AT89C2051实现一个电子时钟,该时钟可以用来显示24小时制或12小时制的时间,具有实时显示功能。

本课程设计使用了单片机的定时器、存储器、计数器等内部模块以及外部的实时时钟和数码管显示器来实现。

首先构建系统的硬件结构,核心硬件组件有单片机AT89C2051、DS1302实时时钟以及七段LED数码管,这三个部件共同构成了电子时钟的硬件结构。

然后,根据实际需求,利用DS1302实时时钟芯片来开发整个系统。

接着,根据中断总线对时钟芯片进行数据交换,通过时钟芯片与单片机进行管理和操作,使得两者能够有效地进行实时数据交换,从而实现实时时钟功能。

最后,利用编译器编写源代码并下载到单片机中,控制实时时钟的输入输出以及两个七段数码管的显示,实现电子时钟的功能。

最后,实验通过电子时钟的设计,验证了设计的功能正确性,时钟显示正确,可以正常使用。

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

《单片机原理与应用》实验报告实验3:可调时钟
在这期间,我得到了同学的帮助。

以前的汇编语言没学好,一开始的程序这块儿就要令我束手无策了。

后来开始学C语言单片机。

通过在仿真软件上一便一便的调试,完成了本程序。

最后说明自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。

而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。

课外学习很重要,只用课堂上的时间想把单片机学好基本上是不可能的
仿真效果图:
流程图:
源代码:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0; sbit rw=P2^1; sbit lcden=P2^2;
sbit k1=P1^0; sbit k2=P1^1; sbit k3=P1^2;
uchar code table[]={" 2010-06-17 wen"};
uchar code table1[]={" 00:00:00"};
uchar m,keynum=0;
char miao,shi,fen;
void delay(uchar x) //延时
{ uchar y;
while(x--)for(y=110;y>0;y--);
}
void write_com(uchar com) //LCD写指令
{ rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0;}
void write_dat(uchar dat) //LCD写数据
{ rs=1; lcden=0; P0=dat; delay(5); lcden=1; delay(5); lcden=0;}。

相关文档
最新文档