麻烦高手帮我注释一下这段程序 51单片机的void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(a

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 11:36:31
麻烦高手帮我注释一下这段程序 51单片机的void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(a

麻烦高手帮我注释一下这段程序 51单片机的void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(a
麻烦高手帮我注释一下这段程序 51单片机的
void t0(void) interrupt 1 using 0
{
TH0=(65536-500)/256;
TL0=(65536-500)%256;
if((errorflag==1) && (rightflag==0))
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
P0_0=~P0_0;
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0;
rightflag=0;
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0) && (rightflag==1))
{
P0_1=0;
cc++;
if(cc

麻烦高手帮我注释一下这段程序 51单片机的void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(a
不知道你要怎么样的注释,它是一个定时器0,工作方式1的定时中断程序,定时器的定时时间好像是500个机器周期,其它的就是一些if条件语句和flag标志位判断,P0端口取反什么的了

void t0(void) interrupt 1 using 0 //定时器0中断入口
{
TH0=(65536-500)/256; //给定时器0赋初值
TL0=(65536-500)%256;
if((errorflag==1) && (rightflag==0)) //一种处理方式
{
bb++;

全部展开

void t0(void) interrupt 1 using 0 //定时器0中断入口
{
TH0=(65536-500)/256; //给定时器0赋初值
TL0=(65536-500)%256;
if((errorflag==1) && (rightflag==0)) //一种处理方式
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag; //bb加到800,取反alarmflag标志
}
if(alarmflag==1)
{
P0_0=~P0_0; //alarmflag为1,取反P0_0
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0; //完成这行和下一行指令,以后进入中断就不会做什么处理了。
rightflag=0; //从这里看,你的条件没有两个都为0;不知道你主程序里有没有。
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0) && (rightflag==1)) //另一种处理方式
{
P0_1=0;
cc++;
if(cc<1000)
{
okflag=1;
}
else if(cc<2000)
{
okflag=0;
}
else
{
errorflag=0;
rightflag=0;
hibitflag=0;
cmpflag=0;
P0_1=1;
cc=0;
oka=0;
okb=0;
okflag=0;
P0_0=1;
}
if(okflag==1)
{
oka++;
if(oka==2)
{
oka=0;
P0_0=~P0_0;
}
}
else
{
okb++;
if(okb==3)
{
okb=0;
P0_0=~P0_0;
}
}
}
}
=============
不知道你的标志什么意思,很难注释,建议以后,不要aa,bb的什么,alarmflag不是很直观?

收起

void t0(void) interrupt 1 using 0 //定时器0中断函数
{
TH0=(65536-500)/256; //定时记数器赐初值
TL0=(65536-500)%256; //同上
if((errorflag==1) && (rightflag==0))//判断两个表达式都为真程序就进入{}内执行
{
...

全部展开

void t0(void) interrupt 1 using 0 //定时器0中断函数
{
TH0=(65536-500)/256; //定时记数器赐初值
TL0=(65536-500)%256; //同上
if((errorflag==1) && (rightflag==0))//判断两个表达式都为真程序就进入{}内执行
{
bb++; //bb的值加1
if(bb==800) //如果bb的值等于800 程序就进入下面{}内执行
{
bb=0; //bb清零
alarmflag=~alarmflag; //alarmflag 的值取反
}
if(alarmflag==1) //如果alarmflag等于1 程序就进入下面{}内执行
{
P0_0=~P0_0; //P0.0 输出取反
}
aa++; //aa的值加1
if(aa==800) //如果aa的值等于800 程序进入下面{}内执行
{
aa=0; //aa清零
P0_1=~P0_1; //P0.1输出取反
}
second3++; //second3的值加1
if(second3==6400)//如果second3的值等于6400 程序进入下面{}内执行
{
second3=0; //second3清零
hibitflag=0; //清零
errorflag=0; //清零
rightflag=0; //清零
cmpflag=0; //清零
P0_1=1; //P0.1输出高电瓶
alarmflag=0; //清零
bb=0; //清零
aa=0; //清零
}
}
if((errorflag==0) && (rightflag==1)) //如果两个表达式都为真 程序进入下面{}内执行
{
P0_1=0; //P0.1输出底电瓶
cc++; //cc的值加1
if(cc<1000) //如果cc的值小于1000 程序进入下面{}内执行
{
okflag=1; //okflag等于1
}
else if(cc<2000)如果上面cc的值不小于1000 程序直接跳到此处判断cc的值是否小于2000,如果cc的值小于2000 程序进入下面{}内执行
{
okflag=0; //清零
}
else //如果上面cc的值不小于2000程序直接跳此处进入下面{}内执行
{
errorflag=0; //清零
rightflag=0; //清零
hibitflag=0; //清零
cmpflag=0; //清零
P0_1=1; //P0.1输出高电瓶
cc=0; //清零
oka=0; //清零
okb=0; //清零
okflag=0; //清零
P0_0=1; //P0.0输出高电瓶
}
if(okflag==1) //如果okflag 的值等于1 程序进入下面{}内执行
{
oka++; //oka值加1
if(oka==2) //如果oka的值等于2 程序进入下面{}内执行
{
oka=0; //oka值清零
P0_0=~P0_0; //P0.0输出取反
}
}
else //如果上面okflag 的值不等于1 程序进入下面{}内执行
{
okb++; //okb加1
if(okb==3) //如果okb的值等于3 程序进入下面{}内执行
{
okb=0; //okb等于0,意思同上清零
P0_0=~P0_0; //P0.0输出取反
}
}
}
} 我QQ183184473

收起

麻烦高手帮我注释一下这段程序 51单片机的void t0(void) interrupt 1 using 0{TH0=(65536-500)/256;TL0=(65536-500)%256;if((errorflag==1) && (rightflag==0)){bb++;if(bb==800){bb=0;alarmflag=~alarmflag;}if(alarmflag==1){P0_0=~P0_0;}aa++;if(a 请把此段程序注释一下 请把此段程序注释一下 请把此段程序注释一下 请把此段程序注释一下 十万火急!急求VB高手帮我做一下这倒程序改错题,每个FOUND的下一行都有错误,请改正!'【程序改错】'------------------------------------------------'题目:以下程序段用于输出100-300的所有素数'------------ 麻烦哪位高手帮我解释一下这段代码,越详细越好,十分感谢 麻烦物理高手帮我总结一下高中力学! 【100分】高手来帮我翻译一下这段暗语smckg aqjgg rwzyg ezjkp 求高手帮我做几道c++的题,17、以下程序段if(x-- 哪位大神能帮我把这个程序注释一下,我只知道程序运行结果!/* Includes ------------------------------------------------------------------*/#include stm32f10x_lib.h/* Private typedef --------------------------------------------- 还有一道程序题麻烦你帮我解答一下答案选的是a 麻烦大家帮我写一下c++程序输出下列图形 哪个高手帮我做下单片机运用技术.问题补充的几个题号吗?我真的不会做呀、、、一、填空题3、PC寄存器又叫做 ,其功能是 .4、MCS-51单片机有 组工作寄存器,它们的地址范围是 .程序使用当前 麻烦英文高手帮我翻译一下这句话请问守护永恒的爱英文应该怎么讲? 英语翻译麻烦英语高手来帮我翻译一下,这句话,“美容美发用品公司”最好翻译的比较准确,精确 麻烦高手来帮我汉译英一下“炫彩开业”这几个字用英语怎么说啊 求一位android高手给我写一下注释