LED数字点阵时钟设计.docx_第1页
LED数字点阵时钟设计.docx_第2页
LED数字点阵时钟设计.docx_第3页
LED数字点阵时钟设计.docx_第4页
LED数字点阵时钟设计.docx_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“达内科技”电子应用设计大赛作品文档作品类别:数字时钟作品名称:Dream Start小组成员:张海军,张超,刘文帅2011年6月13日目录1, 功能简介。2, 原理简介。一、 功能简介1、时钟显示本数字时钟采用16*32红色LED点阵显示,左面为小时显示,且为24小时制,中间两点的跳动为秒针显示,每往下或往上跳动一次时间为一秒,右面为分显示。2、校训显示当上电开机时,或者当时间为整点时,会从右向左显示大连海洋大学校训“天道酬勤,海纳百川。”1次,然后出现时钟显示,此时显示时,时钟参数依然在增加,不会对时钟造成影响,不会变慢或变快。3、校庆倒计时显示当按下LED显示屏下方最靠右的按键时,会从右向左显示“距大连海洋大学校庆XX天”的字样,上电默认时间为99天,并且当出现00:00时,天数自减一天,此时间可调节,详细后面介绍。4、时钟时间调节正常显示时间时,(为了演示方便,默认上电时间为00:59)秒针即中间的两点会上下跳动,当按下屏幕下方最左边的按键一次,秒针停止跳动,此时进入时钟时间调节状态,此时按下屏幕下方中间的按键,会看到分会增加,当到达59时,返回00,此为时钟分调节,再次按下左边的按键,秒针依然停止跳动,此时按下中间的按键,小时会不断的累加,当为23时,再次按下,返回为00,此为时钟小时调节。5、闹钟时间显示及调节当再次按下最左边的按键时(这是第三次按下此按键),会显示闹钟时间(上电默认为00:00),此时按下中间的按键,闹钟分会累加,此为闹钟分调节,再次按下最左边的按键(此为第四次按下),此时按下中间按键为闹钟小时调节。6、校庆倒计时天数调节当再次按下最左边的按键时(此为第五次按下),会从右往左流过显示校庆倒计时字样,显示结束后,出现“*天”的字样,*即为校庆倒计时天数,此时按下中间按键,时间自累加,当为99时,再次按下返回00。再次按下最左边的按键(此为第六次按下),秒针恢复跳动,并且显示时间为刚才调节时间。在整个调节过程中,时钟依然在走,不会产生影响。(由此可见,最左边的按键为调节选择按键,中间的按键为调节加按键,最右边按键为校庆显示按键。)7、蜂鸣器报时当时间为整点时,除了显示校训字样,蜂鸣器会自动响10秒,此为报时。8、蜂鸣器闹钟当设定的闹钟时间与时钟时间一致时,蜂鸣器自动响1分钟,此为闹钟。二、 原理简介本数字时钟采用16*32红色LED点阵显示,显示方式为利用人眼视觉暂留,动态扫描显示。控制芯片为STC89C52。1、 使用器件STC89C52一片,74HC573锁存器4片,74HC154四线十六译码器一片,8*8红色LED点阵8块,有源蜂鸣器1个,按键3个,其余若干。2、 电路与显示原理供电形式为USB接口供电,电源大小为4.7V-5.3V。利用单片机P0和P2口发送控制数据,即字的显示,使用4块74HC573进行锁存轮流控制左边两块,和右边两块LED。使用74HC154译码器控制LED点阵的16行,轮流快速点亮每行,形成动态显示。1, 字的显示每个字为一个数组,每个数组有32个8进制数,每俩个为一行显示代码,具体看程序中的字显示函数。2, 时钟数的显示每个数为一个数组,每个数组有16个8进制数,每一个为一行显示代码,最中间的俩个数分别向左和向右移动一位显示(每个数字显示占用6行),当行数为3-5,10-13时,与0x01和0x80按位保留即点亮中间的俩点,并且随着秒增加一次,向下跳动一次,即当行数为4-6,11-14时按位点亮中间两点,形成两点(秒针)的跳动。详见程序数显示函数。3, 字的流动显示利用人眼的分辨有限,形成流动的效果,即先显示“0,1”然后再显示“1,2”再显示“2,3”即形成字的流动显示。详见程序xxdisplay(uint z)与xqdisplay(uint z)函数,z为显示次数控制。3、 电路仿真原理图详见附图。4、 全部程序代码(部分字模代码已删掉)#include#define uint unsigned int#define uchar unsigned charuchar num=0;uchar ge=9,shi=9;uchar aa=26;mm=0,miaox=0;uint s1=0,s2=0,f1=5,f2=9;uchar n1=0,n2=0,n3=0,n4=0;void sz_jj();/*空字模*/uchar code tabk=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*(以下为校庆字模)*/uchar code tab0=0x00, 0x08, 0x7D, 0xFC, 0x45, 0x00, 0x45, 0x00, 0x45, 0x08, 0x7D,0xFC, 0x11, 0x08, 0x11, 0x08, 0x51, 0x08, 0x5D, 0xF8, 0x51, 0x08, 0x51, 0x00, 0x5D, 0x00, 0xF1, 0x04, 0x41, 0xFE, 0x00, 0x00;/*以下为校训字模*/uchar code xx1=0x00, 0x08, 0x7F, 0xFC, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0xFF, 0xFE, 0x01, 0x00, 0x02, 0x80, 0x02, 0x80, 0x04, 0x40, 0x04, 0x40, 0x08, 0x20, 0x10, 0x10, 0x20, 0x0E, 0xC0, 0x04;/*以下为指针数组,指向数字字模*/uchar *shuj10=&shu0,&shu1,&shu2,&shu3,&shu4,&shu5,&shu6,&shu7,&shu8,&shu9;/*各种延时函数*/*小延时1*/void delay() uchar i,j; for(i=0;i2;i+)for(j=0;j90;j+);/*小延时2*/void delay2() uchar i,j; for(i=0;i2;i+)for(j=0;j0;x-)for(y=110;y0;y-);void display_xq1(uchar shu1,uchar shu2,uchar num)while(num-)uchar i,j;RXD=1;TXD=0;j=0;for(i=0;i=15;i+) P1=i; P2=shu1j;/P2为低位数据 P0=shu2j;delay2();P0=0x00;P2=0x00; j+;void display_xq2(uchar shu1,uchar shu2,uchar num)while(num-)uchar i,j;RXD=0;TXD=1;j=0;for(i=0;i=15;i+) P1=i;P2=shu1j;/P0为低位数据P0=shu2j;/P2为高位数据delay2(); P0=0x00;P2=0x00; j+;/*字显示函数*/void display(uchar taba,uchar tabb,uchar num) unsigned char i,j,k; while(num-) k=0;j=0;for(i=0;i9)f2=0;f1+;if(f1=6)f1=0;s2+;if(s29)s2=0;s1+;/*if(s1=2&s2=3&f1=1&f2=1) s1=0;s2=0;f1=0; f2=0;*/if(s1=2&s2=3&f1=6&f29) ge-;if(ge0)shi-;ge=9; s1=0;s2=0;f1=0; f2=0;/*校庆显示*/void xqdisplay(uint xq)while(xq-)display(tabk,tab0,aa);display(tab0,tab1,aa);display(tab1,tab2,aa);display(tab2,tab3,aa);display(tab3,tab4,aa);display(tab4,tab5,aa);display(tab5,tab6,aa);display(tab6,tab7,aa);display(tab7,tab8,aa);display(tab8,tabk,aa);display_xq1(*(shuj+shi),*(shuj+ge),2*aa);display_xq2(*(shuj+shi),*(shuj+ge),2*aa);/delay1(1000); display(tabk,tab12,aa);display(tab12,tabk,aa);/delay1(1000);void xxdisplay(uint z);/*蜂鸣器报时*/void bs()if(f1=0&f2=0&miaox10)T1=0;/蜂鸣器发声/*闹钟函数*/void nz()if(n1=s1&n2=s2&n3=f1&n4=f2&miaox58)T1=0;/蜂鸣器发声if(!(f1=0&f2=0&miaox10)&(!(n1=s1&n2=s2&n3=f1&n4=f2&miaox58)T1=1;void sz_ts();/*数显示函数*/void display_sz(uchar shu1,uchar shu2,uchar shu3,uchar shu4)uchar i,j,k;if(miaox%2=0)j=0;k=0;for(i=0;i=2&i=10&i=13) P0=(shu2j1)|0x01;/P2为低位数据 elseP0=shu2j=2&i=10&i1)|0x80;/P2为低位数据 elseP2=shu3k1;delay2(); P0=0x00;P2=0x00; k+;if(miaox%2=1)k=0;j=0;for(i=0;i=3&i=11&i=14) P0=(shu2j1)|0x01;/P2为低位数据 elseP0=shu2j=3&i=11&i1)|0x80;/P2为低位数据 elseP2=shu3k1;delay2(); P0=0x00;P2=0x00; k+;sz_ts();if(T0=0)xqdisplay(1);bs();nz();if(f1=0&f2=0&miaox=1)xxdisplay(1);/*校训显示*/void xxdisplay(uint xx)while(xx-)display(tabk,xx1,aa);display(xx1,xx2,aa);display(xx2,xx3,aa);display(xx3,xx4,aa);display(xx4,xx5,aa);display(xx5,xx6,aa);display(xx6,xx7,aa);display(xx7,xx8,aa);display(xx8,xx9,aa);display(xx9,xx10,aa);delay1(1000);/*闹钟调分*/void nz_tsf()n4+;if(n49)n4=0;n3+;if(n3=6&n4=0)n3=0;n4=0;/*闹钟调时*/void nz_tss()n2+;if(n29)n2=0;n1+;if(n1=2&n2=4)n1=0;n2=0;/*调分自加减*/void sz_tsf()f2+;if(f29)f2=0;f1+;if(f1=6&f2=0)f1=0;f2=0;/*调时自加减*/void sz_tss()s2+;if(s29)s2=0;s1+;if(s1=2&s2=4)s1=0;s2=0;void display_ts(uchar shu1,uchar shu2,uchar shu3,uchar shu4)uchar i,j,k,numjc=1;while(numjc-)k=0;j=0;for(i=0;i=2&i=10&i=13) P0=(shu2j1)|0x01;/P2为低位数据 elseP0=shu2j=2&i=10&i1)|0x80;/P2为低位数据 elseP2=shu3k1;delay2(); P0=0x00;P2=0x00; k+;void xq_sjdisplay(uchar shi,uchar ge,uchar tian)uchar i,j,k,numjc=1;while(numjc-)k=0;j=0;for(i=0;i9)shi+;ge=0;if(shi9&ge=0)ge=0;shi=0;/*调时函数*/void sz_ts()while(num=1)display_ts(*(shuj+s1),*(shuj+s2),*(shuj+f1),*(shuj+f2);while(num=2)display_ts(*(shuj+s1),*(shuj+s2),*(shuj+f1),*(shuj+f2);while(num=3)display_ts(*(shuj+n1),*(shuj+n2),*(shuj+n3),*(shuj+n4);while(num=4)display_ts(*(shuj+n1),*(shuj+n2),*(shuj+n3),*(shuj+n4);if(num=5)xqdisplay(1);while(num=5)xq_sjdisplay(*(shuj+shi),*(shuj+ge),tab12);if(num5)num=0;/*时钟显示*/void szdisplay()while(1)display_sz(*(shuj+s1),*(shuj+s2),*(shuj+f1),*(shuj+f2);/sz_ts();/if(T0=0)/xqdisplay(1);/void init()TMOD=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论