用keil4写一个数码管0到9循环显示
时间: 2024-03-15 09:48:01 浏览: 126
好的,下面是使用Keil4编写的单个数码管循环显示0到9的代码:
```
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LSA=P2^2; //LS138 A
sbit LSB=P2^3; //LS138 B
sbit LSC=P2^4; //LS138 C
sbit LED=P2^7; //LED
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90
}; // 数码管每个数字对应的编码
void delay(uint z) { // 延时函数
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() {
uchar i=0;
while(1) {
for(i=0;i<10;i++) { // 循环显示0到9
LSA=0; // 打开第一位数码管
LSB=0;
LSC=0;
P0=table[i]; // 显示对应数字
delay(1000); // 每个数字的显示时间间隔为1秒
LSA=1; // 打开第二位数码管
LSB=0;
LSC=0;
P0=table[i];
delay(1000);
LSA=0; // 打开第三位数码管
LSB=1;
LSC=0;
P0=table[i];
delay(1000);
LSA=1; // 打开第四位数码管
LSB=1;
LSC=0;
P0=table[i];
delay(1000);
}
}
}
```
这段代码使用了一个table数组来记录每个数字对应的数码管编码,然后通过循环控制每个数码管的打开方式和显示数字来实现循环显示0到9。每个数字的显示时间间隔为1秒。注意在头文件中包含`reg51.h`,并且需要定义芯片的引脚和使用的延时函数。
阅读全文