这是一个51单片机程序.
#include
void DelayMS(uint x) //延时函数 { uchar i,x; while(--x) for (i=0;i<120;i++); }
void main() //主函数 { uchar i,j; P0=0x00; P3=0xff; Count=0; //定时器初始化 TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; IE=0x82; TR0=1; while(1) //死循环 { j=0xFF; j&=0xDF; for(i=5;i!=-1;i--) { //j=_crol_(j,1); P3=j; //6个数码管的位选 P0=DSY_CODE[Digits_of_6DSY[i]]; //6个数码管的段选 if(i==1) Dot=1; //小数点显示 j=(j>>1)|0x80; DelayMS(2); while(1); } } }
void Time0() interrupt 1 //定时/计数器0的溢出中断 { uchar i; TH0=(65536-50000)/256; TL0=(65536-50000)%256; //数码管上的数字每100毫米加1 if(++Count!=2)return; Count=0; Digits_of_6DSY[0]++; for(i=0;i<5;i++) { if(Digits_of_6DSY[i]==10) { Digits_of_6DSY[i]=0; if(i !=5)Digits_of_6DSY[i+1]++; } } }