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

相关推荐
瓢儿菜20188 天前
proteus 仿真串口 安装配置虚拟软件
单片机·proteus·仿真·虚拟串口配置
瓢儿菜201810 天前
Proteus 仿真51单片机-串口收发小窥
单片机·嵌入式硬件·51单片机·proteus·串口通信
瓢儿菜201811 天前
proteus8.17 环境配置
单片机·proteus·环境配置
zd84510150016 天前
proteus OLED12864仿真
单片机·嵌入式硬件·proteus
天天年年天天。17 天前
Proteus vs Multisim:电路设计与仿真软件对比
proteus·multisim
嵌入式仿真实验教学平台20 天前
嵌入式仿真实验教学平台的核心优势再解析:对比Proteus的技术与教学价值突破
人工智能·单片机·嵌入式硬件·学习·proteus·嵌入式实时数据库
@小张要努力1 个月前
第十三届蓝桥杯国赛电子类单片机学习记录(客观题)
单片机·嵌入式硬件·mcu·学习·蓝桥杯·51单片机·proteus
L_EG1 个月前
Proteus8打开Proteus7文件(.DSN格式)的方法
proteus·89c51
BT-BOX1 个月前
基于STM32电子钟闹钟数码管显示设计(Proteus仿真+程序+设计报告+原理图PCB+讲解视频)
stm32·proteus·音视频
@小张要努力1 个月前
第十四届蓝桥杯省赛电子类单片机学习记录(客观题)
单片机·嵌入式硬件·mcu·学习·蓝桥杯·51单片机·proteus