找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5170|回復(fù): 3
收起左側(cè)

ATmega48實(shí)驗(yàn)指導(dǎo)書(45頁P(yáng)DF下載)新手入門練習(xí)用

[復(fù)制鏈接]
ID:430257 發(fā)表于 2018-11-20 22:57 | 顯示全部樓層 |閱讀模式
下面附件里面有些適合剛?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)容與步驟

1Proteus操作步驟

(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=0AD通道,=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黑下載地址:
單片機(jī)實(shí)驗(yàn)指導(dǎo)書(16學(xué)時(shí)).pdf (1.14 MB, 下載次數(shù): 31)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:8222 發(fā)表于 2019-3-30 18:29 | 顯示全部樓層
感謝樓主無私的奉獻(xiàn)。
回復(fù)

使用道具 舉報(bào)

ID:185852 發(fā)表于 2019-7-9 09:50 | 顯示全部樓層
感謝樓主無私的分享。
回復(fù)

使用道具 舉報(bào)

ID:185852 發(fā)表于 2019-7-9 09:51 | 顯示全部樓層
感謝樓主無私的分享。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表