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

相关推荐
7yewh6 天前
嵌入式硬件重点(四)常用信号处理、放大电路、运算放大器(运放)基础篇
stm32·单片机·嵌入式硬件·mcu·51单片机·proteus·硬件工程
知行电子-7 天前
Proteus中单片机IO口外接LED输出低电平时,引脚却一直保持高电平的问题(已解决)
单片机·嵌入式硬件·proteus
7yewh7 天前
嵌入式硬件电子电路设计(三)电源电路之负电源
stm32·单片机·嵌入式硬件·mcu·51单片机·proteus
无炘7 天前
Proteus基本元件英文
网络·proteus
July工作室14 天前
1、基于AT89C52、LCD1602的电子计时器proteus仿真设计
单片机·proteus
每天一杯冰美式oh19 天前
51单片机的家庭防盗报警系统【proteus仿真+程序+报告+原理图+演示视频】
嵌入式硬件·51单片机·proteus
每天一杯冰美式oh20 天前
51单片机的土壤湿度检测控制系统【proteus仿真+程序+报告+原理图+演示视频】
嵌入式硬件·51单片机·proteus
Svan.20 天前
基于51单片机的proteus数字时钟仿真设计
嵌入式硬件·51单片机·proteus
每天一杯冰美式oh20 天前
51单片机的仓库管理系统【proteus仿真+程序+报告+原理图+演示视频】
嵌入式硬件·51单片机·proteus
每天一杯冰美式oh21 天前
51单片机的超声波水位检测【proteus仿真+程序+报告+原理图+演示视频】
嵌入式硬件·51单片机·proteus