第一章(较易) 填空: 1. 单片机的基本组成结构包括: CPU 、 程序存储器 、 数据寄存器 、 输入,输出接口 五大部分。 2. 哈佛结构是指,计算机由五大部分构成,五大部分分别是: 运算器 、 控制器 、 存储器、 输入设备 输出设备 3. ATmega16包含 16KB 程序存储器, 1KB 数据存储器和 512字节 的EEPROM。 4. ATMEL公司生产的单片机以三大系列为主,分别是: tinyAVR 、 megaAVR 、 XMEGA 5. ATMEL公司生产的TinyAVR是属于 低挡 单片机。、 6. ATMEL公司生产的megaAVR是属于 中档 单片机。 7. ATMEL公司生产的XMEGA是属于 高档 单片机。 选择: 1. ATMEL公司生产的单片机以三大系列为主,其中TinyAVR是属于( A ) A、低档单片机 B、中档单片机 C、高档单片机 D、 普通单片机 2. ATMEL公司生产的单片机以三大系列为主,其中megaAVR是属于( B ) A、低档单片机 B、中档单片机 C、高档单片机 D、 普通单片机 3. ATMEL公司生产的单片机以三大系列为主,其中XMEGA是属于( C ) A、低档单片机 B、中档单片机 C、高档单片机 D、 普通单片机 4. 单片机的基本组成结构包括:CPU、程序存储器、 、输入接口、输出接口五大部分( B ) A、EEPROM B、数据存储器 C、ROM D、 堆栈 第二章() 填空: 1. 单片机的三总线结构是指: 数据总线 、 地址总线 、 控制总线 。 2. ATmega16包含 16KB FLASH ROM, 1KB RAM和 512字节 的EEPROM。 3. FLASH ROM支持用户 多次擦除和写入代码 ,可以实现 大于1万次 的 写入 (填读写或写入)。 4. 单片机的数据存储器包含 RAM 和 EEPROM 两大部分,其中 是 EEPROM是RAM 的补充。 5. ATmega16中含有 512字节 的EEPROM。它的擦写次数是 大于10万次 , 具有 掉电后不丢失数据 、 通过系统程序可以随机修改 。 6. ATmega16的DIP封装共有 40 引脚,其中共有 32个 I/O 口线。 7. ATmega16的数据存储器中共有 32个8位 通用工作寄存器 ,有 6个 寄存器可以合并 成为3个 16位的寄存器。 8. 在ATmega16的通用寄存器组中,有 3个 16位的寄存器。名称分别为: X寄存器 、 Y寄存器 、 Z寄存器 。 9. ATmega16的中断向量表在FLASH ROM的 最前端 ,中断的向量地址 越小 ,中断的优先级越 高 。 10. ATmega16的工作电压是 4.5~5.5V , 所能使用的最高晶振频率为 16MHZ 。 11. ATmega16可以使用内部晶振,晶振频率为 1M 、 2M 、 4M 、 8M 赫兹。 12. ATmega16共有 40 引脚,其中 第10引脚 为VCC, 第31引 脚为GND。 13. ATmega16的AVCC引脚是 30引脚 ,作用是 片内AD的电源输入引脚 14. ATmega16的AREF引脚是 32引脚 ,作用是 片内AD的参考电压 。 15. ATmega16的 第11,第31引脚是GND 13和12引脚是XTAL1.XTAL2,作用是片内反向放大器的输入终端 16. ATmega16的复位引脚是 9引脚 ,名称是 RESET 。 当在该引脚上出现一个 大于1.5us的低 电平,单片机复位。 17. AVR的指令长度为 16位 称为一字, PC指针为 13位 ,FLASH存储器是 8KB 字。 AVR 不能 扩展外部程序存储器,这是因为 程序寄存器满足片内8K字节的Flash程序存储器空间直接寻址的需要 18. ATmega16配置系统时钟的熔丝位共有 5个 位,名称分别是 CKOPT 、 CKSEL{3:0} 选择: 1. 单片机的三总线结构是指:数据总线、地址总线和_( A ) A、控制总线 B、采集总线 C、接收总线 D、 发送总线 2. 单片机的三总线结构是指:控制总线、地址总线和_( D ) A、发送总线 B、采集总线 C、接收总线 D、数据总线 3. ATmega16的DIP封装共有 引脚,其中共有 I/O 口线( A ) A、40、32 B、40、8 C、32、4 D、40、4 4. ATmega16的数据存储器中共有 32 个通用工作寄存器 ,有 个寄存器可以合并 成为_个 16位的寄存器。( C ) A、4、2 B、6、2 C、6、3 D、8、4 5. #pragma interrupt_handler ext_int0_isr :10 这句话中的10是什么中断( A ) A、TC0溢出中断 B、TC0比较匹配中断 C、TC1溢出中断 D、TC1比较匹配中断 6. #pragma interrupt_handler ext_int0_isr :10 这句话中的10是( B ) A、中断地址 B、中断向量号 C、计数10次 D、中断函数 7. ATmega16的AVCC引脚是 ,作用是片内AD的电源输入引脚 ( C ) A、10 B、13 C、30 D、21 判断: 1.ATmega16的中断向量表在FLASH ROM的 最前端 ,中断的向量地址越小,中断的优先级越高。( 对) 2.ATmega16的中断向量表在FLASH ROM的 最后端 ,中断的向量地址越大,中断的优先级越高。( 错 ) 3.ATmega16的中断向量表在FLASH ROM的 最前端 ,中断的向量地址越大,中断的优先级越低。( 对 ) 第六章 (中等) 填空: 1. AVR单片机每组I/O都配置了 3个 8位的寄存器,分别是 DDRx PORTx.PINx 2. AVR单片机的DDRX寄存器的作用是 控制I/O口的输入输出方式PORTX寄存器的作用是 当I/O输入时,是否使用上拉电阻,内部输出时,内部输出时,设置I/O口输出电平 3. DDRX的值设为 1 时,I/O口输出,设为 0 时,I/O口输入。 4. 共阳数码管的公共级接 VCC 且每段的电压为 5 时,数码管点亮。 5. 共阴数码管的公共级接 GND 且每段的电压为 0 时,数码管点亮。 6. 单片机初始化时,I/O口的状态是 输入状态,不使用内部的上拉电阻 。 选择 1.数码管静态显示的特点是显示稳定,显示亮度高,_______________( C ) A、硬件复杂 B、程序复杂 C、程序简单 D、硬件简单 判断: 1. 数码管静态显示的优点是显示稳定,显示亮度高,程序简单。( 对 ) 2. 数码管动态显示的优点是显示稳定,显示亮度高,程序简单。( 错 ) 3. 数码管动态显示的优点是占用的硬件资源小,耗电量小。( 对 ) 4. 数码管动态显示的缺点是稳定性差,程序设计复杂,MCU负担重。( 对 ) 5. 数码管静态显示的缺点是占用硬件资源多,耗电量大。( 对 ) 6. 数码管静态显示的缺点是稳定性差,程序设计复杂,MCU负担重。( 错 ) 7. 数码管动态显示的缺点是占用硬件资源多,耗电量大。( 错 )。 /***************************题目1**************************************/ 程序分析:(重要!建议一格2分) #include <iom16v.h> 语句功能:添加#include <iom16v.h>使程序可以使用特殊功能寄存器 #include <delay.h> Void main() { Unsigned char position=0; PORTA=0xff; DDRA=0xff; 语句功能:将PA口工作设置为输出方式 While(1) { PORTA= ~(a<<position); 语句功能:将a左移position位 If (++position>=8) position=0; Delay_ms(1000); 语句功能:延时1S } } 1. 程序中position变量的作用是?(1 分) 答:选择哪一位的发光二极管点亮 2. 说明程序功能。(1分) 答:循环点亮实现流水灯 /***************************题目2**************************************/ #include <mega16.h> #include <delay.h> flash char led_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; bit point_on = 0; void main(void) { char i = 0; PORTA=0xFF; DDRA=0xFF; 语句功能:PA口工作为输出方式 while (1) { for (i=0;i<=15;i++) { PORTA = led_7[i]; 语句功能:发送数码管段选 if (point_on) PORTA |= 0x80; delay_ms(1000); } point_on = ~point_on; 语句功能:小数点闪烁 }; } 说明程序功能:数码管静态显示实验显示0~F,每个字符显示1S。小数点间隔点亮 /***************************题目2**************************************/ 第七章 (重点!!比重大!!) 填空: 1. ATmega16中共含有 21个 中断源,其中有一个中断源是不可屏蔽中断,名称为 向量号为 1 . 2. 单片机相应中断A的条件是: 响应A中断:全局中断允许标示AND中断A允许标示AND中断A标示 3. ATmega16中共含有 3个外部中断 ,名称为 INTO 、 INT1 、 INT2 。 4. MCUCR寄存器是 MCU控制寄存器 ,用于设置 INTO和INT1的中断触发方式 。 5. GICR寄存器是 用中断控制寄存器 ,用于设置 外部中断的中断允许位 。 6. GIFR寄存器是 通用中断标示寄存器 ,用于设置 外部中断的中断允许位 。当有满足中断条件的事件出现时,对应的中断标志位为 1 。 7. 中断标志位的清除方法是 对其 写1 8. 全局中断使能位是 SREG 寄存器中的 第 7 位 即 I 位。 判断: 1. 清除中断标志位的方法是对其写0.( 错 ) 2. 清除中断标志位的方法是对其写1.( 对 ) 3. 外部中断的中断标志位会由硬件自动清0.( 对 ) 4. 外部中断的中断标志位不会由硬件自动清0.( 错 ) 5. 全局中断使能位是 SREG 寄存器中的 第7位 即 I位。( 对 ) 6. 全局中断使能位是 SREG 寄存器中的 第8位 。( 错 ) 7. 全局中断使能位是 SREG 寄存器中的 第7位 即 F位。( 错 ) 程序分析: /***************************题目1**************************************/ #include <iom16v.h> char led_7[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07, 0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; char counter; #pragma interrupt_handler ext_int0_isr :2 语句中2是:外部中断O的中断向量号 void ext_int0_isr(void) { if (++counter>=16) counter = 0; } void main(void) { PORTA=0xFF; DDRA=0xFF; GICR|=0xC0; //允许INT0 INT1 中断 MCUCR=0x0A; //语句功能 INT0,INT1下降沿触发 GIFR=0xC0; // 清除 INT0,INT1中断标示位 counter = 0; // #asm("sei") //语句功能 使能全局中断 while (1) { PORTA = led_7[counter]; //语句功能 显示计数单元 }; } 说明程序功能:一个8段数码管显示0~F16个十六进制的数字,当系统上电时,显示0,当按1次按键,显示数字加1,依次类推,当第15次按键式时,显示“F”,第16次按键时,显示又从0开始,当按键按下,显示数值加1 /***************************题目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. ATmega16共有三个定时器,分别是 T/C1 、 T/C1 、 T/C2 。 4. TCNT0是定时器 0 的 计数 寄存器 ,作用是 对定时器0的脉冲计数 。 5. OCR0是定时器 0 的 输出比较 寄存器 ,作用是 存放定时器0的比较匹配值 。 6. T/C0的计数时钟源可以来自 内部时钟 和 外部时钟 两种。 7. T/C0的计数时钟源的选择由 TCCRO 中的 CS02,CS01,CS00 三个位确定。 8. T/C0工作在普通模式时,初值 由TCNTO设置 ,满值 255 。 9. T/C0工作在CTC模式时,初值 为0 ,满值 为OCRO设置 。 10. T/C0工作在快速PWM模式时,初值 为0 ,满值 OXFF 在正向比较匹配输出模式下,当 TCNT0与OCRO比较匹配 时,清零OC0;当 TCNTO从OXFF到OXOO时,置为OC0 。 11. T/C0工作在相位修正PWM模式时,初值 为0 ,满值 OXFF 在正向比较匹配输出模式下,当 TCNT0的计数值与OCRO的值比较匹配时 ,清零OC0;当 TCNTO的值与OCRO相同时 ,置为OC0 。 选择: 1.定时器0快速PWM模式的频率是( A ) A、f=fclk /256N B、f=fclk /510N C、f=fclk /2N(OCR0+1) D、f=fclk /2N(满-初+1) 2.定时器0相位PWM模式的频率是( B ) A、f=fclk /256N B、f=fclk /510N C、f=fclk /2N(OCR0+1) D、f=fclk /2N(满-初+1) 3.定时器0普通模式的频率是( D ) A、f=fclk /256N B、f=fclk /510N C、f=fclk /2N(OCR0+1) D、f=fclk /2N(满-初+1) 4.定时器0的CTC模式的频率是( C ) A、f=fclk /256N B、f=fclk /510N C、f=fclk /2N(OCR0+1) D、f=fclk /2N(满-初+1) 判断: 1. 定时器0的计数寄存器是TCNT0,比较匹配寄存器是OCR0。( 对 ) 2. 定时器1的计数寄存器是TCNT1,比较匹配寄存器是OCR1。( 错 ) 3. 定时器0的计数寄存器是TCNT0,比较匹配寄存器是OCR1。( 错 ) 4. 定时器1的计数寄存器是TCNT1A,TCNT1B。( 对 ) 5. 当TCNT0的值和OCR0的值匹配时,提出比较匹配中断。( 对 ) 6. 当TCNT0的值和OCR0的值匹配时,提出溢出中断。( 错 ) 7. PWM方波的参数有频率、占空比和相位,其中相位和占空比是主要参数。( 错 ) 8. PWM方波的参数有频率、占空比和相位,其中频率和占空比是主要参数。( 对 ) 9. PWM方波的参数有频率、占空比和相位,其中相位和频率是主要参数。( 错 ) 10. 定时器可以有两个时钟来源,一个是外部时钟,一个是内部时钟。( 对 ) 11. 定时器做内部时钟来源时,N的取值只有1。( 错 ) 12. 定时器做外部时钟来源时,N的取值只有1。( 对 ) 13. 定时器做内部时钟来源时,N的取值有1,2,4,8。( 对 ) 14. 定时器做外部时钟来源时,N的取值有1,2,4,8。( 错 ) 程序分析: /***************************题目1**************************************/ #include <mega16.h> char auc_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点正弦波样本值 char x_SW = 8,X_LUT = 0; // T/C0 溢出中断服务 #pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void) { X_LUT += x_SW; // 语句功能:新样点指针 if (X_LUT > 127) X_LUT -= 128; // 语句功能:样点指针调整 OCR0 = auc_SinParam[X_LUT]; // 语句功能:采样点指针到比较匹配寄存器 } void main(void) { DDRB=0x08; // 语句功能:PB3输出方式,作为OCO输出PWM波 TCCR0=0x69; OCR0=128; TIMSK=0x01; // 语句功能:使能T/C0溢出中断 SREG|=0x80; // 语句功能:使能全局中断 while (1) {}; } 程序功能:用TC0的快速PWM模式产生频率为1KHZ 的正弦波 /***************************题目1**************************************/ 补充题: 1. ATmega16包含 程序存储器, 数据存储器( D )。 A.16kb 512字节 B. 1KB 16KB C. 512字节 1KB D.16KB 1KB 1. ATmega16包含 数据存储器和 的EEPROM。( A ) A.1kb 512字节 B. 1KB 16KB C. 512字节 1KB D.16KB 1KB 1. 单片机的数据存储器包含 和 两大部分。( C ) A.ROM RAM B.EEPROM CPU C. RAM EEPROM D.ROM CPU 1.T/C0工作在普通模式时,初值 ,满值 。( B ) A.为0 为255 B. 由TCNT0设定 为255 C. 由OCR0设置 255 D.0 由OCR0设置 2. T/C0工作在CTC模式时,初值 ,满值 。( D ) A.为0 为255 B. 由TCNT0设定 为255 C. 由OCR0设置 255 D.0 由OCR0设置 3.T/C0工作在快速PWM模式时,初值 ,满值 ( A ) A.为0 为255 B. 由TCNT0设定 为255 C. 由OCR0设置 255 D.0 由OCR0设置 4.T/C0工作在相位修正PWM模式时,初值 ,满值 。( A ) A.为0 为255 B. 由TCNT0设定 为255 C. 由OCR0设置 255 D.0 由OCR0设置 5. 定时器0的计数寄存器是 ( A ) A.TCNT0 B. OCR0 C. TCCR0 D.TIMSK 6. 定时器0的比较匹配寄存器是 ( B ) A.TCNT0 B. OCR0 C. TCCR0 D.TIMSK 7.定时器做外部时钟来源时,N的取值有 ( A ) A.1 B. 2 C. 4 D.以上皆是 8. AVR的8位定时器/计数器有 种工作方式( C ) A.1 B. 2 C. 4 D.8 9共阳数码管的公共级接 且每段的电压为 时,数码管点亮( D ) A.GND VCC B. GND CPU C. VCC CPU D.VCC GND 1. 数码管静态显示的缺点是_______________( D ) A、硬件复杂 B、程序复杂 C、程序简单 D、占用资源多 2. 数码管静态显示的优点是_______________( C ) A、硬件复杂 B、程序复杂 C、程序简单 D、占用资源多 3.DDRX的值设为 时,I/O口输出。( B ) A、0 B、1 C、2 D、3 4.DDRX的值设为 时,I/O口输入。( A ) A、0 B、1 C、2 D、3 5. 数码管动态显示的缺点是_______________( D ) A、硬件复杂 B、程序复杂 C、硬件简单 D、占用资源多 5. 数码管动态显示的优点是_______________( D ) A、硬件复杂 B、程序复杂 C、硬件简单 D、占用资源少