小比尔/5
:你的程序可能有串口操作。使劲重启几次吧。
(2013-01-24 21:10)
下面是汇编的程序:
org 0000h
ajmp main
org 030h
main: clr p2.7
clr p3.7
xu: mov p0,#055h
acall del
mov p0,#0aah
acall del
ajmp xu
del: mov r1,#0ffh
l1: mov r2,#0ffh
l2: djnz r2,l2
djnz r1,l1
ret
end
下面是C语言的:
#include<reg51.h> //51单片机C语言专用,称:头文件
void delay(void); //声明延时程序,(void)表示此程序不传递数值.
sbit led=P3^7; //对单片机引脚进行控制必须先对引脚进行声明,即"led"代表P3.7脚
sbit ysq=P2^7; //对引脚声明时,字母P必须用大写的P,不能用小写的p
void main(void) //主程序开始
{
led=0; //P3.7低电平
ysq=0; //P2.7低电平
loop: P0=0xaa; //P0口送数,同样字母P必须用大写.
delay(); //调用延时子程序(函数)
P0=0x55; //P0口送数
delay(); //
goto loop; //返回loop入口循环
} //主程序结束
void delay(void) //延时子程序(函数)
{
unsigned int i,j; //声明字母i,j数据类型为整型双字节
for(i=0;i<500;i++) //循环语句,i,j构成的延时大约1秒(11.0592MHZ晶体)
{
for(j=0;j<121;j++) //循环语句
{;}
}
}