LED点阵显示电子钟设计.docx
《LED点阵显示电子钟设计.docx》由会员分享,可在线阅读,更多相关《LED点阵显示电子钟设计.docx(12页珍藏版)》请在冰豆网上搜索。
LED点阵显示电子钟设计
《单片机原理》课程设计说明书
题系
(
部
目)
LED点阵显示电子钟设计
电子与通信工程
专业(班级)姓学指起
名号
导止
教日
师期
《单片机原理及应用》课程设计任务书15
系(部):
电信系专业:
2010级电子信息工程指导教师:
课程设计鉴定表
1.系统总体方案选择与说明
本方案基于AT89S52单片机设计的,还用到13块74HC573和1块74HC138芯片,8快8*8LED点阵,
原理比较简单,但所有硬件成本较高,不适应商业用途。
一个是硬件结构的设计,一个是控制的总体思想。
在本小节中将对这两部分内容进行简单的叙述
1.1硬件结构
根据项目的功能和要求,可采用AT89S52单片机作为核心控制器。
LED点阵电子钟系统组成包括:
显示电路模块、显示驱动电路模块、按键电路模块以及电源模块。
框图如图1.1所示。
1.2控制思想
LED点阵电子钟程序主要功能是屏幕显示时间稳定,精确。
所以按照分块设计的方法可以把程序分为主程序、显示程序、调整程序。
主程序主要是用来初始化系统和控制各个子程序之间执行的顺序。
显示程序用来完成数字在LED点阵上的显示,时钟的显示是使用8块8×8点阵显示屏。
2.各单元硬件设计说明及计算方法
74HC138
74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。
将快速赋能电路用于高速存贮器时,译码器的延迟时间和存贮器的赋能时间通常小于存贮器的典型存取时间,这就是说由肖特基钳位的系统译码器所引起的有效系统延迟可以忽略不计。
HC138按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。
两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器,扩展成24线译码器不需外接门;扩展成32线译码器,只需要接一个外接倒相器。
在解调器应用中,赋能输入端可用作数据输入端。
74HC573
八进制3态非反转透明锁存器
138芯片主要用于控制573芯片的输入,以达到控制LED点阵显示的目的。
8*8点阵显示屏
图2.2为8×8点阵LED外观及引脚图,其等效电路如图2.3所示,只要其对应的DC、DR轴顺向偏压,即可使LED发亮。
例如如果想使图2.3左上角LED点亮,则DC8=1,DR1=0即可。
应用时限流电阻可以放在DC轴或DR轴。
8×8点阵LED外观及引脚如图2.2。
图2.28×8LED点阵引脚图
图2.3为8×8点阵LED等效电路,由此可以看出点阵是用64个LED组成的。
点阵LED扫描法介绍:
从图2.3中可以看出,8×8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮。
频率必须大于128赫兹,周期小于7.8毫秒即可符合视觉暂留要求。
此外一次驱动一列或一行(8盏LED)时需外加驱动电路提高电流,否则LED亮度会不足。
图2.38×8点阵LED等效电路
3.软件设计与说明(包括流程图)
#include
voiddisplay(unsignedchar,unsignedchar,unsignedchar);
sbita_138=P1^0;
sbitb_138=P1^1;
sbitc_138=P1^2;
sbitkey1=P1^3;
sbitkey2=P1^4;
sbitkey3=P1^5;
sbitwei1=P2^0;//六个点阵选择位,weix=0位选通sbitwei2=P2^1;
sbitwei3=P2^2;
sbitwei4=P2^3;
sbitwei5=P2^4;
sbitwei6=P2^5;
unsignedcharnum_138,shi,fen,miao,num_miao,key_flag;unsignedcharcodedigittab[10][8]={
{0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},//0
{0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00},//1
{0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00},//2
{0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00},//3
{0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00},//4
{0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00},//5
{0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00},//6
{0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00},//7
{0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00},//8
{0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00}//9
};
//key1选择,key2加,key3减//138
voiddelay(unsignedcharxms){
}
voidkey_scan()
{
if(key1==0){}if(key_flag==1){if(key2==0){}delay(3);if(key2==0){}shi++;if(shi>12)shi=1;delay(3);if(key1==0){}TR0=0;key_flag++;if(key_flag>=3){key_flag=0;TR0=1;unsignedchari,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}miao=0;elseif(key3==0){delay(3);if(key3==0){shi--;if(shi<1)shi=12;
}
}}}if(key_flag==2){}if(key2==0){delay(3);if(key2==0){}fen++;if(fen>=60){}fen=0;shi++;if(shi>12)shi=1;}elseif(key3==0){}delay(3);if(key3==0){}fen--;if(fen==0xff){}fen=59;shi--;if(shi==0)shi=12;
voidmain(){
P0=0x00;TMOD=0x01;
}TH0=(65536-50000)/256;//50msTL0=(65536-50000)%256;IT0=1;IE=0x83;TR0=1;shi=12;fen=0;miao=0;while
(1){}display(shi,fen,miao);
voiddisplay(unsignedcharadate,unsignedcharbdate,unsignedcharcdate){
unsignedcharashi,bshi,cshi,age,bge,cge;ashi=adate/10;age=adate%10;bshi=bdate/10;bge=bdate%10;cshi=cdate/10;cge=cdate%10;wei1=0;for(num_138=0;num_138<8;num_138++){switch(num_138){}case0:
a_138=0;b_138=0;c_138=0;break;case1:
a_138=1;b_138=0;c_138=0;break;case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;P0=~digittab[ashi][num_138];delay(5);}wei1=1;
wei2=0;for(num_138=0;num_138<8;num_138++){switch(num_138){}case0:
a_138=0;b_138=0;c_138=0;break;case1:
a_138=1;b_138=0;c_138=0;break;case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;P0=~digittab[age][num_138];delay(5);}wei2=1;wei3=0;for(num_138=0;num_138<8;num_138++){switch(num_138){case0:
a_138=0;b_138=0;c_138=0;break;case1:
a_138=1;b_138=0;c_138=0;break;case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;}P0=~digittab[bshi][num_138];delay(5);}wei3=1;
wei4=0;
for(num_138=0;num_138<8;num_138++){switch(num_138){case0:
a_138=0;b_138=0;c_138=0;break;case1:
a_138=1;b_138=0;c_138=0;break;
}case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;P0=~digittab[bge][num_138];delay(5);}wei4=1;wei5=0;for(num_138=0;num_138<8;num_138++){switch(num_138){case0:
a_138=0;b_138=0;c_138=0;break;case1:
a_138=1;b_138=0;c_138=0;break;case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;}P0=~digittab[cshi][num_138];delay(5);}wei5=1;
wei6=0;
for(num_138=0;num_138<8;num_138++){switch(num_138){case0:
a_138=0;b_138=0;c_138=0;break;}case1:
a_138=1;b_138=0;c_138=0;break;case2:
a_138=0;b_138=1;c_138=0;break;case3:
a_138=1;b_138=1;c_138=0;break;case4:
a_138=0;b_138=0;c_138=1;break;case5:
a_138=1;b_138=0;c_138=1;break;case6:
a_138=0;b_138=1;c_138=1;break;case7:
a_138=1;b_138=1;c_138=1;break;
P0=~digittab[cge][num_138];delay(5);
}
wei6=1;
}
voidtimer_0()interrupt1{
TH0=(65536-50000)/256;TL0=(65536-50000)%256;
num_miao++;
if(num_miao>=20)
{
num_miao=0;
miao++;
if(miao>=60)
{
miao=0;
fen++;
if(fen>=60)
{
fen=0;
shi++;
if(shi>12)shi=1;}
}
}
}
voidInt_0()interrupt0
{
key_scan();
}
//50ms
5.调试结果与必要的调试说明
如图,上电显示为12:
:
00,时钟自动跳动。
因为LED点阵显示不够明显,所以可以调整延时来控制。
6.使用说明
本电路设3个按键,如图
按下K1键,电路进入调整状态,秒钟归零,时钟位可调,K2为+1,K3为-1.
再按下K1键,分钟位可调,K2为+1,K3为-1.
再按下K1键,电路返回显示状态。
时钟位、分钟位、秒钟位分别如图所示
7.课程设计体会
8.参考文献
[1]数字电子技术基础·阎石北京:
高等教育出版社,1989
[2]单片机原理与应用·曾屹·长沙:
中南大学出版社,2012
[3]单片机基础·李广弟北京:
北京航空航天大学出版社,1994