#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。没什么东西啊。
#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;
}
利用51单片机产生4路矩形波:A,B,C,D。并且分为两路(一路快一路慢)当一路中的A处于高电平时B处于低电平当A处于低电平时B处于高电平。CD与AB相同。求帮忙
追答呵呵,这么复杂,是在搞工程项目啊!
等等看吧,很快就会有人,提供QQ联系方式,进行有偿服务的。
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...