|
下面附件里面有些適合剛?cè)腴T的新手練習(xí)的習(xí)題,都是非常基礎(chǔ)典型的題目,有意著可以下載來練習(xí)下(請到本帖最后下載pdf,不會有格式錯(cuò)亂的情況)
單片機(jī)原理與接口技術(shù)
實(shí)驗(yàn)指導(dǎo)書
(ATmega48) 肖忠 編
目 錄
前言 1
實(shí)驗(yàn)報(bào)告填寫總體要求 2
實(shí)驗(yàn)1 PROTEUS仿真實(shí)驗(yàn) 3
實(shí)驗(yàn)2 I/O實(shí)驗(yàn) 10
實(shí)驗(yàn)3 中斷與定時(shí)器實(shí)驗(yàn) 14
實(shí)驗(yàn)4 鍵盤掃描顯示實(shí)驗(yàn) 18
實(shí)驗(yàn)5 A/D轉(zhuǎn)換實(shí)驗(yàn) 24
實(shí)驗(yàn)6 串行通訊實(shí)驗(yàn) 29
實(shí)驗(yàn)7-1 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—電子時(shí)鐘 35
實(shí)驗(yàn)7-2 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—報(bào)警系統(tǒng) 37
實(shí)驗(yàn)7-3 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—測控系統(tǒng) 40
前言 《單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)》課程是電氣工程及其自動化等專業(yè)學(xué) 生的重要實(shí)踐課程。它與《單片機(jī)原理與接口技術(shù)》課程緊密配合,是《單 片機(jī)原理與接口技術(shù)》課程的重要實(shí)踐組成部分,是課堂教學(xué)的延伸,關(guān) 系到學(xué)生動手能力、創(chuàng)新能力、適應(yīng)能力、團(tuán)隊(duì)合作等綜合能力的培養(yǎng)。 為此編寫了《單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書》。 為突出工程技術(shù)型人才培養(yǎng)的特點(diǎn),本課程按照“基礎(chǔ)型、應(yīng)用型、 綜合型、設(shè)計(jì)型”循序漸進(jìn)分層次構(gòu)建實(shí)驗(yàn)項(xiàng)目,實(shí)驗(yàn)的內(nèi)容除涵蓋了單 片機(jī)知識外,還涉及電路基礎(chǔ)、模擬電子技術(shù)、數(shù)字電子技術(shù)、應(yīng)用軟件 等內(nèi)容。所以是一門既有廣度又有深度的綜合性課程。 本課程將著重于專業(yè)技能的訓(xùn)練,使學(xué)生掌握單片機(jī)的各功能部件及 控制方式(查詢、中斷等),掌握單片機(jī)最基本的結(jié)構(gòu),掌握單片機(jī)系統(tǒng) 的設(shè)計(jì)與開發(fā)方法與過程,了解單片機(jī)的用途與應(yīng)用前景,使學(xué)生在學(xué)習(xí) 的過程中對單片機(jī)有一個(gè)相對全面的了解。通過本課程的訓(xùn)練與實(shí)踐,激 發(fā)學(xué)生的學(xué)習(xí)熱情,力不是實(shí)踐中提高學(xué)生的思維水平與創(chuàng)造能力。 由于時(shí)間倉促和水平所限,指導(dǎo)書中可能存在一些錯(cuò)誤和不妥之處, 敬請批評指正。
實(shí)驗(yàn)報(bào)告填寫總體要求
1、實(shí)驗(yàn)?zāi)康模?/font> 2、實(shí)驗(yàn)要求; 3、實(shí)驗(yàn)原理:可用框圖或示意圖表示,也可用電路原理圖表示; 4、電路分析:詳細(xì)分析外圍電路,明確所用引腳的性質(zhì),確定單片機(jī)各 引腳的配置,確定單片機(jī)內(nèi)部資源的配置,進(jìn)而實(shí)現(xiàn)各寄存器的配置; 電路分析要求簡單、直接,按相應(yīng)功能逐一描述,多項(xiàng)可分條列寫。 5、程序流程圖:即完成實(shí)驗(yàn)功能而設(shè)計(jì)的程序流程,程序流程圖要求真 實(shí),嚴(yán)禁杜撰或抄襲。 6、實(shí)驗(yàn)結(jié)果及分析:對實(shí)驗(yàn)結(jié)果進(jìn)行的分析與判斷,如果實(shí)驗(yàn)包括擴(kuò)展 部分,或者包括引深的實(shí)驗(yàn)內(nèi)容,需要有專門的分析與描述,即要提 供實(shí)驗(yàn)電路、實(shí)驗(yàn)手段、程序流程、實(shí)驗(yàn)結(jié)果等。 7、對針擴(kuò)展實(shí)驗(yàn),提供程序流程圖與核心代碼; 8、實(shí)驗(yàn)體會:包括對實(shí)驗(yàn)過程中的經(jīng)驗(yàn)、教訓(xùn)、收獲等進(jìn)行小結(jié);也可 以對實(shí)驗(yàn)內(nèi)容、方法、設(shè)備等的建議和設(shè)想;
9、實(shí)驗(yàn)報(bào)告必須在規(guī)定的時(shí)間內(nèi)交給指導(dǎo)老師。
實(shí)驗(yàn) 1PROTEUS仿真實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/div>1、熟悉 Proteus 仿真軟件的使用方法。 2、掌握 ICC AVR 編譯軟件的使用方法。
二、實(shí)驗(yàn)要求
通過仿真軟件的仿真實(shí)現(xiàn)8盞 LED 構(gòu)成的跑馬燈。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:Proteus 仿真軟件;ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
AVR 單片機(jī) I/O 口的原理及其配置、LED 控制等。
五、電路原理圖
六、實(shí)驗(yàn)內(nèi)容與步驟
1、Proteus操作步驟
 (1)啟動 Proteus 軟件:
 (2)在編輯境界拾取元件
(3)分析在元件庫中選擇單片機(jī)---atmega48、電阻---RES、發(fā)光二極管---LED 等;
(4)如“電路原理圖”進(jìn)行元件布局與連線,并修改電阻阻值為 470 歐姆;結(jié)果如 下所示
(5)雙擊 atmega48 單片機(jī),在“Program file:”項(xiàng)加載 HEX 程序文件; (詳細(xì)操作步驟見 2、ICC AVR 操作步驟);  (6)雙擊編輯環(huán)境左下角的 Play 按鈕
2、ICCAVR 操作步驟
(1)創(chuàng)建工程目錄“exam1” (2)將“..\Include\”目錄下的頭文件 iom48v.h 拷貝到本工程目錄“exam1” (3)創(chuàng)建工程“exam1”:
打開ICCAVR,在“Project”下拉菜單中選擇“New”,在“保存在(I)” 下拉菜單中選擇本工程目錄“exam1”,在“文件名(N)”窗口中輸入工程文件 名“exam1”,如下圖1.2所示,然后按 按鈕。
 圖1.2 創(chuàng)建工程文檔界面
(4)設(shè)置工程參數(shù):
在 “Project”下拉菜單中選擇“Options…”,在彈出窗口的“Target”頁面的“Device
Configuration”下拉菜單中選擇“ATmega48”,如下圖1.3所示,然后按  鍵。
 圖1.3 芯片配置信息界面
(5)將頭文件 iom48v.h 添加到工程:右擊“Project”頁面中的“Headers”項(xiàng),在打開  的菜單中選擇“Add File(s)…”,選擇彈出窗口中的 iom48v.h 文件,并按“打開” 按鈕,結(jié)果如下圖 1.4 所示。
圖1.4 頭文件添加到工程的圖示 (6)創(chuàng)建 exam1.c 文件并加入到工程
創(chuàng)建 exam1.c 文件:按 按鍵創(chuàng)建一個(gè)新文件,在 “File”下拉菜單中選擇 “Save As…”將新文件保存在本工程目錄,名字為 exam1.c。 將 exam1.c 文件添加到工程:右擊“Project”頁面中的“Files”項(xiàng),在打開的菜單 中選擇“Add File(s)…”。選擇彈出窗口中的 exam1.c 文件并打開,結(jié)果如下圖 1.5 所示。
圖1.5 源文件添加到工程的圖示
(7)編寫 exam1.c 文件。 雙擊右邊的“Project”頁面的“exam1.c”,在左邊的“exam1.c”頁面添加如下的語句 (參考代碼):
#include "iom48v.h"
void delay(unsigned int x) { //延時(shí)函數(shù)
while ( x--) ;
}
unsigned char LED_table[]={0xFF,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,
0xDF,0xBF,0x7F,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,
0xFE,0xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB,0xBD,
0x7E,0xFF,0x00};
void main(void) {
unsigned char i=0;
DDRD = 0xFF; //D配置為輸出口
PORTD = 0xFF; //D口輸出全高,即全部LED燈熄滅
while(1) {
i = (i+1)%36;
PORTD = LED_table[ i];
delay(60000);
}
}
(8)編譯連接exam1工程:
單擊 按鈕編譯連接工程并生成exam1.hex燒寫文件。
(9)加載exam1.hex燒寫文件到Proteus仿真圖的單片機(jī)內(nèi)并運(yùn)行,觀察運(yùn)行結(jié)果。
七、擴(kuò)展實(shí)驗(yàn)
1、將延時(shí)程序的延時(shí)時(shí)間延長1倍,記錄仿真結(jié)果,分析現(xiàn)象,研究解決方案;
2、自行設(shè)計(jì)一種LED的表現(xiàn)形式;(例如:LED燈從左到右逐個(gè)點(diǎn)燈,保持2~3
秒,LED燈再從右到左逐個(gè)熄滅)
實(shí)驗(yàn) 2I/O實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/div>
1、熟悉 AVR 單片機(jī)的 I/O 口配置方法。
2、掌握 AVR 單片機(jī) I/O 口控制 LED 顯示的方法。
3、掌握 AVR 單片機(jī) I/O 口檢測按鍵的方法。
二、實(shí)驗(yàn)要求
通過 IO 口檢測的8個(gè)按鍵的狀態(tài),并分別控制8盞 LED 的亮與滅。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
AVR 單片機(jī) I/O 口的原理及其配置、LED 控制、按鍵檢測。
五、電路原理圖
圖 2.1 8個(gè)按鍵和 8 盞 LED 電路圖
六、實(shí)驗(yàn)內(nèi)容與步驟
1、連線
用杜邦線按圖 2.1 連線,按鍵接在 PB 口,LED 燈接在 PD 口。
2、程序流程圖(供參考)
IO 端口初始化 B 口輸入(上拉) D 口輸出
B0 狀態(tài)為低?
N 說明:連接 LED 電路的端口應(yīng)配置成輸出 口;連接按鍵電路端口應(yīng)配置成啟用內(nèi)部 上拉的輸入口;
Y 點(diǎn)燈 D0 控制的 LED 燈
Y
B1 狀態(tài)為低? 點(diǎn)燈 D1 控制的 LED 燈
N
??
3、操作步驟 B7 狀態(tài)為低?
N Y 點(diǎn)燈 D7 控制的 LED 燈
(1)創(chuàng)建工程目錄“exam2”。 (2)將“..\Include\”目錄下的頭文件 iom48v.h 拷貝到本工程目錄“exam2” (3)創(chuàng)建工程“exam2” (4)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。
(5)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (6)創(chuàng)建 exam2.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫 exam2.c 文件。 雙擊右邊的“Project”頁面的“exam2.c”,在左邊的“exam2.c”頁面添加如下的語句 (參考代碼):
#include "iom48v.h"
void delay(unsigned int x) { //延時(shí)函數(shù)
while ( x--) ;
}
void io_init(void) { //IO口初始化函數(shù)
DDRB=;//PB口設(shè)置為輸入
PORTB=;//PB口全部內(nèi)部上拉
DDRD=;//PD口設(shè)置為輸出
PORTD=;//PD口全部輸出高電平
}
void main(void) { unsigned char i; io_init(); while (1) {
//補(bǔ)充代碼,實(shí)現(xiàn)一個(gè)按鍵控制一個(gè)LED燈的功能;
//提示:用 PINB 讀取按鍵的狀態(tài),用PORTD控制LED燈
}
}
(8)編譯連接exam1工程:
單擊 按鈕編譯連接工程并生成exam2.hex燒寫文件。
(9)下載exam1.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行,觀察運(yùn)行結(jié)果。
七、擴(kuò)展實(shí)驗(yàn)
1、按一下與B0口相連的按鍵,對應(yīng)的點(diǎn)亮連接D0口的LED,再按一下該按鍵, 對應(yīng)的LED熄滅;依此類推,用8個(gè)按鍵控制8盞LED。
八、實(shí)驗(yàn)報(bào)告要求
1、描述如何設(shè)置 AVR 單片機(jī)的 I/O 口為輸出,如何使8盞 LED 亮滅;描述如 何設(shè)置 AVR 單片機(jī)的 I/O 口為輸入,如何讀�。競€(gè)按鈕; 2、寫出擴(kuò)展實(shí)驗(yàn)的流程圖與源程序。
實(shí)驗(yàn) 3中斷與定時(shí)器實(shí)驗(yàn)
一、實(shí)驗(yàn)項(xiàng)目
1、利用定時(shí)器產(chǎn)生周期為 1 秒的中斷,讓 PD 口連接的 8 個(gè) LED 燈實(shí)現(xiàn)二進(jìn) 制計(jì)數(shù)顯示的秒表。 2、利用 PWM 占空比調(diào)節(jié)功能,使用定時(shí)器輸出兩路動態(tài) PWM 信號,結(jié)果以 亮度的形式顯示在對應(yīng)的 LED 上,并通過兩個(gè)按鍵調(diào)節(jié) LED 的亮度。二、實(shí)驗(yàn)?zāi)康?/font> 1、掌握定時(shí)器產(chǎn)生所需定時(shí)時(shí)間的方法。 2、掌握 PWM。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
定時(shí)器,PWM。
五、電路原理圖
圖3.1 二進(jìn)制顯示秒表電路圖
六、實(shí)驗(yàn)內(nèi)容與步驟
第一部分 定時(shí)器中斷
1、連線
用杜邦線按圖 3.1 連線,PD 口接 LED。
2、程序流程圖(供參考)
D 口輸出
T1 定時(shí)器初始化: 普通模式, 64 分頻, 定時(shí)器初值=49911
T1 溢出中斷允許 總中斷允許
循環(huán)等待
T1 定時(shí)溢出中斷服務(wù) 程序流程
重設(shè)計(jì)數(shù)值 49911
秒計(jì)時(shí)值+1
秒計(jì)時(shí)值輸出顯示
3、操作步驟
(1)創(chuàng)建工程目錄“exam3-1”。 (2)將“..\Include\”目錄下的頭文件 iom48v.h 拷貝到本工程目錄“exam3-1” (3)創(chuàng)建工程“exam3-1” (4)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。 (5)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。
(6)創(chuàng)建 exam3-1.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫 exam3-1.c 文件,exam3-1.c 的語句如下(參考代碼):
#include "iom48v.h" unsigned char second=0;
// IO口初始化函數(shù)
void io_init(void) {
//補(bǔ)充代碼;
}
void t1_init(void)
{
TCCR1B= ; #pragmainterrupt_handlerInt_T1:
void Int_T1(void)
{
//補(bǔ)充代碼;
}
void main(void) { io_init(); t1_init(); TIMSK1|=;
SREG|= ;
TCCR1A= ; while (1) ;
TCNT1= ;}
}
(8)編譯連接exam3-1工程(操作如實(shí)驗(yàn)1的操作步驟)。
(9)下載exam3-1.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
第二部分 PWM 輸出 1、連線
用杜邦線按圖 3.2 連線。
圖3.2 LED調(diào)光燈電路圖
2、程序流程圖(供參考)
B1 輸出,B6B7 輸入(上拉)
T1 定時(shí)器初始化: 8 位快速 PWM 模式,1 分頻,比較輸出 式:比較匹配時(shí)清零 OC1A/OC1B,比 較匹配初值 OCR1A = 120
接 B6 的按鍵按下? Y 比較匹配值 OCR1A+1
3、操作步驟
(1)創(chuàng)建工程“exam3-2” (2)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。 (3)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (4)創(chuàng)建 exam3-2.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (5)編寫 exam3-2.c 文件,exam3-2.c 的語句如下(參考代碼):
#include "iom48v.h"
//延時(shí)函數(shù)
void delay(unsigned int x) {
while ( x--) ;
}
void main(void) { DDRB=0x03; PORTB|=0xFF; TCCR1A=0b10100001; TCCR1B=0b00001001; if ((PINB & 0x40) == 0)
if (OCR1A<255) { OCR1A+=1; delay(2000); }
if ((PINB & 0x80) == 0)
if (OCR1A> 200) { OCR1A-=1; delay(2000); } CR1=0x00FF; } OCR1A=120; }while (1) {
(6)編譯連接exam3-2工程(操作如實(shí)驗(yàn)1的操作步驟)。
(7)下載exam3-2.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作 步驟),觀察運(yùn)行結(jié)果。
九、擴(kuò)展實(shí)驗(yàn)
1、將第一部分的秒表改為數(shù)碼管顯示(只需顯示一位)。
2、針對PWM輸出實(shí)現(xiàn)調(diào)壓功能的實(shí)驗(yàn),任意選用一種檢驗(yàn)方法并記錄實(shí)驗(yàn)結(jié)
果(檢驗(yàn)方法一:用萬用表測量電壓的變化;檢驗(yàn)方法二:用示波器觀察輸出波形;
檢驗(yàn)方法三:接直流電機(jī)觀察電機(jī)的轉(zhuǎn)速變化;)
3、如果要用T0實(shí)現(xiàn)按鍵計(jì)數(shù)功能,請?zhí)峁╇娐穲D、寄存器配置情況(含說明)、 程序流程圖;
十、實(shí)驗(yàn)報(bào)告要求
1、描述擴(kuò)展實(shí)驗(yàn)中控制數(shù)碼管顯示的方法。
2、描述 PWM 控制 LED 變亮和變暗的算法。
實(shí)驗(yàn) 4鍵盤掃描顯示實(shí)驗(yàn)
一、實(shí)驗(yàn)項(xiàng)目
1、矩陣鍵盤與數(shù)碼管的動態(tài)刷新顯示。
2、利用 AVR 內(nèi)部的模數(shù)轉(zhuǎn)換將一個(gè)測量的電壓值顯示在 4 位數(shù)碼管上。
二、實(shí)驗(yàn)?zāi)康?/font>
1、掌握數(shù)碼管動態(tài)刷新顯示的方法。2、掌握矩陣鍵盤掃描的程序設(shè)計(jì)方法。
3、掌握 AVR 單片機(jī)內(nèi)置的 A/D 模數(shù)轉(zhuǎn)換的使用方法。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
數(shù)碼管動態(tài)刷新顯示,鍵盤掃描,A/D 模數(shù)轉(zhuǎn)換。
五、電路原理圖
圖4.1 矩陣鍵盤與顯示電路圖
六、實(shí)驗(yàn)內(nèi)容與步驟
1、連線 2、程序流程圖(供參考)
C 口 D 口輸出 B 口高 4 位輸出,低 4 位輸入上拉
T1 定時(shí)器初始化: (定時(shí)時(shí)長為 5ms) CTC 模式,64 分頻
CTC 中斷允許 總中斷允許
矩陣鍵盤 掃描與判斷
確定鍵值
T1 定時(shí)器 CTC 中斷服 務(wù)程序流程
K=(K+1)%4
關(guān)閉所有位控 根據(jù) K 值輸出 顯示字形碼
根據(jù) K 值 打開相應(yīng)位控
鍵值譯碼 (譯成顯示碼)
3、操作步驟
(1)創(chuàng)建工程目錄“exam4”。 (2)將“..\Include\”目錄下的頭文件 iom48v.h 拷貝到本工程目錄“exam4” (3)創(chuàng)建工程“exam4-1” (4)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。
(5)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (6)創(chuàng)建 exam4-1.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫 exam4-1.c 文件,exam4-1.c 的語句如下(參考代碼):
#include "iom48v.h"
#include <macros.h>
const unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,
0xF8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x86,0x8e,0xff}; // 顯示緩沖區(qū),分別存放的是千位、百位、十位、個(gè)位的段碼;
unsigned char ledbuf[]={0xff,0xff,0xff,0xff}; unsigned char k=0; //顯示刷新標(biāo)志
unsigned int x=1234;
// 定時(shí)器 1 的初始化,CTC 模式,8 分頻,定時(shí) 5ms void disp_init(void) { TCCR1A= ; TCCR1B= ; OCR1A=;// 計(jì)數(shù)周期為 5mS,F=1M數(shù)值
ICR1= ;
TIMSK1 = 0x02; // 比較中斷 A 允許
TIFR1 = 0x02;
}
// 定時(shí)中斷服務(wù)程序
#pragmainterrupt_handlerInt_TCCR1A:
void Int_TCCR1A(void) { // 補(bǔ)充代碼,實(shí)現(xiàn)以下功能 // 刷新段碼與位控制,用變量 K 實(shí)現(xiàn)輪流刷新的目的
}
//IO 口初始化函數(shù)
void io_init(void) {
DDRB = 0xF0; /*設(shè)置高 4 位為輸出,控制 4 位數(shù)碼管*/
PORTB = 0xFF; DDRC = 0xFF; PORTC = 0xFF; DDRD = 0xFF; PORTD = 0xFF; }
//延時(shí)函數(shù)
void delay(unsigned int x) {
while ( x--) ;
}
// 譯碼程序,將顯示的數(shù)據(jù)譯成段碼,存入 ledbuf 數(shù)組中
void decode(unsigned int b)
{ // 補(bǔ)充代碼,實(shí)現(xiàn)以下功能 // ledbuf[0]保存千位數(shù)顯示碼,ledbuf[1]保存百位數(shù)顯示碼, // ledbuf[0]保存十位數(shù)顯示碼,ledbuf[0]保存?zhèn)€位數(shù)顯示碼
}
void main(void) {
unsigned char key=0,keycode; io_init(); // IO 初始化 disp_init(); // 定時(shí)器初始化 /*中斷使能*/ SEI(); while (1) {
PORTB = 0x0F;
keycode= (~PINB) & 0x0F;
if (keycode != 0x00) { PORTB = ~0x10;
keycode = (~PINB) & 0x0F;
switch(keycode){
case 0x01:key=0;break; case 0x02:key=1;break; case 0x04:key=2;break; case 0x08:key=3;break; }
PORTB = ~0x20;
keycode = (~PINB) & 0x0F;
switch(keycode){
case 0x01:key=4;break; case 0x02:key=5;break; case 0x04:key=6;break; case 0x08:key=7;break; }
PORTB = ~0x40;
keycode = (~PINB) & 0x0F;
switch(keycode){
case 0x01:key=8;break; case 0x02:key=9;break; case 0x04:key=10;break; case 0x08:key=11;break; }
PORTB = ~0x80;
keycode = (~PINB) & 0x0F;
switch(keycode){
case 0x01:key=12;break; case 0x02:key=13;break; case 0x04:key=14;break; case 0x08:key=15;break; }
PORTB = 0xFF; ledbuf[0] = 0xFF; ledbuf[1] = 0xFF; ledbuf[2] = 0xFF; ledbuf[3] = disp[key]; }
delay(30000);
}
}
(8)編譯連接exam4-1工程(操作如實(shí)驗(yàn)1的操作步驟)。
(9)下載exam4-1.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
七、擴(kuò)展實(shí)驗(yàn)
1、修改部分的程序代碼,使新輸入的數(shù)據(jù)顯示在個(gè)位上,原數(shù)據(jù)自動向左移動 一位;
實(shí)驗(yàn) 5A/D轉(zhuǎn)換實(shí)驗(yàn)
一、實(shí)驗(yàn)項(xiàng)目
1、矩陣鍵盤與數(shù)碼管的動態(tài)刷新顯示。
2、利用 AVR 內(nèi)部的模數(shù)轉(zhuǎn)換將一個(gè)測量的電壓值顯示在 4 位數(shù)碼管上。
二、實(shí)驗(yàn)?zāi)康?/font>
1、掌握數(shù)碼管動態(tài)刷新顯示的方法。
2、掌握模數(shù)轉(zhuǎn)換器的基本工作原理與關(guān)鍵技術(shù)指標(biāo)。
3、掌握 AVR 單片機(jī)內(nèi)置的 A/D 模數(shù)轉(zhuǎn)換的使用方法。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
數(shù)碼管動態(tài)刷新顯示,鍵盤掃描,A/D 模數(shù)轉(zhuǎn)換。
五、電路原理圖
圖5.1 AD測量與顯示電路圖
六、實(shí)驗(yàn)內(nèi)容與步驟
1、連線
用杜邦線按圖 5.1 連線。注意:AVCC 接 VCC,AREF 通過 0.1uF 電容接地; 2、程序流程圖(供參考)
C 口 D 口輸出 B 口高 4 位輸出,低 4 位輸入上拉
AD 初始化: 基準(zhǔn)源:VCC 通道 4,等等
T1 定時(shí)器初始化: (定時(shí)時(shí)長為 5ms) CTC 模式,64 分頻
CTC 中斷允許 總中斷允許 讀取 AD 測量值 將 AD 值轉(zhuǎn)換為 電壓數(shù)據(jù)
顯示數(shù)據(jù)譯碼
T1 定時(shí)器 CTC 中斷服 務(wù)程序流程
K=(K+1)%4
關(guān)閉所有位控 根據(jù) K 值輸出 顯示字形碼
根據(jù) K 值 打開相應(yīng)位控
3、操作步驟
(1)創(chuàng)建工程“exam5” (2)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。 (3)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (4)創(chuàng)建 exam5.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (5)編寫exam5.c 文件,exam5.c 的語句如下(參考代碼): #include "iom48v.h"
const unsigned char disp[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0};
unsigned char ledbuf[]={0xFF,0xFF,0xFF,0xFF}; unsigned char flag,k=0; //顯示刷新標(biāo)志
// 定時(shí)器 1 的初始化,CTC 模式,8 分頻
void disp_init(void) { TCCR1A = 0x00; TCCR1B = 0x0A; OCR1A = 625; ICR1 = 625;
TIMSK1 = 0x02; /*比較中斷 A 允許*/
TIFR1 = 0x02;
}
// 定時(shí)中斷服務(wù)程序
#pragmainterrupt_handlerInt_TCCR1A:
void Int_TCCR1A(void) { // 補(bǔ)充代碼,實(shí)現(xiàn)以下功能 // 刷新段碼與位控制,用變量 K 實(shí)現(xiàn)輪流刷新的目的
}
// IO 口初始化函數(shù)
void io_init(void) { DDRB = 0xF0; // 設(shè)置高 4 位為輸出,控制 4 位數(shù)碼管 PORTB = 0xFF; // 高 4 位輸出低電平,點(diǎn)亮 4 位數(shù)碼管 DDRC = 0x0F; PORTC = 0x0F; DDRD = 0xFF; PORTD = 0xFF;
ADMUX= ;//基準(zhǔn) AVCC、通道 4 ADCSRA= ;//使能,開始 ADCSRB=;//ACME=0為 AD通道,=1為模擬比較器通道
}
// ADC 采樣函數(shù),采樣第 4 通道信號,采樣頻率
unsigned int get_ad(void) {
unsigned int i; ADCSRA= ;//使能,開始 ;//等待采樣結(jié)束 i= ;//讀取 AD結(jié)果 ADCSRA &= ~(0b00010000); //清標(biāo)志,關(guān)閉轉(zhuǎn)換 return i; //返回結(jié)果
}
// 十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制段碼函數(shù)
void decode(unsigned int b) { ledbuf[3]=disp[b%10]; b=b/10; ledbuf[2]=disp[b%10]; b=b/10;ledbuf[1]=disp[b%10]; ledbuf[0]=disp[b/10]; ledbuf[0] &= ~0x80; // 加小數(shù)點(diǎn)
}
void main(void) {
unsigned int x = 0; io_init(); //初始化 IO 口disp_init(); //顯示初始化 SREG |= 0x80; decode(x); while (1) { x = get_ad();// 獲取 AD值 decode(x);// 試著增加或修改代碼,將 AD值轉(zhuǎn)成電壓值來顯示
delay(20000);
}
}
(6)編譯連接exam5工程(操作如實(shí)驗(yàn)1的操作步驟)。
(7)下載exam5.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
七、擴(kuò)展實(shí)驗(yàn)
1、系統(tǒng)要求如下:
(1)將模擬輸入通道改為 1 號通道(ADC1);
(2)定時(shí)(100ms)啟動測量 AD 測量;
(3)采用平滑移動法處理測量數(shù)據(jù);即只保留最新的 10 個(gè)采樣數(shù)據(jù),若出現(xiàn) 第 11 個(gè)數(shù)據(jù),則將最早測量的那個(gè)數(shù)據(jù)去掉, (4)對當(dāng)前的 10 個(gè)數(shù)據(jù)進(jìn)行中值濾波處理,即去掉最大值與最小值,然后計(jì) 算剩余 8 個(gè)數(shù)據(jù)的平均值。 2、用 LM35D 取代電位器,設(shè)計(jì)算法,顯示出測量的溫度值;
八、實(shí)驗(yàn)報(bào)告要求
1、描述擴(kuò)展實(shí)驗(yàn)中修改 A/D 通道的方法。
2、寫出擴(kuò)展實(shí)驗(yàn)修改過的函數(shù)的原程序清單。
實(shí)驗(yàn) 6串行通訊實(shí)驗(yàn)
一、實(shí)驗(yàn)項(xiàng)目
1、使用 AVR 的串行口傳送預(yù)設(shè)的數(shù)據(jù)
2、使用 AVR 的串行口接收數(shù)據(jù)并實(shí)時(shí)顯示。
二、實(shí)驗(yàn)?zāi)康?/font>
1、掌握 AVR 單片機(jī)串行口發(fā)送數(shù)據(jù)與接收數(shù)據(jù)的方法。
三、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVRmega48 學(xué)習(xí)板,AVR 下載器。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
四、知識點(diǎn)
數(shù)碼管動態(tài)刷新顯示,按鍵掃描,串行通訊。
五、電路原理
圖 6.1 串口通信電路圖
六、實(shí)驗(yàn)內(nèi)容與步驟
1、連線
1、用杜邦線按圖 6.1 連接。 2、實(shí)驗(yàn)需同時(shí)用兩套 ATmega48 學(xué)習(xí)板,用 A 板與 B 板加以說明。 3、A 板的 TXD(3)引腳與 B 板的 RXD(2)引腳相連,B 板的 TXD(3)引 腳與 A 板的 RXD(2)引腳相連。 4、兩套學(xué)習(xí)板的 GND(8)線相連。
2、程序流程圖(供參考)
 端口初始化
 5msT1 定時(shí)器初始化
串口初始化:4800bps, 異步,8 數(shù)據(jù)位,1 停止位,無校驗(yàn)位, 接收中斷使能,發(fā)送使能
 X=0,顯示譯碼
 Y
接 D7 的按鍵按下? X=‘A’ 顯示譯碼
N
接 D6 的按鍵按下? Y X=‘0’ 顯示譯碼
N 串口發(fā)送 X 的內(nèi)容
串口發(fā)送 X 的內(nèi)容
接 D5 的按鍵按下?
N Y X=X+1 顯示譯碼 串口發(fā)送 X 的內(nèi)容
串口數(shù)據(jù)接收完成 中斷服務(wù)程序流程 T1 定時(shí)器 CTC 中斷服 務(wù)程序流程
讀取接收數(shù)據(jù),送 X K=(K+1)%4
對 X 譯碼 關(guān)閉所有位控
根據(jù) K 值輸出 顯示字形碼
3、操作步驟
(1)創(chuàng)建工程目錄“exam6”。 根據(jù) K 值 打開相應(yīng)位控
(2)將“..\Include\”目錄下的頭文件 iom48v.h 拷貝到本工程目錄“exam6” (3)創(chuàng)建工程“exam6” (4)設(shè)置工程參數(shù)(操作如實(shí)驗(yàn) 1 的操作步驟)。 (5)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (6)創(chuàng)建 exam6.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫exam6.c 文件,exam6.c 的語句如下(參考代碼): #include "iom48v.h"
const unsigned char disp[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char x=0;
unsigned char ledbuf[]={0xFF,0xFF,0xFF,0xFF}; unsigned char flag,k=0; //顯示刷新標(biāo)志
//延時(shí)函數(shù)
void delay(unsigned int x) {
while ( x--) ;
}
/*十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制段碼函數(shù)*/
void int_to_bcd(unsigned int temp) {
unsigned char i;
for (i = 3; i > 0; i--) { ledbuf = disp[temp%10]; /*提取當(dāng)前變量最低位*/ temp = temp/10; /*去掉當(dāng)前最低位值*/
}
ledbuf[0]=disp[temp];
}
// 定時(shí)中斷服務(wù)程序
#pragmainterrupt_handlerInt_TCCR1A:
void Int_TCCR1A(void) { // 補(bǔ)充代碼,實(shí)現(xiàn)以下功能 // 刷新段碼與位控制,用變量 K 實(shí)現(xiàn)輪流刷新的目的
}
// 串口 0 接收完成中斷服務(wù)程序
#pragma interrupt_handler uart_receive:
void uart_receive(void)
{
x=UDR0;
int_to_bcd(x);
}
// IO 口初始化
void io_init(void) { DDRB = 0xFF; PORTB = 0xFF; DDRC = 0x0F; //設(shè)置低 4 位為輸出,控制 4 位數(shù)碼管 PORTC = 0xFF; //低 4 位輸出高電平,關(guān)閉 4 位數(shù)碼管
DDRD = 0x00; PORTD = 0xFF;
}
// 定時(shí)器 1 的初始化,CTC 模式,8 分頻 void disp_init(void) { TCCR1A = 0x00; TCCR1B = 0x0A; OCR1A = 625; ICR1 =625; TIMSK1 = 0x02; EIMSK = 0x01;
}
// 串行口初始化,波特率=4800 主頻=1M
void uart_init(void) { UCSR0A=0x40; // bit6,1,0 三位要寫內(nèi)容 UCSR0B=0b10011000; // 接收結(jié)束中斷使能,接收使能,發(fā)送使能UCSR0C=0b00000110; // 異步,無校驗(yàn),1 位停止位,8 位數(shù)據(jù),上 升沿發(fā)送數(shù)據(jù) UBRR0=12; // 波特率=4800 ,F(xiàn)osc=1Mhz
}
void send(unsigned char x) { // 串口發(fā)送 while(!(UCSR0A&0x20)); UDR0=x;
}
void main(void) { io_init(); disp_init(); uart_init(); SREG|=0x80; x=0;int_to_bcd(x); while (1) {
if(!(PIND&0x20)) {
delay(200);
x=0x41; int_to_bcd(x); send(x);
delay(200);
}
if(!(PIND&0x40)) {
delay(200);
x=0x31; int_to_bcd(x); send(x);
delay(200);
}
if(!(PIND&0x80)) {
delay(200);
x++; int_to_bcd(x); send(x);
delay(200);
}
}
}
(6)編譯連接exam6工程(操作如實(shí)驗(yàn)1的操作步驟)。
(7)下載exam6.hex燒寫文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
七、擴(kuò)展實(shí)驗(yàn)
自行查找單片機(jī)與PC機(jī)通信的技術(shù)要求,制作相應(yīng)的通信模塊,應(yīng)用串行口實(shí) 現(xiàn)單片機(jī)學(xué)習(xí)板與PC機(jī)的數(shù)據(jù)通信(提示:PC機(jī)端可用超級終端或串口助手等工具 軟件)
八、實(shí)驗(yàn)報(bào)告要求
1、描述擴(kuò)展實(shí)驗(yàn)中單片機(jī)與 PC 機(jī)通信的手段與方法。
2、記錄串口實(shí)驗(yàn)的全過程。
實(shí)驗(yàn) 7-1單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—電子時(shí)鐘
一、實(shí)驗(yàn)項(xiàng)目
數(shù)字電子鐘應(yīng)用系統(tǒng),基于自己制作的電路板,以 ATmega48 為核心,配合數(shù) 碼管顯示屏(或液晶顯示屏)為用戶提供長期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。
二、實(shí)驗(yàn)類型
設(shè)計(jì)性。
三、計(jì)劃學(xué)時(shí)
4 學(xué)時(shí)。
四、指導(dǎo)思想
學(xué)生能運(yùn)用已學(xué)的電路知識、計(jì)算機(jī)知識、單片機(jī)硬件和軟件知識,基于 AVR 單片機(jī)設(shè)計(jì)一個(gè)有獨(dú)到之處的系統(tǒng),激發(fā)學(xué)生學(xué)習(xí)的主動性和創(chuàng)新意識,培養(yǎng)學(xué)生 獨(dú)立思考、綜合運(yùn)用知識、提出問題和解決復(fù)雜問題的能力。
五、實(shí)驗(yàn)?zāi)康募耙?/font>
通過本實(shí)驗(yàn)使學(xué)生掌握從題目構(gòu)思到選型、硬件設(shè)計(jì)、硬件調(diào)試、軟件設(shè)計(jì)和 軟件調(diào)試的單片機(jī)設(shè)計(jì)方法。 系統(tǒng)要求:
1、能顯示時(shí)、分、秒、日期及時(shí)間和日期調(diào)整功能;
2、能設(shè)定兩個(gè)以上的鬧鐘時(shí)間;
3、自定義其它擴(kuò)展功能。
六、涉及的內(nèi)容或知識點(diǎn)
傳感器采樣,控制器的控制,鍵盤輸入和數(shù)碼管顯示等知識。
七、采用的教學(xué)方法和手段
本實(shí)驗(yàn)為設(shè)計(jì)性實(shí)驗(yàn),教師給出題目范圍,由學(xué)生自主完成系統(tǒng)硬件設(shè)計(jì)和程序 編制。
八、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVR 下載器,學(xué)生自己制作的系統(tǒng)。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
九、實(shí)驗(yàn)報(bào)告和結(jié)果要求
1、實(shí)驗(yàn)報(bào)告:
① 設(shè)計(jì)概況;
② 硬件電路圖(原理圖與實(shí)物照片);★
③ 軟件流程圖;★★★
④ 源程序清單;
⑤ 操作說明;
⑥實(shí)驗(yàn)結(jié)果分析。
2、自制的應(yīng)用系統(tǒng)目標(biāo)板(能按操作說明操作、使用)。
提示:可以外接蜂鳴器模塊、DS1302 實(shí)時(shí)時(shí)鐘模塊、LCD1602 模塊等;
實(shí)驗(yàn) 7-2單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—溫度報(bào)警系統(tǒng)
一、實(shí)驗(yàn)項(xiàng)目
系統(tǒng)采樣溫度并顯示;當(dāng)溫度超過限定值則報(bào)警;通過“設(shè)置”、“+”和“-”鍵修 改溫度限定值。 要求:
1、根據(jù)系統(tǒng)功能選擇一個(gè)性價(jià)比較高的 AVR 單片機(jī)為控制芯片;
2、獨(dú)立設(shè)計(jì)硬件電路,自制實(shí)驗(yàn)系統(tǒng);
3、獨(dú)立完成軟件設(shè)計(jì)并調(diào)試。
二、實(shí)驗(yàn)類型
綜合性。
三、計(jì)劃學(xué)時(shí)
4 學(xué)時(shí)。
四、指導(dǎo)思想
通過本實(shí)驗(yàn),學(xué)生能利用 AVR 單片機(jī)的豐富硬件資源設(shè)計(jì)一個(gè)實(shí)際應(yīng)用系統(tǒng), 使學(xué)生掌握電子產(chǎn)品的設(shè)計(jì)過程。
五、實(shí)驗(yàn)?zāi)康募耙?/font>
通過溫度傳感器完成溫度的采樣和顯示;當(dāng)溫度超過警戒值則報(bào)警;通過“設(shè) 置”、“+”和“-”鍵修改溫度警戒值。 要求:
1、使用 AVR 單片機(jī)為控制芯片;
2、使用 AD 模擬采集的溫度數(shù)據(jù)(0~5V 表示 0~50℃);
3、使用 4 位八段數(shù)碼管顯示當(dāng)前測量的溫度值(要求保留 1 位小數(shù));
4、溫度上限值與溫度下限值保存在 EEPROM 中(初值為 30℃和 10℃);
5、當(dāng)測量溫度高于設(shè)定的上限值時(shí),蜂鳴器響,開啟冷水閥(用 LED 模擬); 當(dāng)測量溫度低于設(shè)定的下限值時(shí),蜂鳴器響,開啟熱風(fēng)閥(用 LED 模擬); 當(dāng)測量溫度在下限與上限之間時(shí),蜂鳴器、冷水閥、熱風(fēng)閥均關(guān)閉; 6、用 3 或 4 個(gè)按鍵修改溫度上限與下限值,溫度上限與下限在修改時(shí)必須用數(shù)碼管 顯示, 7、通過按鍵修改好的溫度上限值與下限值能保存在單片機(jī)內(nèi)部。 通過本實(shí)驗(yàn)掌握單片機(jī)對模擬信號的采集和處理,掌握單片機(jī)串行數(shù)據(jù)傳送技 術(shù)和電路、軟件設(shè)計(jì)方法,掌握 LED 數(shù)碼管電路和軟件設(shè)計(jì)方法,掌握按鍵和蜂鳴 器的電路和軟件設(shè)計(jì)方法。
六、涉及的內(nèi)容或知識點(diǎn)
溫度采樣,一線數(shù)據(jù)傳送總線,LED 數(shù)碼管驅(qū)動,串行轉(zhuǎn)并行的數(shù)據(jù)傳送,揚(yáng) 聲器驅(qū)動,按鍵處理。
七、采用的教學(xué)方法和手段
本實(shí)驗(yàn)為綜合性實(shí)驗(yàn),教師給出題目并提出設(shè)計(jì)目標(biāo)和要求,設(shè)定需實(shí)現(xiàn)的技術(shù) 指標(biāo),由學(xué)生自主完成系統(tǒng)硬件的組合設(shè)計(jì)和程序的編制。
八、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVR 下載器,學(xué)生自己制作的系統(tǒng)。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
九、實(shí)驗(yàn)報(bào)告和結(jié)果要求
1、實(shí)驗(yàn)報(bào)告:
① 設(shè)計(jì)概況;
② 硬件電路圖(原理圖與實(shí)物照片);★
③ 軟件流程圖;★★★
④ 源程序清單;
⑤ 操作說明;
⑥ 實(shí)驗(yàn)結(jié)果分析。
2、自制的應(yīng)用系統(tǒng)目標(biāo)板(能按操作說明操作、使用)。
提示:可以外接蜂鳴器模塊、LM35D 測溫芯片或 DS18B20 測溫芯片等;
實(shí)驗(yàn) 7-3單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)—小型測控系統(tǒng)
一、實(shí)驗(yàn)項(xiàng)目
系統(tǒng)是基于自己制作的電路板,至少包括傳感器檢測、控制(電機(jī)等)、鍵盤 輸入?yún)?shù)和數(shù)碼管顯示當(dāng)前狀態(tài)等。具體方案由學(xué)生獨(dú)立自行設(shè)計(jì)。
二、實(shí)驗(yàn)類型
設(shè)計(jì)性。
三、計(jì)劃學(xué)時(shí)
4 學(xué)時(shí)。
四、指導(dǎo)思想
學(xué)生能運(yùn)用已學(xué)的電路知識、計(jì)算機(jī)知識、單片機(jī)硬件和軟件知識,基于 AVR 單片機(jī)設(shè)計(jì)一個(gè)有獨(dú)到之處的系統(tǒng),激發(fā)學(xué)生學(xué)習(xí)的主動性和創(chuàng)新意識,培養(yǎng)學(xué)生 獨(dú)立思考、綜合運(yùn)用知識、提出問題和解決復(fù)雜問題的能力。
五、實(shí)驗(yàn)?zāi)康募耙?/font>
通過本實(shí)驗(yàn)使學(xué)生掌握從題目構(gòu)思到控制器選型、硬件設(shè)計(jì)、硬件調(diào)試、軟件 設(shè)計(jì)和軟件調(diào)試的單片機(jī)設(shè)計(jì)方法。 系統(tǒng)是基于 AVR 單片機(jī),至少包括傳感器檢測、控制(電機(jī)等)、鍵盤輸入 和數(shù)碼管顯示當(dāng)前狀態(tài)等。具體方案由學(xué)生獨(dú)立自行設(shè)計(jì)。
六、涉及的內(nèi)容或知識點(diǎn)
傳感器采樣,控制器的控制,鍵盤輸入和數(shù)碼管顯示等知識。
七、采用的教學(xué)方法和手段
本實(shí)驗(yàn)為設(shè)計(jì)性實(shí)驗(yàn),教師給出題目范圍,由學(xué)生自主完成系統(tǒng)硬件設(shè)計(jì)和程序 編制。
八、實(shí)驗(yàn)設(shè)備與平臺
1、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)(PC),AVR 下載器,學(xué)生自己制作的系統(tǒng)。
2、軟件平臺:ICCAVR C 語言程序開發(fā)軟件。
九、實(shí)驗(yàn)報(bào)告和結(jié)果要求
1、實(shí)驗(yàn)報(bào)告:
① 設(shè)計(jì)概況;
② 硬件電路圖(原理圖與實(shí)物照片);★
③ 軟件流程圖;★★★
④ 源程序清單;
⑤ 操作說明;
⑥實(shí)驗(yàn)結(jié)果分析。
2、自制的應(yīng)用系統(tǒng)目標(biāo)板(能按操作說明操作、使用)。
完整的pdf格式文檔51黑下載地址:
|
評分
-
查看全部評分
|