采用快速PWM方式,通过按键设置OCR1A的值,从而改变占空比;
当数值超出界限时,以了LED和LCD的方式报警;
输出经过滤波可以得到直流信号,改变占空比,输出不一样。
仿真原理图如下
单片机源程序如下:
#define MAIN_C
#include "includes.h"
/***************************/
/*PWM*/
/*晶振为4MHz*/
/*利用Timer1的OC1A脚输出占空比可调的信号*/
/*通过按键控制OCR1A的值*/
/***************************/
#define PwmOut PD5 //A通道的PWM输出
#define OCR OCR1A
#define KeyUp PA0 //增大PWM值的按键
#define KeyDown PA1 //减小PWM值的按键
#define Above PA2 //设置位值过高指示
#define Below PA3 //设置位值过低指示
#define STEP 64 //定义按键时的步进值
int OcrReg = 1024; //OCR1A初始值
int Icr1Reg = 0x7ff; //PWM的计数顶部值 Icr1Reg = 2047
//unsigned char *show = "0000";
unsigned char temp;
void init(void) //初始化函数
{
//比较匹配时清零,计数到最大时置位OC1A
TCCR1A |= (1< TCCR1B |= (1< OCR = 0 ; DDRD |= (1< } void ShowValue(int value) { unsigned char *temp = "0000"; temp[0] = value/1000 + 0x30; value = value%1000; temp[1] = value/100 +0x30; value = value%100; temp[2] = value/10 + 0x30; value = value%10; temp[3] = value + 0x30; ClearLine(2); LCD_DisplayString(2,1,"OCR1A = "); LCD_DisplayString(2,9,temp); } void main(void) { unsigned char i; init(); Init_LCD(); OCR = OcrReg; LCD_DisplayString(1,1,"PWM test"); LCD_DisplayString(2,1,"OCR1A = "); ShowValue(OcrReg); while(1) { if(!(PINA&(1< delay_nms(10); //按键消抖 if(!(PINA&(1< while(!(PINA&(1< { for(i=0;i<5;i++) { PORTA ^= (1< } ClearLine(2); LCD_DisplayString(2,1,"Value MAX!"); } else { PORTA |= (1< OCR = OcrReg; ShowValue(OcrReg); } } } if(!(PINA&(1< delay_nms(10); //按键消抖 if(!(PINA&(1< while(!(PINA&(1< { for(i=0;i<5;i++) { PORTA ^= (1< } ClearLine(2); LCD_DisplayString(2,1,"Value MIN!"); } else { PORTA |= (1< OCR = OcrReg; ShowValue(OcrReg); } } } } } //比较中断子程序,可以用来产生正弦波 /*#pragma vector = TIMER1_COMPA_vect __interrupt void CompA_isr( void ) { OcrReg = st[j]; OCR = OcrReg; j++; if(j>88) { j = 0; } }*/
上一篇:AVR单片机ATmega16之初识PWM模式
下一篇:AVR单片机简单计算器的Proteus仿真实现+源码
推荐阅读
史海拾趣
近年来,随着环保意识的提高,BH Electronics积极响应国家绿色发展的号召,开始了绿色转型之路。公司加大了对环保技术的研发和应用力度,推出了一系列绿色环保产品。同时,BH Electronics还优化了生产流程,减少了能源消耗和废物排放。这些举措不仅提升了公司的环保形象,也为公司的可持续发展注入了新的动力。
这五个故事只是BH Electronics发展历程中的一部分,但它们却生动地展现了这家公司在电子行业中的崛起之路。从初创时期的筚路蓝缕,到技术创新的突破;从国际化战略的拓展,到品质管理的提升;再到绿色发展的转型,BH Electronics始终保持着敏锐的市场洞察力和不懈的创新精神。正是这些因素的共同作用,使得BH Electronics能够在激烈的市场竞争中脱颖而出,成为电子行业中的佼佼者。
在取得初步成功的基础上,Array Microsystems Inc深知技术创新是企业持续发展的核心动力。因此,公司加大了对研发的投入力度,不断推出新的阵列传感器产品和技术。这些新产品不仅具有更高的性能和更低的成本,还满足了市场不断变化的需求。通过持续的创新和研发,Array Microsystems Inc在电子行业中保持了领先地位。
在台湾,一家名为“FORMOSA电子元件制造厂”的公司,起初是一家小型电阻器生产商,专注于为本地电子制造商提供基础元件。随着个人电脑和消费电子市场的蓬勃发展,该公司敏锐地捕捉到市场需求,开始投资研发高精度、低成本的电子元件。通过不断的技术创新和质量控制,FORMOSA电子元件逐渐在国际市场上获得认可,成为多家知名电子产品制造商的供应商。公司还积极拓展海外市场,在欧洲和北美设立分支机构,进一步巩固了其在全球电子元件市场的地位。
随着技术的不断积累和市场的逐步拓展,成都芯进电子逐渐在磁传感器芯片领域崭露头角。他们不仅实现了霍尔效应和磁阻效应磁传感器芯片的量产,还成功研发了电流传感器芯片、电机驱动芯片和电源管理芯片等系列产品。这些产品的推出,不仅丰富了公司的产品线,也进一步提升了公司的市场竞争力。
创新是Artaflex公司持续发展的核心动力。公司不断投入研发资金,加强技术创新和新产品开发。通过不断推出具有创新性和竞争力的产品,公司不仅满足了市场的多样化需求,也赢得了客户的信任和好评。同时,公司还注重人才培养和团队建设,为公司的长期发展奠定了坚实的基础。
胜利公司深知品牌文化对于提升品牌价值的重要性。因此,公司积极开展文化营销活动,如举办羽毛球文化节、赞助羽毛球赛事等。通过这些活动,公司不仅与消费者建立了深厚的情感联系,还提升了品牌的知名度和美誉度。
以上故事均基于虚构,旨在展示一个品牌成长的可能路径和方式。如有需要,请结合实际情况进行调整和修改。
根据传输线变压器串并联同时耦.-flu原理,设计了一种1 3 dB铁氧体定向耦合器,该定向耦合器是用漆包线绕在射频铁氧体磁芯上做成。具有尺寸小、结构简单和频带宽等优点,工作范围在1 O0~400MHz。对其参数进行了理论计算和测量,满足设计要求。经过 ...… 查看全部问答∨ |
|
大家好: 为什么实型变量输出时报错?如下程序。 #include<stdio.h> #include<stdlib.h> #define PI 3.14 double b; main() { SCON=0X50; TMOD=0X20; TH1=0X3f; TR1=1; TI=1; b=4.678; printf("%f",b); ...… 查看全部问答∨ |
|
大家好,我现在有一个获取UART格式输出的图像数据的项目,我用一个USB转串口芯片将设备与电脑相连,初步的设备访问已经能够完成(如设置寄存器),但是当我开始让设备输出图像时,我就无法获得每一次的数据,基本上只有在开始能读到一部分不完整的数据,后面 ...… 查看全部问答∨ |
|
最近在用STM8s103进行串口通讯调试。 使用UART1,利用中断进行收发,主要代码(中断处理部分)如下/*发送中断处理代码*/ @interrupt void USART_TX(void) { /* 将一个字节写入发送寄存器,并将发送缓冲区指针向后移动一个字节 ...… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- 创通联达高通 IOT 平台解决方案及成功案例|报名直播赢【蓝牙耳机、音箱、京东卡】等好礼
- 有奖直播|TI DLP® 技术在AR HUD及车内显示应用的展望
- 似兰斯馨,一个老电子工程师的点滴足迹
- 安森美半导体重磅推出超低功耗蓝牙芯片 RSL10 — 观视频答题送样片 更有丰富礼品等你拿!
- 不可错过的一次邂逅,TTI携TE传感器样片与你相见!免费样片申请活动开始啦~
- 下载有好礼!未来已来,你准备好了吗?益莱储5G白皮书!
- 【边分享,边成长,11月有奖】EEWORLD优秀主题/回复第16期活动开始拉
- 安世半导体&世平集团 Nexperia 在5G基础架构的应用 下载赢好礼!
- 看MPLAB® Harmony集成软件框架之学习篇 你来评论我送礼!
- 【芯币兑换】活动一:用社区芯币兑换51开发板PCB板!