使单片机两个数码管动态显示0~99的代码
时间: 2024-02-05 18:10:26 浏览: 87
这里提供一个基于51单片机的动态显示0~99的代码,使用的是共阳数码管:
```c
#include <reg52.h> //51单片机头文件
sbit LSA=P2^2; //定义LSA为P2.2
sbit LSB=P2^3; //定义LSB为P2.3
sbit LSC=P2^4; //定义LSC为P2.4
unsigned char code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 //0~9的编码
}; //共阳数码管编码表
void delay(unsigned int i) //延时函数
{
while(i--);
}
void display(unsigned char num) //数码管显示函数
{
unsigned char ge,shi; //个位和十位
ge=num%10; //取个位
shi=num/10; //取十位
P0=table[ge]; //个位数码管显示
LSA=0;LSB=0;LSC=0;delay(500); //选择第一个数码管
P0=table[shi]; //十位数码管显示
LSA=1;LSB=0;LSC=0;delay(500); //选择第二个数码管
}
void main() //主函数
{
unsigned char i;
while(1)
{
for(i=0;i<100;i++) //循环显示0~99
{
display(i);
}
}
}
```
在此代码中,`table[]` 数组存放共阳数码管的编码表,`delay()` 函数实现延时功能,`display()` 函数实现数码管的显示功能。在主函数中,通过循环调用 `display()` 函数,实现动态显示0~99的效果。
阅读全文