• 首页
  • 中国
  • C51 数码管的动态显示 dynamic display method of digital tube

C51 数码管的动态显示 dynamic display method of digital tube

2023-11-01 163浏览
百检网是一家专业的第三方检测平台,汇聚众多拥有权威资质的第三方检测机构为你提供一站式的检测服务,做检测就上百检网。百检网让检测从此检测,一份报告全国通用,专业值得信赖。

代码:

#include

#define uchar unsigned char

#define uint unsigned int

sbit dula=P2^6;

sbit wela=P2^7;

uchar num,dunum,wenum;

uchar code table_du[]={

0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71}; //数码管段选编码

uchar code table_we[]={

0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //数码管位选编码

display();

void main()

{

EA=1; //打开总中断

ET0=1; //开定时器0 分开关

TMOD=0X01; //设置定时器0为方式1

TH0=(65536-500)/256; //设置定时器初值

TL0=(65536-500)%256;

TR0=1;//

while(1)

{

if(num==2)

{

num=0;

if(dunum==6)

dunum=0;

if(wenum==6)

wenum=0;

display();

dunum++;

wenum++;

}

}

}

void time0() interrupt 1 //中断服务程序,1 是定时器0 入口序号

{

TH0=(65536-500)/256;

TL0=(65536-500)%256;

num++;

}

display()

{

P0=0xff; //关闭所有数码管显示 ,防止有交替重影(消隐)

wela=1;

wela=0;

P0=table_du[dunum+1]; //送入段选址

dula=1;

dula=0;

P0=table_we[wenum]; //送入位选值

wela=1;

wela=0;

}


百检网秉承“客户至上,服务为先,精诚合作,以人为本”的经营理念,始终站在用户的角度解决问题,为客户提供“一站购物式”的新奇检测体验,打开网站,像挑选商品一样简单,方便。打破行业信息壁垒,建构消费和检测机构之间高效的沟通平台