80c51单片机实验

来源:百度知道 编辑:UC知道 时间:2024/04/28 08:15:51
题目:已知fosc=6MHz,试编写程序,利用T0方式2,设置TH0≠TL0,从P1.0输出高电平脉宽200,低电平脉宽500的连续矩形脉冲。(急!!!今天要搞定!)答对有追加分!!

简单,
#include <reg52.h>
#include <stdio.h>
#define uint unsigned int
#define p0 P0
#define p1 P1
#define p2 P2
#define p3 P3

void in_t0()
{
TMOD=0x02;
TH0=0x03;
TL0=0xeb;
TR0=1;
EA=1;
ET0 =1;
}

void timer0(void) interrupt 1 using 1
{
TH0=0xff;
TL0=t0;
times++;
if (times==700)
{
times=0;
}
if(times<200)
{ p1|=0x01;}
else
{p1&=0xfe; }
}

void main()
{ uint times=0;
in_t0();
while(1);
}
不清楚你时间的单位是什么,我就以毫秒为单位发送200的高电瓶和500的低电瓶!
累死了,查查汗!呵呵
还有,如果脉冲宽度不符合,具体时间你只要在调整TH0,TL0的大小就可以了!你自己调吧!
我这里没有编译器,是在记事本上写的程序,有问题再qq我,357157293

这个问题很简单啊,你的输出的单位是多少,us还是ms.