第一章(較易)
填空:
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、占用資源少