一、系统方案
模拟的电风扇的工作状态有3种:自然风、常风及睡眠风。使用三个按键s1-s3设置自然风、常风及睡眠风。
再使用两个按键s4和s5,s4用于定时电风扇定时时间长短的设置,每按一次s4键,定时时间增加10秒,最长60秒,超过60秒回到0秒重新开始。按下s5键表示定时倒计时开始。
按下相应的风类键,使用处理器atmega128定时/计数器的pwm功能生成不同占空比的1khz的pwm信号来驱动直流电动机motor-dc(模拟电风扇电机)。“自然风”:生成占空比为30%的pwm信号,“睡眠风”: 生成占空比为20%的pwm信号,“常风”:生成占空比为70%的pwm信号.
使用8led数码管或液晶显示屏显示电风扇的工作状态、动态显示使用电风扇的定时功能时的剩余定时时间。使用8led数码管和液晶显示屏lm041l时,“自然风”显示“1”、“常风”显示“2”及“睡眠风”显示“3”,使用12864液晶显示屏lgm12641bs1r lm3228时使用中文显示。
二、硬件设计
原理图如下:
三、单片机软件设计
1、首先是系统初始化
ddra = 0xff;
porta= 0xff;
ddrc = 0xff;
portc= 0xff;
ddrf = 0x00;
portf= 0xff;
ddre &= 0xfc;
porte = 0x03;
//init_devices();
timer0_pwm(); // 初始化pwm
timer1_init(); // 初始化定时器
lcd_init();
// lcd12864_init(); // 初始化lcd
ocr0 = 0x46; // ocr0/0xff=ocr0/256,占空比可调
// tccr0=0x0a; // pwm关闭
2、液晶显示程序
void lcd_write_com(unsigned char com)
{
rs_clr;
rw_clr;
en_set;
data_io = com;
delay_nms(5);
en_clr;
}
//***********************************************************************
// 显示屏数据写入函数
//***********************************************************************
void lcd_write_data(unsigned char data)
{
rs_set;
rw_clr;
en_set;
data_io = data;
delay_nms(5);
en_clr;
}
3、按键程序
if((pinf&0x01)==0x00) // 自然风按下
{
mode = 1;
ocr0 = 0x46; // 占空比 30%
}
if((pinf&0x02)==0x00) // 常风按下
{
mode = 3;
ocr0 = 0x26; // 占空比 20%
}
if((pinf&0x04)==0x00) // 睡眠风按下
{
mode = 2;
ocr0 = 0xa6; // 占空比 70%
}
if((pinf&0x08)==0x00) // 设置当前时间
{
delay(10);
if((pinf&0x08)==0x00) // 设置当前时间
{
timer = timer+10;
while(!(pinf&0x08)); // 按键释放
if(timer > 60)
{
timer = 0;
}
}
}
4、核心算法程序
#pragma interrupt_handler timer1:15/*定时器溢出中断向量标号*/
void timer1(void)
{
static u16 tmr = 0;
tcnt1h=(65536-1000)/256;
tcnt1l=(65536-1000)%256; // 定时4ms
if(++tmr >= 250)
{
tmr = 0;
if(start == 1) // 启动标志位启动
{
if(--timer > 60)
{
timer = 0;
start = 0;
}
}
}
}
四、proteus仿真设计
proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
如何使用QuartusⅡ软件来编写FPGA?
横河AQ6370D光谱分析仪
光纤网络环境的光衰减种类和工作原理
你需要了解NFS网络文件系统
骁龙835+5.5寸4K屏+防尘防水,碾压S8
AVR128智能风扇设计-proteus-程序
鸿蒙与产业数字化就像天然匹配的钥匙和锁 矿山中的鸿蒙花开
虹科方案 | 物联网HMI的关键驱动力—SCADA级功能库和控件库
疫情之下 荷兰ASML订单和需求依然强劲
iPhone6仍支持True TOne双LED闪光灯
澳柯玛推出最新款五门冰箱 鲜肉两周不冻保鲜
MAX11040K/MAX11060 4通道数模转换器(ADC)
新能源汽车连接器相关标准梳理
简单光控电子鸟电路
示波器无源探头内部结构分析
海尔,推出风幕8°油烟机,让厨房洁净,无烟更健康
河套IT WALK(总第61期):探索未来:AI进化,自动驾驶突破,元宇宙创新
封测龙头获台积先进封装大单!
Analog ADIS16240是低功耗设计而优化高精度冲击传感器
什么是太阳能光伏电池