采用快速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仿真实现+源码
推荐阅读
史海拾趣
在Auris公司的发展历程中,2017年夏天的一次收购事件具有重要意义。Auris以8000万美元的价格收购了Hansen Medical,这是一家专门开发工具来操控导管的公司。这次收购不仅增强了Auris在手术机器人领域的技术实力,也为其后续的产品研发和市场拓展提供了更多可能性。
背景:近年来,随着全球对环境保护和可持续发展的重视,电子行业也面临着绿色转型的压力。
发展:HN Electronics积极响应环保号召,将绿色生产理念融入公司的发展战略中。公司投入大量资金进行技术改造和设备升级,减少生产过程中的能耗和污染排放。同时,HN Electronics还积极研发和推广绿色电子产品,满足市场对环保产品的需求。
关键事件:2020年,HN Electronics推出了一系列采用环保材料和先进生产工艺的绿色电子产品,这些产品不仅性能优异,而且符合国际环保标准,赢得了市场的广泛好评。
电子行业市场竞争激烈,Chen Yang Technologies也面临着来自各方面的挑战。在某次全球经济危机中,公司遭遇了订单减少、资金紧张等困难。然而,正是在这样的困境中,Chen Yang Technologies展现出了顽强的生命力。公司迅速调整战略,优化成本结构,同时加大研发力度,推出了一系列具有竞争力的新产品。这些举措使得公司成功度过了危机,并在危机后的市场中获得了更大的发展空间。
在机器人和开源硬件领域取得一定成绩后,DFRobot开始关注教育市场。他们发现,越来越多的学校和教育机构开始引入机器人和编程课程,以培养学生的创新能力和实践能力。于是,DFRobot推出了一系列针对青少年和创客爱好者的教育产品,如机器人套件、3D打印机等,并通过举办各类竞赛和培训活动,吸引更多的学生和教师参与。这一举措不仅拓展了公司的业务领域,也为公司的长期发展奠定了人才基础。
随着全球电子市场的不断扩大,GISMA积极实施国际化战略,努力拓展海外市场。公司不仅在欧洲市场建立了稳固的地位,还逐步将业务拓展到亚洲、北美等地区。通过参加国际展会、建立海外销售网络等方式,GISMA成功吸引了众多国际客户的关注,进一步提升了品牌知名度和市场占有率。同时,GISMA还积极寻求与国际知名企业的合作机会,共同推动电子行业的发展。
随着全球电子市场的不断扩大,GISMA积极实施国际化战略,努力拓展海外市场。公司不仅在欧洲市场建立了稳固的地位,还逐步将业务拓展到亚洲、北美等地区。通过参加国际展会、建立海外销售网络等方式,GISMA成功吸引了众多国际客户的关注,进一步提升了品牌知名度和市场占有率。同时,GISMA还积极寻求与国际知名企业的合作机会,共同推动电子行业的发展。
放大器与比较器的主要区别是闭环特性! 放大器大都工作在闭环状态,所以要求闭环后不能自激.而比较器大都工作在开环状态更 追求速度.对于频率比较低的情况放大器完全可以代替比较器(要主意输出电平),反过来比 较器大部分情况不能当作放大器使用. ...… 查看全部问答∨ |
本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 在第三届“ZLG杯”中国大学生ARM嵌入式系统电子设计竞赛我们组的作品“基于EasyARM1138和RFID的病房无线体温监测终端”排在65名(全国500组),获得“优胜奖。 其实,对于这样的成绩,我们 ...… 查看全部问答∨ |
arm7 S3C44B0的板子,在AXD中调试。进入main函数后,在完成了一些例如端口初始化、时钟初始化等操作后,程序总是莫名其妙的进入disassembly模式中,大侠帮我看看这些汇编语句表明处理器正在做什么? 026ec27c [0x2e2e2e2e] cdpcs p14,0x2,c2,c14,c ...… 查看全部问答∨ |
|
偶是做web开发转过来的,什么都搞不定,很郁闷很郁闷。 开个题散点分给大家。 顺便调查一哈大家做嵌入式开发的工资情况 ——地点,工作年限,工资水平。… 查看全部问答∨ |
|
CETK测试sd卡驱动的问题 用CETK測試SD卡的驅動的時候,一共有三項。 其中Strorage Device Block Driver Read/Write Test Cases 和Storage Device Block Driver API Test Cases這兩項都能通過, 另外一項:Storage Device Block Driver Benchm ...… 查看全部问答∨ |
|
MSP430G2452使用EZ430-F2013调试工具,老是提示错误,是不是不能用这EZ430-F2013工具不能调试MSP430G2452?… 查看全部问答∨ |