PWM(脉冲宽度调制)
对模拟信号电平进行数字编码的方法
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
设计要求:
由于AT89系列单片机没有PWM控制器,所以通过定时器产生PWM
通过按钮控制P2.0输出高低电平的时间,占空比可调范围:0~100%,每次按下按钮以10%步进,通过示波器看到对应波形。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
电路功能:
第一个放大器的作用是反相,将P2.0口输出的电压反相,得到一个绝对值相等的负电压。R1和R2阻止相同,不放大。
第二个放大器的作用是放大电压,并再次反相。放大倍数是R4:R5=1000:100=10倍。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实验现象:
首次按下按钮时,n=0,占空比0%,P2.0低电平10ms,高电平0ms,电机不转。
第二次按下按钮,n=1,占空比10%,P2.0低电平9ms,高电平1ms,电机转1ms停9ms。
第三次按下按钮,n=2,占空比20%,P2.0低电平8ms,高电平2ms,电机转2ms停8ms。
...
十次循环过后n=0,重新开始
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
元件清单:
BUTTON
MOTOR
RES,p.s.严格对应图中阻止
OPAMP
COUNTER TIMER,p.s.COUNTER TIMER(频率计)设置OperatingMode项为frequency
Digital Oscilloscope
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
实现代码:
#include
typedef unsigned char uchar;
typedef unsigned int uint;
sbit PWM = P2 ^ 0;
uchar n = 0;
void Delay(uchar m)
{
uchar a, b, c;
while(m--)
for (c = 19; c > 0; --c)
for (b = 20; b > 0; --b)
for (a = 130; a > 0; --a);
}
void PWMout(uchar n)
{
PWM = 0; //先置PWM信号为低电平,此时可以看到在波形图上出现波峰
Delay(10 - n); //延时10-n(ms)
PWM = 1; //置PWM信号为高电平,此时波形图出现波谷
Delay(n); //延时n(ms)
}
int main()
{
EA = 1; //通过按钮中断来修改n的值
EX0 = 1;
IT0 = 1;
while(1)
{
PWMout(n); //脉冲输出子程序
}
}
void Int0()interrupt 0
{
if (n == 10) //n在0-10中循环
n = 0;
else ++n;
}
上一篇:51单片机入门 - 矩阵键盘行扫描实验
下一篇:单片机入门 - 模电、数电与单片机
推荐阅读最新更新时间:2024-11-10 10:16
设计资源 培训 开发板 精华推荐
- LTC3728L、高输入电压 2.5V/5A 和 1.5V/5A 稳压器
- #第七届立创电赛#基于N32G455示波器
- 使用 Analog Devices 的 LTC3646EMSE 的参考设计
- TL431A Crow Bar 精密并联稳压器的典型应用
- LT3755IMSE-1 降压模式 500mA LED 驱动器的典型应用电路,用于 20kHz PWM 调光
- 使用 Analog Devices 的 LT1182CS 的参考设计
- 5*5键盘
- AD8034ARZ高速峰值检波器有限输入范围的典型应用电路
- ADR3450 5V 输出微功率、高精度电压基准的典型应用
- 使用 NXP Semiconductors 的 UC3842 的参考设计
- 老T叔的藏书阁——一位老工程师多年的资料积累
- 4小时实战+剖析:TI工程师教你快速上手 各种无线产品开发 (限量$14售CC1352R1无线开发板,助你参与动手实验)
- 直播已结束【最新 TI C2000实时控制芯片 — F28003X】
- EEWorld邀你来拆解(第7期)——拆拆减肥利器,看看跳绳里都有什么
- TI 汽车应用在线展厅与你零距离接触,答题赢礼
- 【抢楼赢礼】聊聊“我眼中的ADI实验室电路”
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战
- 邀您共赴一场技术盛宴! 2022英特尔® FPGA中国技术周 ——加速,让创新有迹可循
- 有奖直播:新科技、新课堂、新学期~ ADI软件定义无线电ADALM-Pluto入门实战
- 2024年STM32巡回研讨会即将开启!(9月3日-9月13日)