keil数码管循环显示0到9
时间: 2024-02-15 17:07:31 浏览: 111
51单片机使用8个数码管中的一个数码管,循环显示数字0~9,到9回0,数字变化的时间间隔为1s。
5星 · 资源好评率100%
以下是基于Keil软件的8051单片机代码,实现数码管循环显示0到9的功能:
```
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6; //定义段选锁存器控制端口
sbit wela=P2^7; //定义位选锁存器控制端口
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
}; //定义显示0~9的码表
void delay(uint i) //延时函数
{
while(i--);
}
void main()
{
uchar i,j,k;
while(1) //循环显示0~9
{
for(i=0;i<10;i++) //循环显示0~9
{
for(j=0;j<100;j++) //延时
{
for(k=0;k<200;k++);
}
dula=1; //锁存器锁存
P0=table[i]; //段选
dula=0;
wela=1;
P0=0xfe; //位选
wela=0;
}
}
}
```
该代码使用了延时函数,延时函数的实现可以参考以下代码:
```
void delay(uint i)
{
while(i--);
}
```
其中,`i`为需要延时的时间,具体的延时时间需要根据实际情况进行调整。在主函数中,通过循环显示0~9的方式,实现了数码管的循环显示功能。代码中使用了一个码表`table`,通过该码表将数字转换为对应的显示码,然后再将显示码输出到数码管上进行显示。
阅读全文