用单片机实现方波

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:06:32
要求用c语言编写程序
还要求用定时器中断方式或查询定时器溢出标志方式从P口输出给定周期的方波

编写程序关键还要简化程序啊,要单片机输出一个方波没必要用到定时器,

#include<reg51.h>

sbit HZ=P1.0; //P1.0输出方波

void delay(unsigned char w)
{
while(w--);
}

void main()
{
while(1)
{
HZ!=HZ;
delay(100); //改变括号里面的数字可调节输出方波频率,数字大频率底,数字越小输出频率就越高
}
}

高电平有效 的程序已经相当好了,就是你要

给定周期的方波,需要适当的计算。

你要知道你的频率和定时器上溢下溢的工作方式,每加一个数,时间多少。
周期/2是定时器的中断间隔或者是间隔的多少倍。

给你的计算方法,你可以做个可调的方波信号

注意 第二个回答: 应加上一句(t0=20;) 不然的话只有一次
if(t0==20) /*1s*/
{
t0=0;
FF=~FF;//输出方波
}

这个最简单啊,要自己写啊!!
方波这个你给单片机一个口先送1,延时几秒再送0,如此循环下去就出来方波了。自己写,练练手嘛。
祝你好运!!!

#include <reg52.H>

#define uint unsigned int
#define uchar unsigned char
sbit FF=P1^0; // 输方波
uchar t0=0;

void init();

void main()
{
init();
while(1)
{
if(t0==2