让静态数码管循环显示0到9,每个数字显示延迟半秒

如题所述

因你没有给原理图,所以,画了一个仿真图,一位共阴数码管接在P0口,组成静态显示电路,每个数字显示0.5秒,采用定时器T0定时来实现。仿真图如下,请及时采纳。

程序如下

#include<reg52.h>

unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

unsigned char n,x;//中断程序中的变量必须定义成全局变量

void main()

{

TMOD=0x01;

TH0=0x3C;//晶振12M,定时50ms

TL0=0xB0;

TR0=1;

EA=1;

ET0=1;

P0=smgduan[0];//先显示0

while(1);//等待中断计数

}

//定时器T0中断程序

void time0() interrupt 1

{

TH0=0x3C;

TL0=0xB0;

n++;

if(n==10)//0.5秒到

{

n=0;//秒回0

x++;//计数加1

if(x>9)//大于9,回0

x=0;

P0=smgduan[x];//显示0~9

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-31
75562445
第2个回答  2019-03-31
这个手表看做工还是可以的,外壳比较精致,就是不知道你花了多少钱买的,是自己买的吗?如果你再把照片拿出来看看就好了。
第3个回答  2019-03-31
去刷一下机吧
第4个回答  2019-03-31
最好找专业的。