我有个普中的单片机 我想叫数码管显示HELLO 从左到右依次出现,应该怎么写程序最好在写程序的时候解释一下

2024-12-14 18:12:57
推荐回答(1个)
回答1:

#include
#define uchar unsigned char
#define uint unsigned int
sbit LS138A=P2^2;
sbit LS138B=P2^3;
sbit LS138C=P2^4;
uchar code table[]={0x76,0x79,0x38,0x38,0x3f}; // HELLO的断码
void delay(uint z) //延时子函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=1000;y>0;y--);
}
void main()
{
while(1)
{
LS138A=0; LS138B=0; LS138C=0; //位选第一位
P0=table[0];
delay(100);

LS138A=1; LS138B=0; LS138C=0; //位选第一位
P0=table[1];
delay(100);

LS138A=0; LS138B=1; LS138C=0; //位选第一位
P0=table[2];
delay(100);

LS138A=1; LS138B=1; LS138C=0; //位选第一位
P0=table[3];
delay(100);

LS138A=0; LS138B=0; LS138C=1; //位选第一位
P0=table[4];
delay(100);
}
}

/*程序用到了38译码器做为位选信号,调节延时函数中的参数就可以调节HELLO出现的速度
当延时适当短的时候就可以同时显示HELLO*/