三江学院AVR单片机复习题Word文档格式.docx
《三江学院AVR单片机复习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《三江学院AVR单片机复习题Word文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
11.ATmega16可以使用内部晶振,晶振频率为1M、2M、4M、8M赫兹。
12.ATmega16PDIP封装的AVCC引脚作用是片内AD的电源输入引脚。
13.ATmega16PDIP封装的AREF引脚作用是片内AD的参考电压。
14.ATmega16PDIP封装的引脚XTAL1、XTAL2,作用是片内反向放大器的输入终端。
15.ATmega16PDIP封装的复位引脚名称是RESET。
当在该引脚上出现一个大于1.5us的低电平,单片机复位。
16.ATmega16配置系统时钟的熔丝位共有5个位,名称分别是。
17.ATmega16单片机必须有稳定的时钟才能可靠运行,其获取时钟信号的方法有:
RC振荡器、陶瓷振荡器、晶体振荡器。
1.ATmega16单片机有哪些内部资源?
使用什么样工作电源?
工作电源的电压是多少?
最高能使用多高的晶体频率?
2.AVR系列单片机的Flash存储器、SRAM存储器、EEPROM存储器各作什么用途?
3.AVR系列的单片机由哪些部分组成?
4.AVR复位方式有哪几种?
5.AVR单片机系统的2个常用时钟系统是如何组成的?
其作用是什么?
6.说明AVR单片机通用寄存器的作用和功能?
7.说明AVR单片机I/O口寄存器的作用和功能?
8.AVR单片机的SRAM存储器和EEPROM存储器有何区别?
其用途各是什么?
9.ATmega16的数据存储器的地址空间是如何分布的?
10.说明堆栈指针寄存器SP的作用?
AVR单片机的堆栈是如何工作的?
11.AVR上电后,一旦外部把AVR的RESET引脚拉低,使AVR进入复位状态,接下来的变化如何?
第六章I/O接口及应用
1.通过一条输入指令可以一次读取8个引脚的状态,称为并行输入。
ATmega16有四个8位的并行I/O口,每一个接口的控制由三个特定的寄存器决定,对于A口这三个特定的寄存器为A口数据方向寄存器、A口数据寄存器和A口上拉电阻允许寄存器。
2.DDRA=0x7e,表示
PORTA=0x7e,表示。
3.AVR单片机每组I/O都配置了3个8位的寄存器,分别是DDRX,PORTX,PINX。
4.AVR单片机的DDRX寄存器的作用是控制I/O口的输入输出方式,PORTX寄存器的作用是当I/O输入时,是否使用上拉电阻,内部输出时,设置I/O口输出电阻。
5.DDRX的值设为1时,I/O口输出,设为0时,I/O口输入。
6.共阳数码管的公共级接VCC且每段的电压为GND时,数码管点亮。
7.共阴数码管的公共级接GND且每段的电压为VCC时,数码管点亮。
8.单片机初始化时,I/O口的状态是输入状态,不使用内部的上拉电阻。
9.DDRX的值设为1时,I/O口输出。
10.DDRX的值设为0时,I/O口输入。
11.数码管动态显示的缺点是占用资源多。
12.数码管动态显示的优点是占用资源少。
1.C口的设置如图所示,试说明C口的设置情况,并指出生成程序后PORTC、DDRC以及PINC的值。
2.ATmega16单片机有哪些I/O接口?
3.AVR单片机I/O口3个寄存器的名称和作用是什么?
当I/O口用于输入和输出时,如何设置这3个寄存器?
4.简述状态寄存器SREG各控制位的作用?
5.配置I/O端口时,每个端口引脚有几个寄存器?
每个寄存器位分别控制什么?
解:
有三个8位寄存器DDRxn,PORTxn,PINxn
PORTxn配置位输入时,若PORTxn为1,上拉电阻使能;
若PORTxn为0,则不带上拉电阻。
PORTxn配置为输出时,若PORTxn为1,则引脚输出高电平;
若PORTxn为0,则引脚输出低电平。
不管DDRxn内容是什么,向PINxn写1,就会使PORTxn值在0,1之间来回变化。
6.ATmega16有几组I/O端口,每组端口有几位?
四组端口:
PA,PB,PC,PD;
每组端口均为8位。
7.AVR最小系统包括哪几个部分?
包括时钟电路,复位电路,按键电路,显示电路
8.按需求配置下列端口
a)将PA口配置成输出,且输出值为0x05:
DDRA=0Xff;
PORTA=0x05;
b)将PD口配置成不带上拉输入:
DDRD=0x00;
PORTD=0x00;
i=PINC;
c)将PC口配成不带上拉输入
DDRC=0x00;
PORTC=0Xff;
I=PINC;
分析与编程
1、编写用PA口控制的彩灯控制程序,并使彩灯移动方向向右。
2、阅读下列程序并分析
/***************************题目一***************************/
#include<
iom16.h>
//使程序可以使用特殊功能寄存器
delay.h>
voidmain(){
unsignedcharposition=0;
PORTA=0xff;
DDRA=0xff;
//将PA口工作设置为输出方式
while
(1){
PORTA=~(a<
<
position);
//将a左移position位
if(++position)position=0;
delay_ms(1000);
//延时1s
}
}
A.程序中position变量的作用是?
答:
选择哪一位的发光二极管点亮。
B.说明程序功能。
循环点亮实现流水灯。
/********************题目二**********************/
mega16.h>
flashcharled_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,,0x5E,0x79,0x71};
bitpoint_on=0;
voidmain(void){
chari=0;
PORTA=0xFF;
DDRA=0xFF;
//PA口工作为输出方式
for(i=0;
i<
=15;
i++){
PORTA=led_7[i];
//发送数码管段选
if(point_on)PORTA|=0x80;
point_on=~point_on;
//小数点闪烁
说明程序功能:
数码管静态显示0~F,每个字符显示1s,小数点间隔点亮。
第七章外部中断及应用
1.ATmega16中共含有21个中断源,其中有一个中断源是不可屏蔽中断,名称为向量号为1。
2.单片机相应中断A的条件是:
全局中断允许标示AND中断A允许标示AND中断A标示
3.ATmega16中共含有3个外部中断,名称为INT0、INT1、INT2。
4.MCUCR寄存器是MCU控制寄存器,用于设置INT0和INT1的中断触发方式。
5.GICR寄存器是用中断控制寄存器,用于设置外部中断的中断允许位。
6.GIFR寄存器是通用中断标示寄存器,用于设置外部中断的中断允许位。
当有满足中断条件的事件出现时,对应的中断标志位为1。
7.中断标志位的清楚方法是对其写1。
8.全局中断使能位是SREG寄存器中的第7位即1位。
9.“中断”在单片机中是一个十分重要的概念,单片机产生中断的条件一是___________;
二是________________。
10.#pragmainterrupt_handlerext_int0_isr:
10这句话中的10是什么中断(TC0溢出中断)。
11.#pragmainterrupt_handlerext_int0_isr:
10这句话中的10是(中断向量号)。
1.在AVR中,中断断点和中断现场保护是如何实现的?
2.AVR相应中断是有条件的,说出这些条件是什么?
3.ATmega16有哪些中断源?
各有什么特点?
4.AVR的外部中断有哪几种触发方式?
各适合哪些应用场合?
5.简述AVR中断相应的全过程。
在此过程中,硬件完成了哪些工作?
软件完成了哪些工作?
6.ATmega16单片机有几个外部中断,有几种触发方式?
7.如图所示,试说明INT1的设置情况,并比较两种模式的设置对中断的影响。
8.根据要求对有关寄存器进行正确设置。
a)外部中断0开放,中断请求信号上升沿有效。
b)外部中断1开放,中断请求信号下降沿有效。
c)外部中断2开放,中断请求信号上升沿有效。
程序分析
1.编写一程序,当INT1中断时,改变ATmega16的PA口状态。
2.阅读下列程序并分析
/*****************************题目一*************************************/
charled_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,,0x5E,0x79,0x71};
charcounter;
#pragmainterrupt_handlerext_int0_isr:
2//语句中2是:
外部中断0的中断向量号
voidext_int0_isr(void){
if(++counter>
=16)counter=0;
GICR|=0xC0;
//允许INT0,INT1中断
MCUCR=0x0A;
//INT0,INT1下降沿触发
GIFR=0xC0;
//清楚INT0,INT1中断标示位
counter=0;
#asm("
sei"
)//使能全局中断
PORTA=led_7[counter];
//显示计数单元
一个8段数码管显示0~F16个十六进制的数字,当系统上电时,显示0,当按1次按键,显示数字加1,依次类推,当第15次按键时,显示”F”,第16次按键时,显示又从0开始,当按键按下,显示数值加1。
第八章定时器/计数器
1.ATmega16共有三个定时器,分别是T/C0、T/C1、T/C2。
其中16位的定时器是T/C1,8位的定时器是T/C0、T/C2。
2.ATmega16共有2个8位的定时器计数器,名称是T/C0、T/C2,1个16位的定时器,名称是T/C1。
3.TCNT0是定时器0的计数寄存器,作用是对定时器0的脉冲计数。
4.OCR0是定时器0的输出比较寄存器,作用是存放定时器0的比较匹配值。
5.T/C0的计数时钟源可以来自内部时钟和外部时钟两种。
6.T/C0的计数时钟源的选择由TCCR0中的CS02,CS01,CS00三个位确定。
7.T/C0工作在普通模式时,初值由TCNT0设置,满值255。
8.T/C0工作在CTC模式时,初值为0,满值为OCR0设置。
9.T/C0工作在快速PWM模式时,初值为0,满值0XFF在正向比较匹配输出模式下,当TCNT0与OCR0比较匹配时,清零OC0;
当TCNT0从0xFF到0x00时,置为OC0。
10.T/C0工作在相位修正PWM模式时,初值为0,满值0xFF在正相比较匹配输出模式下,当TCNT0的计数值与OCR0的值比较匹配时,清零OC0;
当TCNT0的值与OCR0相同时,置为0C0。
11.定时器0的计数寄存器是TCNT0。
12.定时器0的比较匹配寄存器是OCR0。
13.AVR的8位定时器、计数器有4种工作方式。
14.ATmega16有3个定时、计数器。
“计数”指的是对外部事件进行统计;
“定时”指的是输入脉冲频率稳定,计数器所记录数值代表时间概念。
15.ATmega16有3个定时/计数器,其中T/C0具有计数、定时和PWM功能;
T/C1具有计数、定时、输入捕获和PWM功能,T/C2具有定时和PWM功能,但不能进行计数。
1.AVR的8位定时/计数器有几种工作方式,每种工作方式的基本用途是什么?
2.AVR的定时/计数器的计数脉冲源有哪些种类和方式,预分频器的作用是什么?
3.AVR的定时/计数器配置的比较寄存器的作用是什么?
4.AVR八位定时/计数器有几种工作方式,分别是什么?
5.简述CTC模式定时器的工作过程?
6.简述普通模式下定时器的工作过程?
分析与设计:
1、T/C0的设置如图所示,试说明所设置的功能。
2、T/C2的设置如图所示,试说明所设置的功能。
3、使用定时/计数器0的内部时钟源,产生1毫秒的定时中断,并利用定时产生1秒的定时信号,每秒钟是PA.5的状态改变一次。
4、用定时/计数器0记录外部脉冲的个数。
5、/******************************题目一*****************************************************/
charauc_SinParam[128]={128,134,140,147,153,
159,165,171,177,182,188,193,199,204,
209,213,218,222,226,230,234,237,240,
243,245,248,250,251,253,254,254,255,
255,255,254,254,253,251,250,248,245,
243,240,237,234,230,226,222,218,213,
209,204,199,193,188,182,177,171,165,
159,153,147,140,134,128,122,116,109,
103,97,91,85,79,74,68,63,57,52,47,43,
38,34,30,26,22,19,16,13,11,8,6,5,3,2,
2,1,1,1,2,2,3,5,6,8,11,13,16,19,22,26,
30,34,38,43,47,52,57,63,68,74,79,85,91,
97,103,109,116,122,128};
//数组中的内容为128点正弦波样本值
charx_SW=8,x_LUT=0;
#pragmainterrupt_handlertimer0_ovf_isr:
10//T/C0溢出中断服务
voidtimer0_ovf_isr(void){
x_LUT+=x_SW;
//新样点指针
if(x_LUT>
127)x_LUT-=128;
//样点指针调整
OCR0=auc_SinParam[x_LUT];
//采样点指针到比较匹配寄存器
DDRB=0x08;
//PB3输出方式,作为OC0输出PWM波
TCCR0=0x69;
OCR0=128;
TIMSK=0x01;
//使能T/C0溢出中断
SREG|=0x80;
//使能全局中断
{};
程序功能:
用T/C0的快速PWM模式产生频率为1KHZ的正弦波。
第十章模拟量输入
1.ATmega16中嵌入了一个8路10位逐次比较的A/D转换电路。
其中“8路”是指8路可选的单端输入通道;
“10位”是指10位精度的逐次逼近型ADC模块。
2.欲使用ATmega16组成一个电压测量装置,在硬件组成上需使用____________________;
在软件上须进行_____________________和__________________________________。
分析:
ADC的设置如图所示,试说明所设置的功能。
第十二章串行通信
1.在异步串行通信中,一帧数据是由起始位、数据位、奇偶校验位、终止位所组成。
2.ATmega16的USART支持全双工同步和异步通信模式,支持5~9个数据位和1~2停止位的数据格式,并提供硬件支持的奇偶校验功能,其时钟发生器产生串行通信的时钟,ATmega16的USART三个独立的中断:
TX发送结束中断,TX发送数据寄存器空中断,以及RX接收结束中断
1.简述ATmega16的USART异步通信的数据帧的结构,说明数据帧中各个位的含义和作用。
2.简述ATmega16的USART的硬件结构,以及发送和接受数据的过程。