51实现demo数码管0-9
选材
芯片:AT89C51,仿真工具Professional7.8,代码编写工具Keil5
数码管
数码管的引脚,与里面7个二极管相对应,从最上面对应第一个引脚开始逆时针顺序依次递增,中间的为最后一个引脚控制,与led灯不同的是,这里高电平才会亮,所以需要亮的我们置为1.
仿真图
数码管数字对应
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
1111110 | 0110000 | 1101101 | 01001111 | 01100110 | 01101101 | 01111101 | 0000111 | 01111111 | 01101111 |
0x3f | 0x06 | 0x5b | 0x4f | 0x66 | 0x6d | 0x7d | 0x07 | 0x7f | 0x6f |
代码
#include <reg52.h>
void Delay(unsigned int x){
unsigned char i;
while(x--){
for(i=121;i>0;i--);
}
}
void main(){
unsigned char tube[10]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};
unsigned char i;
while(1){
for(i=0;i<10;i++)
{
P0 = tube[i];
Delay(150);
}
}
}