51单片机实现动态数码管
单片机型号:AT89C51
数码管型号:7SEG-MPX6-CC
我使用定时器作为计算时间,请看下列代码
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uint i;
uint time;
code uchar arrays[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void init_timer(){
TMOD=0x10;
TH1=(65535-1000)/256;
TL1=(65535-1000)%256;
ET1=1;
EA=1;
TR1=1;
}
void timer_isr() interrupt 3{
TH1=(65535-1000)/256;
TL1=(65535-1000)%256;
time++;
}
void displayDigitalTtube(){
P1=0;
if(time>1000){
time=0;
P3=arrays[i++];
if(i>=sizeof(arrays)){
i=0;
}
}
}
void main(){
init_timer();
while(1){
displayDigitalTtube();
}
}
如果有更好的代码望大神赐教