设计要求:
定时三组时间,时间到蜂鸣器响,同时LED灯亮;
现有单片机程序
#include <REGX51.H>
#define uint unsigned int
#define uchar unsigned char
uchar t;
uint num;
unsigned char numtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit FM=P0^0;
void delay(uint xms)
{uint i,j;for(i=xms;i>0;i--)
for(j=110;j>0;j--);}
void main()
{TMOD=0x01;
TH0=(65535-50000)/256;TL0=(65535-50000)%256;
EA=1; //开总中断ET0=1; //开定时器 0 中断TR0=1;
whule(1)
{ P2=0xfe; P1=numtab[num%10]; delay(5); P1=0; P2=0xfd; P1=numtab[(num/10)%10]; delay(5); P1=0;}}
void T0_time()interrupt 1
{TH0=(65535-50000)/256
TL0=(65535-50000)%256;t++;if(t==20)
{t=0;num++;
if(num==10)
{FM=!FM;delay(1000);
FM=1;
delay(1000);}
}}
附:
蜂鸣器仿真异常,端口有输出却无反应
希望有人可以帮忙指教一下,谢谢 |