版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《单片机应用技术》
任务一项目知识点学习任务二LED闪烁灯控制任务三LED开关灯控制任务四汽车转向灯控制任务五霓虹灯控制任务六继电器控制照明设备项目四ATmega6单片机I/O口应用【知识目标】了解LED发光二极管的驱动控制方法了解ATmega16单片机数字I/O口的结构了解ATmega16单片机数字I/O口的相关寄存器功能【项目知识点与技能点】掌握单片机控制LED发光二极管驱动电路的连接方法掌握ATmega16单片机数字I/O口的相关寄存器功能的设置掌握单片机控制数字I/O口进行开关量控制的程序编写、调试方法任务一项目知识点学习
ATmega16单片机有32个通用I/O接口,分为PORTA、PORTB、PORTC、PORTD四个8位接口,分别对应于芯片上的32个I/O引脚。所有的I/O接口都有复用功能。第一功能均作为数字通用I/O接口使用,而复用功能分别用于中断、定时/计数器、USART、I2C、SPI、模拟比较、捕捉等应用。ATmega16单片机的外部引脚:Vcc,GND2XTAL1,XTAL22RESET1AVCC,GND2AREF 1PA0—PA78PB0—PB78
PC0—PC78PD0—PD7 8DIP封装40脚一、I/O端口的基本结构从图中可以看出,每组I/O口配备三个8位寄存器,它们分别是方向控制寄存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx(x=A\B\C\D)。I/O口的工作方式和表现特征由这3个I/O口寄存器控制。
在GCCAVRC环境中,头文件“io.h”中定义了许多用于控制I/O接口输入/出操作的宏,这些宏与I/O寄存器同名,通过这些宏可以控制A、B、C、D接口的输入输出操作。
当A、B、C、D接口用于数据I/O口时,通过DDRx、PORTx和PINx三个宏控制接口的输入与输出(其中x为A、B、C或D)。例如:
①DDRA为A口数据方向寄存器,用来定义A口的通讯方向(输入/输出);
②PORTA为A口数据寄存器,用来输出数据(输入时,PORTX为高,打开上拉电阻);当PORTx=1时,I/O引脚高电平,可提供输出20mA电流;当PORTx=0时,I/O引脚低电平,可吸纳20mA电流。因此,AVR的I/O在输出方式下提供了比较大驱动能力,可以直接驱动LED等小功率外围器件。
③PINA用来读取A口数据(只读)。二、I/O接口的寄存器二、I/O接口的寄存器数据方向寄存器:DDRX(DDRA)-----可读写DDRA.00DDRA.10DDRA.20DDRA.30DDRA.40DDRA.50DDRA.60DDRA.70复位值位数据寄存器:PORTX(PORTA)-----可读写PORTA.00PORTA.10PORTA.20PORTA.30PORTA.40PORTA.50PORTA.60PORTA.70复位值位二、I/O接口的寄存器端口输入寄存器:PINX(PINA)-----只读PINA.0N/APINA.1N/APINA.2N/APINA.3N/APINA.4N/APINA.5N/APINA.6N/APINA.7N/A复位值位特殊功能寄存器:SFIORPSR100PSR20PSR10PUD0-0ADTS00ADTS10ADTS20复位值位ØBIT3-PUD:Pullupdisable置位时,禁用上拉电阻,即使是将寄存器DDxn和PORTxn配置为使能上拉电阻,I/O端口的上拉电阻也被禁止。
当DDRA的某位为0时,送到方向锁存器的输出端为0,相应位只能作输入。
chara;
DDRA=0x00;
PORTA=0x0F;
a=PINA;
//A口作为输入//低4位使用内部上拉电阻//读取A口的值到变量a二、I/O接口的寄存器当DDRA的某位为1时,送到方向锁存器的输出端为1,相应位只能作输出。如程序段:
chara;
a=0x11;
DDRA=0xFF;
PORTA=a;
//赋值00010001//A口8脚都作输出//将a的值通过PA口输出接口名称方向控制宏引脚输入宏引脚输出宏接口性质PADDRAPINAPORTAI/OPBDDRBPINBPORTBI/OPCDDRCPINCPORTCI/OPDDDRDPINDPORTDI/O
注:因为所有IO接口都具有不同的第二功能,因此实际的接口电路都与前面介绍的有所不同,要详细了解请查阅相关资料。与A口类似,用于对PB口控制三个特定宏为:DDRB、PINB、PORTB;用于对PC口控制三个特定宏为:DDRC、PINC、PORTC;用于对PD口控制三个特定宏为:DDRD、PIND、PORTD。综上所述,4个并行接口的情况如表所示。ATmega16单片机的IO引脚结构图:AVRI/O口引脚配置表DDRXnPORTXnPUDI/O方向上拉电阻引脚状态说明00X输入无效高阻态010输入有效外部引脚拉低时将输出电流011输入无效高阻态10X输出无效输出低电平(吸收电流)11X输出无效输出高电平(输出电流)ATmega16
单片机I/O端口的主要特点双向可独立位控的I/O口。ATmega16有A、B、C、D四个并行(8位字长)输入输出端口。能一次输入/输出一个字节的数据。
Push-Pull大电流驱动(最大40mA)。每个I/O口输出方式均采用推挽式缓冲器输出,提供大电流的驱动,可以输出(吸入)20mA的电流,因而能直接驱动LED显示器。可控制的引脚内部上拉电阻。
DDRx可控的方向寄存器。首先要根据系统的硬件设计情况,设定各个I/O口的工作方式:输入或输出工作方式,即先正确设置DDRx方向寄存,再进行I/O接口的读/写操作。当将I/O接口定义为数字输入口时,还应注意是否需要将该口内部的上拉电阻设置为有效。在设计电路时,如果能利用ATmega16单片机内部的I/O接口上拉电阻,则可节省外部的上拉电阻。在GCCAVR中,可以直接使用C语言对I/O接口寄存器进行操作。三、通用数字I/O接口的设置与读写操作C语言:位操作“按位或”用于打开某一位或某几位,即置位#include<avr/io.h>unsignedchargtmpAvoidmain(){unsignedchartmpB;PORTA|=0x80;tmpB|=0x80;
}//将端口A的第七位置“1”//将局部变量的第七位置“1”//将全局变量的第七位置“1”“按位取反”用于关闭某一位或某几位,即清零#include<io.h>unsignedchargtmpA;voidmain(){unsignedchartmpB;PORTA&=~0x80;tmpB&=~0x80;gtmpA&=~0x80;}//将端口A的第七位清零//将局部变量的第七位清零//将全局变量的第七位清零C语言:位操作“按位异或”用于翻转(取反)某一位或某几位#include<io.h>unsignedchargtmpAvoidmain(){unsignedchartmpB;PORTA^=0x80;tmpB^=0x80;gtmpA^=0x80;}//将端口A的第七位翻转//将局部变量的第七位翻转//将全局变量的第七位翻转C语言:位操作“按位与”用于检查某一位或某几位是否为1
#include<io.h>unsignedchargtmpAvoidmain(){unsignedchartmpB;while(tmpB&0x80){if(PINA&0x80)PORTA&=~0x80;else……}}//查询局部变量第七位是否为“1”//查询PA.7是否为“1”//关闭A端口第七位C语言:位操作DDRA=0xFF;//PA口的0~7位设置为输出PORTA=0x0F;//PA口的0~3位输出为高电平,4~7位输出为低电平
在GCCAVR的头文件中定义
#define _BV(PXx) (1<<(x)) 1<<(x)表示逻辑“1”左移x位,_BV(PX1)为逻辑“1”左移1位,结果为0b00000010,_BV(PX7)为逻辑“1”左移7位0b10000000。DDRA|=_BV(PA1)|_BV(PA7);//PA口的第1位和第7位置高电平输出PORTA|=_BV(PA1);//PA口第1位输出高电平PORTA&=~BV(PA7);//PA口第7位输出低电平1、设置I/O接口为输出方式DDRA=0x00;//PA口的0~7位设置为输入PORTA=0xF0;//PA口的4~7位设置内部上拉电阻使能,0~3位的内部上拉电阻没有使用,外部引脚呈现三态高阻输入状态if(PINA&0x80)//判断PA口第7位的高低电平状态2、设置I/O接口为输入方式需求分析:
在试验装置上有8只发光二极管接在PC口,每只发光管低电平点亮。如果按图所示的方式点亮,每次点亮两只发光管,间隔0.2秒后,再换成点亮相邻的两只,依此类推,4次后,再回到第一次,周而复始,形成彩灯的移动。第一次第二次第三次第四次76543210彩灯点亮示意图四、举例任务2LED闪烁灯控制一、任务要求:利用ATmega16单片机数字I/O口,编程实现控制一个LED发光二极管的闪烁亮灭,通过编写程序,可改变LED发光二极管闪烁的频率。二、硬件电路三、程序流程任务3LED开关灯控制一、任务要求:利用ATmega16单片机数字I/O口,编程实现用一个开关控制LED发光二极管的亮灭,开关闭合时LED亮,开关断开时LED熄灭。二、硬件电路三、程序流程任务4汽车转向灯控制一、任务要求:利用ATmega16单片机数字I/O口,编程实现模拟汽车转向灯的控制,当开关在中间原位时左右两个转向灯均不亮,当开关拨到上面时右转向灯闪烁点亮,当开关拨到下面时左转向灯闪烁点亮。二、硬件电路三、程序流程任务5霓虹灯控制一、任务要求:利用ATmega16单片机数字I/O口,编程实现8个LED灯的左右来回循环点亮,形成走马灯形式。(也可根据需要编程实现多种花样的LED灯
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 胰体尾切除术护理查房
- 肝性脑病护理查房(含心理护理)
- 2026年秋部编人教版五年级上册道德与法治全册教学设计(新改版教材)
- 湖南省邵阳市2027届高三上学期第一次考试历史试题(含答案)
- 广东省深圳市2026年中考物理三模试卷附答案
- 2025-2026年物流师考试物流配送中心设计模拟试题
- 2026年烟花爆竹初期火情扑救考试题及答案
- 2025-2026年免疫系统基础知识测试卷
- 2026年烟草生产操作工测题库及答案
- 2026年学校卫生工作培训试卷(含答案)
- 2026年手术室专科护士考试试题及答案
- 中医医院2026年第三季度N1护理理论考试试题及答案
- 2026年严重精神障碍患者健康管理试题及答案
- 广东省工程勘察设计服务成本取费导则(2024版)
- 法检系统书记员招聘考试(公共基础知识)模拟试题及答案西藏2026
- 内审(气瓶检验机构)(2024版)-符合TSG Z7001-2021
- 手签章管理办法
- 回归突破:“生命实践”教育学论纲
- 江口县官和乡100万羽蛋鸡养殖基地项目环评报告
- 2023年05月重庆市药品技术审评查验中心招考35名工作人员(劳务派遣)笔试题库含答案解析
- 电子警察相机调试培训
评论
0/150
提交评论