51单片机采用静态显示方法控制两位数码管循环显示99~00
时间: 2023-08-22 21:09:04 浏览: 79
好的,这里为您提供一种基于51单片机的实现方法。具体步骤如下:
1.连接电路
将两位数码管的共阴极接地,将两位数码管的四个段点分别连接到P0口的高四位,将两位数码管的两个位点分别连接到P2口的低四位。具体连线方式可参考以下电路图:
![51单片机连接两位数码管电路图](https://img-blog.csdn.net/20180320130458731?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2hpdGdwdC9pbWFnZXMvTWFzdGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
2.编写程序
```
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[ ] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//0~9的段码
uchar code place[ ] ={0xFE,0xFD,0xFB,0xF7};//四位数码管位码
void delay(uint xms)//延时函数
{
uint i,j;
for(i=xms;i>0;i--)
{
for(j=110;j>0;j--);
}
}
void main()
{
int i,j;
while(1)
{
for(i=99;i>=0;i--)//循环显示99~00
{
for(j=0;j<500;j++)//延时一段时间
{
P0=table[i/10];//高位数
P2=place[0];//第一位
delay(5);//延时
P0=table[i%10];//低位数
P2=place[1];//第二位
delay(5);//延时
P0=table[0];//0
P2=place[2];//第三位
delay(5);//延时
P0=table[0];//0
P2=place[3];//第四位
delay(5);//延时
}
}
}
}
```
其中,循环语句for(i=99;i>=0;i--)循环显示99~00,延时函数delay(5)可以自行定义,比如延时5毫秒。
3.烧录程序
将程序烧录到51单片机中,即可实现静态显示方法控制两位数码管循环显示99~00。
希望这个方法能够帮到您!