c51单片机显示数码管从0.00到99.99的程序
时间: 2024-05-01 10:21:05 浏览: 8
这是一个使用C语言编写的C51单片机程序,用于在数码管上显示从0.00到99.99的数字。
```c
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, // 0~9的数码管编码
0x77,0x7c,0x39,0x5e,0x79,0x71 // A~F的数码管编码
};
void delay(uint xms) // 延时函数
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar i,j,k;
for(i=0;i<100;i++) // 循环0~99
{
j=i/10; // 十位数
k=i%10; // 个位数
P1=0xfe; // 第一位数码管
P0=table[j];
delay(5); // 延时5ms
P1=0xfd; // 第二位数码管
P0=table[k];
delay(5); // 延时5ms
P1=0xfb; // 第三位数码管
P0=0x3f; // 小数点
delay(5); // 延时5ms
P1=0xf7; // 第四位数码管
P0=table[0];
delay(5); // 延时5ms
}
}
```
这个程序使用了一个数码管共阴极连接方式,P1口用于控制数码管的位选,P0口用于控制数码管的段选。其中,table数组存储了0~F的数码管编码,delay函数用于延时,main函数中的循环控制了从0.00到99.99的数字的显示。