这个程序是什么意思?求解答typedef unsigned char uint8;typedef unsigned int uint16;sbit s1=P1^0;sbit s3=P3^2;sbit light=P3^0;sbit speaker=P3^1;sbit zhishi=P1^2;void baojing(){ uint8 counter; TMOD=0x01; TH0=0xB8; TL0=0x0
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/13 03:51:30
这个程序是什么意思?求解答typedef unsigned char uint8;typedef unsigned int uint16;sbit s1=P1^0;sbit s3=P3^2;sbit light=P3^0;sbit speaker=P3^1;sbit zhishi=P1^2;void baojing(){ uint8 counter; TMOD=0x01; TH0=0xB8; TL0=0x0
这个程序是什么意思?求解答
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit s1=P1^0;sbit s3=P3^2;
sbit light=P3^0;sbit speaker=P3^1;
sbit zhishi=P1^2;
void baojing()
{
uint8 counter;
TMOD=0x01;
TH0=0xB8;
TL0=0x00;
TR0=1;
while(s3)
{
if(1==TF0)
{
TF0=0;
TH0=0xB8;
TL0=0x00;
counter++;
}
if(25==counter)
{
counter=0;
light=~light;
speaker=~speaker;
}
}
}
void zs()
{
这个程序是什么意思?求解答typedef unsigned char uint8;typedef unsigned int uint16;sbit s1=P1^0;sbit s3=P3^2;sbit light=P3^0;sbit speaker=P3^1;sbit zhishi=P1^2;void baojing(){ uint8 counter; TMOD=0x01; TH0=0xB8; TL0=0x0
很简单的一个程序,主要目的是实现时间到了告警和指示灯状态翻转的程序.
先用51自身的定时器产生一个最大的计时周期,计时时间到,产生中断,TF0标志位置位,由于这个最大的计时周期不能满足要求,因此,在TF0中断后清相关标志位,再用counter做进一步累加,以获取更大的计数周期,当counter累加25次后,清累加器counter以便下一次累加,相应的灯(light)和蜂鸣器(speaker)状态发生翻转.