本帖最后由 yufei422 于 2016-4-29 16:47 编辑
共阴极4位数码管,动态2ms显示1264。显示结果如图,程序哪里出了什么问题啊?
/************************************
定时2ms中断 动态显示1264
***************************************/
#include<reg51.h>
#define uchar unsigned char
uchar tab1[4]={0x06,0x5b,0x7d,0x66}; //1264
uchar tab2[4]={0xfe,0xfd,0xfb,0xf7};
uchar i=0;
/*********************************
T0中断初始化
描述:2ms定时 12MHz,2ms=2000*1us,65536-2000=63536=1111100000110000B TH0=0xf8 TL0=0x30
**********************************/
void InitTimer0(void)
{
TMOD=0x01; //设定T0工作方式1
TH0=0xf8; //计数初值
TL0=0x30;
TR0=1;
EA=1; //开中断
ET0=1;
}
/*******************************
T0中断服务程序
**********************************/
void Timer0Interrupt(void)interrupt 1
{
TH0=0xf8; //计数初值
TL0=0x30;
i++;
i%=4;
}
/****************************
主程序
***************************/
void main(void)
{
InitTimer0();
while(1)
{
P2=tab2
; P0=tab1;
}
}
此帖出自小平头技术问答
一周热门 更多>