单片机数码管显示,外部中断

2025-03-19 07:31:08
推荐回答(2个)
回答1:

while(1)
{
DU=1;
P0=SMG[b];
DU=0;

WE=1;
P0=0xfe;
WE=0;
加延时
while(a);

DU=1;
P0=SMG[b];
DU=0;

WE=1;
P0=0xfe;
WE=0;
加延时
while(~a);
}
打字不易,如满意,望采纳。

回答2:

实验2
unsigned uhar count=0;
void main(void)
{

EA=1; //开总中断
ET0=1; //定时器T0中断允许
TMOD=0x01; //使用定时器T0的模式1
TH0=(65536-50000)/256; //定时器T0的高8位赋初值
TL0=(65536-50000)%256; //定时器T0的高8位赋初值
TR0=1; //启动定时器T0
while(1);//无限循环等待中断

}
/**************************************************************
函数功能:定时器T0的中断服务程序
**************************************************************/
void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数
//其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器
{
count++;
TH0=(65536-50000)/256; //定时器T0的高8位重新赋初值
TL0=(65536-50000)%256; //定时器T0的高8位重新赋初值
if(count==20)
{
count=0;
D0=~D0; //按位取反操作,将P0.0引脚输出电平取反

}

}