單片微型計(jì)算機(jī)課件 第7章(第三版)徐惠民_第1頁
單片微型計(jì)算機(jī)課件 第7章(第三版)徐惠民_第2頁
單片微型計(jì)算機(jī)課件 第7章(第三版)徐惠民_第3頁
單片微型計(jì)算機(jī)課件 第7章(第三版)徐惠民_第4頁
單片微型計(jì)算機(jī)課件 第7章(第三版)徐惠民_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第七章并行接口7.1內(nèi)部I/O口及其應(yīng)用

51的I/O口一般作為如下用途:

P0口:低8位地址,數(shù)據(jù)

P1口:I/O口

P2口:高8位地址

P3口:第二功能通道位第二功能說明P3.0RTD串行口輸入P3.1TXD串行口輸出P3.2INT0外中斷0輸入P3.3INT1外中斷1輸入P3.4T0計(jì)數(shù)器0輸入P3.5T1計(jì)數(shù)器1輸入P3.6WR外部數(shù)據(jù)存儲(chǔ)器的寫選通信號P3.7RD外部數(shù)據(jù)存儲(chǔ)器的讀選通信號表3.4通道3的第二功能7.1.1I/O口直接用于輸入和輸出

1.輸出:MOVP0,AMOVP1,R1MOVP2,@R0鎖存器QQDCP讀鎖存器內(nèi)部總線寫入讀引腳P1.XVcc1101鎖存器QQDCP讀鎖存器內(nèi)部總線寫入讀引腳P1.XVcc1101001輸入引腳數(shù)據(jù):MOVP0,#0FFHMOVA,P0MOVR1,P0MOV@R0,P0

3.讀-修改-寫操作:先將端口數(shù)據(jù)讀出,再運(yùn)算,然后再寫回端口

ORLP0,#0F0HANLP2,A鎖存器QQDCP讀鎖存器內(nèi)部總線寫入讀引腳P1.XVcc圖7.1例7.1附圖P1.0P1.1P1.3+P1.2+5V8031片外P1.31P1.3=1YP1.01P1.11讀P1.0P1.1運(yùn)算輸出NP1.31P1.3=1YP1.01P1.11讀P1.0P1.1運(yùn)算輸出NLOOP1: ORL P1, #08HLOOP2: MOV C, P1.3 JC LOOP2 ORL P1, #03H MOV E, P1.0 MOV F, P1.1 MOV C, E ANL C, F MOV D, C MOV C, E ORL C, F ANL C, /D MOV P1.2, C SJMP LOOP1圖7.88155內(nèi)部結(jié)構(gòu)和引腳示意圖ABC定時(shí)器256×8靜態(tài)RAMPA0~PA7PB0~PB7PC0~PC5IO/MAD0~AD7CERDWRALERESETTINTOUT7.2.381551.8155引腳和方框圖7.2.381552.8155I/O口工作方式AB口的工作方式:輸入方式無條件傳送方式輸出方式選通(中斷)方式C口工作方式:BSTBPC5BBFPC4BINTR輸出方式PC3ASTBASTBPC2ABFABFPC1AINTRAINTR輸出方式輸入方式PC0ALT4ALT3ALT2ALT1口中斷口換緩沖器滿口選通輸入51外設(shè)8155INTRBFSTBRDSTBBFINTRRD數(shù)據(jù)寫入8155發(fā)中斷51響應(yīng)數(shù)據(jù)寫入51,8155可以接受新數(shù)據(jù)輸出51外設(shè)8155INTRBFSTBWR外設(shè)數(shù)據(jù)處理完8155發(fā)中斷51響應(yīng)數(shù)據(jù)寫入外設(shè)8155可以接受新數(shù)據(jù)STBBFINTRWR數(shù)據(jù)寫入8155外設(shè)接受數(shù)據(jù)7.2.381553.8155I/O口控制定時(shí)器高8位xxxxx101定時(shí)器低8位xxxxx100端口Cxxxxx011端口Bxxxxx010端口A

xxxxx001命令/狀態(tài)寄存器xxxxx000

端口名稱AD7AD6AD5AD4AD3AD2AD1AD08155端口地址分配表8155工作方式控制字

XXXXX000寫D0D1D2D3D4D5D6D70輸入1輸出A口方式B口方式0禁止1允許A口中斷B口中斷00:ALT101:ALT210:ALT311:ALT4C口方式00無操作01停止計(jì)數(shù)10計(jì)滿后停止11開始計(jì)數(shù)定時(shí)器方式8155工作方式狀態(tài)字

XXXXX000讀D0D1D2D3D4D5D6XB口中斷請求B口緩沖器滿A口中斷請求A口緩沖器滿A口中斷允許B口中斷允許定時(shí)器中斷讀出后清04.8155和51的連接(僅作為地址分析用)圖7.118155和8031連接圖+RESETALERDWRRESETALERDWRIO/M81558031P0.7...P0.0AD7...AD0EACE688PC5~PC0PB7~PB0PA7~PA0100000定時(shí)器高8位

00000

101定時(shí)器低8位

00000

100端口C00000

011端口B

00000

010端口A00000

001命令/狀態(tài)寄存器

00000

000

端口名稱AD7AD6AD5AD4AD3AD2AD1AD08155端口地址分配表8155端口地址00H~07H8155內(nèi)部RAM地址08H~FFH4.8155和51的連接RESETALERDWRIO/M81558031P0.7...P0.0AD7...AD0EACE688PC5~PC0PB7~PB0PA7~PA0RESETALERDWRP2.7P2.601/0基本地址:0000H~00FFH

4000H~4007H圖8.98155內(nèi)部結(jié)構(gòu)和引腳示意圖ABC定時(shí)器256×8靜態(tài)RAMPA0~PA7PB0~PB7PC0~PC5IO/MAD0~AD7CERDWRALERESETTINTOUT8.2.381555.8155內(nèi)部定時(shí)器的使用定時(shí)器高8位

XXXXX

101定時(shí)器低8位

XXXXX

100端口C

端口B

端口A

命令/狀態(tài)寄存器XXXXX

000端口名稱AD7AD6AD5AD4AD3AD2AD1AD014位減計(jì)數(shù)器用3個(gè)控制字8155工作方式控制字

XXXXX000寫D0D1D2D3D4D5D6D700無操作,不影響計(jì)數(shù)器操作01停止計(jì)數(shù),若原來停,則無操作10計(jì)滿后停止啟動(dòng)。若原來停,則裝人長度后開始計(jì)數(shù);若原來動(dòng),則當(dāng)前計(jì)數(shù)滿后,立即按新裝長度開始計(jì)數(shù);T0T1T2T3T4T5T6T7T8T9T10T11T12T13M1M200TIN單個(gè)方波01

連續(xù)方波10

單個(gè)脈沖11

連續(xù)脈沖T13~T0計(jì)數(shù)初值(4)開始計(jì)數(shù)終止計(jì)數(shù)00TIN單個(gè)方波01

連續(xù)方波10

單個(gè)脈沖11

連續(xù)脈沖T13~T0計(jì)數(shù)初值(3)終止計(jì)數(shù)開始計(jì)數(shù)計(jì)數(shù)范圍:0002~3FFFH21例5.16共陽LEDDPd.gfecbaVccDPgfedcba10110000B0HC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,98H01234567897.351顯示/鍵盤系統(tǒng)

7.3.1共陰LED的控制與編程序DPd.gfecba3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H0123456789C0H,F9H,A4H,B0H,99H,92H,82H,F8H,

80H,98HDPgfedcba0100111104FH=B0H圖7.138155和LED顯示器的接口01001111PA7...PA0PC5...PC08155110111001000位碼10110000段碼(共陽)0902030508087AH7FH設(shè)置8155設(shè)置顯示緩沖器首地址設(shè)置起始位碼從C口送新位碼從A口送新段碼修改數(shù)據(jù)指針和位碼6LED都顯示一遍NRETY?找段碼?如何判斷DISP:MOVA,#05H;8155方式字

MOVDPTR,#8000H;8155命令口地址

MOVX@DPTR,A;寫入方式控制字

MOVR0,#7AH;送數(shù)據(jù)塊首地址

MOVR3,#01;位碼,最右一位先亮

MOVA,R3LD0:MOVDPTR,#8003H;8155C口地址

MOVX@DPTR,A;位碼從C口輸出

MOVDPTR,#8001H;8155A口地址

MOVA,@R0;待顯示數(shù)據(jù)送AADDA,#13;查表修正量

MOVGA,@A+PC;查表取段碼

MOVX@DPTR,A;A口輸出段碼

p.214程序

ACALLDL1;延時(shí)1msINCR0;修改數(shù)據(jù)指針

MOVA,R3JBACC.5,LD1;6位數(shù)都顯示則結(jié)束

RLA;沒顯示完,位碼左移

MOVR3,A;位碼暫存

AJMPLD0;轉(zhuǎn)回,顯示下一個(gè)數(shù)碼LD1:RETDTAB:DBC0H,F9H,A4H,B0H,99H

圖8.156×5非編碼鍵盤及其接口PC5PC4PC3PC2PC1PC0PB4...PB08155543210432100147F258E369DCBAF7BDE11011111101001000行坐標(biāo)08H列信號1DH送行坐標(biāo)讀列信號行坐標(biāo)變成行號取列信號特征值合成鍵特征值3D轉(zhuǎn)換成鍵值A(chǔ)??8.3.3非編碼鍵盤和51接口關(guān)LED送行坐標(biāo),讀列信號全盤有鍵按下準(zhǔn)備下行掃描RET掃描完成NY存行坐標(biāo)和列信號NRETN全盤有2鍵按下Y延時(shí)20msY調(diào)用KCODEY存行坐標(biāo)和列信號NN該行有鍵按下鍵盤掃描程序NEXT1NEXT2NEXT3NEXT4NEXT4LOOPSCAN:MOVA,#0FFHMOVDPTR,#8001H;A口地址

MOVX@DPTR,A;關(guān)顯示器

MOVA,#3FH;使行信號全為0MOVDPTR,#8003H;C口地址

MOVX@DPTR,A;C口輸出

MOVDPTR,#8002H;B口地址

MOVXA,@DPTR;讀列信號到B口

ANLA,#1FHCJNEA,#1FH,NEXT1;列信號不為全1,則轉(zhuǎn)移

SJMPNEXT4;無鍵按下,結(jié)束NEXT1:ACALLD20ms;調(diào)20ms延遲子程序,消抖動(dòng)

CLRCMOVR1,#01H;準(zhǔn)備行掃描

MOVR2,#00H;設(shè)竄鍵標(biāo)志LOOP:INCDPTR;C口地址p.217程序

MOVA,R1MOVX@DPTR,A;檢測某一行是否按鍵

MOVDPTR,#8002H;B口地址

MOVXA,@DPTR;輸入列信號值

ANLA,#1FHCJNEA,#1FH,NEXT2;列信號不為全1,該行有鍵按下NEXT2:INCR2;R2加1表示查到一處按鍵

CJNER2,#01H,NEXT4;R2不等于1即表示竄鍵

MOVR4,A;存按鍵的列坐標(biāo)

MOVA,R1MOVR3,A;存按鍵的行坐標(biāo)NEXT3:MOVA,R1RLCA;準(zhǔn)備掃描檢測下一行

MOVR1,A;暫存

CJNEA,#40H,LOOP;未到最后一行則循環(huán)

AJMPKCODE;轉(zhuǎn)至鍵碼子程序

RETCLRA;A=0表示這次掃描無效NEXT4:RET送行坐標(biāo)讀列信號行坐標(biāo)變成行號取列信號特征值合成鍵特征值3D轉(zhuǎn)換成鍵值A(chǔ)KCODE(R3)=行坐標(biāo)(R4)=列信號行坐標(biāo)右移次數(shù)變成行號,暫存R1高4位取列信號低4位和R1高4位合并成為鍵特征值放人A倒查表得到鍵值放人ARETKCODE:MOVR1,#0;行坐標(biāo)初值為0MOVA,R3;SCAN中的行坐標(biāo)碼送ACLRC;準(zhǔn)備移位LOOP:RRCA;右移一位

JZNEXT1;為0則移位結(jié)束

INCR1;行坐標(biāo)值加1SJMPLOOP;NEXT1:MOVA,R1;SWAPA;行坐標(biāo)值移到高4位

MOVR1,A;行坐標(biāo)值暫時(shí)存放R1MOVA,R4;SCAN中的列坐標(biāo)碼送A ANLA,#0FH;取低4位

ORL A,R1;形成鍵特征值

MOVB,A;暫時(shí)存放Bp.218程序KCODE:MOVDPTR,#KTAB;準(zhǔn)備倒查表

MOVR0,#0;倒查表次數(shù)計(jì)數(shù)器

CLRA;從0查起REPE:MOVCA,@A+DPTR;CJNEA,B,NEXT2;與鍵特征碼不等則轉(zhuǎn)移

SJMPRESU;相等則結(jié)束查表NEXT2:INCR0;計(jì)數(shù)值加1MOVA,R0;準(zhǔn)備檢查下一個(gè)數(shù)

SJMPREPE;RESU:MOVA,R0;存放鍵順序值

RETKTAB:DB:0FH,1FH,17H,1BH,2FH,27H,2BHDB:3FH,37H,3BH,3DH,2DH,1DH DB:0DH,0BH,7.3.3顯示/鍵盤系統(tǒng)(硬件)80318155鍵盤顯示LED驅(qū)動(dòng)器C口B口A口驅(qū)動(dòng)器7.3.3顯示/鍵盤系統(tǒng)(軟件)8155初始化顯示一遍數(shù)據(jù)掃描鍵盤有鍵按下數(shù)字鍵處理是數(shù)字鍵命令鍵處理K1KmNNYY……START: MOV DPTR,#8000H MOV A, #05H MOVX @DPTR,A ACALLDISP ACALLSCAN JZ START ACALLKCODE CJNE A, #10H, CONTCONT: JC NUM MOV DPTR,#JTAB SUBB A, #10H RL A JMP @A+DPTRJTAB: AJMP K1 AJMP K2…………NUM:…………7.451內(nèi)部定時(shí)/計(jì)數(shù)器及其應(yīng)用特點(diǎn):(1)多種工作方式,用于計(jì)數(shù)和定時(shí);(2)加計(jì)數(shù),模值可變;(3)全1變成全0后,可以發(fā)出中斷申請;(4)TX=THX+TLX7.4.1工作方式T0分為兩個(gè)8位計(jì)數(shù)器方式38位計(jì)數(shù),自動(dòng)再裝入方式方式216位計(jì)數(shù)器方式113位計(jì)數(shù)器方式0功能工作方式7.4.1工作方式1.方式0:13位計(jì)數(shù)器THxTLx0074計(jì)數(shù)輸入TFx計(jì)數(shù)1000,裝入213-1000=1110,0000,1,1000

THx=E0HTLx=18H裝數(shù)、加計(jì)數(shù)、全1變?nèi)?、發(fā)中斷申請7.4.1工作方式2.方式1:16位計(jì)數(shù)器THxTLx0077計(jì)數(shù)輸入TFx計(jì)數(shù)1000,裝入216-1000=1111,1100,0001,1000

THx=FCHTLx=18H裝數(shù)、加計(jì)數(shù)、全1變?nèi)?、發(fā)中斷申請7.4.1工作方式3.方式2:8位計(jì)數(shù),自動(dòng)再裝入方式計(jì)數(shù)200,裝入28-200=0011,1000THx=38HTLx=38HTHx和TLx裝數(shù)、TLx加計(jì)數(shù)、全1變?nèi)?、發(fā)中斷申請(THx)TLx

TLx重新計(jì)數(shù),THx內(nèi)容不變THxTLx0077計(jì)數(shù)輸入TFx7.4.1工作方式4.方式3:T0分為兩個(gè)8位計(jì)數(shù)器TH0TL00077計(jì)數(shù)輸入TF0內(nèi)部脈沖定時(shí)輸入TF1TH1TL10077內(nèi)部脈沖定時(shí)輸入TF1X7.4.2控制1.定時(shí)器方式控制寄存器TMOD(89H)00方式001方式110方式211方式3計(jì)數(shù)方式定時(shí)方式10與INTX有關(guān)1與INTX無關(guān)0M0M1GATEM0M1GATEC/TC/T控制T0控制T1圖7.17計(jì)數(shù)方式的控制邏輯(以T1為例)+中斷開放ET1TR1GATE1TNT1晶振÷12計(jì)數(shù)器TF1中斷T1C/T=0C/T=111011開始計(jì)數(shù)12.定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷控制TR0TF0TR1TF1TCON8C8D8E8F88H1:開始計(jì)數(shù)T10:停止計(jì)數(shù)T01:溢出中斷T10:未溢出T0ET0EAIEA9AFA8HABET11:允許中斷T10:禁止中斷T0初始化(1)寫TMOD,確定工作方式;(不能位尋址)(2)確定計(jì)數(shù)初值,寫入TH1,TL1,TH0,TL0

(3)寫IE,開放定時(shí)器中斷;(4)寫TCON的TR1或者TR0,開啟定時(shí)器。M0M1GATEM0M1GATEC/TC/TTR0TF0TR1TF1TCON8C8D8E8F88HET0EAIEA9AFA8HABET1計(jì)數(shù)初值的計(jì)算:M:計(jì)數(shù)最大值,28,213,216X:初值計(jì)數(shù)方式:X=M-計(jì)數(shù)模值例如:計(jì)數(shù)模值1000,

X=216-1000=1111,1100,0001,1000

THx=FCHTLx=18H

X=213-1000=1110,0000,1,1000

THx=E0HTLx=18HX=28-1000<0???計(jì)數(shù)初值的計(jì)算:M:計(jì)數(shù)最大值,28,213,216X:初值定時(shí)方式:X=M–計(jì)數(shù)模值

=M–(定時(shí)值/計(jì)數(shù)周期T)例如:定時(shí)值1ms

(1)Fsc=12M,T=12*Tsc=1u

溫馨提示

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

最新文檔

評論

0/150

提交評論