代码:
#include<reg52.h>
// Header:定时器数码管显示0-F
// Author:Time
// Date:2022-10-12
unsigned char code Tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/*共阴数组
(如果是共阳数码管就换一下共阳数组"0xc0,0xf90xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e")
如果只需要显示0-9就删了后面6个*/
void delay(unsigned int x)//延时1秒
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<125;j++);
}
void main()//主函数
{
unsigned char n=0;//局部变量
P0=Tab[0];//初始化赋值
/*你接的P几口就写P几,我连接的P0所有写P0*/
TMOD=0x01; //定时器工作方式1
TR0=1; //开启定时器
while(1) //循环
{
TH0=(65536-1000)/256; //定时1ms
TL0=(65536-1000)%256;
do{}while(!TF0); //判断是否溢出
if(n>=15) //你数组有几个就写几个减1,我是0-F,所以我写15,你如果是0-9就写9
n=0;
else
n++;
P0=Tab[n]; /*你接的P几口就写P几,我连接的P0所有写P0*/
delay(1000);
}
}
原理图:
原理图元器件清单:
注意事项:
1. 数组{}后面不要忘记加 ; 分号,别问为什么要提醒,因为我就是这个少了找了半天错误;
2.你的题目是共阳就用共阳数组,是共阴就用共阴数组,数组是0-F;
3.你题目是显示0-9,就只要输入前10个数组,是0-F就全部输入;
4.0-9,把n>=15改n>=9.
5.那个元器件数码管是不是很难连对不齐,嘿嘿,按Ctrl+F1可以解决。