1、#include#define uchar unsigned char#define uint unsigned int#define DataPort P0 /定义数据端口sbit Duan=P26;sbit Wei=P27;uchar code DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/显示段码值0 到 9uchar code WeiMa=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe; /分别对应相应的数码管点亮,即位码uchar TempData8; /存储显示值的全局变量vo
2、id Delay(uint xms);void Display(uchar FirstBit,uchar Num);/显示函数的声明void init();uchar a,i,tt;void main()init();while(1)if(tt=20)tt=0;a+;TempData2=DuanMaa/100;TempData1=DuanMa(a%100)/10;TempData0=DuanMa(a%100)%10; Display(0,3);void timer_0() interrupt 1TH0=(65536-50000)/256;/装初值TL0=(65536-50000)%256;tt
3、+;/*显示函数,用于动态扫描数码管输入参数 FirstBit 表示需要显示的第一位,如果赋值 2 表示从第三个数码管开始显示,如输入 0 表示从第 1 个数码管开始显示。Num 表示需要显示的位数如需要显示 99 两位数值则该位值输入 2*/void Display(uchar FirstBit,uchar Num)for(i=0;i0;x-)for(y=xms;y0;y-);void init()TMOD=0x01;/定时器设置TH0=(65536-50000)/256;/装初值TL0=(65536-50000)%256;EA=1;/打开总中断开关ET0=1;/打开定时器 0 中断TR0=1;/启动定时计数器 0