0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

bbxyliyang 来源:bbxyliyang 作者:bbxyliyang 2023-08-28 09:06 次阅读


一、系统方案
模拟的电风扇的工作状态有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液晶显示屏LGM12641BS1RLM3228时使用中文显示。

wKgZomTpqWeADFCbAAAUKcKs9oo250.png

二、硬件设计
原理图如下:

wKgaomTpqW6AWyKUAAEUn22jJ-I076.png


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

wKgZomTpqXiAHYtOAAE-HQJ8IgA085.png

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19135

    浏览量

    228958
  • 数码管
    +关注

    关注

    32

    文章

    1874

    浏览量

    90897
  • 智能风扇
    +关注

    关注

    1

    文章

    44

    浏览量

    18288
  • AVR128
    +关注

    关注

    0

    文章

    6

    浏览量

    5299
收藏 人收藏

    评论

    相关推荐

    AVR128实验板下载不了程序的原因

    AVR128实验板下载不了程序的原因。PS:51单片机实验板插在我电脑的USB就下载得了程序。不知道什么原因。
    发表于 06-16 10:46

    avr128

    我现在遇到关于avr128系列的困难,能帮解答一下如何控制一路pwm波吗
    发表于 01-12 12:13

    avr128

    avr128如何控制一个舵机
    发表于 01-12 13:27

    AVR128的数码相框的设计!!!!急!!!

    基于AVR128的数码相框的设计!用GCCAVR的,bmp图像显示,JTAG,TFT液晶显示!!!哪位大神帮帮忙。。感激不尽啊!
    发表于 05-14 15:23

    avr c程序

    avr128的各个应用模块的c语言程序最好用ICCV7(跪求adc,dac,rs232,输出波形等模块{:23:})
    发表于 08-05 14:55

    怎么用AVR128单片机(C语言)控制可编程数字电位器AD5122,求...

    怎么用AVR128单片机(C语言)控制可编程数字电位器AD5122,求程序!求大神!
    发表于 05-10 14:39

    史上最全的AVR128例程

    自己学avr单片机已经有相当一段时间了,一开始用的是atmega128,觉得不是很好用。于是自己去买了一块16L的芯片,觉得还行。一开始用的是ICC AVR,应为它用起来比较简单,不像winavr
    发表于 06-23 16:57

    ucosii在AVR128芯片移植中出现了什么问题?怎样去解决?

    怎样把ucosii移植到一块AVR128芯片上去?ucosii在AVR128芯片移植中出现了什么问题?怎样去解决?
    发表于 07-07 07:09

    如何把ucosii移植到一块AVR128芯片上?

    如何把ucosii移植到一块AVR128芯片上?
    发表于 10-29 06:01

    USB/RS232_AVR_JTAG仿真器

    关于AVR128单片机的JTAG接口的使用方法
    发表于 02-25 10:49 33次下载

    基于AVR+PROTEUS仿真_单片机C语言程序设计实例100例

    本书基于AVR Studio+WinAVR(GCC)组合环境和PROTEUS硬件仿真平台,提供了100个AVR单片机C程序设计案例。
    发表于 03-22 18:02 31次下载

    单片机C语言程序设计实训100例--基于AVR+PROTEUS仿

    本书基于AVR Studio+WinAVR(GCC)组合环境和PROTEUS硬件仿真平台,提供了100个AVR单片机C程序设计案例。
    发表于 03-22 17:00 56次下载

    单片机C语言程序设计实训100例--基于AVR PROTEUS仿真

    单片机C语言程序设计实训100例--基于AVR PROTEUS仿真
    发表于 01-04 22:01 44次下载

    一种智能频率计设计与制作(AVR)proteus仿真+程序资料

    一种智能频率计设计与制作(AVR)proteus仿真+程序资料(at89s52单片机)-一种智能频率计的设计与制作(
    发表于 07-22 15:37 21次下载
    一种<b class='flag-5'>智能</b>频率计设计与制作(<b class='flag-5'>AVR</b>)<b class='flag-5'>proteus</b>仿真+<b class='flag-5'>程序</b>资料

    基于AVR128单片机抢答器仿真设计

    基于AVR128单片机抢答器仿真设计
    的头像 发表于 08-29 15:58 677次阅读
    基于<b class='flag-5'>AVR128</b>单片机抢答器仿真设计