AT89C2051输出方波程序

来源:百度知道 编辑:UC知道 时间:2024/06/16 10:06:34
在网上看到许多输出方波的程序,看得懂,但是烧录以后没方波,可能碰到问题向各位高手请教一下:
1.我如果只进行方波的调试,那51芯片只接电源和输出口(P1.4)可以了吗?有必要接复位吗?
2.输出方波就是为了能是输出口的发光二极管闪烁,问一下最好是多久的周期看起来的闪烁明显?
希望高手给个程序,有点注释(特别注释从P1.4输出是哪跳指令,这地方我迷糊).
要求P1.4口输出,单片机是AT89C2051(12M).有程序的加分,保证适用2051的加分.
大哥,我要接发光二极管,问最好多少的周期闪烁最明显,因为我不知道频率多少最好.所以请教.书上有50Hz的,不过20ms是不是太小了,肉眼识别不出?主要是那两问题.

2hz就好了吧,一般汽车灯用的闪烁频率,
程序
org 0000h
ljmp start
org 0200h
start:
cpl p1.4
lcall dely
ljmp start
dely:mov r0,#25
dely1:mov r1,#100
dely2:mov r2,#100
dely3:djnz r2,$
djnz r1,dely2
djnz r0,dely1
ret
end
25*100*100us=250ms

最简单的方波程序应该就是:
SETB P1.4
LCALL DELAY ; DELAY是一段延时程序
CLR P1.4
LCALL DELAY ;
方波的频率由DELAY的延时时间确定。
具体的频率你可以自己修改延时时间来定。
高电平复位还是要接的,可以用最简单的阻容上电复位。
单片机的乐趣就是要自己动手多尝试啊,呵呵

1、要接复位
2、方波周期大于100ms就可以看二极管闪烁。2Hz的频率就比较明显了。

#include <reg51.h>
#define uint unsigned int
sbit clk=P1^4;
uint k;
void main()
{
k=0;
EA=1; //总中断开
ET0=1; //定时器0中断开
TMOD=0x01; //定时器方式1
TH0=(65536-50000)/256; //定时50ms
TL0=(65536-50000)%256;
TR0=1; //定时器开始
}

void timer2() interrupt 1 //定时器0中断
{