利用51单片机产生一个频率为10HZ的矩形波 需要电路图 数据。占空比可调

如题所述

#include "reg51.h"

#define  uchar  unsigned  char

sbit  PWM = P2^0;

uchar  pwm_zq = 200;  //PWM周期  10HZ是100ms,500us*200 = 100ms
uchar  pwmH_i = 0;
uchar  pwm_i = 0;


void initTimer(void)
{
  TMOD=0x1;  //500us定时
  TH0=0xfe;
  TL0=0xc;
}

void main(void)
{
  initTimer();
  TR0=1;
  ET0=1;
  EA=1;
  pwmH_i = 100;
  while(1)
  {
    ;
  }
}

void timer0(void) interrupt 1
{
  TH0=0xfe;
  TL0=0xc;
  if(pwm_i<pwm_zq)
  {
    pwm_i++;
    if(pwm_i>=pwmH_i)
    {
      PWM = 0;
    }
  }
  else
  {
    PWM = 1; 
    pwm_i = 0;
  }
}

 

//pwmH_i越大,占空比越大。你自己根据实际情况设置。

追问

兄弟 求个比较完整的PROTEUS电路图

追答

仿真图不需要完整,就是个51的最小系统,电源,晶振复位电路,OK。没什么东西啊。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-02

#include<reg51.h>   // 用定时器0  控制 PWM
sbit P1_0 = P1^0;   // P1.0  PWM  输出
sbit key10 = P3^2;   // 调节 PWM0  占空比
sbit key11 = P3^3;
unsigned char PWM0 = 2;     // 占空比调整
unsigned char counter = 0;  // 计数的
bit  tt1;      // 标志位
void main()
{
 TMOD=0x01;
 TH0=(65536-5000)/256;      // 定时时间  可以修改
 TL0=(65536-5000)%256;   // 12 MHz
 EA=1;
 ET0=1;
 TR0=1;
 while(1)
 {                       // 调节 PWM0  占空比
 if(key10==0 && tt1==0) {tt1 = 1; PWM0++;} // K1、K2
 if(key11==0 && tt1==0) {tt1 = 1; PWM0--;} 
 if(key10==1 && key11==1) tt1=0;
 }
}
void Timer0(void) interrupt 1 // 定时器0   PWM 控制
{                           
  TH0=(65536-5000)/256;      // 定时时间  可以修改
  TL0=(65536-5000)%256; 
  counter++;
  if(counter >= 20) counter = 0;   // PWM  20级  可以修改
  if(counter >= PWM0) P1_0 = 0; else P1_0 = 1;
}

第2个回答  2013-04-07
周期是 100ms。

占空比,要怎么调呢?

参考一下吧:

http://hi.baidu.com/do_sermon/item/5011f5c4c8d1bd2b47d5c00d追问

利用51单片机产生4路矩形波:A,B,C,D。并且分为两路(一路快一路慢)当一路中的A处于高电平时B处于低电平当A处于低电平时B处于高电平。CD与AB相同。求帮忙

追答

呵呵,这么复杂,是在搞工程项目啊!

等等看吧,很快就会有人,提供QQ联系方式,进行有偿服务的。

第3个回答  2013-04-02
可以提供程序,原理图,仿真。但不是无偿。需要的可以私聊

51单片机设计频率可调的正弦信号发生器,难点在于要求100HZ到10KHZ频率...
这一点如果你做下去的话 会体会到,希望对你用帮助,另外如果 你用51和波形发生器的话 可以达到10K的,用DA根本不行,也可以采用AVR单片机和DA也行

如何用51单片机定时器产生一个PWM,频率20kHz,占空比可调的PWM
include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY1 = P3^1; \/\/定义调速按键 sbit PWM = P1^5; \/\/定义调速端口 unsigned char CYCLE; \/\/定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms unsigned char PWM_ON ;\/\/定义...

采用两种方式产生频率为10KHz方波(需要电路图和工作原理)
首先要有一个频率10kHz的信号源,然后用整形电路变换为同频率方波。10kHz的信号源最简单而准确的方法是用有源晶振实现,整形电路则采用CMOS施密特反相器最为简便,通常一级反相后就可以从任意波形(例如正弦波、三角波、锯齿波、梯形波等)信号源得到方波,最多两级反相后就可以得到很高质量的标准方波。

设计电路 要求能产生矩形波且频率和占空比可调
哈哈,我给你个标准的,这个很经典。(我正在复习数字电路,看到你问直接发你啦):其中的tw1=0.7R1C,tw2=0.7R2C

...要求能产生矩形波、方波和正弦波,频率可调,范围为100HZ-1M,占空比可...
采用运算放大器先产生一个正弦波信号。正弦波信号通过滞回比较器产生一个方波信号。方波信号通过一个积分器产生三角波信号。以上电路共需三个运算放大器和相关的电阻、电容。具体电路参考下图:?

用51单片机的定时器产生一种方波,频率60HZ,但是占空比只有约0.5%...
24MHz晶振,系统时钟周期 t =1\/24 us;单片机指令周期(机械周期)T=12t=0.5us;16位定时器的最大计数为 65536个机械周期,即 32768us=32.768ms,足够产生 16.67ms 的脉冲了。程序思路:①先计算2个值:60us = 120 ×0.5us=120T;16.67ms=33333 ×0.5us=33333T;②定时器内有个变量...

用C51单片机和内部定时器来产生矩形波,要求频率为100HZ,占空比为2:1...
100HZ的矩形波,周期就是10ms,占空比2:1,就是高的部分占10ms的2\/3,低的部分占10ms的1\/3。理解了吗?

利用51单片机的计时中断,产生可调的PWM信号。频率最好能在20Khz左右...
楼主:我们假设延迟3ms 晶体:12Mhz标准算法;X:为延迟时间,x=3000 方式1:3ms:初值是65536-x=64036,TL0=FAH;TH0=24H。即得到初值 如果晶体:6Mhz X\/2:为延迟时间 方式1:3ms:初值是65536-x\/2=64036,TL0=FAH;TH0=24H。即得到初值 给个联系方式,我发一个延时计算程序给你!

请问如何用51单片机生成频率可调的方波?请给出方案或者修改我的方案...
P0 口,应该加上上拉电阻。AD 转换的结果,应该是:0~255。使用真实的硬件,结果是多少?可以在 P2 口,接上八个 LED,当场显示出来看看。另外,对于这一批数据,你所期望得到的频率范围,究竟是多少?还有,采用软件定时,并不准确。

设计电路 能产生矩形波信号 频率 占空比 可调
NE555矩形波振汤器,RP电位器调较占空比,C充电周期tc=0.7(R1+RP1)C,输出高电平,C放电周期td=0.7RP2C,输出低电平,R1阻值应该选值不小於1k作为防止RP1阻值太小在放电周期时电流过大流入7脚,所以RP选值对比R1应该大多,这样计算tc周期就可以忽略R1,因此总周期T=tc+td=0.7(RP1+RP2)C=0...

相似回答
大家正在搜