AVR128 智能风扇设计-proteus-程序

一、系统方案

模拟的电风扇的工作状态有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仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

相关推荐
资料,小偿2 天前
4.101基于8086国旗图案proteus8.9,8086彩灯图案流水灯图案,国期图案仿真,四个开关四种模式。近期本人原创
汇编·proteus
资料,小偿3 天前
3.55基于51单片机温度报警器基于51proteus的DS18B20温度报警器+报告可设置上下限,低于或者高于都会有声光报警,蜂鸣器响LED灯亮。
51单片机·proteus
智者知已应修善业3 天前
【proteus数电74LS175+74LS48抢答器仿真扩展为矩阵键盘16路】2022-9-1
驱动开发·经验分享·笔记·硬件架构·proteus·硬件工程
资料,小偿5 天前
4.29.3五种波形发生器8086波形发生器,锯齿波脉冲波正弦波三角波直流信号含调试视频➕18页5000字原创报告软件流程图proteus8.9近期原创的,
汇编·proteus
hazy1k6 天前
ESP32基础-PWM_直流电机
stm32·单片机·嵌入式硬件·51单片机·proteus·esp32
资料,小偿6 天前
3.57基于51单片机数字电压表的设计+报告
51单片机·proteus
ThreeYear_s7 天前
【FPGA+DSP系列】——CCS联合proteus仿真DSP工程,以TMS320f28027芯片为例,LED闪烁仿真。
单片机·fpga开发·proteus
资料,小偿7 天前
4.98基于8086倒车测距8086测距ACD0809proteus8.9仿真,汇编语言源程序
汇编·proteus
资料,小偿8 天前
4.95基于8086流水灯霓虹彩灯控制器,8086彩灯控制器proteus8.9仿真文件+源码功能四个开关对应四种模式。
汇编·proteus
hazy1k13 天前
51单片机基础-最小系统设计
stm32·单片机·嵌入式硬件·mcu·51单片机·proteus