版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第11章
80C51的系統(tǒng)擴(kuò)展與外設(shè)接口技術(shù)
本章重點:單片機(jī)系統(tǒng)串行擴(kuò)展技術(shù);常用外設(shè)接口技術(shù)。本章難點:I2C總線的工作時序。11.1并行擴(kuò)展技術(shù)11.1.1并行總線與工作時序為實現(xiàn)單片機(jī)與外圍擴(kuò)展芯片的正確連接與數(shù)據(jù)交換,有必要了解單片機(jī)總線信號間的時序配合關(guān)系。
80C51并行總線的結(jié)構(gòu)
片外程序存儲器取指操作時序
片外數(shù)據(jù)存儲器讀操作時序
11.1.2存儲器的并行擴(kuò)展
存儲器并行擴(kuò)展示意圖
11.1.3I/O接口的并行擴(kuò)展
普通I/O口的并行擴(kuò)展
可編程I/O口的并行擴(kuò)展
11.2串行擴(kuò)展技術(shù)
11.2.1SPI串行總線及系統(tǒng)擴(kuò)展根據(jù)時鐘極性與相位的不同,SPI有四種工作模式。極性指的是空閑狀態(tài)下時鐘信號處于高電平還是低電平,相位指的是數(shù)據(jù)位更新發(fā)生在時鐘周期的第一個邊沿還是第二個邊沿。SPI主機(jī)和所有SPI從機(jī)的時鐘相位與極性必須設(shè)為一致。SPI數(shù)據(jù)傳輸示意圖
SPI工作時序圖(模式0)
SPI擴(kuò)展系統(tǒng)示意圖
11.2.2I2C串行總線及系統(tǒng)擴(kuò)展
I2C總線(InterIntegratedCircuitBus)是Philips公司推出的二線制高性能串行總線,具備總線仲裁和高低速設(shè)備同步功能,數(shù)據(jù)傳輸速率可達(dá)400kbit/s(高速模式下可達(dá)3.4Mbit/s),總線驅(qū)動能力為400pF。
I2C總線只有串行數(shù)據(jù)(SDA)和時鐘(SCL)兩根信號線,無需片選信號(地址信息也以數(shù)據(jù)的形式傳送)。
I2C總線接口的電路結(jié)構(gòu)
I2C總線上的各種信號
I2C數(shù)據(jù)幀格式
I2C擴(kuò)展系統(tǒng)示意圖
11.3功率接口技術(shù)
11.3.1非隔離型功率接口
1.繼電器的非隔離驅(qū)動繼電器的非隔離驅(qū)動電路
2.步進(jìn)電機(jī)的非隔離驅(qū)動小型步進(jìn)電機(jī)的非隔離驅(qū)動電路
ULN2803的內(nèi)部結(jié)構(gòu)(只畫出一路)
3.直流電機(jī)的非隔離驅(qū)動直流電機(jī)全橋驅(qū)動電路
采用集成芯片的直流電機(jī)驅(qū)動電路11.3.2隔離型功率接口
1.直流設(shè)備的隔離驅(qū)動繼電器的隔離驅(qū)動電路
步進(jìn)電機(jī)的隔離驅(qū)動電路
2.交流設(shè)備的隔離驅(qū)動交流設(shè)備的隔離驅(qū)動電路11.4模擬量接口技術(shù)
11.4.1D/A轉(zhuǎn)換器
1.DAC0832的結(jié)構(gòu)及工作原理
DAC0832的內(nèi)部結(jié)構(gòu)
DAC0832電壓輸出電路
2.DAC0832與80C51的接口
(1)單緩沖方式DAC0832單緩沖方式接口
以下是利用單緩沖接口輸出周期性鋸齒波信號的控制程序:
START: MOV DPTR,#7FFFH; 選擇DAC0832(A15=0)
MOV A,#00H ; 從0開始NEXT: MOVX@DPTR,A ; 向DAC0832發(fā)送數(shù)據(jù)
INC A ; 數(shù)字量加1 SJMP NEXT ; 連續(xù)輸出(2)直通方式DAC0832直通方式接口(3)雙緩沖方式
DAC0832雙緩沖方式接口
以下是實現(xiàn)兩路同步輸出的控制程序:MOVDPTR,#0DFFFH ; 選中DAC0832(1)的輸入鎖存器MOVA,#data1 MOVX@DPTR,A ; 數(shù)據(jù)data1送入DAC0832(1)的輸入鎖存器MOVDPTR,#0BFFFH ; 選中DAC0832(2)的輸入鎖存器MOVA,#data2 MOVX@DPTR,A ; 數(shù)據(jù)data2送入DAC0832(2)的輸入鎖存器MOVDPTR,#7FFFH ; 同時選中兩片DAC0832的DAC寄存器MOVX@DPTR,A ; 同步進(jìn)行轉(zhuǎn)換11.4.2A/D轉(zhuǎn)換器
1.ADC0809的結(jié)構(gòu)及工作原理ADC0809的內(nèi)部結(jié)構(gòu)
ADC0809的工作時序
2.ADC0809與80C51的接口
ADC0809的接口電路和程序設(shè)計主要考慮兩方面問題,一是模擬通道的選擇和啟動信號的發(fā)送,另外就是轉(zhuǎn)換結(jié)束的確認(rèn)與數(shù)據(jù)讀取。
ADC0809與80C51的接口電路
(1)通道選擇與啟動控制圖(a):MOV DPTR,#7FF8H ; 選擇通道0MOVX @DPTR,A ; 啟動A/D轉(zhuǎn)換(A可為任意值)圖(b):ANL P1,#11111000B ; P1口低3位為0(選擇通道0)CLR P1.7 ; 使P1.7為低電平SETB P1.7 ; 使P1.7為高電平CLR P1.7 ; 使P1.7為低電平(2)轉(zhuǎn)換結(jié)束的確認(rèn)與數(shù)據(jù)讀取A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時傳送給單片機(jī)進(jìn)行處理。對單片機(jī)來說,首先必須知道轉(zhuǎn)換是否結(jié)束,通??刹捎靡韵?種方式:①查詢方式:將ADC0809的EOC端接到單片機(jī)某根口線上,程序中通過反復(fù)查詢EOC的狀態(tài)來了解A/D轉(zhuǎn)換是否結(jié)束。②中斷方式:將EOC求反后接到單片機(jī)的外中斷輸入引腳(見圖11-29),一旦轉(zhuǎn)換結(jié)束,可使單片機(jī)自動進(jìn)入中斷服務(wù)程序。③延時等待方式:A/D轉(zhuǎn)換器的轉(zhuǎn)換時間作為一項指標(biāo)是已知和固定的,可在轉(zhuǎn)換開始后延時相應(yīng)的時間,過了這段時間,轉(zhuǎn)換肯定已經(jīng)結(jié)束了。確認(rèn)轉(zhuǎn)換已經(jīng)結(jié)束后,單片機(jī)便可通過指令產(chǎn)生有效的OE信號,讀入轉(zhuǎn)換結(jié)果。對圖(a),可使用以下兩條指令:MOV DPTR,#7FF8H ;選擇通道0(實際上只要求80C51的P2.7=0)MOVX A,@DPTR ; 將轉(zhuǎn)換結(jié)果通過數(shù)據(jù)總線讀入單片機(jī)對圖(b),可使用以下四條指令:CLR P1.6 ; 使P1.6為低電平SETB P1.6 ; 使P1.6為高電平MOV A,P0 ; 將轉(zhuǎn)換結(jié)果通過P0口讀入單片機(jī)CLR P1.6 ; 使P1.6為低電平
(3)8路轉(zhuǎn)換控制程序?qū)D(a)電路,若要求使用中斷方式,將8路轉(zhuǎn)換結(jié)果依次存入內(nèi)部RAM50H~57H單元,則A/D轉(zhuǎn)換初始化程序和中斷服務(wù)程序如下:初始化程序:MOV R0,#50H;R0指向數(shù)據(jù)存儲區(qū)起始單元
MOV R2,#08H ;需進(jìn)行8路轉(zhuǎn)換
SETB IT0 ;INT0采用邊沿觸發(fā)方式
SETB EX0 ;允許INT0中斷
SETB EA ;開中斷
MOV DPTR,#7FF8H ;先選擇通道0 MOVX @DPTR,A ;啟動A/D轉(zhuǎn)換
SJMP $ ;等待中斷INT0中斷服務(wù)程序(入口為0003H)如下:
MOVXA,@DPTR ;讀取當(dāng)前通道的轉(zhuǎn)換結(jié)果
MOV @R0,A ;轉(zhuǎn)存到數(shù)據(jù)存儲區(qū)當(dāng)前單元
INC DPTR ;轉(zhuǎn)向下一個通道
INC R0 ;指向數(shù)據(jù)存儲區(qū)下一個單元
DJNZ R2,NEXT ;8路未轉(zhuǎn)換完,則繼續(xù)
CLR EA ;已轉(zhuǎn)換完,則關(guān)中斷
CLR EX0 RETI NEXT:MOVX@DPTR,A ;再次啟動A/D轉(zhuǎn)換
RETI 11.5人機(jī)接口技術(shù)
11.5.1LED數(shù)碼顯示器
1.結(jié)構(gòu)及工作原理
LED數(shù)碼顯示器由若干個LED數(shù)碼管構(gòu)成。每個LED數(shù)碼管包括a~g和dp(小數(shù)點)共8個發(fā)光二極管筆段,可通過筆段的亮滅組合顯示出所需要的字形,如十進(jìn)制數(shù)字符號“0”~“9”、”A”、”b”、”C”等簡單字符。數(shù)碼管分為共陽極和共陰極兩種類型。構(gòu)成數(shù)碼顯示器的多個數(shù)碼管一般屬于同一類型。
2.顯示方式及接口(1)靜態(tài)顯示
LED數(shù)碼管靜態(tài)顯示電路
靜態(tài)顯示子程序如下:S_DISP:MOV SCON,#00H ;置串口方式0
MOV DPTR,#DSEG ;DPTR指向段碼表起始單元
MOV R0,#30H ;R0指向顯示緩沖區(qū)起始單元
MOV R2,#4 ;共顯示4位NEXT:MOV A,@R0 ;取顯示緩沖區(qū)當(dāng)前單元中的數(shù)據(jù)
MOVC A,@A+DPTR;查表求段碼
MOV SBUF,A ;串行輸出段碼JNB TI,$ ;等待串行發(fā)送完畢
CLR TI ;清串行發(fā)送中斷標(biāo)志
INC R0 ;R0指向顯示緩沖區(qū)下一單元
DJNZR2,NEXT ;未顯示完3位,繼續(xù)
RET DSEG:DB 0C0H,0F9H,0A4H,0B0H,99H ;共陽數(shù)碼管段碼表(對應(yīng)0~9)
DB 92H,82H,0F8H,80H,90H (2)動態(tài)顯示LED數(shù)碼管動態(tài)顯示電路
動態(tài)顯示子程序如下:D_DISP:MOV DPTR,#DSEG ;DPTR指向段碼表起始單元
MOV R0,#30H ;R0指向顯示緩沖區(qū)起始單元
MOV R2,#11111110B;從第1位開始刷新NEXT: MOV A,@R0 ;取顯示緩沖區(qū)當(dāng)前單元中的數(shù)據(jù)
MOVC A,@A+DPTR ;查表求段碼
MOV P0,A ;通過P0口輸出段碼
MOV P2,R2 ;通過P2口輸出位碼
LCALL DELAY1MS ;調(diào)延時1ms子程序(假設(shè)已編好)
INC R0 ;R0指向顯示緩沖區(qū)下一單元
MOV A,R2 ;調(diào)整位碼(準(zhǔn)備點亮下一位)
RL A MOV R2,A CJNE R2,#11101111B,NEXT;還未刷新完4位顯示,繼續(xù)
MOV P2,#11111111B ;關(guān)閉顯示
RET DSEG:DBDB 0C0H,0F9H,0A4H,0B0H,99H92H,82H,0F8H,80H,90H ;共陽數(shù)碼管段碼表(對應(yīng)0~9)11.5.2鍵盤
1.特點與分類單片機(jī)應(yīng)用系統(tǒng)中鍵盤與單片機(jī)的接口形式取決于按鍵實際數(shù)量以及單片機(jī)可用口線的多少,一般可分為獨立式和矩陣式兩種。
2.接口形式(1)獨立式鍵盤獨立式鍵盤由少量(一般少于8個)按鍵構(gòu)成,每個按鍵單獨占用單片機(jī)的一根I/O口線。獨立式鍵盤與單片機(jī)的連接(查詢方式)
按鍵查詢(識別)子程序:SCAN_KEY:ORL P1,#00001111B ;P1.0~P1.3作為輸入口
MOV A,P1 ;讀按鍵狀態(tài)
ANL A,#00001111B ;屏蔽高4位
CJNE A,#00001111B,SCANK1 ;低4位中有0存在,說明有鍵按下
RET ;無鍵按下,通過A返回鍵值0FHSCANK1:LCALL DLY10MS;延時10ms(消抖)
MOV A,P1 ;重讀按鍵狀態(tài)
JB ACC.0,SCANK2;K1未按下,繼續(xù)檢測K2 MOV A,#01H;K1按下,通過A返回鍵值1 RET SCANK2:JB ACC.1,SCANK3 ;K2未按下,繼續(xù)檢測K3 MOV A,#02H ;K2按下,通過A返回鍵值2 RET SCANK3:JB ACC.2,SCANK4 ;K3未按下,繼續(xù)檢測K4 MOV A,#03H ;K3按下,通過A返回鍵值3 RET SCANK4:JB ACC.3,SCAN_EXIT ;K4未按下,結(jié)束查詢
MOV A,#04H ;K4按下,通過A返回鍵值4 RET SCAN_EXIT: MOV A,#0FH ;通過A返回鍵值0FH RET 按鍵查詢子程序通過返回不同的鍵值來反映鍵盤的狀態(tài),上例中,0FH表示無鍵按下,01H~04H分別表示K1~K4被按下。以下的按鍵查詢子程序直接將按鍵的位置編碼作為鍵值返回(無鍵按下為0FH,某鍵按下則返回值低4位中對應(yīng)位為0),看起來更加簡潔。SCAN_KEY2: ORL P1,#00001111B ;P1.0~P1.3作為輸入口
MOV A,P1 ;讀按鍵狀態(tài)
ANL A,#00001111B ;屏蔽高4位
CJNE A,#00001111B,SCAN22 ;低4位中有0存在,說明有鍵按下
RET ;無鍵按下,通過A返回0FHSCAN22: LCALL DLY10M;延時10ms(消抖)
MOV A,P1 ;重讀按鍵狀態(tài)
ANL A,#00001111B ;屏蔽高4位
RET ;通過A返回按鍵位置編碼(無鍵則為0FH)主程序結(jié)構(gòu)如下:
K1EQU00001110B ;聲明K1的位置編碼(鍵值)
K2EQU00001101B ;聲明K2的位置編碼(鍵值)
K3EQU00001011B ;聲明K3的位置編碼(鍵值)
K4EQU00000111B ;聲明K4的位置編碼(鍵值)NOKEYEQU00001111B;聲明無鍵按下狀態(tài)的位置編碼(鍵值)MAIN: …
… ;系統(tǒng)初始化等操作LOOP: …
… ;主循環(huán)中其它操作(刷新顯示等)
LCALL SCAN_KEY2 ;調(diào)用按鍵查詢子程序
CJNE A,#NOKEY,KEY_PROC;有鍵按下,準(zhǔn)備處理
LJMP LOOP ;無鍵按下,繼續(xù)主循環(huán)KEY_PROC: PUSH ACC ;保存鍵值,待該鍵釋放后處理WAIT_NULL: LCALL SCAN_KEY2 CJNE A,#NOKEY,WAIT_NULL;等待按鍵釋放
POP ACC ;恢復(fù)A先前保存的鍵值CHK_K1: CJNE A,#K1,CHK_K2;K1未按下,繼續(xù)檢查K2
…
… ;K1被按下,執(zhí)行相應(yīng)的操作
LJMP LOOP ;回到主循環(huán)CHK_K2: CJNE A,#K2,CHK_K3 ;K2未按下,繼續(xù)檢查K3
…
… ;K2被按下,執(zhí)行相應(yīng)的操作
LJMP LOOP ;回到主循環(huán)CHK_K3: CJNE A,#K3,CHK_K4 ;K3未按下,繼續(xù)檢查K4
…
… ;K3被按下,執(zhí)行相應(yīng)的操作
LJMP LOOP ;回到主循環(huán)CHK_K4:CJNE A,#K4,LOOP ;K4未按下,回到主循環(huán)
…
… ;K4被按下,執(zhí)行相應(yīng)的操作
LJMP LOOP ;回到主循環(huán)獨立式鍵盤與單片機(jī)的連接(中斷方式)
2.矩陣式鍵盤矩陣式鍵盤與單片機(jī)的連接按鍵處理:(1)掃描法SCAN_KEY3: MOV P1,#11110000B ;列線全置為低電平,行線作輸入
MOV A,P1 ;讀行線狀態(tài)
ANL A,#11110000B ;屏蔽低4位(僅需要行線狀態(tài))
CJNE A,#11110000B,SCAN32;行線中有0,說明有鍵按下
MOV A,#0FFH;通過A返回?zé)o鍵按下狀態(tài)的鍵值FFH RET SCAN32:LCALL DLY10MS ;延時10ms(消抖)
MOV R2,#11110111B ;列掃描字由R2保存(0列開始掃描)
MOV R3,#0 ;列號由R3保存SCAN33:MOV P1,R2 ;當(dāng)前列輸出低電平,行線作輸入
MOV A,P1 ;讀行線狀態(tài)
ANL A,#11110000B ;屏蔽低4位(僅需要行線狀態(tài))
CJNE A,#11110000B,SCAN34;行線中有0,說明當(dāng)前列有鍵按下
INC R3 ;當(dāng)前列無鍵按下,列號加1 MOV A,R2 ;準(zhǔn)備檢查或修改列掃描字
JNB ACC.0,SCAN3_EXIT ;已掃描完所有列,結(jié)束掃描返回
RR A ;掃描字右移1位,準(zhǔn)備掃描下一列
MOV R2,A AJMP SCAN33 ;掃描下一列SCAN34:JB ACC.7,SCAN35;第0行無鍵按下,檢查第1行
MOV A,#0 ;第0行有鍵按下,首鍵值0送給A ADD A,R3 ;加上列號得到鍵值
RET ;通過A返回鍵值SCAN35:jB ACC.6,SCAN36 ;第1行無鍵按下,檢查第2行
MOV A,#4 ;第1行有鍵按下,首鍵值4送給A ADD A,R3 ;加上列號得到鍵值
RET ;通過A返回鍵值SCAN36:JB ACC.5,SCAN37 ;第2行無鍵按下,檢查第3行
MOV A,#8 ;第2行有鍵按下,首鍵值8送給A ADD A,R3 ;加上列號得到鍵值
RET ;通過
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來五年5G手機(jī)鏈企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略分析研究報告
- 車輛質(zhì)押貸款合同范本
- 寧夏2025秋九年級英語全冊Unit3Couldyoupleasetellmewheretherestroomsare課時5SectionB(2a-2d)課件新版人教新目標(biāo)版
- 全球嬰幼兒食品包裝安全認(rèn)證標(biāo)準(zhǔn)比較分析報告
- 電子設(shè)備維修工藝流程指導(dǎo)書
- 語文部編版一年級六單元知識點考核題庫
- 小學(xué)綜合實踐教學(xué)工作總結(jié)范本
- 江西省豐城市第九中學(xué)2026屆數(shù)學(xué)高二上期末綜合測試模擬試題含解析
- 2025西太平洋航運行業(yè)市場供需趨勢分析及資本運營規(guī)劃
- 實驗原理及步驟標(biāo)準(zhǔn)化教學(xué)方案
- 白天和夜間的消防應(yīng)急預(yù)案(3篇)
- 鹽酸羥考酮注射液用法
- 乳蛾中醫(yī)護(hù)理
- 銀保監(jiān)會健康險政策解讀
- (新版)無人機(jī)駕駛員理論題庫(全真題庫)
- CJ/T 216-2013給水排水用軟密封閘閥
- 白介素6的課件
- 2025保險公司定期存款合同書范本
- 《t檢驗統(tǒng)計》課件
- 醫(yī)學(xué)檢驗考試復(fù)習(xí)資料
- DBJ50T-建筑分布式光伏電站消防技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論