一个简单的单片机程序,帮忙注释几行。我是初学者,谢谢!

#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num,num1;
sbit beep=P2^3;//?????????????????????????????
void delay(uint);

void main()
{

temp=0xfe;
while(1)
{
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;;//?????????????????????????????
delay(100);
temp=_crol_(temp,1);//????????????????????????????
P1=0xff;
beep=1;
delay(100);
}
}
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_cror_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
while(1);
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

第1个回答  2011-05-08
sbit beep=P2^3; //由单片机的 P2.3 脚输出 beep 信号,应该是驱动蜂鸣器吧。

for(num=0;num<8;num++)
{
P1=temp;
beep=0; //这个 beep=0 和下面 beep=1 形成了一个以 2*delay(100) 为周期的脉冲信号。
//又由于 sbit beep=P2^3 所以,由单片机的 P2.3 脚输出这个脉冲信号。
delay(100);
temp=_crol_(temp,1); // temp Bit 左移一位,看看上面 P1=temp,
//当这个循环下一次进入时,P1 的值就左移一位,
//如果 P1 接了 LED,就会有流水灯效果。
P1=0xff;
beep=1;
delay(100);
}
第2个回答  2011-05-08
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,num,num1;
sbit beep=P2^3;//将beep赋值给P2.3,程序中凡有P2.3的都用beep代替
void delay(uint);

void main()
{

temp=0xfe;
while(1)
{
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;;//P2.3低电平输出
delay(100);
temp=_crol_(temp,1);// temp左移一位
P1=0xff;
beep=1;
delay(100);
}
}
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_cror_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
while(1);
}
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}本回答被提问者采纳
第3个回答  2011-05-08
1 意思就是beep 用P2^3
2给P2^3低电平
3 是一个函数。temp中的值左移一位
相似回答