
单片机如何驱动数码管?
展开全部
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit dula1=P2^0;
sbit dula2=P2^1;
uchar tt,shi,ge;
uchar aa;
void display();
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
// dula1=1;
// dula2=1;
TMOD=0x10;//设置定时器1为工作方式1
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;//开总中断
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
aa=0;
while(1)
{
if(tt==5)
{
tt=0;
aa++;
if(aa==100)
{
aa=0;
}
shi=aa/10;
ge=aa%10;
}
display();
}
}
void display()
{
dula1=1;
//dula2=1;
P0=tab[ge];
dula1=0;
delay(2);
// dula1=1;
dula2=1;
P0=tab[shi];
dula2=0;
delay(2);
}
void exter0() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
tt++;
}
#define uchar unsigned char
#define uint unsigned int
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
sbit dula1=P2^0;
sbit dula2=P2^1;
uchar tt,shi,ge;
uchar aa;
void display();
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
// dula1=1;
// dula2=1;
TMOD=0x10;//设置定时器1为工作方式1
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;//开总中断
ET1=1;//开定时器1中断
TR1=1;//启动定时器1
aa=0;
while(1)
{
if(tt==5)
{
tt=0;
aa++;
if(aa==100)
{
aa=0;
}
shi=aa/10;
ge=aa%10;
}
display();
}
}
void display()
{
dula1=1;
//dula2=1;
P0=tab[ge];
dula1=0;
delay(2);
// dula1=1;
dula2=1;
P0=tab[shi];
dula2=0;
delay(2);
}
void exter0() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
tt++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数码管各段的引脚连接P1口,数码管如果共阳,就输出低电平。共阴的相反
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分为动态,静态,,驱动方式,有IC驱动,和单片机直接驱动。
目前比较有优势的驱动芯片有天微公司的,,性价比超高。
目前比较有优势的驱动芯片有天微公司的,,性价比超高。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询