仿真图:
代码:
#include <reg52.h>
#define uchar unsigned char
unsigned char dm[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//数码管段码
void delay();//延时函数
void main()//主函数
{
P1=~0x01;//开千万位,位码
P2=dm[3];//千万位赋值3
delay();
P1=~0x02;//开百万位,位码
P2=dm[1];//百万位赋值1
delay();
P1=~0x04;//开十万位,位码
P2=dm[2];//十万位赋值2
delay();
P1=~0x08;//开万位,位码
P2=dm[1];//万位赋值1
delay();
P1=~0x10;//开千位,位码
P2=dm[0];//千位赋值3
delay();
P1=~0x20;//开百位,位码
P2=dm[0];//百位赋值0
delay();
P1=~0x40;//开十位,位码
P2=dm[0];//十位赋值0
delay();
P1=~0x80;//开个位,位码
P2=dm[8];//个位赋值8
delay();
P3=~0x40;//开第二个数码管十位,位码
P0=dm[2]; //赋值二位数码管十位
delay();
P3=~0x80;//开第二个数码管个位,位码
P0=dm[3]; //赋值二位数码管个位
delay();
}
void delay()//延时函数
{
unsigned int i,j;//变量i,j
for(i=0;i<100;i++);
for(j=0;j<50;j++);
}