AVR单片机控制继电器吸合与断开的仿真设计

发布者:世界因你而精彩最新更新时间:2020-01-19 来源: elecfans关键字:AVR  单片机控制  继电器  吸合与断开 手机看文章 扫描二维码
随时随地手机看文章

继电器(Relay),作用是用弱电控制强电。比如,我们用avr单片控制一个220V电压的灯泡,这就必须用到继电器。


本课用avr单片机来控制继电器的吸合与断开。


Proteus仿真实验器件:

1 atmega128一块

2 button,按键一个

3 relay,通用继电器一个,并把继电器的Component Value设置为5V

4 pnp三极管一个

5 LAMP,灯泡一个改为220V

6 resistor 1k

7 DIODE 二极管一个

这个程序实际上很简单,主要要学习继电器的用法,注意的是,继电器必须接一个二极管。

AVR单片机控制继电器吸合与断开的仿真设计

仿真程序如下:

#include

#include

#define int8u unsigned char

#define int16u unsigned int

#define k1_down() (PINB & _BV(PB7))

#define relay_switch() PORTD^=_BV(PD4)

int main()

{

DDRD=0xff;

PORTD=0xff;

DDRB=0x00;

PORTB=0xff;

while(1)

{

if(k1_down() )

{

while(k1_down() );

relay_switch( );

_delay_ms(20);

}

}

}


关键字:AVR  单片机控制  继电器  吸合与断开 引用地址:AVR单片机控制继电器吸合与断开的仿真设计

上一篇:AVR单片机在工业控制系统中的应用
下一篇:AVR单片机内部的复位功能解析

推荐阅读最新更新时间:2024-11-10 10:31

AVR单片机的几个重要总结
转ST和AVR时都没有系统的看过相关文档,都是根据项目,拿到datasheet,备好工具就开始了,看得最多的就是feature和pins,所以经常在一些细节上疏忽了。在经历过惨痛的教训后,总结出来一些。。。。 1. 通过ISP给Tiny25下载程序时发现内置的EEPROM的数据全部被清掉,重置为0xFF了。经过多次实践,可以这样说:给AVR单片机下载程序时,内部EEPROM的数据全部会被重置,所以,如果想往EEPROM烧些初始化值的话,最好的方式是定义个.eeprom段,在烧完FLASH程序后再将生成的eep文件烧到EEPROM中去,修改Fuse和LockBits是不影响EEPROM数据的。 2. Tiny5的A/D引脚如果悬
[单片机]
基于AVR单片机的PCF8563子程序
/********************************************************************* 目 的: 建立PCF8591操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR *********************************************************************/ /*01010101010101010101010101010101010101010101010101010101010101010101
[单片机]
AVR定时器T1中断示例程序
AVR定时器T1中断示例程序使用AVR的定时器T1做1S定时,并使用PD口的 LED 指示灯做简单指示。 #include iom16v.h #include macros.h #define DISP_DDR DDRD #define DISP_PORT PORTD /*----------------------------------------------------------------- 程序名称:定时器1初始化程序 程序功能: 注意事项:基于7.3728M 晶振 提示说明:晶振不要买到假的,要不然,调不出来还以为电脑有鬼! 输 入: 返
[单片机]
AVR单片机电子钟C程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int #define setb(val,bitn) (val|=(1 (bitn)))//设置某IO口某位为1 #define clr(val,bitn) (val&=~(1 (bitn)))//设置某IO口某位为0 #define get(val,bitn) (val&(1 (bitn)))//读取某位状态 uchar shi=20,fen=39,miao,a=0xff,num; #pragma interrupt_handler zhong:9//它所对应
[单片机]
AVR系列之PWM测试
现在都已经开始上课了 总结还没做完呢 还是不急 都说是慢工出细活的 不过偶是不知道自己的算不算是细活呢 自我安慰下 姑且就当是吧 今天整理的是关于定时器的PWM功能测试 不多说了 继续写出代码吧 #include iom16v.h #include macros.h #define OC0_OUT_EN DDRB |= 0b00001000 //OCO设置为输出端 //PWM初始化 void Timer0Init(void) { TCCR0 = (1 WGM01)|(1 WGM00)|(1 COM01)|(1 COM00)|(1 CS00); /* WGM01=1; WGM00=1; -- fast PWM m
[单片机]
AVR单片机IAR AVR C语言中断编程
一、AVRmega16中断向量表 向量号 程序地址 中断源 描述 IAR AVR中的定义 1 000 RESET 外部引脚电平引发的复位,上电复位,掉电检测复位,看门狗复位,以及JTAG AVR 复位 RESET_vect 2 002 INT0 外部中断请求0 INT0_vect 3 004 INT1 外部中断请求1 INT1_vect 4 006 TIMER2 COMP 定时器/计数 2 比较匹配 TIMER2_COMP_vect 5 008 TIMER2 OVF 定时器/计数 2 溢出 TIMER2_OVF_vect 6 00A TIMER1 CAPT 定时器/计数 1事件捕捉 TIMER_ CAPT_vect 7 00C T
[单片机]
AVR单片机一些学习笔记
下面是自己在学习AVR单片机时的学习经验,分享出来给大家,一起学习。 1、AVR单片机采用RISC架构,8051单片机采用CISC架构。 前者速度为后者的2~4倍,为流水线操作指令。 2、 AVR单片机有32个通用寄存器(地址在RAM区从$0000开始到$001F),其中有6个(最后6个)合并为3个16位的X,Y,Z寄存器,用来存放地址指针,Z寄存器还可以寻址程序存储器。 3、 哈佛结构,131条机器指令。 4、 延迟开机功能。 5、 内部自带RC振荡器,可提供1/2/4/8MHZ的工作时钟。 6、 FLASH+EEPROM+SRAM+SPI+USART+TWI+PWM+RTC+10位ADC+模拟比较器+JTAG。
[单片机]
使用AVR定时/计数器的PWM功能设计要点
一、定时/计数器PWM设计要点 根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。 3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved