考试题AVR参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A V R16单片机考试题
一、选择题
1、单片机的基本组成结构包括:CPU、程序存储器、、输入接口、输出接口五大部分()
A、EEPROM
B、数据存储器
C、ROM
D、堆栈
2、ATMEL公司生产的单片机以三大系列为主,其中XMEGA是属于()
A、低档单片机
B、中档单片机
C、高档单片机
D、普通单片机
3、单片机的三总线结构是指:数据总线、地址总线和______()
A、控制总线
B、采集总线
C、接收总线
D、发送总线
4、单片机的数据存储器包含和两大部分。
( )
A.ROM RAM B.EEPROM CPU
C. RAM EEPROM
D.ROM CPU
5、T/C0工作在普通模式时,初值,满值。
()
A.为0 为255 B. 由TCNT0设定为255
C. 由OCR0设置 255
D. 0 由OCR0设置
6、共阳数码管的公共级接且每段的电压为时,数码管点亮( )
A.GND VCC B. GND CPU C. VCC CPU D.VCC GND
7、DDRX的值设为时,I/O口输出。
()
A、0
B、1
C、2
D、3
8、AVR的8位定时器/计数器有种工作方式()
A.1 B. 2 C. 4 D. 8
9、定时器1的中断屏蔽寄存器是_______ ()
A. TCNT1
B.OCR1
C. TCCR0
D.TIMSK
二、填空题
1、AVR16单片机是____8__位单片机,ATmegal16L与ATmega16的区别是什么:
__Atmega16L支持电压2.7 ~5.5V,频率:0~8Mhz,Atmega16支持电压:4.5~5.5V,频率:0~16Mhz(提示:可以从供电电压和支持的晶振频率上两方面考虑)
2、单片机XTAL1、XTAL2这两个引脚的作用分别是什么:_反向振荡放大器与片内时钟操
作电路的输入端_、_反向振荡放大器的输出端_
3、引脚AVCC的作用:_AVCC是端口A与A/D转换器的电源___
4、引脚AREF的作用:_A/D 的模拟基准输入引脚
5、在我们平时编写单片机程序时,我们通过____ISP________方式将程序下载到单
片机的__FLASH____存储器中。
6、端口A为8位双向I/O口,具有可编程的内部上拉电阻,作为输入使用时,如
内部上拉电阻使能,端口被外部电路拉低时将__输出_电流。
7、中断向量地址与其优先级的关系是:_中断向量地址越小其优先级越高___。
8、AVR中断控制寄存器的名字是:___GICR__,如何配置打开全局中断__SREG=0x80;
或者 sei();__(任意一种方式)。
9、AVR结构具有两个主要的存储器件:__数据存储器____和__程序存储器__
10、Atmega16具有___16___字节的在线编程Flash,用于存放__程序指令代码___,
所有的AVR指令为___16___位或者___32__位
11、数据存储器SRAM的存储空间被分为:__32个通用寄存器__、_64个IO寄存
器___以及__1024_字节的内部SRAM空间。
12、ATmega16中含有__512字节___的EEPROM。
它的擦写次数是 10万次,具
有掉电后不丢失数据、通过系统程序可以随机修改__ 。
13、单片机的数据存储器包含 RAM 和 EEPROM 两大部分,其中 EEPROM
是 RAM 的补充。
14、FLASH ROM支持用户多次擦除和写入代码,可以实现 10万次
的____写入_____ (填读写或写入)
15、AVR单片机的复位源包括:__上电_复位、__看门狗__复位、__外部(RESET)___
复位以及掉电检测复位和JTAG复位
16、看门狗的驱动源是:___由独立的 1 Mhz 片内振荡器驱动___
17、单片机内的每个端口都有___3__个I/O存储器地址,分别是:__PORTx___、
___DDRx______、____PINx____
18、ATmega16的工作电压是_____5V_(4.5 ~ 5.5V均可)____ , 所能使用的最高
晶振频率为 ______16Mhz_____。
19、列举一个简单的芯片引脚复用的例子:___A/D转换、ISP下载、IIC通信等
_______________
20、AVR16单片机,PDIP封装形式,共有__40__个引脚,TQFP封装形式,共有__44__
个引脚。
其中,可编程I/O口共有__32__个。
21、16位定时器、计数器计到_____0xffff______(十六进制、十进制均可)时,
达到最大值MAX。
22、USART是什么:______通用同步异步串行收发器_______,它与UART的区别是
什么:______UART只支持异步操作______
23、USART的方框图中描述了USART的三个主要组成部分,分别是_____发送器___、
______时钟发生器_____以及接收器
24、串口通信有_2__种方式,分别是__同步和异步__,在我们单片机程序调试中,
使用的是哪种串口通信形式____异步通信____
25、TWI支持___7__位地址寻址空间,允许有__128____个从机。
26、TWI总线空闲为____高__电平,数据的有效性规定是什么__在时钟线给高电平
期间,数据线上电平必须稳定_________________
27、AVR单片机采用____harvard___________体系结构,它的优点是什么___指令
与与数据空间完全分开,分别通过专用的数据总线与的 CPU 据交换,实现了对程序和数据的同时访问,并且提高了执行效率和数据的吞吐率____
28、CPU的基本功能是进行__算术_、__逻辑___、__比较__等运算和操作,并将
运算结果设置到相应的__寄存器___和存储器中。
29、单片机执行命令是在___控制电路___的控制下进行的。
首先从___程序存储
器____中读出指令,送___指令寄存器____保存,然后送____指令译码器___进行译码,译码结果送到定时控制逻辑电路,由定时控制逻辑产生各种控制信号和定时信号,再送到系统给的各个部件去进行相应的操作。
这就是执行一条指令的全过程,执行程序就是不断重复这一过程。
30、LCD12864共有两种接线方式,分别是:____串行连接____和___并行连接
______,我们使用的是:___并行连接_____。
在这种接线方式中,控制引脚使用了__3__个,数据引脚使用了__8__个。
31、LCD12864最多可显示____32___个汉字,最多可显示____64___个英文字符。
32、DS1307在寄存器中存储时间时,采用______BCD码_____格式的数据。
33、DHT11与主机通信方式:_____单总线____
三、简答题
1、一个轻触开关的一端接到了GND上,另一端接到了单片机引脚PA0上,简述如
何检测这个开关被按下了(引脚配置用程序说明,其它的可以用语言描述)?
//配置成输入上拉
DDRA &= ~_BV(PA0);
PORTA |= _BV(PA0);
//检测低电平
While( !(PINA & _BV(PA0)) ){
Return 0x01;
}
2、简述操作定时器的基本步骤?
提示:在你实际使用定时器的过程中,所需要完成的操作都要描述,例如增加什么头文件等
#include <avr/interrupt.h>
Timer1_init()
{
//设定时钟频率
//设计计时时间
//打开定时器溢出中断开关
}
ISR(TIMER1_OVF_vect)
{
//重装定时器
//溢出中断之后的具体操作
}
Int main(void)
{
//开总中断开关
SREG = 0x80; 或者 sei();
}
3、USART的数据帧格式包括什么?在我们实际使用中,通常使用怎样的数据帧格
式?
1位的起始位
5 ~ 9位的数据位
1位的校验位
1 ~ 2位的停止位
1位的起始位,8位的数据位,不校验,1位停止位
4、简述TWI硬件组成上包括什么?每一帧的9位数据中包括什么信息(开始信号
的第一帧地址包)?主机收到从机的最后一个字节的数据时,如何发出“结束传送信息”的信号,简述这个过程?
两根线,一根SDA数据线,一根SCL时钟线。
7位的地址数据、1位的读写位、1位应答位。
主机对从机的传输的最后一帧数据采取非应答的方式,从机释放总线,主机发出STOP信号。
5、简述采用TWI通信方式读取LM75A温度数据的步骤?
主机发送开始信号;接收应答;
主机发送从机地址命令;接收应答;
主机发送要读取数据的从机的寄存器地址和读从机命令;接收应答
主机逐个接收从机发送来的数据;
…….
6、按以下需求配置下列端口
a.点亮LED3(对应引脚PA3,高电平触发)
____DDRA |= _BV(PA3);____; ___PORTA |= _BV(PA3);____
b.将PD所有端口配置成输入上拉
____DDRD = 0x00; ___; ___PORTD = 0xFF;________
c.Unsigned char I = 30,如果想要在LCD12864屏幕上显示I这个数字,程序
该怎样写?
(输出字符的函数为:lcd12864_put_char(u8 x, u8 y, u8 data) )
__lcd12864_put_char(0, 0, I/10 + 0x30);____
__lcd12864_put_char(1, 0, I%10 + 0x30);____
7、如果当前引脚PA1是低电平,正常情况下过100us会变成高电平,如果过了200us,
则表示器件坏了,那么如何得知器件出问题了?(提示:使用超时检测法)
u8 timeout = 0;
while( !(PINA & _BV(PA1)) ){ //低电平一直等待
if(timeout > 20) break; //或者写:return 0x01;
_delay_us(10);
timeout ++;
}
8、请写出PORTA的宏定义?
9、简述关键字volatile的含义?
10、简述关键字extern的用法
四、程序题
1、用定时器溢出中断实现一个5s的倒计时,当时间到达0秒时,点亮8个led 灯
说明:(1)定时器使用timer1,
(2)定时器初始化函数为timer1_init(); //该函数已默认初始化完成,溢出时间为1s
(3)中断服务函数为 ISR(TIMER1_OVF_vect) //该函数内的操作需手动完成,寄存器名字忘记的,可以用语言描述你要做的事情
用于定时的时间变量为: unsigned char time_count;
控制逻辑要在主函数中完成
#include <avr/io.h> // 1
#include <avr/interrupt.h> // 1
Unsigned char time_count = 5; // 1
ISR(TIMER1_OVF_vect)
{
//重装定时器//1
Time_count --; //1
}
Int main(void)
{
Timer1_init(); //1
Sei(); //1
DDRA = 0XFF; PORTA = 0XFF; //1 If( 0 == time_count ) //1
{
PORTA = 0X00; //1
Time_count = 5;
}else{
PORTA = 0XFF;
}
Return 0;
}。