微型計算機原理及應用課件-第7章-1_第1頁
微型計算機原理及應用課件-第7章-1_第2頁
微型計算機原理及應用課件-第7章-1_第3頁
微型計算機原理及應用課件-第7章-1_第4頁
微型計算機原理及應用課件-第7章-1_第5頁
已閱讀5頁,還剩37頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

7.1.1MCS-51的總線系統7.1.2MCS-51存儲器擴展技術在MCS-51單片機中ROM和RAM的尋址空間是嚴格分開的,稱為“哈佛”結構,單獨編址,指令不一樣。內外ROM統一編址(MOVC)內外RAM分開編址(內MOV外MOVX)外設端口和外RAM統一編址(MOVX)1.程序存儲器(ROM)擴展MCS-51單片機程序存儲器的最大尋址空間為64KB,地址范圍為0000H~FFFFH。例

8051單片機系統中擴展1片2764,試分析2764的地址范圍。0000H:1FFFH4000H:5FFFH8000H:9FFFHC000H:DFFFH地址重疊2.MCS-51單片機數據存儲器的擴展0000H:1FFFH27640000H:1FFFH6264(1)

0000H:1FFFH6264(2)

例8051單片機擴展2片2764(ROM)和2片6264(RAM),將存于ROM的表格中的8個數據分別存入2片6264的前8個單元,表格首地址為1000H。ORG0000HLJMPSTARTORG0100HSTART:MOVDPTR,#1000HMOVR0,#30HMOVR7,#08MOVA,#00HTINRAM:MOVB,AMOVCA,@A+DPTRMOV@R0,AMOVA,BINCAINCR0DJNZR7,TINRAMMOVDPL,#00HMOVR0,#30HMOVR7,#08TEXRAM:MOVDPH,#60HMOVA,@R0MOVX@DPTR,AMOVDPH,#80HMOVX@DPTR,AINCDPLINCR0DJNZR7,TEXRAMSJMP$ORG1000HTAB1:DB41H,42H,43H,44H,45H,46H,47H,48H

END7.1.3MCS-51并行接口擴展技術1.可編程并行接口8255A的擴展應用例

8255A與8051單片機的連接電路如圖所示,試分析8255A的四個16位端口地址(設空閑地址線為高電平“1”)。PA、PB、PC、控制口的端口地址分別為:

FF7CH、FF7DH、FF7EH、FF7FH設8255A工作于方式0,PA口接輸入開關,PB口接發光指示二極管,將PA口輸入的開關狀態通過PB口輸出給發光二極管,實現開關對發光二極管的亮滅控制(開關閉合發光二極管亮,反之熄滅)或發光二極管亮滅指示開關的狀態(發光二極管亮表示開關閉合,反之斷開)。(1)設置8255A的控制字8255A控制字為10000000B=90H(2)功能程序代碼DELAY:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0WAIT:JBCTF0,NEXTSJMPWAITRETENDORG0000HLJMPSTARTORG0100HSTART:MOVA,#90HMOVDPTR,#0FF7FHMOVX@DPTR,A MOVDPTR,#0FF7CHMOVXA,@DPTR MOVDPTR,#0FF7DHMOVX@DPTR,A

LCALLDELAYSJMPSTART例設8051單片機系統中利用8255APA口連接字符打印機如圖所示,PC.5輸出選通信號STB(下降沿啟動打印機),PC.1監測打印機“BUSY”狀態信號(高電平表示打印機忙)。PB口連接8個指示燈(高電平亮),PC口剩余位均為空閑狀態,內部RAM60H單元開始連續存有20個需要打印的字符,要求完成打印后,將PB口指示燈從低到高依次點亮直至全部點亮,時間間隔為1S,設系統時鐘fosc=12MHz。8255A的4個端口地址分別為:

64H、65H、66H和67H(1)設置8255A的控制字方式選擇控制字為:10000001B=81H。位控制字為:00001011B=0BH(高電平)

0001010B=0AH(低電平)(2)設置定時器初值和控制字計數初值:Ts=216-50mS/1uS=15536=3CB0H定時器控制字:TMOD=01000000B=40H(3)功能程序代碼

ORG0100HDELAY1S:MOVR2,#14HMOVTMOD,#10HMOVTH1,#3CHMOVTL1,#0B0HSETBTR0WAIT2:JBCTF0,NEXTSJMPWAIT2NEXT:DJNZR2,NEXT1RETNEXT1:MOVTH1,#3CHMOVTL1,#0B0HSJMPWAIT21)定時1S子程序代碼:

ORG0200HMOVR0,#60HMOVR4,#14HMOVR1,#67HMOVA,#81HMOVX@R1,AMOVA,#0BHMOVX@R1,AMOVR1,#66HWAIT:MOVXA,@R1JBACC.1,WAIT

MOVR1,#64HMOVA,@R0MOVX@R1,AMOVR1,#67HMOVA,#0AHMOVX@R1,AMOVR1,#66HINCR0DJNZR4,WAITMOVR1,#66HWAIT1:MOVXA,@R1JBACC.1,WAIT1

MOVR1,#65HMOVA,#01HLAMP:MOVX@R1,ALCALLDELAY1SSETBCRLCASJMPLAMP2)打印程序代碼如下:2Intel8155A及擴展應用

(1)8155A內部結構及引腳功能

8155A芯片內有256個字節RAM、1個14位減1定時/計數器,2個8位、雙向、并行I/O接口(PA、PB)和一個6位雙向、并行、I/O接口(PC),8155A的最主要特點是內部有一個8位“地址鎖存器”,可以直接與MCS-51單片機的P0口連接。

1)AD7~AD0。

地址/數據線,用于分時傳送地址和數據信息,可與MCS-51單片機的P0口直接相連。8位地址線可對片內256個字節地址尋址。2)IO/M。

當IO/M=0時,CPU可對8155A片內256個字節的存儲器進行操作。

當IO/M=1時,CPU可對8155A片內各寄存器進行操作。

3)CE。片選信號線,低電平有效。4)ALE。地址鎖存器信號,高電平有效,利用下降沿將地址信息鎖住。5)RD。讀信號線,由MOVXA,@DPTR(或MOVXA,@Ri)指令產生。

6)WR。寫信號線,由MOVX@DPTR,A(或MOVX@Ri,A)指令產生。

7)RESET。復位信號線,在RESET引腳輸入1個大于600ns的正脈沖,可與系統復位連接,8155A總清零狀態時,PA、PB、PC3個端口均處于輸入方式。8)TIN。定時/計數器的計數脈沖輸入引腳。9)TOUT。當14位計數器減“1”到零時,可以在該引腳上輸出脈沖波形信號,輸出脈沖的形狀與計數器的工作方式有關。(2)8155A的工作方式1)基本輸入輸出方式:PA、PB、PC均可工作于此方式,它們可各自獨立與外設連接,作并行數據的輸入或輸出操作。2)選通輸入輸出方式:只有PA、PB口工作于此種方式,此時由PC口提供聯絡信號線。(3)8155A工作方式命令字ALT1方式:PA、PB口做基本I/O,PC口做輸入;ALT2方式:PA、PB口做基本I/O,PC口做輸出;ALT3方式:PA口做選通I/O,PB口做基本I/O,

PC.3~PC.5做輸出;ALT4方式:PA、PB口均做選通I/O,PC口做聯絡信號線。(4)8155A狀態字

實際上,8155A內部有一個14位的減1計數器,既可用做定時,也可用做外部計數,計數器的啟、停控制由命令字的高兩位實現,計數器的工作方式由計數寄存器的高八位中的最高兩位(M2、M1)來設置。(5)8155A內部定時/計數器

其中T13~T0用于設置初值,初值范圍為2~3FFFH;8155A定時器有4種工作方式,由M2、M1兩位來設定,不同工作方式下,TOUT引腳輸出的波形也不同。1)當M2M1=00時,定時器在計數值的后半周期內使TOUT輸出低電平,低電平的寬度與計數初值有關;若計數初值為偶數,TOUT線上低電平的寬度占計數值的一半;若為奇數,則高電平持續時間比低電平多一個計數脈沖時間,所以,計數初值應≥2H,當計數器減“1”到“0”時,TOUT輸出高電平,表示計數結束。

2)當M2M1=01時,計數器每當減“1”到“0”時將自動裝入,計數初值,故TOUT線上將輸出連續方波,方波周期與定時常數有關,若計數值為偶數,

、負方波是對稱的,否則,正方波將比負方波寬一個計數脈沖周期3)當M2M1=10時,計數器每當減“1”到“0”時,便會在TOUT輸出一個負單脈沖,脈沖寬度與計數值無關。4)當M2M1=11時,計數器每當減“1”到“0”時,將自動裝入計數初值,故TOUT將輸出一串連續的負脈沖,脈沖周期與計數值有關,而脈沖寬度與計數值無關。

8155A定時器的工作是由CPU通過程序控制的,通常需要設置3個初始化控制字,應首先設置計數常數值,后送命令控制字,因為由命令字負責啟動計數器,當計數器減“1”到“0”時做兩件事:一是使狀態字中TIMR位置位(TIMR=1)可供CPU查詢;二是在TOUT引腳上輸出矩形波或脈沖,可作為定時器的溢出中斷請求信號。(6)8155初始化

當TOUT輸出連續方波或連續脈沖時,可做方波發生器或脈沖發生器,不需CPU查詢或引起中斷申請。

在計數器計數期間,CPU可隨時讀出定時器的狀態,以了解定時器的工作情況,讀計數器狀態時,應停止計數器計數,讀出的值并不直接表示外部輸入的脈沖數,8155A的計數器最高計數頻率為4MHz。(7)8155A的應用舉例例

8155A與8051單片機連接1)8155A端口地址分析。命令/狀態端口地址為7FF8HPA口地址為 7FF9HPB口地址為 7FFAHPC口地址為 7FFBH定時器低8位地址為7FFCH定時器高8位地址為7FFDH片內RAM地址范圍為7E00H~7EFFH2)8155A控制字分析若使8155A用作I/O口和定時器工作方式:PA口定義為基本輸入方式(接8個開關),PB口定義為基本輸出方式(接8個指示燈),定時器方式設為連續方波發生器,對輸入脈沖(10KHz方波)進行100分頻,將當前開關狀態送至8155A擴展的外部RAM的第一個單元,則命令控制字為11000010B=C0H,定時器低8位為64H=100,定時器高8位為01000000H=40H。3)功能程序代碼ORG0000HLJMPSTARTORG0100HSTART:MOVDPTR,#7FFCHMOVA,#64H MOVX@DPTR,A INCDPTR MOVA,#40HMOVX@DPTR,AMOVDPTR,#7FF8HMOVA,#0C2HMOVX@DPTR,AINCDPTRLAMP:MOVXA,@DPTRINCDPTRMOVX@DPTR,AMOVDPTR,#7E00HMOVX@DPTR,AMOVDPTR,#7FF9HSJMPLAMP7.1.4MCS-51鍵盤與顯示擴展技術1.MCS-51鍵盤擴展技術(1)非編碼鍵盤按鍵輸入過程與軟件結構系統中的每一個鍵都對應一個功能,也就是說每一只鍵都對應一個有一定功能的子程序,檢測到被按下鍵的位置后,利用軟件轉換成對應的鍵號,并轉入該鍵的子程序中。(2)機械按鍵的消抖處理抖動時間一般持續5~10mS(3)鍵盤與單片機的連接1)獨立連接方式:每個鍵都單讀占用一根線2)

行列式連接方式(矩陣式鍵盤)8155控制口地址為7FF8H;

PA口地址為7FF9H;

PB口地址為7FFAH;

PC口地址為7FFBH;定時器低8位口為7FFCH;定時器高8位口為7FFEH。①.8155初始化8155PA口為基本輸出口、PC口為基本輸入口,可確定8155控制字為00000001B=01H。MOV

DPTR,#7F00HMOVA,#01HMOVX

@DPTR,A

②.判斷“有鍵閉合否?”判斷是否有鍵被按下的方法是由8031單片機通過PA口輸出全掃描字00H;再從PC口讀入行輸入狀態,若PC0~PC3全為“1”,則無鍵按下,繼續掃描,若不為全“1”,則說明有鍵按下,轉入去抖延時程序,延時一段時間后再次判斷狀態,如仍處于閉合狀態,則確認為有鍵按下,轉入“判閉合鍵鍵號”程序;否則按鍵抖動處理。將判鍵子程序命名為KJA,并用累加器A返回鍵盤狀態:A≠0時有鍵按下,否則無鍵按下。判鍵子程序代碼如下:KJA:MOV

DPTR,#7F01H

MOVA,#00H

MOVX

@DPTR,A

INC

DPTR

INC

DPTRMOVXA,@DPTR

CPLA

ANLA,#0FH

RET

③.求按下鍵的鍵值。當判斷完確實有。鍵閉合后,下一步要做的工作是被按下鍵的鍵值(鍵號);每個鍵都對應1個鍵號(0~31),4行×8列,每行都有1個首鍵號,它們分別是0、8、16、24;每列都有1個鍵列號,分別是0、1、2、3、4、5、6、7。鍵值=“鍵行首號”+“鍵列號”,可利用逐位掃描的算法實現。KEY:LCALLKJA

JNZKJ1

LJMPKEYKJ1:LCALLDELAY10ms

LCALLKJA

JNZKJ2

LJMPKEYKJ2:MOVR2,#0FEHMOVR4,#00H鍵盤掃描子程序如下:KJ4:MOVDPTR,#7F01H

MOVA,R2MOVX@DPTR,AINCDPTR

INCDPTRMOVXA,@DPTRJBACC.0,ONEMOVA,#00HLJMPKJPONE:JBACC.1,TWOMOVA,#08HLJMPKJPTWO:JBACC.2,THRMOVA,#10HLJMPKJPTHR:JBACC.3,NEXTMOVA,#18HKJP:ADDA,R4PUSHACCKJ3:LCALLKJAJNZKJ3POPACCRETNEXT:INCR4MOVA,R2JNBACC.7,KJ5RLAMOVR2,ALJMPKJ4KJ5:LJMPKEY2MCS-51顯示擴展技術(1)數碼管顯示器工作原理。數碼管顯示器(也稱LED顯示器)是利用發光二極管(LED)組成顯示的字段和字型;數碼管顯示器有共陰極共陽極之分。8段數碼管顯示器字型碼(2)LED的顯示控制方式LED顯示控制方式有靜態顯示和動態顯示兩種。靜態顯示的特點是各字型LED管能同時穩定點亮顯示字型,顯示穩定但是功耗較大;動態顯示是利用人眼的視覺暫留現象,按一定時間間隔循環點亮各字型LED管顯示字型,即任意時刻只需點亮1個字型LED管,節能效果明顯,且當循環周期≤20mS時,可達到與靜態顯示幾乎等同的顯示效果。當然可根據個體差異調整循環周期,循環周期越長,顯示效果越差。8000H 命令/狀態口8001H A口8002H B口(字型口)8003H C口(字位口)8004H 定時器低8位口8005H 定時器高8位口8000H~FFFFH8155I/O重疊地址區0000H~00FFH8155RAM基本地址區0000H~7FFFH8155RAM重疊地址區經對電路分析,得出8155A各端口的地址分配如下1)8155A初始化。需設置8155A的PB口為基本輸出口、PC口為基本輸出口,可確定8155A控制字為00001110B=0EH。8155初始化程序代碼如下:MOVDPTR,#8000HMOVA,#0EHMOVX@DPTR,A2)動態顯示控制子程序。動態顯示即采用軟件法把欲顯示的十六進制數(或BCD碼)轉換成相應字型碼,然后字型碼存入顯示緩沖區(多為RAM某區域),每只LED對應緩沖區中的1個字型碼,緩沖區中各存儲單元地址連續,每個存儲單元存放1個欲顯示的十六進制數動態顯示程序清單:

ORG0600HDISPLAY:MOVA,#06HMOVDPTR,#8000HMOVX@DPTR,ADISPLAY1:MOVR0,#70HMOVR3,#0FEHMOVA,R3

LD0:MOVDPTR,#8003H

MOVX@DPTR,A

MOVDPTR,#8002HMOVA,@R0ADDA,#13MOVCA,@A+PCMOVX@DPTR,ALCALLDELAYINCR0MOVA,R3JNBACC.5,LD1RLAMOVR3,ALJMPLD0 LD1:RETDTAB:

DB0C0H,0F9H,0A4H,0B0H,99H92H,82H,0F8H,80H,90H,88H,83H,

0C6H,0A1H,86H,8EH,0FFH,0CH,89H,

7FH,0BFHDELAY:MOVR7,#02

DELAY1:MOVR6,#0FFH

DELAY2:DJNZR6,DELAY2

DJNZR7,DELAY1

RET

END3.MCS-51單片機鍵盤與顯示綜合擴展分析可知,若空閑地址位設為0則8155A控制端口地址為0100H,PA口地址為0101H(鍵盤列選和顯示字位口),PB口地址為0102H(字型口),PC口地址為0103H(鍵盤行選)。需設置8155A的PA口、PB口均為基本輸出口、PC口為基本輸入,可確定8155A控制字為00000011B=03H。ORG0000HLJMPSTARTORG0100HYEARDATA70HMONTHDATA72HDATEDATA73HSTART:MOVDPTR,#0100HMOVA,#03HMOVX@DPTR,.AMOVYEAR,#02HMOVYEAR+1,#02HMOVMONTH,#00HMOVMONTH+1,#08HMOVDATE,#00HMOVDATE+1,#09HDIS:LCALLDISPLAYSETD:LCALLKJAJNZYDSJMPCONDISYD:LCALLDELAYJZCONDISWAIT:LCALLKJAJNZWAITMOVR0,#YEARLCALLSETVMOVR0,#MONTHLCALLSETVMOVR0,#DATELCALLSETVCONDIS:SJMPDIS

;顯示內容重新設置子程序:SETV:LCALLKEY;MOV@R0,AINCR0LCALLKEY;MOV@R0,ARET;判鍵子程序:KJA:MOVDPTR,#0101HMOVA,#00H

MOVX@DPTR,AINCDPTR

INCDPTRMOVXA,@DPTRCPLAANLA,#0FHRET;求鍵值子程序KEY:LCALLKJAJNZKJ1LJMPKEYKJ1:LCALLDELAYLCALLKJAJNZKJ2LJMPKEYKJ2:MOVR2,#0FEHMOVR4,#00HKJ4:MOVDPTR,#0101HMOVA,R2MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRJBACC.0,ONEMOVA,#00H

溫馨提示

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

評論

0/150

提交評論