新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机学习之4-数码管

51单片机学习之4-数码管

作者: 时间:2016-11-30 来源:网络 收藏




上图是六位共阴型数码管搭配两片74HC573芯片的电路图。L2是控制数码管的a、b、c、d、e、f、g、dp,L3是选择要显示的数码管。
下图是74HC573芯片接在单片机上的10个IO口。(完美诠释74HC573的实用性,哈哈~)



下图是编码列表



利用数码管显示秒表程序源码:

/*****************************************

*说明:动态显示方式控制数码管。秒表源码

*设计者:L、QQ:1007566569

*开发板:DB-51Ver2.1

*数码管:六位共阴型

******************************************/

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitdual=P2^6;//控制L2的74HC573芯片是否锁存

sbitweal=P2^7;//控制L3的74HC573芯片是否锁存

ucharaa;

//数码管显示数字的编码table[0]就是显示0

ucharcodetable[]={

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

//要显示指定数字的数码管

ucharcodetablewe[]={

0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

#defineTime50000

#defineYsTime1

voidShowTime(ucharbai,ucharshi,ucharge);

voiddelay(uintz);

/********主函数********/

voidmain()

{

ucharb,s,g;

TMOD=0x01;//选择定时器工作方式1

TH0=(65536-Time)/256;//(65536-(50000/(12*(1/12))))/256;

TL0=(65536-Time)%256;//(65536-(50000/(12*(1/12))))%256;

EA=1;//开启总中断

ET0=1;//开启定时器0中断

TR0=1;//启动定时器0



关键词:51单片机数码

评论


技术专区

关闭