版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、單片機(jī)基礎(chǔ)單片機(jī)基礎(chǔ)電子教案電子教案 人民郵電出版社人民郵電出版社 知識(shí)模塊一 單片機(jī)基礎(chǔ)知識(shí)n主要介紹單片機(jī)的發(fā)展,基本的結(jié)構(gòu)和特點(diǎn),單片機(jī)的應(yīng)用模式和領(lǐng)域,單片機(jī)的供應(yīng)狀態(tài)等。n單片微型計(jì)算機(jī)就是將CPU、RAM、ROM、定時(shí)/計(jì)數(shù)器和多種接口都集成到一塊集成電路芯片上的微型計(jì)算機(jī)。因此,一塊芯片就構(gòu)成了一臺(tái)計(jì)算機(jī)。它已成為工業(yè)控制領(lǐng)域、智能儀器儀表、尖端武器、日常生活中最廣泛使用的計(jì)算機(jī)。 11 單片機(jī)的發(fā)展概況單片機(jī)的發(fā)展概況n綜上所述,我們可以把單片機(jī)的發(fā)展歷史劃分為四階段:n第一階段(19761978年):低性能單片機(jī)的探索階段。以Intel公司的MCS-48為代表,采用了單片結(jié)構(gòu)
2、,即在一塊芯片內(nèi)含有8位CPU、定時(shí)/計(jì)數(shù)器、并行I/O口、RAM和ROM等。主要用于工業(yè)領(lǐng)域。n第二階段(19781982年):高性能單片機(jī)階段,這一類(lèi)單片機(jī)帶有串行I/O口,8位數(shù)據(jù)線、16位地址線可以尋址的范圍達(dá)到64K字節(jié)、控制總線、較豐富的指令系統(tǒng)等。這類(lèi)單片機(jī)的應(yīng)用范圍較廣,并在不斷的改進(jìn)和發(fā)展。n第三階段(19821990年):16位單片機(jī)階段。16位單片機(jī)除CPU為16位外,片內(nèi)RAM和ROM容量進(jìn)一步增大,實(shí)時(shí)處理能力更強(qiáng),體現(xiàn)了微控制器的特征。例如Intel公司的MCS-96主振頻率為12M,片內(nèi)RAM為232字節(jié),ROM為8K字節(jié),中斷處理能力為8級(jí),片內(nèi)帶有10位A/D
3、轉(zhuǎn)換器和高速輸入/輸出部件等。n第四階段(1990年):微控制器的全面發(fā)展階段,各公司的產(chǎn)品在盡量兼容的同時(shí),向高速、強(qiáng)運(yùn)算能力、尋址范圍大以及小型廉價(jià)方面發(fā)展。 12 單片機(jī)的結(jié)構(gòu)特點(diǎn)單片機(jī)的結(jié)構(gòu)特點(diǎn)n(1)片內(nèi)的RAM采用寄存器結(jié)構(gòu)形式,這樣可以提高存取的速度;n(2)在存儲(chǔ)器結(jié)構(gòu)上,嚴(yán)格的將程序存儲(chǔ)器ROM和數(shù)據(jù)存儲(chǔ)器RAM在空間上分開(kāi);n(3)它的引出管腳一般都設(shè)計(jì)成多功能的;n(4)增加了一個(gè)全雙工的串行接口,以擴(kuò)充I/O口和外接同步輸入和輸出設(shè)備;n(5)有21個(gè)特殊功能寄存器;n (6) 有豐富的指令系統(tǒng),內(nèi)部設(shè)置了可以位尋址的位地址空間。 13 單片機(jī)的主要品種及系單片機(jī)的主要
4、品種及系列列n一、 4位單片機(jī)n二、 8位單片機(jī)表格 1 1 MCS-51系列型號(hào)型 號(hào)制造技術(shù)片內(nèi)程序存儲(chǔ)器片內(nèi)數(shù)據(jù)存儲(chǔ)器8051AHH MOSROM (4k)128字節(jié)8031AHAH MOS無(wú)128字節(jié)8751HH MOSEPROM(4K)128字節(jié)80C51CHMOSROM (4K)128字節(jié)80C31CHMOS無(wú)128字節(jié)8051H MOSROM (8K)256字節(jié)8031H MOS無(wú)256字節(jié) 14 單片機(jī)的應(yīng)用單片機(jī)的應(yīng)用n一、 單片機(jī)在儀器儀表中的應(yīng)用n二、 單片機(jī)在機(jī)電一體化中的應(yīng)用n三、 單片機(jī)在智能接口和多機(jī)系統(tǒng)中的應(yīng)用n四、 單片機(jī)在生活中的應(yīng)用 知識(shí)模塊二 MCS-5
5、1單片機(jī)的基本結(jié)構(gòu)和工作原理n本章主要介紹MCS-51系列的8051的基本結(jié)構(gòu)、工作原理、存儲(chǔ)器結(jié)構(gòu)、P0、P1、P2、P3四個(gè)I/O口的基本工作原理和操作特點(diǎn)。單片機(jī)的各種工作方式、單片機(jī)的時(shí)序等。 21 MCS-51單片機(jī)的結(jié)構(gòu)原理 n一、 8051單片機(jī)的結(jié)構(gòu)內(nèi)部總線時(shí)鐘電路CPUINT0T1T0并行接口串行接口P0 P1 P2 P3TXD RXD中斷系統(tǒng)ROMRAM定時(shí)/計(jì)數(shù)器INT1圖 2 1 MCS-51單片機(jī)的基本結(jié)構(gòu)二、 8051單片機(jī)的內(nèi)部結(jié)構(gòu)和工作原理n8051單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如圖 2 2 所示,下面分別進(jìn)行介紹: 圖 2 2 8051的內(nèi)部結(jié)構(gòu)框圖FFFFH1000H
6、外部ROM0FFFH0000H內(nèi)部ROMEA = 1外部ROMEA = 0工作寄存器03組位尋址區(qū)RAMSFR00H20H30H80HFFH外部RAM0000HFFFFH圖 2 3 8051存儲(chǔ)器組織結(jié)構(gòu)字節(jié)地址位 地 址 2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20HD7D6D5D4D3D2D1D07FH7EH7DH7CH7BH7AH79H78H77H76H75H74H73H72H71H70H6FH6EH6DH6CH6BH6AH69H68H67H66H65H64H63H62H61H60H5FH5EH5DH5CH5BH5AH59H58H57H5
7、6H55H54H53H52H51H50H4FH4EH4DH4CH4BH4AH49H48H47H46H45H44H43H42H41H40H3FH3EH3DH3CH3BH3AH39H38H37H36H35H34H33H32H31H30H2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H1FH1EH1DH1CH1BH1AH19H18H17H16H15H14H13H12H11H10H0FH0EH0DH0CH0BH0AH09H08H07H06H05H04H03H02H01H00H圖 2 4 8051內(nèi)部RAM位地址區(qū)符號(hào)單元地址名稱(chēng)位地址符號(hào)地址* ACCE
8、0H累加器ACC.7ACC.0E7HE0H* BF0H乘法寄存器B.7B.0F7HF0H* PSWD0H程序狀態(tài)字PSW.7PSW.0D7HD0H SP81H堆棧指針 DPL82H數(shù)據(jù)存儲(chǔ)器指針(低8位) DPH83H數(shù)據(jù)存儲(chǔ)器指針(高8位) * IEA8H中斷允許控制器IE.7IE.0AFHA8H* IPB8H中斷優(yōu)先控制器IP.7IP.0BFHB8H* P080H通道0P0.7P0.087H80H* P190H通道1P1.7P1.097H90H* P2A0H通道2P2.7P2.0A7HA0H* P3B0H通道3P3.7P3.0B7HB0H PCON87H電源控制及波特率選擇 * SCON9
9、8H串行口控制SCON.7SCON.09FH98H SBUF99H串行數(shù)據(jù)緩沖器 * TCON88H定時(shí)控制TCON.7TCON.08FH88H TMOD89H定時(shí)器方式選擇 TL08AH定時(shí)器0低8位 TL18BH定時(shí)器1低8位 TH08CH定時(shí)器0高8位 TH18DH定時(shí)器1高8位 P0.n鎖存器P0.nQQD讀鎖存器寫(xiě)鎖存器內(nèi)部總線讀引腳T1T2VCCMUX地址/數(shù)據(jù)控制圖 2 5 P0口的位結(jié)構(gòu)(1) P0口位的結(jié)構(gòu)(2) P1口位的結(jié)構(gòu)P1.n鎖存器P1.nQQD讀鎖存器寫(xiě)鎖存器內(nèi)部總線讀引腳內(nèi)部上拉電阻TVCC圖 2 6 P1口的位結(jié)構(gòu)圖 2 6 P1口的位結(jié)構(gòu)圖 2 6 P1口的
10、位結(jié)構(gòu)圖 2 6 P1口的位結(jié)構(gòu)圖 2 6 P1口的位結(jié)構(gòu)(3) P2口的位結(jié)構(gòu)P2.n鎖存器P2.nQQD讀鎖存器寫(xiě)鎖存器內(nèi)部總線讀引腳TVCC地址控制內(nèi)部上拉電阻MUX圖 2 7 P2口的結(jié)構(gòu)圖(4) P3口的位結(jié)構(gòu)P3.n鎖存器P3.nQQD讀鎖存器寫(xiě)鎖存器內(nèi)部總線讀引腳TVCC第二輸入功能第二輸出功能內(nèi)部上拉電阻圖 2 8 P3口的結(jié)構(gòu)圖(4) P3口的位結(jié)構(gòu) P3.n鎖存器P3.nQQD讀鎖存器寫(xiě)鎖存器內(nèi)部總線讀引腳TVCC第二輸入功能第二輸出功能內(nèi)部上拉電阻圖 2 8 P3口的結(jié)構(gòu)圖表格 2 3 P3口的第二功能表I/O口第二功能注 釋P3.0RXD串行口數(shù)據(jù)接收端P3.1TXD串
11、行口數(shù)據(jù)發(fā)送端P3.2INT()0外部中斷請(qǐng)求0P3.3INT()1外部中斷請(qǐng)求1P3.4T0定時(shí)/計(jì)數(shù)器0P3.5T1定時(shí)/計(jì)數(shù)器1P3.6WR()外部RAM寫(xiě)信號(hào)P3.7RD()外部RAM讀信號(hào) 一、 時(shí)鐘周期、機(jī)器周期和指令周期 S機(jī)器周期1取指令、譯碼指令周期機(jī)器周期2取操作數(shù)、執(zhí)行圖 2-9 基本定時(shí)時(shí)序關(guān)系22 MCS-51單片機(jī)的時(shí)序單片機(jī)的時(shí)序1時(shí)鐘周期 ALE時(shí)鐘S1S4S6S5S3S2讀操作碼讀操作碼(無(wú)效)(a) 1字節(jié)1周期指令讀下一指令S1S4S6S5S3S2讀操作碼讀第二字節(jié)(b) 2字節(jié)1周期指令讀下一指令S1S4S6S5S3S2讀操作碼讀操作碼(無(wú)效)(c) 1
12、字節(jié)2周期指令讀下一指令S1S4S6S5S3S2圖 2 10 MCS-51的取指/執(zhí)行時(shí)序 2機(jī)器周期3指令周期 二、 MCS-51單片機(jī)指令的取指和執(zhí)行的時(shí)序三、 訪問(wèn)外部ROM和RAM的時(shí)序 ALE時(shí)鐘S1S4S6S5S3S2PSENA15 A8A15 A8P2P0A7A0A7A0指令指令圖 2 11 訪問(wèn)外部ROM的時(shí)序1訪問(wèn)外部ROM的時(shí)序 2訪問(wèn)外部RAM的時(shí)序 ALES1S4S6S5S3S2PSENPCH 輸出P2P0PCL輸出地址輸出指令輸入數(shù)據(jù)輸入S1S4S6S5S3S2RDPCH 輸出PCH 輸出DPH 輸出或 P2 輸出PCL輸出指令輸入圖 2 12 訪問(wèn)外部RAM的時(shí)序
13、23 MCS-51單片機(jī)的時(shí)鐘和復(fù)位電路 一、 時(shí)鐘電路 TTL(a) 內(nèi)部振蕩器方式XTAL1R外部振蕩器XTAL2VCCXTAL2XTAL1VSS(b) 8051外時(shí)鐘源接法8051NC外部振蕩器XTAL1XTAL2VSS(c) 80C51外時(shí)鐘源接法80C51C1C2圖 2 13 MCS-51時(shí)鐘接法 1內(nèi)部振蕩器方式 2外部時(shí)鐘方式 二、 復(fù)位電路及復(fù)位狀態(tài) 1內(nèi)部復(fù)位電路 D1D2RST/VPDVCCVSSRAM斯密特觸發(fā)器復(fù)位電路圖 2 14 8051復(fù)位電路結(jié)構(gòu) 2外部復(fù)位電路 VCC8051VCCRST/VPDVSSR1kC22FVCC8051VCCRST/VPDVSSR11k
14、C122FR21kC2 22FRESET(a) 上電復(fù)位(b) 按鍵脈沖復(fù)位VCC8051VCCRST/VPDVSSR1 200C22FR21kRESET(c) 按鍵電平復(fù)位圖 2 15 復(fù)位電路3復(fù)位狀態(tài)專(zhuān)用寄存器復(fù)位值PC0000HACC00HB00HPSW00HSP07HDPTR0000HP0P3FFHIPXXX00000BIE0XX00000BTMOD00HTCON00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)0XXX0000B24 MCS-51單片機(jī)的低功耗工作方式 一、 電源控制寄存器PCON PCOND7D6D5D4D3D2
15、D1D0SMODGF1GF0FDIDL三、 掉電方式 二、 等待工作方式 知識(shí)模塊三 MSC-51 單片機(jī)的指令系統(tǒng) 31 指令系統(tǒng)概述指令系統(tǒng)概述一、 機(jī)器碼指令與匯編語(yǔ)言指令機(jī)器碼指令:機(jī)器碼指令: 匯編語(yǔ)言指令:匯編語(yǔ)言指令: 二、 指令格式 匯編語(yǔ)言格式為:標(biāo)號(hào): 操作碼助記符 目的操作數(shù), 源操作數(shù) ;注釋 單字節(jié)指令 雙字節(jié)指令 三字節(jié)指令操作碼 24H操作數(shù) 22HINC A ADD A,#22H MOV 5EH,4FH操作碼 04H操作碼 85H源操作數(shù) 4FH目的操作數(shù) 5EH 圖 3-1 機(jī)器碼指令格式 32 尋址方式 一、 寄存器尋址二、 直接尋址三、 立即尋址四、 寄存
16、器間接尋址 五、 變址尋址 六、 相對(duì)尋址 七、 位尋址 33 MSC-51單片機(jī)的指令系統(tǒng)單片機(jī)的指令系統(tǒng)按照指令的功能,可以把MSC-51的111條指令分成五類(lèi):l 數(shù)據(jù)傳送類(lèi)指令(數(shù)據(jù)傳送類(lèi)指令(29條)條)l 算術(shù)運(yùn)算類(lèi)指令(算術(shù)運(yùn)算類(lèi)指令(24條)條)l 邏輯操作類(lèi)指令(邏輯操作類(lèi)指令(24條)條)l 控制轉(zhuǎn)移類(lèi)指令(控制轉(zhuǎn)移類(lèi)指令(17條)條)l 位操作類(lèi)指令位操作類(lèi)指令 (17條)條) 80H下一條指令A(yù)LU54Hrel=54H2000H2001H2002H2056H操作碼PC當(dāng)前值2002H修正后轉(zhuǎn)移目標(biāo)地址(PC)=2056H圖 3-2 相對(duì)尋址過(guò)程 知識(shí)模塊四 MCS-51
17、單片機(jī)的應(yīng)用程序設(shè)計(jì) 過(guò)程A過(guò)程B是否入口出口條件滿(mǎn)足?P2入口出口P1P3過(guò)程是否入口出口條件滿(mǎn)足?(a) 順序結(jié)構(gòu)(b) 分支結(jié)構(gòu)(c) 循環(huán)結(jié)構(gòu)圖 4-1 基本程序結(jié)構(gòu) 4 41 1 運(yùn)算程序運(yùn)算程序一、 多字節(jié)數(shù)加法1多字節(jié)無(wú)符號(hào)數(shù)加法CLR CMOV R0,#40H ;指向加數(shù)最低位MOV R1,#5OH ;指向另一加數(shù)最低位MOV R2,#04H ;字節(jié)數(shù)作計(jì)數(shù)初值LOOP1:MOV A,R0 ;取被加數(shù)ADDC A,R1 ;兩數(shù)相加,帶進(jìn)位MOV R0,AINC R0 ;修改地址INC R1DJNZ R2,LOOPl ;未加完轉(zhuǎn)LOOP1JNC LOOP2 ;無(wú)進(jìn)位轉(zhuǎn)LOOP2M
18、OV R0,#01HLOOP2:DEC R0RET2多字節(jié)有符號(hào)數(shù)加法 MOV A,R0 ;復(fù)制保存地址指針MOV R2,AMOV A,RMOV R7,ACLR CLOOP1:MOV A,R0ADDC A,R1 ;相加 MOV R0 ,AINC R0INC R1 ;地址指針加1DJNZ R7,LOOP1JB OV,ERR ;若溢出,轉(zhuǎn)溢出處理DEC R0MOV A,R0JNB E7H,LOOP2SETB 07H ;和值為負(fù),置位標(biāo)志LOOP2:MOV A,R2 ;恢復(fù)地址指針MOV R0,ARETERR: ;溢出處理RET正負(fù)標(biāo)志清零YN加完?開(kāi)始復(fù)制保存地址指針清C正負(fù)標(biāo)志置位溢出處理指針加
19、1作加法,存和數(shù)正?溢出?YN恢復(fù)地址指針?lè)祷?SDADD:CLR 07H ;標(biāo)志位清零圖 4-3 多字節(jié)有符號(hào)數(shù)加法程序流程圖二、 多字節(jié)數(shù)減法 MOV R0,#40H ;指向被減數(shù)最低位MOV R1,#5OH ;指向減數(shù)最低位MOV R2,#04H ;字節(jié)數(shù)CLR CLOOP1:MOV A,R0SUBB A,R1 ;完成一個(gè)字節(jié)的減法運(yùn)算MOV R0,AINC R0INC R1DJNZ R2,LOOP1RET三、 多字節(jié)十進(jìn)制數(shù)(BCD碼)加法 清標(biāo)志位YN加完?開(kāi)始最高字節(jié)置1取被加數(shù)有進(jìn)位?YN恢復(fù)地址指針?lè)祷刂羔樇?求和調(diào)整圖 4-4 BCD碼多字節(jié)加法程序流程圖BCDADD:MOV
20、 20H,R0 MOV 23H,R CLR C LOOP0: MOV A,R0 ;取被加數(shù) ADDC A,R1 ;兩數(shù)相加 DA A ;十進(jìn)制調(diào)整 MOV R0,A INC R0 ;指針加1 INC R1 DJNZ R,LOOP0 ;作完加法否 MOV R2. #23H JNC RETURN ;有無(wú)進(jìn)位 MOV R0,#01H INC RRETURN:MOV R0,#20H RET四、 多字節(jié)數(shù)乘法ZHENFA: MOV A,R0 MOV B,R1 MUL AB ;(R1)*(R0) MOV R,A ;積的低位送到R MOV R4,B ;積的高位送到R4 MOV A,R0 MOV B,R2 M
21、UL AB ;(R2)*(R0) ADD A,R4 ;(R1)*(R0)的高位加(R2)*(R0)的低位 MOV R4,A ;結(jié)果送R4,進(jìn)位在CY中 MOV A,B ADDC A,#OOH;(R2)*(R0)的高位加低位來(lái)的進(jìn)位 MOV R,A ;結(jié)果送R RET五、 多字節(jié)數(shù)除法DV: MOV R7,#08H ;設(shè)計(jì)數(shù)初值DVl: CLR C MOV A,R RLC A MOV R,A MOV A,R6 RLC A ;將(R6)、(R)左移一位 MOV 07H,C ;將移出的一位送07H位保存 CLR C 圖 4-5 除法程序流程圖 SUBB A,R2 ;余數(shù)(高位)減除數(shù) JB O7H,
22、GOU ;若標(biāo)志位為1,說(shuō)明夠減 除法次數(shù)R7YN標(biāo)志位=1?開(kāi)始清進(jìn)位,(R6)(R5)左移一位進(jìn)位位=0?YN恢復(fù)余數(shù)返回余數(shù)高位 - 除數(shù)移出的位標(biāo)志位商上1保存余數(shù)(R7)-1=0?YN JNC GOU ;無(wú)借位也說(shuō)明夠減 ADD A,R2 ;否則,恢復(fù)余數(shù) AJMP DV2 GOU:INC R ;商上1 DV2:MOV R6,A ;保存余數(shù)(高位) DJNZ R7,DVl RET一、 數(shù)據(jù)的拼拆4 42 2 數(shù)據(jù)的拼拆和轉(zhuǎn)換數(shù)據(jù)的拼拆和轉(zhuǎn)換例4-7 設(shè)在30H和31H單元中各有一個(gè)8位數(shù)據(jù):(30H)=x7x6xx4xx2x1x0(3lH)=y7y6yy4yy2y1y0現(xiàn)在要從30H
23、單元中取出低5位,并從31H單元中取出低3位完成拼裝,拼裝結(jié)果送40H單元保存,并且規(guī)定:(40H)=y2y1y0 x4xx2x1x0解:利用邏輯指令A(yù)NL、ORL來(lái)完成數(shù)據(jù)的拼拆,程序清單如下:MOV 4OH,3OH ;將x7x0傳送到40H單元ANL 4OH,#000111llB ;將高3位屏蔽掉MOV A,31H ;將y7y0傳送到累加器中SWAP A ;將A的內(nèi)容左移4次RL A ;y2y0移到高3位ANL A,#111000OOB ;將低5位屏蔽掉ORL 4OH,A ;完成拼裝任務(wù)二、 數(shù)據(jù)的轉(zhuǎn)換 1ASCII碼與二進(jìn)制數(shù)的互相轉(zhuǎn)換 例4-10 編程實(shí)現(xiàn)十六進(jìn)制數(shù)表示的ASC1I代碼
24、轉(zhuǎn)換成4位二進(jìn)制數(shù)(1位十六進(jìn)制數(shù))。解:對(duì)于這種轉(zhuǎn)換,只要注意到下述關(guān)系便不難編寫(xiě)出轉(zhuǎn)換程序:“字符0”“字符9”的ASCII碼值為“30H”“39H”,它們與30H之差恰好為“00H”“09H”,結(jié)果均0AH。“字符A”“字符F”的ASCII碼值為“41H”“46H”,它們各自減去37H后恰好為“0AH”“0FH”,結(jié)果0AH。根據(jù)這個(gè)關(guān)系可以編出轉(zhuǎn)換程序如下,程序以R1作為入口和出口。ASCHIN:MOV A,R1 ;取操作數(shù)CLR C ;清進(jìn)位標(biāo)志位CSUBB A,#30H ;ASCII碼減去30H,實(shí)現(xiàn)0-9的轉(zhuǎn)換MOV R1,A ;暫存結(jié)果SUBB A,#0AH ;結(jié)果是否9?JC
25、 LOOP ;若9則轉(zhuǎn)換正確XCH A,R1SUBB A,#07H ;若9則減37HMOV R1,ALOOP: RET2BCD碼與二進(jìn)制數(shù)的轉(zhuǎn)換 取高字節(jié)BCD數(shù)開(kāi)始調(diào)用子程序返回結(jié)果100保存結(jié)果兩結(jié)果相加取低字節(jié)BCD數(shù)調(diào)用子程序高位BCD數(shù)開(kāi)始乘以10返回保存結(jié)果加低位BCD數(shù)圖 4-6 BCD碼(十進(jìn)制)轉(zhuǎn)換成二進(jìn)制數(shù)程序流程圖程序清單如下:MAIN:MOV A,R MOV R2,A ;給子程序入口參數(shù) ACALL BCDBIN ;調(diào)用子程序 MOV B,#64H MUL AB MOV R6,A XCH A,B MOV R,A MOV A,R4 MOV R2,A ACALL BCDBI
26、N ;調(diào)用子程序 ADD A,R6 MOV R4,A MOV A,R ADDC A,#00H MOV R,A RET子程序如下:BCDBIN:MOV A,R2 ANL A,#0F0H ;取高位BCD碼,屏蔽低4位 SWAP A MOV B,#0AH MUL AB MOV R,A MOV A,R2 ANL A,#0FH ADD A,R3 ;加低位BCD碼 MOV R2,A RET43 查表程序 使用MOVC A,A+DPTR指令來(lái)查表,程序清單如下: MOV DPTR,#BS ;子程序入口地址表首址 RL A ;鍵碼值乘以 MOV R2,A ;暫存 MOVC A,A+DPTR ;取得入口地址低位
27、 PUSH A ;進(jìn)棧暫存 INC A MOVC A,A+DPTR ;取得入口地址高位 MOV DPH,A POP DPL CLR A JMP A+DPTR ;轉(zhuǎn)向鍵處理子程序BS: DB RK0L ;處理子程序入口地址表 DB RK0H DB RK1L DB RK1H DB RK2L DB RK2H 4 44 4 散轉(zhuǎn)程序散轉(zhuǎn)程序一、 采用轉(zhuǎn)移指令表的散轉(zhuǎn)程序 例4-17 編出要求根據(jù)R的內(nèi)容轉(zhuǎn)向各個(gè)操作程序的程序。即當(dāng)(R)=0,轉(zhuǎn)向OPRO(R)=1,轉(zhuǎn)向OPRl(R)=n,轉(zhuǎn)向OPRn解:程序清單如下:MOV A,RRL A ;分支序號(hào)值乘2MOV DPTR ,#BRTABL ;轉(zhuǎn)移指
28、令表首址JMP A+DPTR ;轉(zhuǎn)向形成的散轉(zhuǎn)地址BRTABL:AJMP OPR0 ;轉(zhuǎn)移指令表AJMP OPR1AJMP OPRn二、 采用地址偏移量表的散轉(zhuǎn)程序例4-19 編出能按R的內(nèi)容轉(zhuǎn)向5個(gè)操作程序的程序。其對(duì)應(yīng)關(guān)系如下:OPRD0:操作程序0OPRD1:操作程序1OPRD2:操作程序2OPRD3:操作程序3OPRD4:操作程序4解:程序清單如下: MOV A,R MOV DPTR,#TAB3 ;指向地址偏移量表首址 MOVC A,A+DPTR ;散轉(zhuǎn)點(diǎn)入口地址在A中 JMP A+DPTR ;轉(zhuǎn)向相應(yīng)的操作程序入口TAB3: DB OPRDO-TAB3 ;地址偏移量表 DB OPRD
29、l-TAB3 DB OPRD2-TAB3 DB OPRD3-TAB3 DB OPRD4-TAB3三、 采用轉(zhuǎn)向地址表的散轉(zhuǎn)程序例4-20 編程:要求根據(jù)R的內(nèi)容轉(zhuǎn)向相應(yīng)的操作程序中去。設(shè)備操作程序的轉(zhuǎn)向地址分別為OPRD0,OPRDl, OPRDn。解:程序清單如下: MOV DPTR,#BRTABL ;指向轉(zhuǎn)向地址表 MOV A,R ADD A,R ;(A)(R)*2 JNC NAND; INC DPH ;(R)*2的進(jìn)位加到DPHNAND:MOV R,A ;暫存變址值 MOVC A,A+DPTR ;取轉(zhuǎn)向地址高8位 XCH A,R INC A MOVC A,A+DPTR ;取轉(zhuǎn)向地址低8位
30、 MOV DPL,A ;轉(zhuǎn)向地址在DPTR中 MOV DPH,R CLR A JMP A+DPTR ;轉(zhuǎn)向相應(yīng)的操作程序BRTABL:DW OPRDO ;轉(zhuǎn)向地址表 DW OPRD1 DW OPRDn四、 采用“RET”指令的散轉(zhuǎn)程序 例4-21 編出能根據(jù)R的內(nèi)容轉(zhuǎn)向各個(gè)操作程序的程序。設(shè)該操作程序的轉(zhuǎn)向地址分別為OPRD0,OPRDl, OPRDn。解:程序清單如下: MOV DPTR,#TAB3 ;指向轉(zhuǎn)移地址表 MOV A,R ADD A,R JNC NAND INC DPHNAND:MOV R,A MOVC A,A+DPTR ;取轉(zhuǎn)向地址高8位 XCH A,R INC A MOVC
31、A,A+DPTR ;取轉(zhuǎn)向地址低8位 PUSH A ;轉(zhuǎn)向地址入棧 MOV A,R PUSH A RET ;轉(zhuǎn)向操作程序TAB3:DW OPRD0 ;轉(zhuǎn)向地址表 DW OPRDl DW OPRDn45 I/O端口控制程序 例4-22 試編出能模擬圖4-9中電路的程序。GF+DEVCC8031P1.0P1.1P1.2P1.3K0K1K3DEF(a) 8031的接線(b) 被模擬電路 ORG 0200H D BIT 00H E BIT 01H G BIT 02HLOOP1:ORL P1,#08H ;準(zhǔn)備P1.3輸入LOOP2:MOV C,P1.3 ;檢測(cè)K3狀態(tài) JC LOOP2 ;若未準(zhǔn)備好(K
32、3斷),則LOOP2 ORL P1,#03H ;若準(zhǔn)備好,則準(zhǔn)備輸入P1.0和P1.1狀態(tài) MOV C,P1.0 ;輸入K0狀態(tài) MOV D,C ;送入D MOV C,P1.1 ;輸入K1狀態(tài) MOV E,C ;送入E ANL C,D ;DE送C MOV G,C ;送入G MOV C,E ORL C,D ;DE送C ANL C,/G ;(DE)(DE) MOV P1.2,C ;輸出結(jié)果 SJMP LOOP1 ;準(zhǔn)備下次模擬 END4 46 6 子程序調(diào)用時(shí)的參數(shù)傳遞方法子程序調(diào)用時(shí)的參數(shù)傳遞方法一、 通過(guò)寄存器或片內(nèi)RAM傳遞參數(shù)例4-23 利用通過(guò)寄存器或片內(nèi)RAM傳遞參數(shù)這種方法編出調(diào)用S
33、UBRT子程序的主程序。解:應(yīng)該是:MAIN :MOV R0,#30H ;傳送RAM數(shù)據(jù)區(qū)的起始地址 MOV R7,#0AH ;傳送RAM數(shù)據(jù)區(qū)的長(zhǎng)度 ACALL SUBRT ;調(diào)用清零子程序 SJMP $ ;結(jié)束 SUBRT:MOV A,#00H ;清零子程序LOOP:MOV R0,A INC R0 DJNZ R7,LOOP RET二、 通過(guò)堆棧傳遞參數(shù) 例4-25 在HEX單元存有兩個(gè)十六進(jìn)制數(shù),試編程分別把它們轉(zhuǎn)換成ASCII碼存入ASC和ASC+1單元。解:本題子程序采用查表方法完成一個(gè)十六進(jìn)制數(shù)的ASCII碼轉(zhuǎn)換,主程序完成入口參數(shù)的傳遞和子程序的兩次調(diào)用,以滿(mǎn)足題目要求。程序清單為
34、: ORG 1200HPUSH HEX ;入口參數(shù)壓棧ACALL HASC ;求低位十六進(jìn)制數(shù)的ASCII碼POP ASC ;出口參數(shù)存入ASCMOV A,HEX ;十六進(jìn)制數(shù)送ASWAP A ;高位十六進(jìn)制數(shù)送低4位PUSH ACC ;入口參數(shù)壓棧ACALL HASC ;求高位十六進(jìn)制數(shù)的ASCII碼POP ASC+1 ;出口參數(shù)送ASC+1SJMP $ ;原地踏步,結(jié)束HASC:DEC SPDEC SP ;入口參數(shù)地址送SPPOP ACC ;入口參數(shù)送AANL A,#0FH ;取出入口參數(shù)低4位ADD A,#07H ;地址調(diào)整MOVC A,A+PC ;查相應(yīng)ASCII碼PUSH ACC ;
35、出口參數(shù)壓棧INC SPINC SP ;SP指向斷點(diǎn)地址高8位RET ;返回主程序ASCTABL:DB 0,1,2,3,4,5,6,7DB 8,9,A,B,C,D,E,F(xiàn)END三、 利用指針寄存器傳遞參數(shù) 例4-26 編出能實(shí)現(xiàn)打印THIS IS AN EXAMPLE的程序。解:將要打印的字符及代碼不是放在調(diào)用指令之前,而是緊跟在調(diào)用指令之后。主程序:MAIN: ACALL PRINT ;調(diào)用打印子程序 DBTHIS IS AN EXAMPLE ;要打印的字符及代碼 DB OAH,ODH,OOHNEXT: 子程序:PRINT:POP DPH ;把調(diào)用指令下面字節(jié)的地址彈出,作為數(shù)據(jù)指針 POP
36、 DPLPPPl: MOV A,#OOH MOVC A,A+DPTR ;取出欲打印的字符 INC DPTR JZ PPPEND ;判斷是否為結(jié)束字符PPP2: ;打印程序 SJMP PPPl ;未完,繼續(xù)打印PPPEND:JMP A+DPTR ;指向主程序NEXT處,取代返回指令 知識(shí)模塊五 MCS-51單片機(jī)的中斷系統(tǒng)自然優(yōu)先級(jí)矢量地址自然優(yōu)先級(jí)矢量地址高級(jí)中斷請(qǐng)求PCPC斷請(qǐng)求低級(jí)中SCON中斷標(biāo)志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT1IT1=1INT1IT1=0T0INT0IT0=1IT0=
37、0源允許總允許優(yōu)先級(jí)硬件查詢(xún)EA圖 5-1 8051的中斷系統(tǒng)51 中斷系統(tǒng)及其管理中斷系統(tǒng)及其管理一、 中斷源及中斷入口 中斷源中斷源入口地址入口地址外部中斷外部中斷00003H定時(shí)器定時(shí)器T0中斷中斷000BH外部中斷外部中斷10013H定時(shí)器定時(shí)器T1中斷中斷001BH串行口中斷串行口中斷0023H二、 外部中斷請(qǐng)求標(biāo)志2SCON的中斷標(biāo)志 1TCON中的中斷標(biāo)志三、 中斷允許控制四、中斷源優(yōu)先級(jí)的設(shè)定五、 中斷響應(yīng)處理過(guò)程2中斷處理1中斷響應(yīng)的過(guò)程 3中斷返回 4外部中斷響應(yīng)時(shí)間52 擴(kuò)充外部中斷源擴(kuò)充外部中斷源一、 利用定時(shí)器進(jìn)行擴(kuò)充8051INT0INT1P1.3P1.2P1.1P
38、1.0XI0XI1XI2XI3XI4R5.1KVCC圖 5-2 多外部中斷源連接方法二、 采用中斷和查詢(xún)相結(jié)合的方法擴(kuò)充外部中斷源 EXINT: PUSH PSW PUSH ACC JB P1 0,SAV1 JB P1 1,SAV2 JB P1 2,SAV3 JB P1 3,SAV4 DISUB: POP ACC POP PSW RETI SAV1: ;XI1中斷服務(wù)程序 AJMP DISUB SAV2: ;XI2中斷服務(wù)程序 AJMP DISUB SAV3: ;XI3中斷服務(wù)程序 AJMP DISUB SAV4: ;XI1中斷服務(wù)程序 AJMP DISUB53 中斷系統(tǒng)的應(yīng)用中斷系統(tǒng)的應(yīng)用8
39、051P1.7P1.4P1.3P1.0INT0+5V+5V+5V+5V+5V圖 8-3 外部中斷實(shí)驗(yàn) 知識(shí)模塊六 定時(shí)/計(jì)數(shù)器 61 定時(shí)/計(jì)數(shù)的結(jié)構(gòu)及工作原理 一、 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和原理1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)內(nèi)部總線工作方式工作方式TH1TL1TH0TL0TCONTMODT1T0微處理器圖 5 1 TMOD、TCON與T0、T1的結(jié)構(gòu)框圖2定時(shí)/計(jì)數(shù)器的原理 控制信號(hào)振蕩器12加1計(jì)數(shù)器TFX中斷TX 端C/ T = 0C/ T = 1圖 5 2 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)框圖 二、 定時(shí)/計(jì)數(shù)器方式寄存器TMOD表格 5 1 方式選擇位意義M1 M0工作方式功 能 說(shuō) 明0 0方式013位計(jì)數(shù)器
40、0 1方式116位計(jì)數(shù)器1 0方式2自動(dòng)再裝入8位計(jì)數(shù)器1 1方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)TMOD格式如下:定時(shí)器1定時(shí)器0 TMOD D7D6D5D4D3D2D1D0GATEC/T()M1M0GATEC/T()M1M0三、 定時(shí)控制寄存器TCON定時(shí)器控制字TCON的格式如下: TCON8FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0 6 62 2 定時(shí)定時(shí)/ /計(jì)數(shù)器的工作方式計(jì)數(shù)器的工作方式一、 方式0當(dāng)M1M0兩位為00時(shí),定時(shí)/計(jì)數(shù)器被選為工作方式0,其邏輯結(jié)構(gòu)如圖 5 3 所示??刂普袷幤?2TL0(5位)TF
41、0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)圖 5 3 T0(或T1)方式0結(jié)構(gòu)二、 方式1控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)圖 5 4 T0(或T1)方式1結(jié)構(gòu)三、 方式2控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)重新裝入圖 5 5 T0(或T1)方式1結(jié)構(gòu)三、 方式2控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)
42、重新裝入圖 5 6 T0(或T1)方式2結(jié)構(gòu) 四、 方式3控制振蕩器12TL0(8位)TF0中斷T0 端C/ T = 0C/ T = 1+INT0 端GATETR0TH0(8位)1/ 12 fosc1/ 12 foscTF1中斷1/ 12 foscTR1圖 5 7 T0方式3下和T1結(jié)構(gòu)一、 方式0、方式1的應(yīng)用例5-1 選擇T1方式0用于定時(shí),在P1。1輸出周期為1ms的方波,晶振fosc=6MHZ。根據(jù)題意,只要使P1。1每隔500s取反一次即可得到1ms方波,因而T1的定時(shí)時(shí)間為 500s。將T1設(shè)為定時(shí)方式0:GATE=0,C/T()=0,M1M0=00;T0不用可為任意,只要不使其進(jìn)
43、入方式3,一般取0即可。故TMOD=00H。系統(tǒng)復(fù)位后TMOD為0,所以不必對(duì)TMOD置初值。下面計(jì)算500s定時(shí)T1的初值:機(jī)器周期 T=12/fosc=12/6106=2s設(shè)初值為X則: (213X)2106 s =500106 s X=7942D=1111100000110B=1F06H因?yàn)樵谧?3位計(jì)數(shù)器用時(shí),TL1高3位未用,應(yīng)寫(xiě)0,X的低5位裝入TL1的低5位,所以TL1=06H;X的高8位應(yīng)裝入TH1,所以TH1=F8H。源程序如下: MOVTL1,#06H;給TL1置初值 MOVTH1,#F8H;給TH1置初值 SETBTR1;啟動(dòng)T1LP1:JBCTF1,LP2;查詢(xún)計(jì)數(shù)溢出
44、否 AJMPLP1 LP2:MOVTL1,06H;重裝初值 MOVTH1,F(xiàn)8H CPLP1。1;輸出取反 AJMPLP1;重復(fù)循環(huán)二、 方式2的應(yīng)用例5-2 用定時(shí)器1方式2計(jì)數(shù),要求每計(jì)滿(mǎn)100次,將P1。0取反。根據(jù)題意,外部計(jì)數(shù)信號(hào)由T1(P3.5)引腳輸入,每跳變一次計(jì)數(shù)器加1,由程序查詢(xún)TF1。方式2有自動(dòng)重裝初值的功能,初始化后不必再置初值。初值 X=28100=156D=9CH TH1=TL1=9CH TMOD=60H源程序如下: MOVTMOD,#60H;設(shè)置T1為方式2 MOVTL1,#9CH;置初值 MOVTH1,#9CH SETBTR1;啟動(dòng)T1DEL:JBCTF1,R
45、EP;查詢(xún)計(jì)數(shù)溢出 AJMPDEL REP:CPLP1。0;輸出取反 AJMPDEL 三、 門(mén)控位的應(yīng)用圖 5 8 外部正脈沖寬度測(cè)量例5-3 利用T0門(mén)控位測(cè)試INT0引腳上出現(xiàn)的正脈沖的寬度,并以機(jī)器周期數(shù)的形式顯示在顯示器上。根據(jù)要求可這樣設(shè)計(jì)程序:將T0設(shè)定為方式1,GATE設(shè)為1,置TR0為1。一旦INT0(P3。2) 引腳上出現(xiàn)高電平即開(kāi)始計(jì)數(shù),直至出現(xiàn)低電平,停止計(jì)數(shù),然后讀取T0的計(jì)數(shù)值并顯示。 測(cè)試過(guò)程如下:INT0(P3.2)09H(TMOD)1TR0T0從0開(kāi)始計(jì)數(shù)0TR0停止T0計(jì)數(shù)讀出T0值BEGIN:M OVTMOD,# O9H;T0工作于方式1,GATE置1 M
46、OVTL0,#00H M OVTH0;#00H WAIT1:JBP3。2,WAIT1;等待INT0變低 S E TBTR0;啟動(dòng)T0WAIT2:JNBP3。2,WAIT2;等待正脈沖到WAIT3:JBP3。2,WAIT3;等待INT0變低 CLRTR0;停止T0計(jì)數(shù) M OVR0,#DISBUF;顯示緩沖區(qū)首地址送R0 M OVA,TL0;機(jī)器周期的存放格式為低位占低地址,高位占高地址,連續(xù)4個(gè)顯示緩沖單元 XCHDA,R0 INCR0 SWAPA XCHDA,R0 INCR0 M OVA,TH0 XCHDA,R0 INCR0 SWAPA XCHDA,R0 DIS:LCALLDISUP;長(zhǎng)調(diào)用
47、顯示子程序 AJMPDIS;重復(fù)顯示機(jī)器周期數(shù)源程序如下: 知識(shí)模塊八 MCS-51單片機(jī)的系統(tǒng)擴(kuò)展81 MCS-51單片機(jī)的引腳定義及最小應(yīng)用系統(tǒng)單片機(jī)的引腳定義及最小應(yīng)用系統(tǒng)一、 8051的引腳定義及功能12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSSVCCP0.0/AD0P0.1
48、/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7EA/VPPALE/PROGPSENP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A88 80 03 31 18 80 05 51 18 87 75 51 1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0PSENEAALERESET803180318051805187518751P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2
49、.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0ALEA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0G+5VVCCVSS鎖鎖存存器器 數(shù)據(jù)總線(DB) 地址總線(AB) 控制總線(CB) 用戶(hù)I/O圖 6 1 MCS-51的引腳圖及功能分類(lèi)圖二、 MCS-51單片機(jī)最小應(yīng)用系統(tǒng) P0 P1 P2 P3 +5V+5VEA8 80 05 51 18 87 75 51 1XTAL1XTAL28888圖 6 2 8051/8751最小應(yīng)用系統(tǒng)8 82 2 MCS-51MCS-51單片機(jī)外部存儲(chǔ)器的擴(kuò)展單片機(jī)外部存儲(chǔ)器的擴(kuò)
50、展一、 外部程序存儲(chǔ)器的擴(kuò)展及取指過(guò)程EA8 80 03 31 1P2.7P2.0P0.7P0.0地址鎖存器PSENOEA15A8CEA7A0D7D0外部程序存儲(chǔ)器0K64K圖 6 3 外部程序存儲(chǔ)器一般連接方法 1程序存儲(chǔ)器的一般連接方式PSENP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7A8A9A10A11A12QOA0A1A2A3A4A5A6A7Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALED0D1D2D3D4D5D6D7OEGOE803127C64CEEA74HC373圖 6-4 擴(kuò)
51、展8K字節(jié)程序存儲(chǔ)器的連線圖2典型EPROM擴(kuò)展電路3程序存儲(chǔ)器E2PROM的擴(kuò)展P2.0P2.1P2.2P2.3P2.4P2.7A8A9A10A11A12QOA0A1A2A3A4A5A6A7Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALED0D1D2D3D4D5D6D7OEGOE803128C64CEEA74HC373WRPSENRDWE74LS08圖 6-5 E2PROM作為程序存儲(chǔ)器的擴(kuò)展圖二、 數(shù)據(jù)存儲(chǔ)器的擴(kuò)展P3.7(RD)P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7A8A9A10Q
52、OA7A6A5A4A3A2A1A0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7ALEI/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OEGOE80316116CEEAP3.6(WR)WE74HC373圖 6-6 擴(kuò)展2KB數(shù)據(jù)存儲(chǔ)器的線路圖1數(shù)據(jù)存儲(chǔ)器一般的擴(kuò)展方法 2常用數(shù)據(jù)存儲(chǔ)器的擴(kuò)展電路 三、 綜合擴(kuò)展實(shí)例D7Q7Q0D074HC373A12A11A10A9A8CEA7A0D7D0OEP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP0PSENWRRD80C51IC027
53、64IC02764D0OECEA12A11A10A9A8A7A0D7IC02764D0OECEA12A11A10A9A8A7A0D7D0OECEA12A11A10A9A8A7A0D7A8A9A10A11A12A8A9A10A11A12A8A9A10A11A12A12A11A10A9A8IC12764D0D0D0D0D7D7D7D7OEOEOEOEA0A0A0A0A7A7A7A7A0A0A0A0A7A7A7A7A8A8A8A8A9A9A9A9A10A10A10A10OEOEOEOECECECECEA11A11A11A11A12A12A12A12A10A10A10A10A0A0A0A0OEOEOE
54、OEA7A7A7A7A8A8A8A8A9A9A9A9A12A12A12A12A11A11A11A11CECECECECECECECEIC26264IC36264WEWED7-D0D7-D0GBAY2Y1Y074HC139圖 6-7 擴(kuò)展16KB RAM和16KB EPROM 83 3 并行并行I/OI/O口的擴(kuò)展口的擴(kuò)展一、 簡(jiǎn)單I/O口的擴(kuò)展P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.780C51WRP2.0RDD0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7K0K1K2K3K4K5K6K7LE
55、D0LED1LED2LED3LED4LED5LED6LED7+5V74HC27374HC244G圖 6-8 簡(jiǎn)單I/O接口擴(kuò)展電路二、 可編程I/O口的擴(kuò)展12345678910111213141516171819204039383736353433323130292827262524232221PC3PC4TIMER INRESETPC5TIMER OUTCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VSSVCCPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08 81 15 55 5256 B靜態(tài)RAM14
56、位定時(shí)計(jì)數(shù)器ABCAD07CERDWRRESETALETIME INTIME OUTVCC(+5V)VSS(GND)PC05PB07PA07IO/ MIO/ M圖 6 9 8155的結(jié)構(gòu)和引腳表格 6 1 8155口地址分布AD0AD7選選 中中 寄寄 存存 器器A7 A6 A5 A4 A3A2A1A0 000內(nèi)部命令寄存器內(nèi)部命令寄存器 001通用通用I/O口口A寄存器寄存器 010通用通用I/O口口B寄存器寄存器 011口口C:通用通用I/O口或控制口口或控制口 100定時(shí)定時(shí)/計(jì)數(shù)器的低計(jì)數(shù)器的低8位寄存器位寄存器 101定時(shí)定時(shí)/計(jì)數(shù)器的高計(jì)數(shù)器的高8位寄存器位寄存器38155與單片機(jī)
57、的連接AD07CERDWRRESETALETIME INTIME OUTPCPBPAIO/M81558031RSTRDWRALEP2.3P2.4P0VCC表格 6 2 8155的RAM和I/O口地址分配P2.4P2.3選擇選擇地地 址址00RAME700HE7FFH (256B)01I/O口口EF00H 命令口命令口/狀態(tài)口狀態(tài)口EF01H 通用通用I/O口口AEF02H 通用通用I/O口口BEF03H 口口CEF04H 計(jì)數(shù)值低計(jì)數(shù)值低8位位EF05H 計(jì)數(shù)值高計(jì)數(shù)值高8位和計(jì)數(shù)位和計(jì)數(shù)方式方式圖 6 10 擴(kuò)展一片8155的基本方案48155片內(nèi)RAM的使用(1)命令寄存器的用法 表格 6
58、 3 C口工作方式方方式式位位ALTIALT2ALT3ALT4PC0輸入方式輸入方式輸出方式輸出方式AINTR(A口中斷)口中斷)AINTR(A口中斷)口中斷)PC1ABF(A口緩沖器滿(mǎn))口緩沖器滿(mǎn))ABF(A口緩沖器滿(mǎn))口緩沖器滿(mǎn))PC2ASTB(A口選通)口選通)ASTB(A口選通)口選通)PC3輸出方式輸出方式BINTR(B口中斷)口中斷)PC4BBF(B口緩沖器滿(mǎn))口緩沖器滿(mǎn))PC5BSTB(B口選通)口選通)備注備注A口口B口為口為基本基本I/O口口A口口B口為口為基本基本I/O口口A口為選通輸入方口為選通輸入方式式B口為基本口為基本I/O口口A口、口、B口為選通口為選通輸入輸入/輸
59、出方式輸出方式RDWRI/OPC0PC1PC2PC3PC4PC5PBPA8155設(shè)備數(shù)據(jù)線至中斷請(qǐng)求輸入線至設(shè)備來(lái)自設(shè)備至中斷請(qǐng)求輸入線至設(shè)備來(lái)自設(shè)備設(shè)備數(shù)據(jù)線I/OAINTRABFASTBBINTRBBFBSTB圖 6 12 8155方式4的邏輯結(jié)構(gòu)圖 6作定時(shí)/計(jì)數(shù)器用表 6-4 8155定時(shí)器輸出方式M2 M1方方 式式定時(shí)器輸出方波定時(shí)器輸出方波0 0單個(gè)方波單個(gè)方波0 1連續(xù)方波連續(xù)方波1 0在終止計(jì)數(shù)時(shí)輸出單個(gè)脈沖在終止計(jì)數(shù)時(shí)輸出單個(gè)脈沖1 1連續(xù)脈沖連續(xù)脈沖知識(shí)模塊七 MCS-51系統(tǒng)的串行接口71 串行通訊概述一、 串行通訊的兩種基本方式1異步傳送方式 第n個(gè)字符(一串行幀)n
60、+1n-1 P10D0D1D2D3D4D5D6D7P10D0 起始位起始位數(shù)數(shù) 據(jù)據(jù) 位位校驗(yàn)位校驗(yàn)位 停止位停止位 圖 7-2 異步通訊的幀格式開(kāi)始開(kāi)始 結(jié)束結(jié)束同步字符同步字符同步字符同步字符數(shù)據(jù)段數(shù)據(jù)段CRC字符字符#1CRC字符字符#2圖 7-3 同步傳送方式二、 波特率圖 7-4 串行通訊的制式 三、 數(shù)據(jù)傳送的方向1單工制式(Simplex)2半雙工制式(Half Duplex)3全雙工(Full-duplex)制式72 MCS-51單片機(jī)的串行接口一、 MCS-51串行口結(jié)構(gòu)圖 7-5 MCS-51串行口組成示意1串行口數(shù)據(jù)緩沖器SBUF 2串行口控制寄存器SCON見(jiàn)表格7-1S
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年旅游服務(wù)代理合同樣本
- 2025年度綠植花卉租賃與城市景觀提升合同范本4篇
- 2025年度綠化工程環(huán)境保護(hù)與節(jié)能減排合同范本4篇
- 2025版綠色建筑項(xiàng)目租賃與能源管理合同4篇
- 2025年度個(gè)人二手房交易安全協(xié)議范本4篇
- 個(gè)人間短期資金周轉(zhuǎn)合同書(shū)版
- 個(gè)人買(mǎi)賣(mài)合同范文(2024版)
- 二零二五年度風(fēng)力發(fā)電機(jī)組安裝及運(yùn)營(yíng)維護(hù)協(xié)議3篇
- 2025年度個(gè)稅起征點(diǎn)調(diào)整下簽勞務(wù)合同稅務(wù)籌劃合作協(xié)議
- 二零二五年度素食餐飲品牌授權(quán)合作合同
- 車(chē)站值班員(中級(jí))鐵路職業(yè)技能鑒定考試題及答案
- 極簡(jiǎn)統(tǒng)計(jì)學(xué)(中文版)
- JTG∕T E61-2014 公路路面技術(shù)狀況自動(dòng)化檢測(cè)規(guī)程
- 高中英語(yǔ)短語(yǔ)大全(打印版)
- 2024年資格考試-對(duì)外漢語(yǔ)教師資格證筆試參考題庫(kù)含答案
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以?xún)晌粩?shù)-豎式運(yùn)算300題
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計(jì)算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗(yàn)
- 五年級(jí)數(shù)學(xué)應(yīng)用題100道
評(píng)論
0/150
提交評(píng)論