欢迎来到天天文库
浏览记录
ID:33405928
大小:237.00 KB
页数:12页
时间:2019-02-25
《51单片机实时时钟设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、完成内容:完成一个简易数字时钟的软硬件设计,首先利用protus完成功能方真,再利用dxp完成原理图和pcb的绘制,该数字时钟可具备如下功能:1、实现最基本的计时功能,显示时、分、秒,可以通过按键设置时间。要求:时钟计时精确,按键操作不影响计时。2、具备秒表计时功能。要求:记时精度达到100ms,计时支持启动、暂停、继续和停止操作。3、具备整点响铃提示功能。要求:整点闹铃五短一长,闹钟响铃时可以按键清楚响铃。4、具备日期显示和调整功能。说明:以上功能中,1为必备功能,2、3、4为选做功能。采用数码管完成显示,按键进行调整,供电采用usb供电,其中数码管和按键的个数以及操
2、作方式自己决定。系统操作以简洁,方便,原理图绘制正确,PCB布局布线规整为宜。评测内容:protus的功能仿真测试,dxp原理图以及pcb绘制结果。本设计使用89C51芯片作为控制芯片,复位电路和时钟电路构成单片机最小系统。利用P0口8个引脚接上拉电阻,驱动LCD液晶显示时钟。单片机显示电路时钟电路复位电路控制电路总体设计思路图2.3单元电路设计本设计主要分为时钟电路模块,复位电路模块,显示模块和控制模块。设计方案如下2.3.1时钟模块89C51单片机的时钟信号通常用内部振荡方法得到,在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡
3、方法。由于单片机内部有一个高增益反相放大器,当外接晶振后就构成了自激振荡器并产生振荡时钟脉冲。晶振通常选择6MHz、12MHz、24MHz。本设计采用12MHz晶振。图中电容C1、C2起到稳固振荡频率、快速起振的作用。电容值一般为5—30pF。本设计选用33pF电容。2.3.2复位电路模块图2.4复位电路复位操作完成电路的初始化,使单片机从一种确定的状态开始运行。由上图可知,控制模块实际上就是单片机的最小系统。本设计采用常用的上电且开关复位电路。上电后,由于电容的充电,使RST持续一段高电平时间。当单片机已在运行中时,按下复位键也能使RST持续一段时间的高电平,从而实现
4、上电且开关复位的操作。此处C3电容取10uF,R2=K。2.3.3控制模块图2.5控制电路2.3.3显示模块显示部分电路设计如下图图2.6显示模块电路图三、软件设计3.1程序设计思路(流程图)启动初始化选择时钟显示功能进入调时程序是否进入调时否运行时钟3.2源程序#includeunsignedchartab[]="23:58:48";unsignedcharcodetab2[]="hello";#definelcdpP0sbitrs=P3^5;sbitrw=P3^6;sbiten=P3^7;sbitled=P1^7;sbits1=P1^0;s
5、bits2=P1^1;sbits3=P1^2;unsignedcharn,count,mu;charss=23,ff=58,mm=55;voiddelay(unsignedcharz){unsignedchari,j;for(i=z;i>0;i--)for(j=110;j>0;j--);}voidwrite_com(unsignedcharcom)//写指令{rs=0;rw=0;en=0;lcdp=com;delay(5);en=1;delay(5);en=0;}voidwrite_date(unsignedchardate)//写数据{rs=1;rw=0;en=0;l
6、cdp=date;delay(5);en=1;delay(5);en=0;}voidwrite_sj(unsignedadd,unsigneddate){unsignedcharshi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(shi+0x30);write_date(ge+0x30);}voidinit()//初始化{write_com(0x38);//设置16x2显示,5x7点阵,8位数据接口write_com(0x06);//写一个字符后地址指针自动加1write_com(0x01);//显示
7、清零,数据指针清零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-50
此文档下载收益归作者所有