📄 八段数码管显示程序.c
字号:
#include"reg51.h"
#define LEDLEN 6
xdata unsigned char OUTBIT _at_ 0x8002; //位控制口
xdata unsigned char OUTSEG _at_ 0x8004; //段控制口
xdata unsigned char IN _at_ 0x8001;//键盘输入口
unsigned char LEDBUF(LEDLEN);
code unsigned char LEDMAP[]={//八段管的显示码
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
void delay(unsigned char CNT){
unsigned char i;
while(CNT--!=0)
for(i=100;i!=0;i--);
}
void display(){
unsigned char i,j,pos,LED;
pos=0X20;//(00100000;从左面开始检测)
for(i=0;i<LEDLEN;i++)
{
OUTBIT=0;//关闭所有的数码管;
LED=LEDBUF[i];
OUTSEG=LED;
OUTBIT=pos;
delay(1);
pos>>=1;//显示下一位
}
OUTBIT=0;
}
void main(){
unsigned char i=0,j;
while(1){
LEDBUF[0]=LEDMAP[i&0x0f];
LEDBUF[1]=LEDMAP[(i+1)&0x0f];
LEDBUF[2]=LEDMAP[(i+2)&0x0f];
LEDBUF[3]=LEDMAP[(i+3)&0x0f];
LEDBUF[4]=LEDMAP[(i+4)&0x0f];
LEDBUF[5]=LEDMAP[(i+5)&0x0f];
i++;
for(j=0;j<30;j++)
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -