51单片机数码管显示0到99
时间: 2023-05-27 10:05:21 浏览: 237
以下是基于51单片机的数码管显示0到99的代码:
```c
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
uchar shi,ge,i;
while(1)
{
for(i=0;i<100;i++)
{
shi=i/10;
ge=i%10;
LSA=0;LSB=0;LSC=0;P0=table[shi];delay(100);
LSA=1;LSB=0;LSC=0;P0=table[ge];delay(100);
}
}
}
```
在这个代码中,我们使用了一个表(table)数组来存储每个数字对应的数码管段码,然后使用循环来依次显示0到99的数字。在循环中,我们首先将数字分解成十位数(shi)和个位数(ge),然后使用三个控制引脚(LSA, LSB, LSC)来控制数码管的选择,最后将相应的段码输出到P0口即可。
需要注意的是,在这个代码中,我们使用了一个delay()函数来实现延时,这个函数的实现方式比较简单,就是通过两个for循环来进行延时。在实际应用中,可能需要根据具体的情况进行调整。
阅读全文