




已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、 單片機開發(fā)系統(tǒng)應(yīng)用初步 基本I/O口賦值1. 內(nèi)容提要:a KEIL C軟件對程序進(jìn)行編譯調(diào)試及燒錄軟件的使用方法。b 單片機基本I/O口的驅(qū)動方式、特點等。c 匯編語句的基本用法;對基本I/O口的賦值方法;程序的具體流程等。2實驗?zāi)康募耙螅篴 課前預(yù)習(xí)好編程的基本知識。程序的基本概念、*.asm、*.c、*.hex、*.uv2所表示的文件類型等。b 熟練掌握不同數(shù)據(jù)類型之間的相互轉(zhuǎn)換,不同類型的數(shù)據(jù)在程序中的表示方法等。c 課前弄清楚單片機I/O口的基本驅(qū)動方式,理解何謂上拉及下拉方式,單片機驅(qū)動電流、灌入電流等概念。d 復(fù)習(xí)數(shù)碼管的相關(guān)知識,弄清數(shù)碼管需顯示某個字符應(yīng)如何對其進(jìn)行控制等。對P0口賦值跳轉(zhuǎn)至主程序開始結(jié)束3實驗源程序及流程圖: ORG 0000H AJMP MAINMAIN: MOV P0,#0FH JMP MAIN END4實驗步驟:a. 通過讀程序,弄懂程序?qū)δ膫€口進(jìn)行賦初值,通過發(fā)光管亮或滅的情況反映出單片機輸出數(shù)據(jù)的情況(注意區(qū)分?jǐn)?shù)據(jù)的高低位)。b. 通過KEIL C軟件對以上程序進(jìn)行編譯,正確后生成*.HEX機器語言文件,隨即打開燒錄軟件,將生成的*.HEX文件燒錄到單片機芯片中,完成后點擊運行按鈕便可脫機運行編寫好的程序。c. 觀察發(fā)光管亮滅情況,最終得出硬件的實際連接情況。d. 修改程序中的輸出數(shù)據(jù),重復(fù)以上編譯燒錄步驟,再次觀察LED發(fā)光情況是否與數(shù)據(jù)對應(yīng)。例: ORG 0000H AJMP MAINMAIN: MOV P0,#65H JMP MAIN ENDe. 修改單片機輸出數(shù)據(jù)的I/O口(如改為P2口輸出),觀察其余口是否能正確輸出數(shù)據(jù)。例: ORG 0000H AJMP MAINMAIN: MOV P2,#0FH JMP MAIN END5發(fā)揮部分:將I/O口通過8芯排線接至獨立兩位數(shù)碼管處,通過I/O口賦值能使數(shù)碼管顯示出本人學(xué)號最后一位(注意數(shù)據(jù)高位統(tǒng)一用來控制數(shù)碼管的a筆段,低位控制h筆段)。6. 電路原理圖:提示:1. 由于單片機芯片燒錄時需用到P1口,故在燒錄過程中P1.5、P1.6、P1.7口不應(yīng)有導(dǎo)線連接,否則易引起實驗臺初始化失敗等錯誤(燒錄完成后可以進(jìn)行連接)。7C語言編程:#include void main(void) while(1) P0=0x0f; 二、基本控制語句應(yīng)用 簡單廣告牌霓虹燈設(shè)計1. 內(nèi)容提要:a 匯編語言控制語句應(yīng)用。b 程序的循環(huán)、子程序調(diào)用、程序跳轉(zhuǎn)等。c 單片機基本I/O口的驅(qū)動方式、特點等。2實驗?zāi)康募耙螅篴 理解左移RL、右移RR概念。b 延時程序DELAY的具體執(zhí)行過程、延時量控制等。c 掌握通過設(shè)置程序的跳轉(zhuǎn)來實現(xiàn)程序循環(huán)的方法。開始P0及累加器A初始化化A內(nèi)容賦予P0A內(nèi)容左移跳轉(zhuǎn)至LOOP結(jié)束3實驗源程序及流程圖:ORG 0000H AJMP MAINMAIN: MOV P0,#00H MOV A,#01HLOOP: MOV P0,A RL A JMP LOOP END4實驗步驟:a. 讀懂程序,分析程序中哪一句為控制語句,起到什么控制作用以及最終能實現(xiàn)何功能。b. 運行程序,觀察結(jié)果是否與程序一致,分析出現(xiàn)問題的原因所在。c. 試著向源程序中加入延時語句,觀察現(xiàn)象是否有所改變。 ORG 0000H AJMP MAINMAIN: MOV P0,#00H MOV A,#01HLOOP: MOV P0,A RL A ACALL DELAY JMP LOOP;*延時子程序*;DELAY:MOV R2,#10HLOOP1:MOV R1,#0FFHLOOP2:DJNZ R1,LOOP2 DJNZ R2,LOOP1 RET ENDd. 適當(dāng)修改延時量,使LED閃爍更為明顯,易于肉眼觀察。e. 適當(dāng)修改程序,使程序最終實現(xiàn)一只LED作流水狀移動。5發(fā)揮部分:能自左向右自右向左自左向右反復(fù)循環(huán)來控制一只發(fā)光管如反彈狀移動。6. 電路原理圖:7. C語言編程: #include unsigned char i,c,d,temp=0xfe;void delay(void) unsigned char a,b; for(a=0;a255;a+) for(b=0;b200;b+); void main(void) while(1) for(i=0;i8;i+) c=temp(8-i); P0=c|d; delay(); 三、單片機I/O口輸入 獨立按鍵識別1. 內(nèi)容提要:a 獨立式按鍵的連接。b 匯編語句對按鍵的是否按下的具體判斷、按鍵按下后所執(zhí)行的跳轉(zhuǎn)等。c 按鍵抖動對單片機所造成的影響以及如何消除抖動對單片機在執(zhí)行程序上的影響。2實驗?zāi)康募耙螅篴 掌握J(rèn)B、CPL語句的具體使用方法。b 延時程序的具體執(zhí)行過程、延時量控制等。c 掌握通過設(shè)置程序的跳轉(zhuǎn)來執(zhí)行相應(yīng)語句的方法。開始P0及累加器A初始化化A內(nèi)容賦予P0判斷是否有鍵按下結(jié)束對A取反NYd 體會按鍵抖動對單片機系統(tǒng)所造成的影響,以及如何通過軟件延時去抖動方法來消除按鍵抖動。3實驗源程序及流程圖:ORG 0000H AJMP MAIN;*主程序*;MAIN: MOV P0,#0FFH MOV A,#0FFHWAIT: MOV P0,A JB P3.0,WAIT CPL A JMP WAIT END4實驗步驟:a. 運行以上程序,同時反復(fù)按下連接至P3.0口的獨立式輕觸開關(guān)(平時按鍵抬起時為高電平,按下按鍵時為低電平),觀察LED發(fā)光情況。5發(fā)揮部分:由于按鍵抖動,使LED的亮滅情況無法通過按鍵準(zhǔn)確控制,試著通過前面一節(jié)的實驗,在程序適當(dāng)?shù)奈恢眉尤胙訒r程序,實現(xiàn)軟件去抖動。6. 電路原理圖:(K2應(yīng)接在P3.0)7. C語言編程:#include sbit key=P30;unsigned char a=0;void main(void) while(1) P0=a; if(key=0) a=a; 四、外部中斷應(yīng)用 按鍵計數(shù)器1. 內(nèi)容提要:a 單片機中斷系統(tǒng)基本功能、中斷控制字定義以及外中斷觸發(fā)方式等。b 中斷服務(wù)程序入口地址、中斷斷點及中斷返回。c 按鍵抖動對中斷所造成的影響。2實驗?zāi)康募耙螅篴 理解中斷服務(wù)程序的入口地址及熟記各中斷服務(wù)程序入口地址。b 掌握中斷控制字TCON、IE、IP的具體含義及正確定義等。c 掌握中斷服務(wù)程序的具體執(zhí)行過程。d 體會按鍵抖動對單片機系統(tǒng)所造成的影響及如何消除按鍵抖動。開始外中斷及數(shù)據(jù)初始化化死循環(huán)判斷是否有中斷結(jié)束對A累加計數(shù)NY3實驗源程序及流程圖:ORG 0000H AJMP MAIN ORG 0003H AJMP DEALMAIN:SETB EA SETB EX0 SETB IT0 MOV A,#00H MOV P0,#0FFHWAIT:SJMP WAITDEAL:INC A CPL A MOV P0,A CPL A RETI END4實驗步驟:a. 閱讀并理解程序,理解程序第三行的“ORG 0003H”及“MAIN”程序中初始化部分的具體含義。b. 運行程序,通過反復(fù)按下P3.2獨立式按鍵(INT0),觀察LED顯示結(jié)果。5發(fā)揮部分:通過以上實驗結(jié)果得出:由于按鍵抖動,導(dǎo)致P3.2/INT0口頻繁出現(xiàn)高低變化的電平,致使單片機多次執(zhí)行中斷服務(wù)程序。能否在程序的適當(dāng)部分加入延時程序并更改觸發(fā)方式,成功解決按鍵抖動問題?6. 電路原理圖:7. C語言編程:#include unsigned char a=0;void int0(void) interrupt 0 using 0 a+;a=a;P0=a;a=a;void main(void) EA=1;EX0=1;IT0=1; while(1);五、數(shù)碼管顯示基礎(chǔ) 數(shù)顯按鍵計數(shù)器1. 內(nèi)容提要:a 數(shù)碼管內(nèi)部結(jié)構(gòu)、引腳定義及驅(qū)動。b 數(shù)碼管段代碼表具體含義。c 變址尋址在單片機查表中的意義所在。2實驗?zāi)康募耙螅篴 掌握數(shù)碼管與單片機的連接方法。b 掌握段代碼表的推算及變址尋址的具體含義。c 掌握判斷語句的具體用法。開始外中斷及數(shù)據(jù)初始化化循環(huán)顯示R0內(nèi)容判斷是否有中斷結(jié)束對R0累加計數(shù)NY3實驗源程序及流程圖: ORG 0000H AJMP MAIN ORG 0003H AJMP DEAL ORG 0030HMAIN: SETB EA SETB EX0 SETB IT0 MOV P0,#00H MOV R0,#00H MOV DPTR,#TABDISPLAY:MOV A,R0 MOVC A,A+DPTR MOV P0,A JMP DISPLAYDEAL: INC R0 RETITAB: DB 0FCH,60H,0DAH,0F2H,66H DB 0B6H,0BEH,0E0H,0FEH,0F6H DB 0EEH,3EH,9CH,7AH,9EH,8EH,00H END4實驗步驟:a. 閱讀并理解程序,重點掌握數(shù)碼管“TAB”段代碼表以及段代碼表查表過程。b. 根據(jù)程序定義,將P0口通過8芯排線連接至靜態(tài)二位數(shù)碼管的其中一位(注意將撥碼開關(guān)撥至斷開狀態(tài),以免PO口與74LS164輸出發(fā)生沖突),注意數(shù)據(jù)高位控制a筆段;P3.2/INT0端仍接獨立式按鍵。c. 運行以上程序,通過按下按鍵觀察數(shù)碼管顯示情況。d. 解決按鍵抖動問題,同時分析數(shù)碼管顯示完“F”字符后為何會出現(xiàn)亂碼。5發(fā)揮部分:使程序?qū)崿F(xiàn)16進(jìn)制計數(shù),即按下按鍵時能從09AF0循環(huán)顯示。6. 電路原理圖:7. C語言編程:#include unsigned char a=0;/*數(shù)碼管代碼表(共陽且高位接a筆段)*/unsigned char Tab=0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F, 0x01,0x09,0x11,0xC1,0x63,0x85,0x61,0x71,0xFF;void int0(void) interrupt 0 using 0 a+;P0=Taba;void main(void) EA=1;EX0=1;IT0=1; while(1);六、矩陣式鍵盤應(yīng)用 矩陣鍵盤識別1. 內(nèi)容提要:a 矩陣式鍵盤優(yōu)點、具體結(jié)構(gòu)、連接方式等。b 單片機C語言基礎(chǔ)編程應(yīng)用。2實驗?zāi)康募耙螅篴 掌握矩陣式鍵盤的內(nèi)部構(gòu)架以及鍵盤與單片機之間的連接方式。b 掌握矩陣鍵盤掃描識別的編程方法。c 掌握C語言常用語句如if、for、switch、while的具體用法等。開始初始化各列線循環(huán)置低電平判斷P3口數(shù)據(jù)是否改變結(jié)束進(jìn)入Switch得出最終鍵值NY3實驗源程序及流程圖: #include unsigned char key;/按鍵延時程序void ys()unsigned char aaa,bbb; for(aaa=200;aaa0;aaa-) for(bbb=0;bbb200;bbb+); void main(void)key=0; while(1) P3=0x7f; if(P3!=0x7f) ys(); if(P3!=0x7f) switch(P3)case 0x77:key=7;break; case 0x7b:key=4;break; case 0x7d:key=1;break; case 0x7e:key=0;break; P0=key; P3=0xbf; if(P3!=0xbf) ys(); if(P3!=0xbf) switch(P3) case 0xb7:key=8;break; case 0xbb:key=5;break; case 0xbd:key=2;break; case 0xbe:key=13;break; P0=key; P3=0xdf; if(P3!=0xdf) ys(); if(P3!=0xdf) switch(P3) case 0xd7:key=9;break; case 0xdb:key=6;break; case 0xdd:key=3;break; case 0xde:key=14;break; P0=key; P3=0xef; if(P3!=0xef) ys(); if(P3!=0xef) switch(P3) case 0xe7:key=10;break; case 0xeb:key=11;break; case 0xed:key=12;break; case 0xee:key=15;break; P0=key; 4實驗步驟:a. 理解矩陣鍵盤的結(jié)構(gòu)及硬件連接。 b. 運行程序,按下44鍵盤上的按鍵,觀察P0口的LED顯示情況。5發(fā)揮部分:發(fā)揮部分:通過加入數(shù)碼管段代碼表,使鍵值能通過數(shù)碼管顯示出來,依次對應(yīng)09AF。C語言中數(shù)碼管段代碼表可參考如下(共陰數(shù)碼管,高位接a筆段):unsigned char Tab=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, 0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00;如要將key值通過查表賦予P0,可直接定義為:P0=Tabkey。6. 電路原理圖(實際電路板中的鍵盤行與列接P3口):發(fā)揮部分原理圖(實際電路板中的鍵盤行與列接P3口):七、單片機定時/計數(shù)器 秒脈沖定時器1. 內(nèi)容提要:a 定時/計數(shù)器控制字定義。b 中斷服務(wù)程序入口地址、中斷斷點及中斷返回。c 單片機定時時長計算方法、間接定時獲取長時間定時方法。2實驗?zāi)康募耙螅篴 理解中斷服務(wù)程序的入口地址及熟記各中斷服務(wù)程序入口地址。b 掌握定時/計數(shù)控制字TMOD、TCON的具體含義及正確定義等。c 掌握不同工作方式下定時時間初值的具體算法。開始系統(tǒng)初始化進(jìn)入死循環(huán)有無定時中斷請求結(jié)束進(jìn)入中斷重裝值并對P1.0取反NY3實驗源程序及流程圖:ORG 0000HLJMP MAINORG 000BHLJMP INTT0MAIN: MOV TMOD,#01HMOV TL0,#0B0HMOV TH0,#3CHSETB EASETB ET0SETB TR0SJMP $INTT0: MOV TL0,#0B0HMOV TH0,#3CHCPL P1.0RETIEND4實驗步驟:a. 運行以上程序,觀察P1.0口的LED閃爍情況。5發(fā)揮部分:精確定義一秒鐘時間,并結(jié)合前面學(xué)過的知識,能通過數(shù)碼管顯示出秒鐘的個位信息(注意秒鐘個位為十進(jìn)制)(結(jié)合實驗五電路圖連接)。6. 電路原理圖:八、單片機顯示初步 數(shù)碼管動態(tài)掃描1. 內(nèi)容提要:a 人眼有視覺暫留效應(yīng)。b 數(shù)碼管動態(tài)掃描的硬件連接特點。c 單片機C語言的具體應(yīng)用。2實驗?zāi)康募耙螅篴 通過實驗體會人眼的視覺暫留效應(yīng),通過實踐得出八位數(shù)碼管動態(tài)掃描的時間間隔大于多少會產(chǎn)生閃爍問題。b 掌握定時/計數(shù)控制字TMOD、TCON的具體含義;不同工作方式下定時時間初值的具體算法等。c 掌握數(shù)碼管動態(tài)掃描的硬件連接。3實驗源程序:#include /*頭文件*/unsigned char mg=9,ms=8,fg=7,bitdisplay=0; /*定義變量*/*數(shù)碼管段代碼表*/unsigned char Tab=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00;/*定時中斷服務(wù)程序*/void timer0 (void) interrupt 1 using 0TH0=0x3c; TL0=0xb0;switch(bitdisplay)case 0:P0=Tabmg;P2=0x7F;break;case 1:P0=Tabms;P2=0xBF;break;case 2:P0=Tabfg;P2=0xDF;break;bitdisplay+;if(bitdisplay=3)bitdisplay=0;/*主程序*/void main(void)TMOD=0x01;TH0=0x3c;TL0=0xb0;EA=1; ET0=1; TR0=1;while(1);4實驗步驟:a. 掌握數(shù)碼管動態(tài)掃描的硬件連接方法。弄清程序?qū)討B(tài)掃描部分的定義,軟件與硬件需相吻合,否則出現(xiàn)亂碼或高低位對調(diào)。b. 運行以上程序,觀察數(shù)碼管顯示情況,正常情況下應(yīng)能以較慢速度(閃爍態(tài))顯示“789”。5發(fā)揮部分:在以上程序基礎(chǔ)上,編寫一程序,能正確穩(wěn)定地顯示出本人學(xué)號(8位數(shù)字,且顯示時無閃爍問題)。6. 電路原理圖:(僅畫出三位數(shù)碼管)九、單片機串行口應(yīng)用 數(shù)碼管并行靜態(tài)顯示1. 內(nèi)容提要:a 串行口基本定義;RXD、TXD信號實現(xiàn)串行數(shù)據(jù)發(fā)送。b 串行口控制寄存器SCON具體定義;中斷請求的標(biāo)志位等。c 74LS164芯片串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的硬件連接。2實驗?zāi)康募耙螅篴 掌握單片機串行口收發(fā)數(shù)據(jù)的全過程。b 掌握串行口控制寄存器SCON的具體定義;數(shù)據(jù)發(fā)送過程中中斷請求標(biāo)志位的相應(yīng)變化;欲發(fā)送的數(shù)據(jù)必須先送入緩沖區(qū)等。c 掌握74LS164芯片的工作原理、連接方法等。3實驗源程序:#include /*數(shù)碼管代碼表(共陽且高位接a筆段)*/unsigned char Tab=0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F, 0x01,0x09,0x11,0xC1,0x63,0x85,0x61,0x71,0xFF;unsigned char mg=5,ms=0,bittime=20;/顯示程序/void display(void) TI=0; SBUF=Tabms; while(!TI); TI=0; SBUF=Tabmg; while(!TI);/定時中斷服務(wù)程序void timer0 (void) interrupt 1 using 0 TH0=0x3c; TL0=0xb0; bittime-; while(bittime=0) bittime=20;display(); /每經(jīng)一秒調(diào)用一次顯示程序/主程序void main(void) TMOD=0x01;SCON=0X00; TH0=0x3c;TL0=0xb0; EA=1; ET0=1; TR0=1; while(1);4實驗步驟:a. 讀懂并理解程序,掌握串行口控制字的定義及子程序調(diào)用等相關(guān)知識。b. 掌握串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)的連接方法及74LS164串并轉(zhuǎn)換芯片的具體用法。根據(jù)程序定義將單片機串行信號(P3.0/RXD、P3.1/TXD)通過兩單芯導(dǎo)線對應(yīng)連接至74LS164的RXD、TXD端(電路板內(nèi)部已連接);74LS164芯片輸出的并行信號(Q1Q8)通過撥碼開關(guān)接至靜態(tài)數(shù)碼管筆段中(ah,其中撥碼開關(guān)的第8位對應(yīng)a筆段)。c. 運行以上程序,觀察兩數(shù)碼管顯示情況,正常情況下應(yīng)能顯示“05”。5發(fā)揮部分:通過加入若干語句,對mg及ms變量進(jìn)行控制,實現(xiàn)每當(dāng)一秒鐘到來時mg自動加1;當(dāng)mg10(即經(jīng)歷10秒鐘)時mg自動清零,同時ms自動加1;當(dāng)ms6(即經(jīng)歷60秒)時ms自動清零,最終實現(xiàn)標(biāo)準(zhǔn)時間的秒信息顯示(mg及ms變量通過串行口送出,經(jīng)轉(zhuǎn)換至數(shù)碼管顯示)。6. 電路原理圖:十、單片機系統(tǒng)設(shè)計(一) 動態(tài)掃描數(shù)字鐘1. 內(nèi)容提要:a 單片機軟件系統(tǒng)設(shè)計。b 單片機硬件接口系統(tǒng)設(shè)計。c 單片機C語言的綜合應(yīng)用。2實驗?zāi)康募耙螅篴 能夠系統(tǒng)性地總結(jié)掌握的知識,將單元模塊知識有機的結(jié)合在一起。b 能夠充分協(xié)調(diào)好硬件與軟件之間的相互結(jié)合,合理設(shè)計硬件電路。c 掌握單片機C語言判斷語句、分支語句以及子程序調(diào)用等編程知識。3實驗源程序:#include /*頭文件*/unsigned char mg=0,ms=0,fg=0,bittime=0,bitdisplay=0; /*定義變量*/*數(shù)碼管段代碼表(共陰且高位對應(yīng)a段)*/unsigned char Tab=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, 0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00;/*定時中斷服務(wù)程序*/void timer0 (void) interrupt 1 using 0 TH0=0x3c; TL0=0xb0; switch(bitdisplay) case 0:P0=Tabmg;P2=0x7F;break; case 1:P0=Tabms;P2=0xBF;break; case 2:P0=Tabfg;P2=0xDF;break; bitdisplay+;bittime+; if(bitdisplay=3)bitdisplay=0;/*主程序*/void main(void) TMOD=0x01; TH0=0x3c;TL0=0xb0; EA=1; ET0=1; TR0=1; while(1) if(bittime=20)bittime=0;mg+; 4實驗步驟:a. 根據(jù)程序定義將P0口通過8芯排線接至數(shù)碼管動態(tài)掃描筆段控制端;P2口接至位地址端(電路內(nèi)部已連接,無需連線)。b. 運行以上程序,觀察數(shù)碼管顯示情況,應(yīng)能以閃爍狀顯示“000”、“001”,直至秒個位出現(xiàn)亂碼(由于秒個位mg一直在不斷地累加,超過16后在段代碼表中無代碼與之對應(yīng),故出現(xiàn)亂碼)。c. 針對以上情況,請修改程序,最終實現(xiàn)正確穩(wěn)定地顯示小時(兩位數(shù))、分鐘(兩位數(shù))、秒鐘(兩位數(shù)),同時數(shù)碼管應(yīng)無閃爍問題。5. 電路原理圖:(僅畫出三位數(shù)碼管)十一、單片機系統(tǒng)設(shè)計(二) 16路數(shù)顯競賽搶答器1. 內(nèi)容提要:a 單片機軟件系統(tǒng)設(shè)計。b 單片機硬件接口系統(tǒng)設(shè)計。c 單片機C語言的綜合應(yīng)用。2實驗?zāi)康募耙螅篴 能夠系統(tǒng)性地總結(jié)掌握的知識,將單元模塊知識有機的結(jié)合在一起。b 能夠充分協(xié)調(diào)好硬件與軟件之間的相互結(jié)合,合理設(shè)計硬件電路。c 掌握單片機C語言判斷語句、分支語句以及子程序調(diào)用等編程知識。3實驗源程序:#include unsigned char key;void main(void)key=0; while(1) P3=0x7f; if(P3!=0x7f) switch(P3) case 0x77:key=7;break; case 0x7b:key=4;break; case 0x7d:key=1;break; case 0x7e:key=0;break; P0=key; P3=0xbf; if(P3!=0xbf) switch(P3) case 0xb7:key=8;break; case 0xbb:key=5;break; case 0xbd:key=2;break; case 0xbe:key=13;break; P0=key; P3=0xdf; if(P3!=0xdf) switch(P3) case 0xd7:key=9;break; case 0xdb:key=6;break; case 0xdd:key=3;break; case 0xde:key=14;break; P0=key; P3=0xef; if(P3!=0xef) switch(P3) case 0xe7:key=10;break; case 0xeb:key=11;break; case 0xed:key=12;break; case 0xee:key=15;break; P0=key; 4實驗步驟:a. 弄清44矩陣鍵盤的電路連接。b. 設(shè)計程序,使之能夠同時為16支參賽隊提供搶答功能,搶答成功后應(yīng)能通過數(shù)碼管顯示出參賽隊號數(shù),同時點亮發(fā)光二極管示意搶答成功。c 加入獨立開關(guān),可啟動10秒倒計時功能,通過數(shù)碼管顯示出倒計時時間(倒計時狀態(tài)下?lián)尨鸸δ懿黄鹱饔?,反之亦?。5. 電路原理圖:十二、單片機系統(tǒng)設(shè)計(三) 數(shù)字頻率計1. 內(nèi)容提要:a 單片機軟件系統(tǒng)設(shè)計。b 單片機硬件接口系統(tǒng)設(shè)計。c 單片機C語言的綜合應(yīng)用。2實驗?zāi)康募耙螅篴 能夠系統(tǒng)性地總結(jié)掌握的知識,將單元模塊知識有機的結(jié)合在一起。b 能夠充分協(xié)調(diào)好硬件與軟件之間的相互結(jié)合,合理設(shè)計硬件電路。c 掌握單片機C語言判斷語句、分支語句、子程序調(diào)用、定時/計數(shù)器應(yīng)用等編程知識。3實驗源程序:#include unsigned char a=0,b=0,c=0,bitdisplay=0,bittime=0;unsigned long digit=0;unsigned char Tab=0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, 0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E,0x00;void timer0 (void) interrupt 1 using 0 TH0=0x3c;TL0=0xb0;bittime+; switch(bitdisplay) case 0:P0=Taba;P2=0x7F;break; case 1:P0=Tabb;P2=0xBF;break; case 2:P0=Tabc;P2=0xDF;break; bitdisplay+; if(bitdisplay=3)bitdisplay=0;void main(void) TMOD=0x51;TH0=0x3c;TL0=0xb0; IP=0x02; /定時器0優(yōu)先級高 EA=1;TR0=1;TR1=1;ET0=1;ET1=1;TH1=0;TL1=0; while(1) if(bittime=20) digit=TH1*256+TL1; c=digit/100; b=digit%100/10; a=digit%10; TH1=0;TL1=0;bittime=0; 4實驗步驟:a. 讀懂程序,根據(jù)程序定義將頻率產(chǎn)生器的跳線接通,從而將方波引至單片機計數(shù)器T1輸入端P3.5/T1。b. 運行以上程序,正常情況下數(shù)碼管應(yīng)有三位數(shù)顯示,此顯示值便是當(dāng)前輸入方波頻率的低三位,其中百位為亂碼(已超出段代碼表范圍)。c. 依據(jù)以上情況,編寫一完整程序,能夠正確顯示出5位數(shù)的頻率值(需解決數(shù)碼管閃爍問題)。5. 電路原理圖:十三、單片機系統(tǒng)設(shè)計(四) 16音電子琴1. 內(nèi)容提要:a 單片機軟件系統(tǒng)設(shè)計。b 單片機鍵盤硬件接口系統(tǒng)設(shè)計。c 單片機C語言的綜合應(yīng)用。2實驗?zāi)康募耙螅篴 能夠系統(tǒng)性地總結(jié)掌握的知識,將單元模塊知識有機的結(jié)合在一起。b 能夠充分協(xié)調(diào)好硬件與軟件之間的相互結(jié)合,合理設(shè)計硬件電路。c 掌握單片機C語言判斷語句、分支語句、子程序調(diào)用、定時/計數(shù)器應(yīng)用等編程知識。d 理解單片機發(fā)聲原理以及如何改變音調(diào)。3實驗源程序:#include unsigned char key,KTH0,KTL0;sbit sp=P10;unsigned int code tab=64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 制造業(yè)供應(yīng)鏈的綠色轉(zhuǎn)型策略考核試卷
- 印刷機械行業(yè)政策法規(guī)分析考核試卷
- 中藥注冊與藥品注冊審批中的數(shù)據(jù)保護(hù)措施考核試卷
- 跨界合作在家紡品牌推廣中的應(yīng)用考核試卷
- 客戶關(guān)系管理客戶體驗設(shè)計考核試卷
- 基因編輯與絡(luò)病治療策略
- 個人股份協(xié)議書(15篇)
- 機器學(xué)習(xí)在預(yù)測性維護(hù)中的潛力
- 模擬散步活動方案
- 《客艙安全與應(yīng)急處置》-課件:應(yīng)急撤離的原因和原則
- 設(shè)備維保的預(yù)防性維修與預(yù)防性管理
- 2024水電站實時數(shù)據(jù)采集規(guī)范
- 山東省濟南市南山區(qū)2022-2023學(xué)年六年級下學(xué)期期末考試語文試題
- 物業(yè)員工壓力管理培訓(xùn)課件
- 護(hù)士進(jìn)修的人體解剖與生理學(xué)
- 二級醫(yī)院PCCM規(guī)范化建設(shè)標(biāo)準(zhǔn)解讀
- 品牌形象設(shè)計之輔助圖形的操作
- 可用性控制程序
- T73繼電器組裝生產(chǎn)線技術(shù)方案
- 團(tuán)員組織關(guān)系轉(zhuǎn)接介紹信(樣表)
評論
0/150
提交評論