《單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)》課程是電氣工程及其自動(dòng)化等專(zhuān)業(yè)學(xué) 生的重要實(shí)踐課程。它與《單片機(jī)原理與接口技術(shù)》課程緊密配合,是《單 片機(jī)原理與接口技術(shù)》課程的重要實(shí)踐組成部分,是課堂教學(xué)的延伸,關(guān) 系到學(xué)生動(dòng)手能力、創(chuàng)新能力、適應(yīng)能力、團(tuán)隊(duì)合作等綜合能力的培養(yǎng)。 為此編寫(xiě)了《單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書(shū)》。
為突出工程技術(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ī)知識(shí)外,還涉及電路基礎(chǔ)、模擬電子技術(shù)、數(shù)字電子技術(shù)、應(yīng)用軟件 等內(nèi)容。所以是一門(mén)既有廣度又有深度的綜合性課程。
本課程將著重于專(zhuān)業(yè)技能的訓(xùn)練,使學(xué)生掌握單片機(jī)的各功能部件及 控制方式(查詢(xún)、中斷等),掌握單片機(jī)最基本的結(jié)構(gòu),掌握單片機(jī)系統(tǒng) 的設(shè)計(jì)與開(kāi)發(fā)方法與過(guò)程,了解單片機(jī)的用途與應(yīng)用前景,使學(xué)生在學(xué)習(xí) 的過(guò)程中對(duì)單片機(jī)有一個(gè)相對(duì)全面的了解。通過(guò)本課程的訓(xùn)練與實(shí)踐,激 發(fā)學(xué)生的學(xué)習(xí)熱情,力不是實(shí)踐中提高學(xué)生的思維水平與創(chuàng)造能力。
由于時(shí)間倉(cāng)促和水平所限,指導(dǎo)書(shū)中可能存在一些錯(cuò)誤和不妥之處, 敬請(qǐng)批評(píng)指正。
4、電路分析:詳細(xì)分析外圍電路,明確所用引腳的性質(zhì),確定單片機(jī)各 引腳的配置,確定單片機(jī)內(nèi)部資源的配置,進(jìn)而實(shí)現(xiàn)各寄存器的配置; 電路分析要求簡(jiǎn)單、直接,按相應(yīng)功能逐一描述,多項(xiàng)可分條列寫(xiě)。
5、程序流程圖:即完成實(shí)驗(yàn)功能而設(shè)計(jì)的程序流程,程序流程圖要求真 實(shí),嚴(yán)禁杜撰或抄襲。
6、實(shí)驗(yàn)結(jié)果及分析:對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行的分析與判斷,如果實(shí)驗(yàn)包括擴(kuò)展 部分,或者包括引深的實(shí)驗(yàn)內(nèi)容,需要有專(zhuān)門(mén)的分析與描述,即要提 供實(shí)驗(yàn)電路、實(shí)驗(yàn)手段、程序流程、實(shí)驗(yàn)結(jié)果等。
8、實(shí)驗(yàn)體會(huì):包括對(duì)實(shí)驗(yàn)過(guò)程中的經(jīng)驗(yàn)、教訓(xùn)、收獲等進(jìn)行小結(jié);也可 以對(duì)實(shí)驗(yàn)內(nèi)容、方法、設(shè)備等的建議和設(shè)想;
下拉菜單中選擇本工程目錄“exam1”,在“文件名(N)”窗口中輸入工程文件 名“exam1”,如下圖1.2所示,然后按 按鈕。
將 exam1.c 文件添加到工程:右擊“Project”頁(yè)面中的“Files”項(xiàng),在打開(kāi)的菜單 中選擇“Add File(s)…”。選擇彈出窗口中的 exam1.c 文件并打開(kāi),結(jié)果如下圖 1.5
(8)編譯連接exam1工程:
(6)創(chuàng)建 exam2.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫(xiě) exam2.c 文件。 雙擊右邊的“Project”頁(yè)面的“exam2.c”,在左邊的“exam2.c”頁(yè)面添加如下的語(yǔ)句
void main(void) { unsigned char i; io_init();
1、按一下與B0口相連的按鍵,對(duì)應(yīng)的點(diǎn)亮連接D0口的LED,再按一下該按鍵, 對(duì)應(yīng)的LED熄滅;依此類(lèi)推,用8個(gè)按鍵控制8盞LED。
1、描述如何設(shè)置 AVR 單片機(jī)的 I/O 口為輸出,如何使8盞 LED 亮滅;描述如 何設(shè)置 AVR 單片機(jī)的 I/O 口為輸入,如何讀取8?jìng)€(gè)按鈕;
1、利用定時(shí)器產(chǎn)生周期為 1 秒的中斷,讓 PD 口連接的 8 個(gè) LED 燈實(shí)現(xiàn)二進(jìn) 制計(jì)數(shù)顯示的秒表。
2、利用 PWM 占空比調(diào)節(jié)功能,使用定時(shí)器輸出兩路動(dòng)態(tài) PWM 信號(hào),結(jié)果以 亮度的形式顯示在對(duì)應(yīng)的 LED 上,并通過(guò)兩個(gè)按鍵調(diào)節(jié) LED 的亮度。二、實(shí)驗(yàn)?zāi)康?/font>
T1 溢出中斷允許 總中斷允許
#include "iom48v.h" unsigned char second=0;
void main(void) { io_init(); t1_init();
(9)下載exam3-1.hex燒寫(xiě)文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
void main(void) { DDRB=0x03; PORTB|=0xFF; TCCR1A=0b10100001;
if (OCR1A<255) { OCR1A+=1; delay(2000);
if (OCR1A> 200) { OCR1A-=1; delay(2000);
(7)下載exam3-2.hex燒寫(xiě)文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作 步驟),觀察運(yùn)行結(jié)果。
3、如果要用T0實(shí)現(xiàn)按鍵計(jì)數(shù)功能,請(qǐng)?zhí)峁╇娐穲D、寄存器配置情況(含說(shuō)明)、 程序流程圖;
CTC 中斷允許 總中斷允許
// 定時(shí)器 1 的初始化,CTC 模式,8 分頻,定時(shí) 5ms void disp_init(void) {
TCCR1A= ; TCCR1B= ;
PORTB = 0xFF; DDRC = 0xFF; PORTC = 0xFF; DDRD = 0xFF; PORTD = 0xFF;
unsigned char key=0,keycode; io_init(); // IO 初始化 disp_init(); // 定時(shí)器初始化
/*中斷使能*/ SEI();
if (keycode != 0x00) { PORTB = ~0x10;
case 0x01:key=0;break; case 0x02:key=1;break; case 0x04:key=2;break; case 0x08:key=3;break;
case 0x01:key=4;break; case 0x02:key=5;break; case 0x04:key=6;break; case 0x08:key=7;break;
case 0x01:key=8;break; case 0x02:key=9;break; case 0x04:key=10;break; case 0x08:key=11;break;
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];
(9)下載exam4-1.hex燒寫(xiě)文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
1、修改部分的程序代碼,使新輸入的數(shù)據(jù)顯示在個(gè)位上,原數(shù)據(jù)自動(dòng)向左移動(dòng) 一位;
T1 定時(shí)器初始化: (定時(shí)時(shí)長(zhǎng)為 5ms) CTC 模式,64 分頻
CTC 中斷允許 總中斷允許
(3)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (4)創(chuàng)建 exam5.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (5)編寫(xiě)exam5.c 文件,exam5.c 的語(yǔ)句如下(參考代碼):
void disp_init(void) { TCCR1A = 0x00; TCCR1B = 0x0A; OCR1A = 625;
DDRB = 0xF0; // 設(shè)置高 4 位為輸出,控制 4 位數(shù)碼管 PORTB = 0xFF; // 高 4 位輸出低電平,點(diǎn)亮 4 位數(shù)碼管 DDRC = 0x0F;
PORTC = 0x0F; DDRD = 0xFF;
;//等待采樣結(jié)束 i= ;//讀取 AD結(jié)果 ADCSRA &= ~(0b00010000); //清標(biāo)志,關(guān)閉轉(zhuǎn)換
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];
unsigned int x = 0; io_init(); //初始化 IO 口disp_init(); //顯示初始化
SREG |= 0x80; decode(x); while (1) {
(7)下載exam5.hex燒寫(xiě)文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
(3)采用平滑移動(dòng)法處理測(cè)量數(shù)據(jù);即只保留最新的 10 個(gè)采樣數(shù)據(jù),若出現(xiàn) 第 11 個(gè)數(shù)據(jù),則將最早測(cè)量的那個(gè)數(shù)據(jù)去掉,
(4)對(duì)當(dāng)前的 10 個(gè)數(shù)據(jù)進(jìn)行中值濾波處理,即去掉最大值與最小值,然后計(jì) 算剩余 8 個(gè)數(shù)據(jù)的平均值。
3、A 板的 TXD(3)引腳與 B 板的 RXD(2)引腳相連,B 板的 TXD(3)引 腳與 A 板的 RXD(2)引腳相連。
(5)將頭文件 iom48v.h 添加到本工程(操作如實(shí)驗(yàn) 1 的操作步驟)。 (6)創(chuàng)建 exam6.c 文件并加入到本工程中(操作如實(shí)驗(yàn) 1 的操作步驟)。 (7)編寫(xiě)exam6.c 文件,exam6.c 的語(yǔ)句如下(參考代碼):
void io_init(void) { DDRB = 0xFF; PORTB = 0xFF;
DDRD = 0x00; PORTD = 0xFF;
UCSR0A=0x40; // bit6,1,0 三位要寫(xiě)內(nèi)容 UCSR0B=0b10011000; // 接收結(jié)束中斷使能,接收使能,發(fā)送使能UCSR0C=0b00000110; // 異步,無(wú)校驗(yàn),1 位停止位,8 位數(shù)據(jù),上
void main(void) { io_init(); disp_init(); uart_init(); SREG|=0x80; x=0;int_to_bcd(x); while (1) {
(7)下載exam6.hex燒寫(xiě)文件到ATmega48學(xué)習(xí)板并運(yùn)行(操作如實(shí)驗(yàn)1的操作步 驟),觀察運(yùn)行結(jié)果。
自行查找單片機(jī)與PC機(jī)通信的技術(shù)要求,制作相應(yīng)的通信模塊,應(yīng)用串行口實(shí) 現(xiàn)單片機(jī)學(xué)習(xí)板與PC機(jī)的數(shù)據(jù)通信(提示:PC機(jī)端可用超級(jí)終端或串口助手等工具 軟件)
數(shù)字電子鐘應(yīng)用系統(tǒng),基于自己制作的電路板,以 ATmega48 為核心,配合數(shù) 碼管顯示屏(或液晶顯示屏)為用戶(hù)提供長(zhǎng)期、連續(xù)、可靠、穩(wěn)定的工作環(huán)境。
學(xué)生能運(yùn)用已學(xué)的電路知識(shí)、計(jì)算機(jī)知識(shí)、單片機(jī)硬件和軟件知識(shí),基于 AVR 單片機(jī)設(shè)計(jì)一個(gè)有獨(dú)到之處的系統(tǒng),激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性和創(chuàng)新意識(shí),培養(yǎng)學(xué)生 獨(dú)立思考、綜合運(yùn)用知識(shí)、提出問(wèn)題和解決復(fù)雜問(wèn)題的能力。
通過(guò)本實(shí)驗(yàn)使學(xué)生掌握從題目構(gòu)思到選型、硬件設(shè)計(jì)、硬件調(diào)試、軟件設(shè)計(jì)和 軟件調(diào)試的單片機(jī)設(shè)計(jì)方法。
本實(shí)驗(yàn)為設(shè)計(jì)性實(shí)驗(yàn),教師給出題目范圍,由學(xué)生自主完成系統(tǒng)硬件設(shè)計(jì)和程序 編制。
系統(tǒng)采樣溫度并顯示;當(dāng)溫度超過(guò)限定值則報(bào)警;通過(guò)“設(shè)置”、“+”和“-”鍵修 改溫度限定值。
通過(guò)本實(shí)驗(yàn),學(xué)生能利用 AVR 單片機(jī)的豐富硬件資源設(shè)計(jì)一個(gè)實(shí)際應(yīng)用系統(tǒng), 使學(xué)生掌握電子產(chǎn)品的設(shè)計(jì)過(guò)程。
通過(guò)溫度傳感器完成溫度的采樣和顯示;當(dāng)溫度超過(guò)警戒值則報(bào)警;通過(guò)“設(shè) 置”、“+”和“-”鍵修改溫度警戒值。
5、當(dāng)測(cè)量溫度高于設(shè)定的上限值時(shí),蜂鳴器響,開(kāi)啟冷水閥(用 LED 模擬); 當(dāng)測(cè)量溫度低于設(shè)定的下限值時(shí),蜂鳴器響,開(kāi)啟熱風(fēng)閥(用 LED 模擬); 當(dāng)測(cè)量溫度在下限與上限之間時(shí),蜂鳴器、冷水閥、熱風(fēng)閥均關(guān)閉;
6、用 3 或 4 個(gè)按鍵修改溫度上限與下限值,溫度上限與下限在修改時(shí)必須用數(shù)碼管 顯示,
7、通過(guò)按鍵修改好的溫度上限值與下限值能保存在單片機(jī)內(nèi)部。 通過(guò)本實(shí)驗(yàn)掌握單片機(jī)對(duì)模擬信號(hào)的采集和處理,掌握單片機(jī)串行數(shù)據(jù)傳送技
術(shù)和電路、軟件設(shè)計(jì)方法,掌握 LED 數(shù)碼管電路和軟件設(shè)計(jì)方法,掌握按鍵和蜂鳴 器的電路和軟件設(shè)計(jì)方法。
溫度采樣,一線數(shù)據(jù)傳送總線,LED 數(shù)碼管驅(qū)動(dòng),串行轉(zhuǎn)并行的數(shù)據(jù)傳送,揚(yáng) 聲器驅(qū)動(dòng),按鍵處理。
本實(shí)驗(yàn)為綜合性實(shí)驗(yàn),教師給出題目并提出設(shè)計(jì)目標(biāo)和要求,設(shè)定需實(shí)現(xiàn)的技術(shù) 指標(biāo),由學(xué)生自主完成系統(tǒng)硬件的組合設(shè)計(jì)和程序的編制。
系統(tǒng)是基于自己制作的電路板,至少包括傳感器檢測(cè)、控制(電機(jī)等)、鍵盤(pán) 輸入?yún)?shù)和數(shù)碼管顯示當(dāng)前狀態(tài)等。具體方案由學(xué)生獨(dú)立自行設(shè)計(jì)。
學(xué)生能運(yùn)用已學(xué)的電路知識(shí)、計(jì)算機(jī)知識(shí)、單片機(jī)硬件和軟件知識(shí),基于 AVR 單片機(jī)設(shè)計(jì)一個(gè)有獨(dú)到之處的系統(tǒng),激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性和創(chuàng)新意識(shí),培養(yǎng)學(xué)生 獨(dú)立思考、綜合運(yùn)用知識(shí)、提出問(wèn)題和解決復(fù)雜問(wèn)題的能力。
通過(guò)本實(shí)驗(yàn)使學(xué)生掌握從題目構(gòu)思到控制器選型、硬件設(shè)計(jì)、硬件調(diào)試、軟件 設(shè)計(jì)和軟件調(diào)試的單片機(jī)設(shè)計(jì)方法。
系統(tǒng)是基于 AVR 單片機(jī),至少包括傳感器檢測(cè)、控制(電機(jī)等)、鍵盤(pán)輸入 和數(shù)碼管顯示當(dāng)前狀態(tài)等。具體方案由學(xué)生獨(dú)立自行設(shè)計(jì)。
本實(shí)驗(yàn)為設(shè)計(jì)性實(shí)驗(yàn),教師給出題目范圍,由學(xué)生自主完成系統(tǒng)硬件設(shè)計(jì)和程序 編制。
歡迎光臨 (http://m.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |