单片机 数码管 扫描显示 用少量的 IO 口完成多位数码管扫描显示,一般在程序中需要加入
显示消隐,即在 先关闭 数码管 再写入段码 接着写入 位选码,
电路图片 传不上
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led0 = P3^2;
sbit led1 = P3^3;
sbit led2 = P3^4;
sbit led3 = P3^5;
void main(void)
{
P1 = 0xff;
TMOD = 0x21;
TH1 = 0xfa;
TL1 = 0xfa;
TH0 = 0xdc; //11.0592晶振 10ms
TL0 = 0x00;
SCON = 0x40;
PCON = 0x00;
IE = 0x8a;
while(1)
{
TR0 = 1;
}
}
void Timer0(void) interrupt 1 // T0 中断 1 ( INT0 中断 0 )
{
uchar a;
TH0 = 0xdc;
TL0 = 0x00;
P3 |= 0x3c; // P3 或 3CH 显示消隐
a++;
if(a==1)
{
P1 = 0x3f; // 显示 0
P3 ^= 0x04;
}
if(a==2)
{
P1 = 0x06; // 显示 1
P3 ^= 0x08;
}
if(a==3)
{
P1 = 0x5b; // 显示 2
P3 ^= 0x10;
}
if(a==4)
{
a=0;
P1 = 0x4f; // 显示 3
P3 ^= 0x20;
}
}
温馨提示:内容为网友见解,仅供参考