keilc52显示数码管从1到10
时间: 2024-05-04 19:20:41 浏览: 107
下面是使用Keil C51编译器,使用P89V51RD2微控制器,通过数码管显示从1到10的程序示例:
```c
#include <reg51.h>
//定义控制数码管的端口
sbit dula = P2^6;
sbit wela = P2^7;
sbit led = P0^0;
//定义显示数字的数组
unsigned char code table[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
void delay(unsigned int i) //延时函数
{
while(i--);
}
void main()
{
unsigned char i;
while(1)
{
for(i = 1; i <= 10; i++)
{
dula = 1; //打开数码管的低位
P0 = table[i%10]; //显示个位数
delay(500);
dula = 0; //关闭数码管的低位
wela = 1; //打开数码管的高位
P0 = table[i/10]; //显示十位数
delay(500);
wela = 0; //关闭数码管的高位
}
}
}
```
具体实现方法为:使用P89V51RD2微控制器,定义控制数码管的端口为P2^6和P2^7,分别控制数码管的低位和高位。使用一个unsigned char类型的变量i,从1到10循环。每次循环时,先显示个位数,再显示十位数,通过使用延时函数来控制数码管的显示频率。具体的数字显示方式通过一个unsigned char类型的数组table[]来实现。
阅读全文