新闻  |   论坛  |   博客  |   在线研讨会
AVR学习笔记一、基本输出实验
tiankai001 | 2009-12-03 21:14:46    阅读:4321   发布文章

一、点亮发光二极管

一、实验内容和目的

    本实验通过硬件电路和软件程序,利用ATMega16单片机来控制发光二极管的点亮和熄灭。通过此实验初步掌握单片机的I/O口功能。

二、硬件电路

1、电路分析(对照LT_Mini_M16原理图)

1)电源电路:外接稳压直流电源(最好是DC9V)加到电路的U1处,经过电容C16稳压滤波后加到稳压模块AMS1117-5.0上,然后连接到电源开关按钮S1,从开关按钮出来后经过发光二极管D9和电阻R7,再经过电容C1C2C3C4C5C7稳压滤波后加到单片机以及各个模块的电源端。

          分析:a) 电容的作用是稳压滤波,其中C1C2C3C4C55电容为0.1PF(俗称104电容,一般为瓷片电容)。主要作用为滤出电源电路中的高频成分;而C16C7是电解电容,主要作用是稳压,即把电源电路中的尖峰电压拉低到正常电压水平;C16是稳定外接直流电源的电压(9V),C7是稳定AMS1117-5.0输出的5V电压。

b)稳压芯片采用ASM1117-5.0,该稳压芯片输入电压范围为6.5V-15V,输出电压稳定在5.0+0.1V,最大输出电流可达1A,可以满足一般电路需要。

c) 电源开关按钮S1的作用当然是接通和断开电源了。在此电路中S1采用的是单刀双掷开关,一旦断开电源,则电源的正负极都断开了。

d)发光二极管D9的作用是指示电源是否连接成功,如果外部电源成功的连接上,则发光二极管发光指示电源连接成功;电阻R7的作用是对发光二极管进行限流,一般发光二极管只能通过10mA左右的电流,且发光二极管上面的压降只需要1.5V左右,加到发光二极管上面的电流如果超出额定值,则会烧毁。而系统工作的电压是5V,如果全部加在发光二极管上,则发光二极管很容易就会被烧毁。所以要在电源和发光二极管之间串接一个限流电阻。该限流电阻阻值的计算:(VCC-发光二极管上的电压)/流过发光二极管的电流。一般发光二极管的压降是1.5V左右,电流为10mA左右,则可计算如下:限流电阻的阻值=5.0-1.5/0.01=350欧姆,一般这个阻值可以取得稍微大一些。

     2)复位电路:单片机的第9脚(RESET,复位管脚)经过按钮K5连接到地。

         分析:aAVR单片机是低电平复位(51单片机是高电平复位,刚好相反)。需要单片机复位时,最少要在复位管脚加上1.5微秒的低电平,才能确保单片机正确复位。

               b)按下按钮K5,复位管脚被直接拉到电源地,这样复位管脚的电平就被拉低,从而使单片机复位;一般情况下按钮按下的时间超过毫秒级别,这样就能确保单片机正确复位。

     3ISP电路(程序下载电路):ISP下载接口不需要任何的外围零件。使用双排25排针。

分析:a)由于没有外围零件,故PB5MOSI)、PB6MISO)、PB7SCK)、复位脚仍可以正常使用,不受ISP的干扰。

      bISP下载接口的13579脚分别接单片机的PB5MOSI)、PB6MISO)、PB7SCK)、复位脚;2VCC46810都接在GND上。

     4)晶振电路:晶体的两脚分别接单片机的1213脚(晶体的管脚没有正负和顺序,可以随意连接),电容C11C12分别于晶体的两脚和地连接。

         分析:a)单片机的正常工作离不开稳定的时钟信号。晶体就是提供稳定时钟信号的器件。

bAVR单片机内部集成有RC振荡器,可以为系统提供用以精度要求不高的时钟信号,这是可以不接外部晶体,利用熔丝配置,设置单片机工作与内部RC振荡器模式。这个时候可以不用连接警惕和C11C12两个电容。

c)电容C11C12的作用是让晶体工作的更稳定。

   5)发光二极管驱动电路:单片机的PB0-PB7口分别连接到排阻的八个电阻脚,排阻的公共脚接地。

        分析:a)单片机的PB0-PB7口中的任一个输出高电平(5V),则5V电压通过这个口输出到发光二极管的正极,然后通过电阻连接到地,从而构成一个放电电路。发光二极管正极加上超过1.5V的电压后,就能够点亮发光。

              b)排阻的作用同样是为八个发光二极管分压限流。

2AVR单片机的I/O端口

      1)学习单片机的主要任务就是了解、掌握单片机I/O端口的功能,以及如何正确设计这些端口与外围电路的连接,从而能够组成一个嵌入式系统,并编程、管理和运用他们完成各种各样的任务。

 2ATmega1648位的双向I/O端口PAPBPCPD,他们对外对应32I/O引脚,每一位都可以独立地用于逻辑信号的输入和输出。在5V工作电压下,输出高点平时,每个引脚可输出达20mA的驱动电流;而输出低电平时,每个引脚可吸收最大为40mA的电流,可以直接驱动发光二极管(一般的发光二极管的驱动电流为10mA)和小型继电器等小功率器件。

AVR大部分的I/O端口都具备双重功能(有的还有第三功能)。其中第一功能是作为数字通用I/O接口使用,而复用的功能可分别与片内的各种不同功能的外围接口电路组合成一些可以完成特殊功能的I/O口,如定时器、计数器、串行接口、模拟比较器、捕捉器、USARTSPI等。

3AVR单片机的每组I/O口都配备有三个8为寄存器,分别是:方向控制寄存器DDRx、数据寄存器PORTx、输入引脚寄存器PINxx=A/B/C/D.I/O口的工作方式和表现特征由这三个I/O寄存器控制。

方向控制寄存器DDRx用于控制I/O口的输入输出方向,及控制I/O口的工作方式为输出方式还是输入方式。

DDRx=1时,I/O口处于输出工作方式;此时数据寄存器PORTx中的数据输出到外部引脚。

DDRx=0时,I/O口处于输入工作方式;此时输入引脚寄存器PINx中的数据就是外部引脚的实际电平,通过读I/O指令可将物理引脚的真实数据读入MCU

此外,当I/O口定义为输入时(DDRx=0),通过PORTx的控制,可使用或不使用内部的上拉电阻。(关于上拉电阻的解释请看后面附录2

4AVR 通用I/O端口的主要特点为:

a)双向可独立位控的 I/O

ATmega16PAPBPCPD 四个端口都是 8 位双向 I/O 口,每一位引脚都可以单独的进行定义,相互不受影响。如用户可以在定义 PA 口第023456 位用于输入的同时定义第 17位用于输出,互不影响。

bPush-Pull 大电流驱动 (最大 40mA)

每个 I/O 口输出方式均采用推挽(关于推挽电路,请参阅附录3)式缓冲器输出,提供大电流的驱动,可以输出(吸入)

20mA 的电流,因而能直接驱动 LED显示器。

c)可控制的引脚内部上拉电阻

每一位引脚内部都有独立的,可通过编程设置的,设定为上拉有效或无效的内部上拉电阻。当 I/O口被用于输入状态,且内部上拉电阻被激活(有效)时,如果外部引脚被拉低,则构成电流源输出电流(uA 量级)

dDDRx 可控的方向寄存器。

AVR I/O 端口结构同其它类型单片机的明显区别是,AVR 采用 3 个寄存器来控制 I/O端口。一般单片机的 I/O 仅有数据寄存器和控制寄存器,而 AVR 还多了一个方向控制器,用于控制 I/O 的输入输出方向。由于输入寄存器 PINx 实际不是一个寄存器,而是一个可选通的三态缓冲器,外部引脚通过该三态缓冲器与 MCU 的内部总线连接,因此,读 PINx 时是读取外部引脚上的真实和实际逻辑值,实现了外部信号的同步输入。

3、电路工作过程:

      本实验的整个电路工作过程是:

1)将外接稳压电源连接到电路板的电源插孔P1处,按下电源开关按钮S1,将电源加到单片机上。  

        2)将下载器的ISP插口插到电路板的ISP插座处。下载软件到单片机内。

        3)软件下载成功后,电路板上所要点亮的那个发光二极管就会点亮。

        4)按下复位按钮,电路板上点亮的那个发光二极管就会熄灭,当复位按钮松开后,发光二极管再次点亮。
 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
51 AVR PIC STM32 DIY
推荐文章
最近访客