可调电子时钟设计
单片机综合实验课程报告题目可调电子时钟设计学生姓名学号院系专业指导教师二O一二年五月十五日目录摘要 (1)关键字 (1)一、可调电子时钟预期功能 (3)二、设计方案 (3)2.1 单片机最小系统 (3)2.2 LCD1602 (3)2.3 DS1302 (4)三、硬件电路设计 (4)四、软件设计 (5)五、仿真结果 (7)六、小结 (8)参考文献 (8)附录 (10)可调电子时钟设计南京信息工程大学信息与控制学院,江苏南京 210044摘要:用AT89C51作为最小系统设计可调电子时钟,用液晶显示屏LCD102输出显示,用时钟芯片DS1302管理时间。
可以显示年、月、日、星期、时、分、秒,并且均可通过按键调整。
当按第一个键时开始调整时间,第二个键是加键,第三个键是减键。
单片机具有集成度高、功能强、通用好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。
数字电子时钟电路设计系统,以AT89C51单片机为控制核心,由按键、液晶显示屏和LED灯显示等功能模块组成。
基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。
本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高本系统成功的实现了要求的基本功能。
关键词:AT89C51;LCD1602;DS1302Design of Adjustable Electronic ClockNUIST,Nanjing 210044,ChinaAbstract:This paper introduced the design of the adjustable digital clock based on A T89C51, the specific process of how the system hardware and software achieved were detailed descrip tion through the design of adjustable digital clock. The modular design and production, whic h consisted of MCU module, clock module and the associated control module, were mainly recounted.As well as hardware design and software design use the same method,consists suspension module,time adjustable module,and that use the C language to achieve because of its sample and strong negotiability.In this design,the functions of time run and change,functions of the year,month and day display have been achieved.Key words:AT89C51;LCD1602;DS1302一、数码管显示预期功能1、以格式“小时-分钟-秒”显示时间。
2、每过一秒显示内容更新。
3、可以通过按键来调整时间,包括时、分、秒的增加或减小。
4、整点时,蜂鸣器或扬声器报时。
5、用时钟芯片DS1302来管理时间。
6、显示年月日,且能调整。
7、显示星期。
二、设计方案1、51单片机最小系统设计单片机最小系统如下图所示:以ST89C51单片机为核心,选用12MHZ的晶振,由于晶振的频率越高,单片机的运行速度就越快,但考虑到单片机的运行速度快会导致对存储器的要求就会变高,因此12MHZ晶振为最佳选择。
外接电容的值虽然没有严格的要求,但是外接电容的大小会影响振荡器的频率高低、振荡器的稳定性和起振的快速性,因此我们选用30pF的电容作为起振电容。
复位电路为按键高电平复位,当按键按下,RES端为高电平,当高电平持续4us的时间就可以使单片机复位。
2、时间显示设计采用液晶显示屏LCD1602显示时间:D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016LR S R W EV ee DB0~DB7上的信号是命令还是显示数据。
RS=0时,DB0~DB7的信号视为命令数据。
RS=1时,DB0~DB7的信号则作为液晶屏的显示数据。
R/W (5管脚)——读/写控制线。
控制是从液晶屏读数据还是向液晶屏写数据。
R/W =0时,写数据。
R/W =1时,读数据。
E(6管脚)——使能端。
该管脚控制液晶屏从数据总线DB0~DB7上将数据读入液晶屏。
当该管脚上的电平由1向0变化时,数据总线DB0~DB7的数据被读入液晶屏。
DB0~DB7(7~14管脚)——数据总线。
这8位数据总线是数据交换的通道,单片机向液晶屏送入的命令或数据都通过这8位数据总线进行。
单片机需要先向液晶屏输出一些显示设置命令,然后再输出显示数据。
当单片机向液晶屏输出显示设置命令时,RS 管脚应该清0。
当设置完成后,需要使RS 管脚置1以向液晶屏输入显示数据。
同时,R/W 管脚也接低电平,液晶屏接收数据从DB0~DB7写入。
当RS 管脚和R/W 管脚设置妥当后,执行对E 管脚清0,就会在E 管脚上形成一个由高向低的跳变,这个跳变就使得命令或显示数据从数据总线DB0~DB7进入液晶屏。
3、时间管理设计采用时钟芯片DS1302管理时间:静态RAM可通过简单的串行接口与单片机进行通信可提供:秒分时日日期月年的信息;每月的天数和闰年的天数可自动调整;可通过AM/PM 指示决定采用24 或12 小时格式。
三、硬件电路设计整体电路图:连线如下:液晶显示器LCD1602的D0~D7分别与P2口相连,RS、RW、E分别与P1.0、P1.1、P1.2口相连,3个时间调整按键分别与P3.0、P3.1和P3.2相连,整点报时的二极管与P3.7口相连,时钟芯片的/RST、SCLK、I/O分别与P1.3、P1.4、P1.5相连。
四、软件设计1、主程序流程图:2、中断服务程序流程图五、仿真结果总体仿真图:XT AL218XT AL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016LRST 9SCLK 14I/O 12X13X25VCC116VCC21U2DS1302X1CRYST AL设置R1100D2LED-BIRYY112MHzC430pC530pR21KΩC210000000pF增大减小RS R W E RST SCLKIORST SCLKIOR S R W E整点报时:XT AL218XT AL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51D 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S 1V D D 2V E E3LCD1LM016LRST 9SCLK 14I/O 12X13X25VCC116VCC21U2DS1302X1CRYST AL设置R1100D2LED-BIRYY112MHzC430pC530pR21KΩC210000000pF增大减小RS R W E RST SCLKIORST SCLKIOR S R W E仿真结果如图所示,运行后,液晶显示器显示年月日、星期和时分秒,所有显示时间均可通过按键修改,并具有整点报时功能。
六、小结课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。
在此次数字钟设计过程中, 在学习新知识的同时,把在课程中学到的理论知识运用到实际作品设计、操作中,更进一步地熟悉了单片机芯片的结构及掌握了其工作原理和具体的使用方法与相关元器件的使用方法,了解了电路的开发和制作及课程设计报告的编写。
加深了对相关理论知识及专业知识的掌握度,增强自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题的能力,更深刻的体会到了理论联系实际的重要性。
通过此次单片机课程设计不仅仅将我们一学期在单片机课程上的所学很好的应用到了实际设计中,更是将理论知识应用到了实践中,这才是真正的学习,不仅仅是读万卷书,更要行万里路,讲知识与实践有机的结合。
也十分感谢老师为我们提供了这次单片机课程设计的机会,我们也通过此次课程设计,更清晰更实际的接触到了单片机。
参考文献[1] 李广弟等编, 单片机基础,北京航空航天大学出版社 [2] 吴金戌等编, 8051 单片机实践与应用,清华大学出版社[3] 王洪庆编,微型计算机控制技术,机械工业出版社[4] 付家才编,单片机控制工程实践技术,化学工业出版社[5] 鲍宏亚编,MCS51系列单片机应用系统设计及实用技术,中国宇航出版社[6] 杨文龙,单片机原理及应用[M],西安电子科技大学出版社[7] 赵文博,刘文涛.单片机语言C51程序设计[M],人民邮电出版社源程序:(1)主程序:#include<reg51.h>#include"LCD1602.H"#include"DS1302.h"#include"intrins.h"#include"keyscan.h"sbit beep=P3^7;uchar shan=0; //设置时间时闪烁,用于计时uchar shan_time=15;//闪烁时间uchar shan_max=35; //闪烁周期,亮-灭void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void di(uint x) //蜂鸣器发声函数{beep=0;delay(x);beep=1;delay(x);}/**********************显示处理程序**************************************/void shanshuo(uchar addr,uchar count_1,uchar time_num) //闪烁显示子程序{w_com(0x80+addr); //闪烁显示,格式:写入1602地址,设置的位号,显示的位号if(count==count_1&(shan<shan_time)) //显示“”{w_data(' ');w_data(' ');}else //显示时钟w_time(time[time_num]/10);w_time(time[time_num]%10);}}void deal() //对时间进行显示处理{uchar addr=0x44;shanshuo(addr,3,2); //时addr+=3;shanshuo(addr,2,1); //分addr+=3;shanshuo(addr,1,0); //秒addr=0x02;shanshuo(addr,7,6); //年addr+=3;shanshuo(addr,6,4); //月addr+=3;shanshuo(addr,5,3); //日addr+=3;if(count==4&(shan<shan_time)) //星期{w_com(0x80+addr);w_string(0xff," ");}else w_string(11,week[time[5]]);}/*********************初始化程序***************************************/ void init_lcd() //1602初始化{w_com(0x38);w_com(0x0c);w_string(0x00,"20 - - "); //年月日格式w_string(0x44,"--:--:--"); //时间格式}void init1302() //1302初始化{if(read1302(0x81)&0x80) settime(0x80,0);}void init_timer0() //最大定时时间65.536ms{TH0=0;TL0=0;TR0=1;ET0=1;EA=1;}/*********************主程序***************************************/void main(){uchar i=0,addr=0x82;init_lcd(); //LCD1602初始化init1302(); //DS1302初始化init_timer0();while(1){keyscan();if(num1>num2) //num1>num2,说明设置时间完成,将新时间写入DS1302{t[0]=set_time[0]; //读取新时间,将其转换为DS1302 内部时间序列t[1]=set_time[1];t[2]=set_time[2];t[5]=set_time[3];t[3]=set_time[4];t[4]=set_time[5];t[6]=set_time[6];addr=0x82; //DS1302 分地址,其他时间依次加2for(i=1;i<7;i++) //写入时间{settime(addr,t[i]);addr+=2;}num2++; //确保不在设置情况下不执行此写时间程序if(num1>=100) num1=num2=0; //防止溢出sure=1; //时间设置完成,sure置位,从DS1302读取时间}// if(time[1]==0)if((time[1]==0)&&(time[0]<=5)) //整点报时{di(1); //调用蜂鸣器发声函数}}}/***********************中断服务程序*************************************/ void timer0() interrupt 1 //定时器0处理程序{TH0=0;TL0=0;shan++;if(shan>=shan_max) shan=0;if(sure) //sure置位时,set复位,正常走时{gettime();}deal(); //如果设置键按下,执行闪烁程序}(2)LCD1602.h:sbit RS=P1^0;sbit RW=P1^1;sbit E=P1^2;#define uint unsigned int#define uchar unsigned char/*******************LCD1602********************************/void delay_xus(uint x) //读写延时,12+(x-1)*5 us{while(x--) ;}void w_com(uchar com) //写命令,RS=0{RW=0;RS=0;E=1;P2=com;E=0;RW=1;delay_xus(2); //12+1*5=17us}void w_data(uchar dat) //写数据,RS=1{RW=0;RS=1;E=1;P2=dat;E=0;RW=1;delay_xus(2);}void w_onebyte(uchar addr,uchar dat) //向某一地址写数据{w_com(0x80+addr);w_data(dat);}void w_time(uchar dat) //写1302的时间,将时间转换为十六进制{w_data(dat+'0');}void w_string(uchar addr,uchar code *p) //向某一地址写字符串{uchar i=0;if(addr<=0x67) w_com(0x80+addr); //若addr>0x67则超出1602地址范围,则不进行写地址while(*(p+i)!='\0'){w_data(*(p+i));i++;}}(3)DS1302.h:sbit RST=P1^3;sbit SCLK=P1^4;sbit IO=P1^5;uchar time[7]=0; //从1302获取的时间暂存单元,格式:sec,min,h,day,month,week,year uchar code *week[9]={"***","SUN","MON","TUE","WEN","THU","FRI","SAT"}; //周日-周六void w_byte(uchar dat) //向DS1302写一字节{uchar i=8;while(i--)//for(i=0;i<8;i++){IO=dat&0x01;SCLK=1;SCLK=0;dat>>=1;}}uchar r_byte() //读一字节{uchar i=8,dat=0;while(i--)//for(i=0;i<8;i++){dat>>=1;if(IO) dat|=0x80; //There was a mistake!SCLK=1;SCLK=0;}return dat;}void write1302(uchar addr,uchar dat) //向某一地址写数据{RST=0;SCLK=0;RST=1;w_byte(addr);w_byte(dat);SCLK=1;RST=0;}uchar read1302(uchar addr) //从某一地址读数据{uchar dat;RST=0;SCLK=0;RST=1;w_byte(addr|0x01);dat=r_byte();SCLK=1;RST=0;dat=dat/16*10+(dat&0X0F);return dat;}void settime(uchar addr,uchar dat) //设置时间,注意格式转换{write1302(0x8e,0x00); //禁止写保护(即允许向1302写数据),WP=0write1302(addr,((dat/10)*16)|(dat%10)); //格式转换}void gettime() //从1302获取时间{uchar i=0;uchar addr=0x81; //秒的读取地址,其他地址依次加2for(i=0;i<7;i++){time[i]=read1302(addr);addr+=2;}}(4)keyscan.h:/***********************按键扫描程序*************************************/ bit set=0,add=0,sub=0,sure=1; //标志位:设置,加,减及确定uchar num1=0,num2=0;char set_time[7]; //sec,min,h,week,day,month,yearuchar code *t[7]; //用于将设置的时间转化为按DS1302时间顺序排列sbit set_key=P3^0; //设置键sbit add_key=P3^1; //加一键sbit sub_key=P3^2; //减一键uchar idata count=0;//count从1到7为设置时钟位(s,min,h……六位)void delay_ms(uint x) //消抖延时{uint y=110;for(;x>0;x--)for(y=110;y>0;y--) ;}void keyscan(){if((P3&0x07)!=0x07){delay_ms(90); //这里为了set键考虑,设置小点if((P3&0x07)!=0x07) //确认有键按下{if(set_key==0) //设置键被按下{count++; //count从1到7为设置时钟位(s,min,h……六位)set=1; //set为设置标志位,sure为确定标志位sure=0; //set置位时不读取DS1302内部时间,sure置位时开始读取DS1302内部时间if(count>=8){count=0;set=0;num1++;}}if(set&(count==1)) //在进入设置时间时,读取当前时间,在此时间基础上进行修改{set_time[0]=time[0];set_time[1]=time[1];set_time[2]=time[2];set_time[3]=time[5];set_time[4]=time[3];set_time[5]=time[4];set_time[6]=time[6];}if((!add_key)&(!sure)&sub_key) //'+'键,时间加1{add=1;delay_ms(10); //补偿消抖时间,否则按一下会增加很多switch(count){case 1:set_time[0]++;if(set_time[0]>=60) set_time[0]=0;break;//sec case 2:set_time[1]++;if(set_time[1]>=60) set_time[1]=0;break;//min case 3:set_time[2]++;if(set_time[2]>=24) set_time[2]=0;break;//h case 4:set_time[3]++;if(set_time[3]>=8) set_time[3]=1;break;//week case 5:set_time[4]++;if(set_time[4]>=32) set_time[4]=1;break;//day case 6:set_time[5]++;if(set_time[5]>=13) set_time[5]=1;break;//month case 7:set_time[6]++;if(set_time[6]>=99) set_time[6]=0;break;//year;}}if((!sub_key)&(!sure)&add_key) //'-'键,时间减1{sub=1;delay_ms(10); //补偿消抖时间,否则按一下会减少很多switch(count){case 1:set_time[0]--;if(set_time[0]<60) set_time[0]=59;break;//sec case 2:set_time[1]--;if(set_time[1]<0) set_time[1]=59;break;//min case 3:set_time[2]--;if(set_time[2]<0) set_time[2]=23;break;//hcase 4:set_time[3]--;if(set_time[3]<1) set_time[3]=7;break;//week case 5:set_time[4]--;if(set_time[4]<0) set_time[4]=31;break;//day case 6:set_time[5]--;if(set_time[5]<1) set_time[5]=12;break;//monthcase 7:set_time[6]--;if(set_time[6]<0) set_time[6]=99;break;//year;}}if(!add_key&!sub_key&sure) //'+'和'-'同时按下时,秒清零{set_time[0]=0;settime(0x80,0);}if(add|sub) //在对时间加减处理后进行读取显示{time[0]=set_time[0];time[1]=set_time[1];time[2]=set_time[2];time[5]=set_time[3];time[3]=set_time[4];time[4]=set_time[5];time[6]=set_time[6];}while(!set_key);}}}评分标准。
vhdl数字电子钟的设计与实现
基于VHDL数字电子钟的设计与实现摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。
数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。
在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路的能力。
关键词:电子钟;门电路及单次按键;琴键开关目录第一章引言----------------------------------------------------------------11.1 课题的背景、目的------------------------------------------11.2 课程设计的内容------------------------------------------1 第二章EDA与VHDL简介--------------------------------------------------22.1 EDA的介绍---------------------------------------------22.2 VHDL的介绍--------------------------------------------32.2.1 VHDL的用途与优点-----------------------------------------------------------------32.2.2 VHDL的主要特点----------------------------------------------------------------------2.2.3 用VHDL语言开发的流程------------------------------------------------------------ 第三章数字电子钟的设计方案------------------------------------------63.1秒脉冲发生器--------------------------------------------73.2可调时钟模块--------------------------------------------83.3校正电路------------------------------------------------83.4闹铃功能------------------------------------------------103.5日历系统------------------------------------------------11 第四章结束语---------------------------------------------------------------134.1致谢----------------------------------------------------144.2参考文献------------------------------------------------151引言随着科学技术的不断发展,人们对时间计量的精度要求越来越高。
(完整)STM32开题报告
基于STM32的时间可调的数字时钟设计一、设计题目:基于STM32时间可调的数字时钟设计二、设计目的:1.时钟是人类进步的标识,时钟,自从它发明的那天起,就成为人类的朋友,但随着科技的飞速发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
目前,单片机正朝着高性能和多品种方向发展的趋势进一步向CMOS化、低能耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
2.融会贯通教材各章的内容,通过知识的综合运用,加深对基本接口芯片的工作原理及与CPU互连的认识,以进一步掌握常见接口的用法。
3.学习设计和调试嵌入式系统开发的基本步骤和方法,培养科学研究的独立工作能力,取得工程设计和调试的实践和经验。
三、硬件设计:1、MCU:STM32处理器意法半导体 (STMicroelectronics) 集团于1987年6月成立,是由意大利的SGS 微电子公司和法国Thomson 半导体公司合并而成。
1998年5月,SGS-THOMSON Microelectronics 将公司名称改为意法半导体有限公司,意法半导体是世界最大的半导体公司之一。
从成立之初至今,ST 的增长速度超过了半导体工业的整体增长速度。
自1999年起,ST 始终是世界十大半导体公司之一。
据最新的工业统计数据,意法半导体 (STMicroelectronics) 是全球第五大半导体厂商,在很多市场居世界领先水平。
例如,意法半导体是世界第一大专用模拟芯片和电源转换芯片制造商,世界第一大工业半导体和机顶盒芯片供应商,而且在分立器件、手机相机模块和车用集成电路领域居世界前列。
STM32L 系列产品基于超低功耗的 ARM Cortex-M3 处理器内核,采用意法半导体独有的两大节能技术:130nm 专用低泄漏电流制造工艺和优化的节能架构,提供业界领先的节能性能。
LED电子时钟
XTAL2 来自反向振荡放大器的输出。
P1口 8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。
2.3系统总体方案介绍
部件组成:单片机89C2051、电源、时分显示部件。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。时分显示模块以及显示驱动都通过89C2051的I/O口控制。
电源部分:电源部分有二部分组成。一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作。
4.2 概述..................................................7
4.2.1主程序................................................8
第五章仿真图……………………………………………………………………….13
{
if(up==0)
{
delay(50); //消除抖动
if(up==0)
{
n++;
if(n==x)//上限越界显示为0
n=0;
while(up==0);
}
}
if(down==0)
{
delay(50);
if(down==0)
{
if(n==0)//下限越界显示为最大可显示
基于Proteus的数字电子钟的设计与仿真
基于Proteus的数字电子钟的设计与仿真一、设计目的与要求 (1)二、设计内容与方案制定 (1)三、芯片简介 (1)1、AT89C52 (1)2、AT24C02 (2)四、设计步骤 (3)1、硬件电路设计 (3)1.1.硬件电路组成框图 (3)1.2.各单元电路及工作原理 (3)1.3.绘制原理图 (5)1.4.元件清单列表 (6)2、程序设计 (7)2.1程序流程 (7)2.2主程序 (9)2.2.源程序 (10)五、调试与仿真 (22)六、心得体会 (23)七、参考文献 (23)一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、断电后将数据保存,开启后时间将从断电后时间继续行走。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键六个键分别控制时、分时间的调整。
按下小时数实现对小时数加减,按下分钟数实现对分钟数进行加减,并设置有复位键,启始键。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
通过AT24C02分别写入时、分、秒数据在断电后实现保存,在下次通电后将数据读出保持为断电前数据。
三、芯片简介1、AT89C52AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系2、AT24C02AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。
LED数码管设计的可调式电子钟说明说
LED数码管设计的可调式电子钟说明说可调式电子钟的设计理念是提供用户多样化的时间显示和闹钟设定选项,以满足用户不同的需求和喜好。
以下是对设计的详细说明:1.数码管显示:LED数码管采用7段共阳极连接方式,每个数码管由7个LED灯组成,通过控制各个LED灯的点亮与否,可以显示0-9的数字。
数码管的显示仿真效果要清晰、鲜明,确保用户可以轻松辨认时间。
2.时间调节功能:可调式电子钟具备时间调节的功能,用户可以通过按钮或旋钮调整时间。
其中旋钮可以实现小时和分钟的调节,而按钮可以实现小时和分钟的增加或减少。
设计时需考虑人机交互的便利性,确保时间调节操作简单明了。
3.闹钟设定:可调式电子钟还具备闹钟功能,用户可以设定一个或多个闹钟时间点。
用户可以通过按钮或旋钮设置闹钟的小时和分钟,还可以设定是否重复响铃。
闹铃可以通过声音、震动或LED灯闪烁等方式提醒用户。
为了避免误操作,设计时需要考虑设置闹钟的过程,确保用户能够轻松设置闹钟。
4.电源供应:可调式电子钟可采用外部电源或内置电池供电。
设计时需考虑到电源的稳定性和可靠性,确保时钟长时间准确运行。
当外部电源断开时,内置电池可以提供备用电源,防止时间设置的丢失。
5.背光功能:可调式电子钟还可以考虑添加背光功能,在光线不好的情况下,用户可以通过按下按钮或通过传感器自动点亮背光。
背光的亮度可以根据用户偏好进行调节。
6.美观设计:除了功能性,可调式电子钟的外观设计也很重要。
设计时可以考虑采用简约设计风格,以及时尚的外壳材料。
同时,数字显示的对齐和间距,以及按钮和旋钮的位置、大小都需要细致推敲,确保整体外观美观大方。
总之,可调式电子钟的设计需要满足用户对时间显示和闹钟功能的需求。
通过合理的控制功能,人性化的设计以及简洁好看的外观,可为用户提供一台方便、易用的电子钟。
电子秒表设计VHDL
一、设计题目:基于VHDL语言的电子秒表设计(可调时,有闹钟、定时功能)二、设计目的:⑴掌握较复杂的逻辑设计和调试⑵学习用原理图+VHDL语言设计逻辑电路⑶学习数字电路模块层次设计⑷掌握QuartusII软件及Modelsim软件的使用方法三、设计内容:(一)设计要求1、具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。
2、设计精度要求为1S。
(二).系统功能描述1 . 系统输入:系统状态及校时、定时转换的控制信号为k、set、ds;时钟信号clk,采用实验箱的50MHz;系统复位信号为reset。
输入信号均由按键产生。
系统输出:8位LED七段数码管显示输出,蜂鸣器声音信号输出。
多功能数字钟系统功能的具体描述如下:2. 计时:set=1,ds=1工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3. 校时:在set=0,ds=0状态下,按下“k键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒校准”状态,之后如此循环。
1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:在“秒复零”状态下,显示“分”的数码管以1Hz的频率递增计数。
4. 整点报时:蜂鸣器在“59”分钟的第50—59,以1秒为间隔分别发出1000Hz,500Hz的声音。
5. 显示:采用扫描显示方式驱动8个LED数码管显示小时、分、秒。
闹钟:闹钟定时时间到,蜂鸣器发出交替周期为1s的1000Hz、500Hz的声音,持续时间为一分钟;6. 闹钟定时设置:在set=0,ds=1状态下,按下“k”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态, 之后如此循环。
1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz 的频率递增计数。
51单片机的电子时钟设计
51单片机的电子时钟设计摘要:本文介绍了基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现过程。
该时钟的设计采用功能分块的思想方法,将硬件电路划分为开关电路,显示驱动电路和数码管电路等假设干独立模块,而软件的实现那么由闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等组成。
文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进展了仿真,并给出了相应的仿真结果图像。
关键词:单片机;电子时钟;键盘控制一、引言1957年,Ventura创造了世界上第一个电子表,从而奠定了电子时钟的根底,电子时钟开场迅速开展起来。
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进展满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而到达计时的功能,是人民日常生活补课缺少的工具。
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进展时和分的校对,片选的灵活性好。
二、时钟的根本原理分析利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,那么表示1s到了,秒变量加1,同理再判断是否1min 钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED 显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
基于CD40110的电子钟设计
数字电路课程设计报告设计课题:基于CD40110的电子钟设计专业班级:电子信息工程1702学生姓名:学号:指导教师:设计时间:2019.4——2019.5基于CD40110的电子钟设计一、设计任务与要求任务:用CD40110芯片制作电子钟;要求:能显示小时、分钟、秒钟。
二、方案设计与论证(至少二个方案比较)电路通电后,震荡电路产生1Hz信号并被芯片CD40110接受,并且通过4个单体共阴极数码管显示,即电子钟记时。
1.原理分析:电路接通后,由Ne555芯片制作的震荡电路开始起震,产生1Hz信号,当上升沿信号输入CD40110芯片 CPu端口时开始从0计数,通过CD40110的Ya~Yg端口输出到共阴极数码管显示。
并且通过74ls11来控制电路实现秒钟60进制、分钟60进制和时钟24进制(60进制用十位上6控制,即g、f、e连接端;24进制用的是个位4上的g、f,十位2上的g控制)2.原理分析:电路接通后,由分频电路产生1Hz信号,当上升沿信号输入CD40110芯片CPu端口时开始从0计数,通过CD40110的Ya~Yg端口输出到共阴极数码管显示。
并且通过74ls11来控制电路实现秒钟60进制、分钟60进制和时钟24进制(60进制用十位上6控制,即g、f、e连接端;24进制用的是个位4上的g、f,十位2上的g 控制)两个方案对比来看,很明显就是信号源电路的设计的方案不一样,显而易见方案二中消耗的资源多,对比方案一来看要用较多的芯片。
通过分析,结合设计电路性能指标、器件的性价比,本设计电路选择方案一。
三、单元电路设计与参数计算(功能部分电路)1.信号源:1Hz震荡电路将参数R1=10k,R2=10k,C=47uf,带入可计算得:f=1Hz功能部分电路如图3所示。
图3 1Hz震荡电路四、总原理图及元器件清单1.总原理图图4-1 电子钟电路2.元件清单表1 元件清单元件序号型号主要参数数量备注(单价)单位:元R1、R2 定值电阻10k 2 0.07 R 定值电阻1k 42 0.05 NE555 555定时器 1 0.89CD40110 6 2.2 C1 电解电容47uF 1 0.03C2 瓷片电容0.01 1 0.0174LS11 3输入与门 2 2.006 0.37共阴极数码管五、安装与调试1.电路安装将电路的接地端与实验箱地相连,电源端与实验箱+5v电源相连,将1Hz震荡电路输出端与时钟部分电路输入端相连。
51单片机电子时钟课程设计实验报告
《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。
培养我们综合运用电子课程中的理论知识解决实际性问题的能力。
让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。
主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。
要求具有6位LED显示、3个按键输入。
2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。
3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。
开始计时时为000000,到235959后又变成000000。
4)使用3个键分别作为小时、分、秒的调校键。
每按一次键,对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。
5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。
6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。
51单片机电子时钟课程设计实验报告
《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲学号: 13 29班级:自动化1211指导老师:阮海容目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路 PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。
培养我们综合运用电子课程中的理论知识解决实际性问题的能力。
让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。
主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。
要求具有6位LED显示、3个按键输入。
2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。
3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。
开始计时时为000000,到235959后又变成000000。
4)使用3个键分别作为小时、分、秒的调校键。
每按一次键,对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位 (例如分加到59后变为00,但小时不发生改变)。
5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。
