大三上學(xué)習(xí)-單片機(jī)串講_第1頁(yè)
大三上學(xué)習(xí)-單片機(jī)串講_第2頁(yè)
大三上學(xué)習(xí)-單片機(jī)串講_第3頁(yè)
大三上學(xué)習(xí)-單片機(jī)串講_第4頁(yè)
大三上學(xué)習(xí)-單片機(jī)串講_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余49頁(yè)可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

7.1鍵盤(pán)接口按鍵的特點(diǎn)及輸入原理獨(dú)立式按鍵矩陣式按鍵按鍵的特點(diǎn)及輸入原理按鍵的分類(lèi):觸點(diǎn)式:機(jī)械;無(wú)觸點(diǎn)式:電氣鍵輸入原理:

通過(guò)按鍵的接通與斷開(kāi),產(chǎn)生兩種相反的邏輯狀態(tài)低電平“0”與高電平“1”。鍵功能的實(shí)現(xiàn):對(duì)于一組鍵或一個(gè)鍵盤(pán),需通過(guò)接口電路與單片機(jī)相連。可采用查詢(xún)或中斷方式測(cè)試有無(wú)鍵按下,再確定是哪一個(gè)鍵按下,將該鍵號(hào)送入累加器ACC,然后判斷是數(shù)字鍵還是功能鍵,若是數(shù)字鍵,則將鍵號(hào)對(duì)應(yīng)的數(shù)字送入相關(guān)輸入緩沖區(qū);若是功能鍵,則通過(guò)跳轉(zhuǎn)指令轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。

鍵盤(pán)接口需要解決的問(wèn)題是否有鍵按下按鍵識(shí)別:鍵抖動(dòng)及消除:機(jī)械按鍵抖動(dòng)時(shí)間在5ms~10ms之間

硬件方案——雙穩(wěn)態(tài)去抖電路

軟件方案——延時(shí)10ms~20ms后再次判斷消除方法:求鍵號(hào)獨(dú)立式按鍵接口電路:特點(diǎn):一線一鍵,按鍵識(shí)別(編程)簡(jiǎn)單;但占用較多口線,適合8鍵以下使用。例1:用P1口檢測(cè)三個(gè)按鍵的狀態(tài)并完成相應(yīng)的功能解:資源分配:用P1口的低3位檢測(cè)3個(gè)按鍵的輸入,為1則表示按鍵沒(méi)有按下,為0則表示相應(yīng)按鍵被按下。流程圖:ORG0000HKB:MOVP1,#0FFHMOVA,P1CPLAANLA,#0FHJZKBLCALLD10MSMOVA,P1CPLAANLA,#0FHJZKBCJNEA,#01H,KB01LCALLPGM1SJMPKBKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBKB02:CJNEA,#04H,KBLCALLPGM3SJMPKBEND編程:按三個(gè)按鍵中的任一鍵都對(duì)應(yīng)一個(gè)特定功能。若判斷鍵釋放應(yīng)如何修改?矩陣式按鍵關(guān)鍵:如何判斷鍵號(hào)?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口電路:特點(diǎn):按鍵識(shí)別應(yīng)采用掃描法或線路反轉(zhuǎn)法編程較為復(fù)雜,節(jié)省口資源,8鍵以上使用鍵盤(pán)掃描子程序一般包括以下內(nèi)容:

1.判別有無(wú)鍵按下;

2.掃描獲取閉合鍵的行、列值,去抖動(dòng),讀取位置碼;

3.用計(jì)算法或查表法得到鍵值;

4.判斷閉合鍵釋放否,如沒(méi)釋放則繼續(xù)等待;

5.保存閉合鍵號(hào)。鍵按下/釋放判斷

KS:MOVA,#00H MOVP1,A ;全掃描字#00H送P1口

MOVP1,#0FHMOVA,P1;讀入P1口狀態(tài)

CPLA;變正邏輯,高電平表示有鍵按下

ANLA,#0FH;取低4位

RET ;返回,A≠0表示有鍵按下

按鍵識(shí)別——掃描法

流程:

當(dāng)?shù)?列處于低電平時(shí),逐行查找是否有行線變低,若有,則第0列與該行的交叉點(diǎn)按鍵按下;若無(wú),則表示第0列無(wú)鍵按下,再讓下一列處在低電平,依此循環(huán),這種方式稱(chēng)為鍵盤(pán)掃描。

鍵號(hào)=行首鍵號(hào)(0、4、8、12)+列號(hào)(0、1、2、3)

原理:

在某一時(shí)刻只讓一條列線處于低電平,其余列線均處于高電平,則當(dāng)這一列有鍵按下時(shí),該鍵所在的行電平將會(huì)由高電平變?yōu)榈碗娖?,可判定該列相?yīng)的行有鍵按下。例2:鍵盤(pán)掃描程序SERCH:MOVR2,#0EFH MOVR3,#00HLINE0:MOVA,R2 MOVP1,A MOVA,P1 JBACC.3,LINE1 MOVA,#00H AJMPTRYKLINE1:JBACC.2,LINE2 MOVA,#04H AJMPTRYK LINE2:JBACC.1,LINE3MOVA,#08H

AJMPTRYK

LINE3:JBACC.3,LINE4

MOVA,#0CH

AJMPTRYK

LINE4:INCR3

MOVA,R2

RL A

JNBACC.0,BACK

MOVR2,A

AJMPLINE0

TRYK:ADDA,R3

BACK:RET 定時(shí)掃描方式

定時(shí)掃描方式就是每隔一段時(shí)間對(duì)鍵盤(pán)掃描一次,它利用單片機(jī)內(nèi)部的定時(shí)器產(chǎn)生一定時(shí)間(例如10ms)的定時(shí),當(dāng)定時(shí)時(shí)間到就產(chǎn)生定時(shí)器溢出中斷。CPU響應(yīng)中斷后對(duì)鍵盤(pán)進(jìn)行掃描,并在有鍵按下時(shí)識(shí)別出該鍵,再執(zhí)行該鍵的功能程序。中斷掃描方式

為提高CPU工作效率,可采用中斷掃描工作方式。其工作過(guò)程如下:當(dāng)無(wú)鍵按下時(shí),CPU處理自己的工作,當(dāng)有鍵按下時(shí),產(chǎn)生中斷請(qǐng)求,CPU轉(zhuǎn)去執(zhí)行鍵盤(pán)掃描子程序,并識(shí)別鍵號(hào)。9.1.2LED顯示器接口及顯示程序

單片機(jī)應(yīng)用系統(tǒng)中使用的顯示器主要有:發(fā)光二極管,簡(jiǎn)稱(chēng)LED(LightEmittingDiode);液晶顯示器,簡(jiǎn)稱(chēng)

LCD(LiquidCrystalDisplay);CRT顯示器問(wèn)題引入:

LED顯示器如何顯示出指定數(shù)字/字符?comcom1.LED顯示器結(jié)構(gòu)原理:

有共陰極和共陽(yáng)極兩種圖9-11LED7段顯示器表9-1共陰極和共陽(yáng)極7段LED顯示字型編碼顯示字符012345678共陰極段選碼3F(BF)06(36)5B(DB)4F(CF)66(F6)6D(FD)7D(FD)07(87)7F(FF)共陽(yáng)極段選碼C0(40)F9(79)A4(24)B0(30)99(19)92(12)82(02)F8(78)80(00)顯示字符9ABCDEF-熄滅共陰極段選碼6F(EF)77(F7)7C(FC)39(B9)5E(DE)79(F9)71(F1)40(C0)00(80)共陽(yáng)極段選碼90(10)88(08)82(03)C6(46)A1(21)86(06)8E(0E)BF(3F)FF(7F)例:共陰極LED,(COM)端接地,

a、

b、……g,dp送入11100001,則顯示“7?!弊g碼方式

⑴.硬件譯碼:用專(zhuān)用譯碼器電路,將欲顯示的字符轉(zhuǎn)換為段碼。⑵.軟件譯碼:利用查表法,將段碼作成一個(gè)表,以字符值為索引,可查出不同字符的相應(yīng)段碼。2.LED顯示器接口及顯示方式LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種方式。LED靜態(tài)顯示方式:顯示某個(gè)字符時(shí),LED相應(yīng)的段恒定地導(dǎo)通或截止。各位的共陰極(公共端K0)接地.若為共陽(yáng)極(公共端K0),則接+5v電源。每位的段選線(a~dp)分別與8位的輸出口相連,相互獨(dú)立,字符一經(jīng)確定,相應(yīng)鎖存的輸出維持不變??捎?D鎖存器(如74LS273)或帶鎖存的譯碼器(如CD4511)、串行移位寄存器(如74LS164)來(lái)擴(kuò)展I/O端口.其輸出端(8位)可驅(qū)動(dòng)一位LED。

靜態(tài)顯示器的亮度較高,編程容易,管理也較簡(jiǎn)單,但占用I/O口線資源較多。在顯示位數(shù)較多的情況下,一般都采用動(dòng)態(tài)顯示方式。例:模擬產(chǎn)品計(jì)數(shù)顯示電路編程

ORG 1000HSTAR:MOV TMOD,#60H ;定時(shí)器T1工作在方式2計(jì)數(shù)

MOV TH1,#00H;T1置初值

MOV TL1,#00HMAIN:MOV P1,#0C0H ;數(shù)碼管顯示0DISP:JBP3.3,DISP;監(jiān)測(cè)按鍵信號(hào)

ACALL DELAY ;消抖延時(shí)

JBP3.3,DISP;確認(rèn)低電平信號(hào)DISP1:JNB P3.3,DISP1 ;監(jiān)測(cè)按鍵信號(hào)

ACALL DELAY ;消抖延時(shí)

JNB P3.3,DISP1 ;確認(rèn)高電平信號(hào)

SETBTR1;啟動(dòng)計(jì)數(shù)器DISP2:MOVA,TL1MOVCA,@A+DPTR;查表獲取數(shù)碼管顯示值

MOV P1,A ;數(shù)碼管顯示計(jì)數(shù)值

CJNEA,#8E,DISP2 LJMP STAR TAB:0C0H,0F9H,0A4H…… DELAY:MOVR2,#14HDELAY1:MOVR3,#0FAHDJNZR3,$DJNZR2,DELAY1RETEND靜態(tài)顯示方式連接

所有LED的位選均共同連接到+VCC或GND,每個(gè)LED的8根段選線分別連接一個(gè)8位并行I/O口,從該I/O口送出相應(yīng)的字型碼顯示字型。

特點(diǎn)原理簡(jiǎn)單;顯示亮度強(qiáng),無(wú)閃爍;占用I/O資源較多。動(dòng)態(tài)顯示方式連接

所有LED的段選線共同連接在一起共用一個(gè)8位I/O口,而每個(gè)LED的位選分別由一根相應(yīng)的I/O口線控制。因此必須采用動(dòng)態(tài)掃描顯示方式,每一個(gè)時(shí)刻只選通其中一個(gè)LED,同時(shí)在段選口送出該位LED的字型碼。

2)LED動(dòng)態(tài)顯示方式

在多位LED顯示時(shí),將所有位的段選線并聯(lián)在一起,由一個(gè)8位I/O口控制。而共陰(或共陽(yáng))極公共端K分別由相應(yīng)的I/O線控制,實(shí)現(xiàn)各位的分時(shí)選通。圖9-12所示為6位共陰極LED動(dòng)態(tài)顯示接口電路。圖9-126位LED動(dòng)態(tài)顯示接口電路例如,顯示“EE0-20”,I/O口1和I/O口2輪流送入段選碼、位選碼及顯示狀態(tài)如圖9-13所示。段選碼、位選碼每送入一次后延時(shí)1ms,因人眼的視覺(jué)暫留時(shí)間為100ms,所以每位顯示間隔不超過(guò)20ms,并保持延時(shí)一段時(shí)間,造成視覺(jué)暫留效果。稱(chēng)為軟件掃描顯示。圖9-136位動(dòng)態(tài)掃描顯示狀態(tài)動(dòng)態(tài)顯示基本原理

電路的接法決定了必須采用逐位掃描顯示方式。即從段選口送出某位LED的字型碼,然后選通該位LED,并保持一段延時(shí)時(shí)間。然后選通下一位,直到所有位掃描完。

要注意的兩個(gè)問(wèn)題:

1.字型碼通常通過(guò)查表指令MOVC來(lái)求得.2.換位顯示時(shí)通常要加一段程序使所有的LED全滅.3.LED顯示器與89C51接口及顯示子程序P0口輸出段選碼,P1口輸出位選碼,圖9-146只LED動(dòng)態(tài)顯示接口存儲(chǔ)器的規(guī)劃:待顯示數(shù)據(jù)存放在7EH~79H(對(duì)應(yīng)空間位置從右至左)。內(nèi)部存放的是0~9(或0~FH)的數(shù)。事先規(guī)劃好位選線的形式及產(chǎn)生方法。本題選中的位應(yīng)輸出高電平。設(shè)初值為01H,左移獲得。待顯示數(shù)據(jù)(79H)(7AH)(7BH)(7CH)(7DH)(7EH)段選碼查表獲得位選碼20H10H08H04H02H01H逐位輪流點(diǎn)亮各個(gè)LED,每一位保持1ms,在10~20ms之內(nèi)再一次點(diǎn)亮,重復(fù)不止。這樣,利用人的視覺(jué)暫留,好像6位LED同時(shí)點(diǎn)亮一樣。軟件描述圖9-15DIS顯示子程序流程圖DIS顯示子程序清單如下:DIS: MOV R0,#7EH;顯示緩沖區(qū)末地址→R0 MOV R2,#01H;位控字,先點(diǎn)亮最低位(右邊)

MOV A,R2 MOV DPTR,#TAB;字型表頭地址→DPTRLP0: MOV P1,A MOV A,@R0;取顯示數(shù)據(jù)

MOVC A,@A+DPTR;取出字形碼

MOV P0,A;送出顯示

ACALL D1MS;調(diào)延時(shí)子程序

DEC R0;數(shù)據(jù)緩沖區(qū)地址減1 MOV A,R2 JB ACC.5,LP1;掃描到最左面的顯示器了嗎? RL A;沒(méi)有到,左移1位

MOV R2,A AJMP LP0LP1: RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH DB 6FH,77H,7CH,39H,5EH,79H,71H,40H,00HD1MS: MOV R7,#02H;延時(shí)1ms子程序DL: MOV R6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL RETORG00H

START:JBP1.7,DIR1

MOVDPTR,#TABLE1

SJMPDIR

DIR1:MOVDPTR,#TABLE2

DIR:MOVR0,#00H

MOVR1,#01H

NEXT:MOVA,R0

MOVCA,@A+DPTR

MOVP0,A

MOVA,R1

MOVP2,A

LCALLDAY

INCR0

RLA

MOVR1,A

CJNER1,#0DFH,NEXT

SJMPSTART

DAY:MOVR6,#4

D1:MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

TABLE1:DB06H,5BH,4FH,66H,6DH

TABLE2:DB78H,79H,38H,38H,3FH

7.3D/A轉(zhuǎn)換器接口D/A轉(zhuǎn)換器的作用典型芯片DAC0832DAC0832的應(yīng)用D/A轉(zhuǎn)換器的作用單片機(jī)控制對(duì)象D/A轉(zhuǎn)換將數(shù)字量轉(zhuǎn)換為模擬量,以便操縱控制對(duì)象。D/A轉(zhuǎn)換器的主要指標(biāo)

轉(zhuǎn)換速度:一般幾十微秒到幾百微秒,快速的可達(dá)1微秒。轉(zhuǎn)換精度(分辨率):決定于輸入數(shù)字量的位數(shù),位數(shù)越多,精度越高。典型芯片-DAC0832介紹DAC0832是一個(gè)八位D/A轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間1微秒,結(jié)構(gòu)如下:輸出為模擬電流,可轉(zhuǎn)換為電壓。LE1或LE2=1,當(dāng)前寄存器的輸出跟隨輸入LE1或LE2=0,鎖存數(shù)據(jù)DAC0832功能分析DI0-DI7:轉(zhuǎn)換數(shù)據(jù)輸入CS:片選信號(hào)ILE,WR1:控制輸入寄存器

ILE=1,WR1=0時(shí):直通

ILE=1,WR1=1時(shí):鎖存因此,DAC0832可以有三種工作形式:直通、單級(jí)鎖存、兩級(jí)鎖存。XFER,WR2:控制DAC寄存器

XFER=0,WR2=0時(shí):直通

XFER=1orWR2=1時(shí):鎖存

單緩沖方式的接口(1)

譯碼器輸出——一個(gè)處于直通方式,另一個(gè)處于受控的鎖存方式

“同時(shí)”做何解釋?單緩沖方式的接口(2)

——兩個(gè)輸入寄存器同時(shí)受控的方式

單緩沖方式的應(yīng)用

——產(chǎn)生鋸齒波

假定采用接口(1)方式,即輸入寄存器受控,而DAC寄存器直通,輸入寄存器地址為E000H,產(chǎn)生鋸齒波。源程序清單如下:

ORG0200 MOVDPTR,#0E000H;指向輸入寄存器地址

MOVA,#00H;轉(zhuǎn)換初值WW: MOVX@DPTR,A;WR1有效,啟動(dòng)D/A轉(zhuǎn)換

INCA NOP;延時(shí)

NOP AJMPWW2)DAC0832單緩沖工作方式應(yīng)用

這種方式下,將二級(jí)寄存器的控制信號(hào)并接,輸入數(shù)據(jù)在控制信號(hào)作用下(一次控制,一次緩沖),直接打入8位DAC寄存器中并進(jìn)入8位D/A轉(zhuǎn)換器進(jìn)行D/A轉(zhuǎn)換。地址2FFF

當(dāng)執(zhí)行寫(xiě)指令時(shí),DAC0832相應(yīng)的控制信號(hào)時(shí)序如圖9-47所示。圖9-46一路D/A輸出連線圖(單路模擬量輸出)1/282/283/28254/28255/280產(chǎn)生的鋸齒波的過(guò)程D/A轉(zhuǎn)換產(chǎn)生的鋸齒波

用同樣的方法也可以產(chǎn)生三角波、矩形波、梯形波。若將A的初值改為FFINC改為DEC?ORG0200 MOVDPTR,#0E000H;指向輸入寄存器地址

MOVA,#0FFH;轉(zhuǎn)換初值WW: MOVX@DPTR,A;WR1有效,啟動(dòng)D/A轉(zhuǎn)換

A NOP;延時(shí)

NOP AJMPWWDECINC——兩個(gè)鎖存器都接成受控鎖存方式。雙緩沖方式的接口和應(yīng)用對(duì)一個(gè)數(shù)字量的轉(zhuǎn)換,需兩步完成,程序如下:MOVDPTR,#00E0HMOVX@DPTR,AMOVDPTR,#00C0HMOVX@DPTR,A輸入寄存器地址:00E0HDAC寄存器地址:00C0H你知道它與第二種單緩沖方式的區(qū)別嗎?Y7A7

A6A574LS138Y6C

B

AY7Y67.4A/D轉(zhuǎn)換器接口A/D轉(zhuǎn)換器的作用典型芯片ADC0809ADC0809的應(yīng)用A/D轉(zhuǎn)換器的作用將模擬量轉(zhuǎn)換為數(shù)字量,以便計(jì)算機(jī)接收處理傳感器單片機(jī)A/D轉(zhuǎn)換雙積分式A/D轉(zhuǎn)換器逐次逼近式A/D轉(zhuǎn)換器。A/D轉(zhuǎn)換器概述逐次逼近式典型A/D轉(zhuǎn)換器芯片有:(1)ADC0801~ADC0805型8位MOS型A/D轉(zhuǎn)換器(2)ADC0808/0809型8位MOS型A/D轉(zhuǎn)換器(3)ADC0816/0817典型芯片—ADC0809介紹ADC0809是一個(gè)8位8通道的AD轉(zhuǎn)換器。ADC0809功能分析CLK:時(shí)鐘信號(hào),可由單片機(jī)ALE信號(hào)分頻得到。轉(zhuǎn)換有以下幾步:ALE信號(hào)上升沿有效,鎖存地址并選中相應(yīng)通道。ST信號(hào)有效,開(kāi)始轉(zhuǎn)換。A/D轉(zhuǎn)換期間ST為低電平。EOC信號(hào)輸出高電平,表示轉(zhuǎn)換結(jié)束。OE信號(hào)有效,允許輸出轉(zhuǎn)換結(jié)果。ADC0809和單片機(jī)的連接寫(xiě)信號(hào)、P2.0有效時(shí),啟動(dòng)AD轉(zhuǎn)換。轉(zhuǎn)換結(jié)束后,輸出高電平,向CPU發(fā)出中斷請(qǐng)求讀信號(hào)、P2.0有效時(shí),允許輸出AD轉(zhuǎn)換結(jié)果。轉(zhuǎn)換時(shí)鐘由ALE分頻得到。803174LS373ADC0809÷2CLKD0-D7≥1≥1111GEOCSTALEOERDP2.0WRINT1ALEP0A0-A7A0A1A2ABCVR(+)VR(-)+5VGNDIN0IN7IN6IN5IN4IN3IN2IN1轉(zhuǎn)換結(jié)果由此輸出通道選擇表

選擇的通道000001010011100101110111IN0IN1IN2IN3IN4IN5IN6IN7CBA8031A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A00809×××××××ST××

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論