版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第19章章 MCS51基本系統(tǒng)應(yīng)用基本系統(tǒng)應(yīng)用19.1 MCS-51的并行的并行I/O19.2 MCS-51的中斷系統(tǒng)的中斷系統(tǒng)19.3 MCS-51的定時(shí)器計(jì)數(shù)器的定時(shí)器計(jì)數(shù)器19.4 MCS-51的串行口的串行口 (直接使用P0,P1,P2,P3 進(jìn)行操作 已講過,略)中斷系統(tǒng)是計(jì)算機(jī)的重要指標(biāo)之一中斷系統(tǒng)是計(jì)算機(jī)的重要指標(biāo)之一。某人看書某人看書 執(zhí)行主程序執(zhí)行主程序 日常事務(wù)日常事務(wù)電話鈴響電話鈴響 中斷信號(hào)中斷信號(hào)如如INT=0INT=0 中斷請(qǐng)求中斷請(qǐng)求暫??磿鴷和?磿?暫停執(zhí)行主程序暫停執(zhí)行主程序 中斷響應(yīng)中斷響應(yīng)書中作記號(hào)書中作記號(hào) 當(dāng)前當(dāng)前PCPC入棧入棧 保護(hù)斷點(diǎn)保護(hù)斷點(diǎn)電
2、話談話電話談話 執(zhí)行中斷程序執(zhí)行中斷程序 中斷服務(wù)中斷服務(wù)繼續(xù)看書繼續(xù)看書 返回主程序返回主程序 中斷返回中斷返回日常事務(wù)程序日常事務(wù)程序中斷服務(wù)程序中斷服務(wù)程序19.2.119.2.1中斷概念中斷概念日常生活中的中斷與計(jì)算機(jī)中斷的比較:日常生活中的中斷與計(jì)算機(jī)中斷的比較: 所謂所謂“中斷中斷”,是指,是指CPU執(zhí)行正常程序時(shí),執(zhí)行正常程序時(shí),系統(tǒng)中出現(xiàn)特殊請(qǐng)求,系統(tǒng)中出現(xiàn)特殊請(qǐng)求,CPU暫時(shí)中止當(dāng)前的程暫時(shí)中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件,處理完畢后,序,轉(zhuǎn)去處理更緊急的事件,處理完畢后,CPU返回原程序的過程。返回原程序的過程。中斷與子程序的最主要區(qū)別:中斷與子程序的最主要區(qū)別: 子程
3、序是預(yù)先安排好的;子程序是預(yù)先安排好的; 中斷是隨機(jī)發(fā)生的;中斷是隨機(jī)發(fā)生的;中斷的定義,與子程序的區(qū)別中斷的定義,與子程序的區(qū)別中斷系統(tǒng)內(nèi)部結(jié)構(gòu)中斷系統(tǒng)內(nèi)部結(jié)構(gòu)19.2.2 19.2.2 中斷系統(tǒng)控制中斷系統(tǒng)控制與中斷相關(guān)的特殊功能寄存器與中斷相關(guān)的特殊功能寄存器有:有:中斷優(yōu)先級(jí)寄存器中斷優(yōu)先級(jí)寄存器 IP(B8H)中斷優(yōu)先級(jí)控制位:中斷優(yōu)先級(jí)控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX0中斷允許寄存器中斷允許寄存器 IE(A8H)中斷允許控制位:中斷允許控制位:EAEA、ESES、ET1ET1、EX1EX1、ET0ET0、EX0EX0定時(shí)器控制寄存器定時(shí)器控制寄
4、存器 TCON(88H) 中斷標(biāo)志位:中斷標(biāo)志位: TF1TF1、TF0TF0、IE1IE1、IE0IE0、RI RI 、TITI19.2.2.1 19.2.2.1 中斷控制寄存器中斷控制寄存器1.中斷標(biāo)志位中斷標(biāo)志位: TF1、TF0、IE1、IE0、RI 、TI登記各中斷源請(qǐng)求信號(hào):登記各中斷源請(qǐng)求信號(hào):=1=1,有中斷請(qǐng)求;,有中斷請(qǐng)求;= 0= 0,無中斷請(qǐng)求。,無中斷請(qǐng)求。CPUCPU響應(yīng)中斷后響應(yīng)中斷后, ,該中斷標(biāo)志自動(dòng)清零。該中斷標(biāo)志自動(dòng)清零。TITI,RIRI標(biāo)志必須軟件清零。標(biāo)志必須軟件清零。2.2.外部中斷觸發(fā)方式選擇位:外部中斷觸發(fā)方式選擇位:IT0、IT1=1=1:負(fù)
5、邊沿觸發(fā)中斷請(qǐng)求;:負(fù)邊沿觸發(fā)中斷請(qǐng)求;= 0= 0:低電平觸發(fā)中斷請(qǐng)求。:低電平觸發(fā)中斷請(qǐng)求。19.2.2.2 19.2.2.2 中斷允許寄存器中斷允許寄存器寄存器名稱D7D6D5D4D3D2D1D0TCON(88H) TF1TF0IE1IT1IE0IT0定時(shí)器控制寄存器位地址8FH8EH8DH8CH8BH8AH89H88HSCON(98H)TIRI串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH99H98HIE(A8H)EAESET1EX1ET0EX0中斷允許寄存器位地址AFHACHABHAAHA9HA8HIP(B8H)PSPT1PX1PT0PX0中斷優(yōu)先級(jí)寄存器位地址BCHBB
6、HBAHB9HB8H中斷允許控制位:中斷允許控制位:EA、ES、ET1、EX1、ET0、EX0=1=1開中斷;開中斷;= 0= 0關(guān)中斷。關(guān)中斷。例:允許例:允許CPUCPU響應(yīng)響應(yīng)INT0INT0的中斷請(qǐng)求的中斷請(qǐng)求SETB EX0 SETB EX0 SETB EASETB EA19.2.2.3 19.2.2.3 中斷優(yōu)先寄存器中斷優(yōu)先寄存器寄存器名稱D7D6D5D4D3D2D1D0TCON(88H) TF1TF0IE1IT1IE0IT0定時(shí)器控制寄存器位地址8FH8EH8DH8CH8BH8AH89H88HSCON(98H)TIRI串行口控制寄存器位地址9FH9EH9DH9CH9BH9AH9
7、9H98HIE(A8H)EAESET1EX1ET0EX0中斷允許寄存器位地址AFHACHABHAAHA9HA8HIP(B8H)PSPT1PX1PT0PX0中斷優(yōu)先級(jí)寄存器位地址BCHBBHBAHB9HB8H中斷優(yōu)先級(jí)控制位:中斷優(yōu)先級(jí)控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX02 2級(jí)優(yōu)先級(jí):級(jí)優(yōu)先級(jí):=1=1為高優(yōu)先級(jí),為高優(yōu)先級(jí),= 0= 0為低優(yōu)先級(jí)。為低優(yōu)先級(jí)。同一優(yōu)先級(jí)別按內(nèi)部查詢順序排列優(yōu)先級(jí):同一優(yōu)先級(jí)別按內(nèi)部查詢順序排列優(yōu)先級(jí):高高 INT0 INT0、T0T0、INT1INT1、T1T1、SISIO 低低。19.2.319.2.3中斷響應(yīng)和中斷返回
8、中斷響應(yīng)和中斷返回 一一. .中斷響應(yīng)周期時(shí)序中斷響應(yīng)周期時(shí)序 每個(gè)機(jī)器周期采樣中斷標(biāo)志位,若有中斷請(qǐng)求,將在下一每個(gè)機(jī)器周期采樣中斷標(biāo)志位,若有中斷請(qǐng)求,將在下一個(gè)機(jī)器周期按優(yōu)先級(jí)順序進(jìn)行中斷查詢。個(gè)機(jī)器周期按優(yōu)先級(jí)順序進(jìn)行中斷查詢。 二二. 各中斷源中斷服務(wù)程序的入口地址各中斷源中斷服務(wù)程序的入口地址1 0003H 0003H 外部中斷外部中斷 INT0 的處理程序入口;的處理程序入口;2 000BH 000BH 計(jì)數(shù)器計(jì)數(shù)器/ /定時(shí)器定時(shí)器 T0 的溢出的溢出中斷處理程序入口;中斷處理程序入口; 3 0013H 0013H 外部中斷外部中斷 INT1 的處理程序入口;的處理程序入口;4
9、 001BH 001BH 計(jì)數(shù)器計(jì)數(shù)器/ /定時(shí)器定時(shí)器 T1 的溢出的溢出中斷處理程序入口;中斷處理程序入口; 5 0023H 0023H 串行口中斷處理程序入口;串行口中斷處理程序入口; 6 002BH 002BH 計(jì)數(shù)器計(jì)數(shù)器/ /定時(shí)器定時(shí)器 T2 的溢出的溢出中斷處理程序入口。中斷處理程序入口。 三三. 中斷響應(yīng)阻斷中斷響應(yīng)阻斷(暫時(shí)不響應(yīng))暫時(shí)不響應(yīng))1 . 當(dāng)當(dāng)CPUCPU未執(zhí)行完一條指令。未執(zhí)行完一條指令。2當(dāng)有同級(jí)或高級(jí)中斷服務(wù)。當(dāng)有同級(jí)或高級(jí)中斷服務(wù)。3執(zhí)行執(zhí)行RETIRETI指令或訪問指令或訪問IEIE、IPIP的指令的指令后,不能立即響應(yīng)中斷。后,不能立即響應(yīng)中斷。 四
10、四. 中斷返回中斷返回中斷返回指令:中斷返回指令: RETI= RET指令指令 + + 通知通知CPUCPU中斷服務(wù)中斷服務(wù)已結(jié)束。已結(jié)束。 中斷響應(yīng)時(shí)間中斷響應(yīng)時(shí)間正常中斷響應(yīng)時(shí)間至少為正常中斷響應(yīng)時(shí)間至少為3 38 8個(gè)機(jī)器周期,如果有個(gè)機(jī)器周期,如果有同級(jí)或高級(jí)中斷服務(wù),將延長中斷響應(yīng)時(shí)間。同級(jí)或高級(jí)中斷服務(wù),將延長中斷響應(yīng)時(shí)間。19.2.4 19.2.4 中斷處理過程中斷處理過程一一. .中斷響應(yīng)條件中斷響應(yīng)條件1 1有中斷請(qǐng)求信號(hào)有中斷請(qǐng)求信號(hào)2. 2. 系統(tǒng)處于開中斷狀態(tài)系統(tǒng)處于開中斷狀態(tài)二中斷響應(yīng)過程二中斷響應(yīng)過程1保護(hù)斷點(diǎn):將斷點(diǎn)地址壓入堆棧保存,即當(dāng)前保護(hù)斷點(diǎn):將斷點(diǎn)地址壓入
11、堆棧保存,即當(dāng)前PCPC值入棧。值入棧。2尋找中斷源:判別中斷優(yōu)先權(quán),識(shí)別中斷源,將中斷服尋找中斷源:判別中斷優(yōu)先權(quán),識(shí)別中斷源,將中斷服務(wù)程序硬件入口地址務(wù)程序硬件入口地址PCPC,轉(zhuǎn)入中斷服務(wù)。,轉(zhuǎn)入中斷服務(wù)。3中斷處理:執(zhí)行中斷源所要求的程序處理段。中斷處理:執(zhí)行中斷源所要求的程序處理段。4中斷返回:執(zhí)行中斷返回:執(zhí)行RETIRETI指令,棧頂內(nèi)容指令,棧頂內(nèi)容PCPC,程序跳轉(zhuǎn)回?cái)?,程序跳轉(zhuǎn)回?cái)帱c(diǎn)處。點(diǎn)處。 19.2.5 19.2.5 多中斷源系統(tǒng)多中斷源系統(tǒng)當(dāng)外部中斷源多于中斷輸入引腳時(shí),可采取以下措施:當(dāng)外部中斷源多于中斷輸入引腳時(shí),可采取以下措施:1.1.用定時(shí)器計(jì)數(shù)輸入信號(hào)端用
12、定時(shí)器計(jì)數(shù)輸入信號(hào)端T0T0、T1T1作外部中斷入口引腳作外部中斷入口引腳2.2.用串行口接收端用串行口接收端RXDRXD作外部中斷入口引腳作外部中斷入口引腳3.3.用一個(gè)中斷入口接受多個(gè)外部中斷源,并加入中斷查詢電用一個(gè)中斷入口接受多個(gè)外部中斷源,并加入中斷查詢電路。路。 19.2.6 19.2.6 處理外部中斷舉例處理外部中斷舉例要求每次按動(dòng)按鍵,使外接發(fā)光二極管要求每次按動(dòng)按鍵,使外接發(fā)光二極管LEDLED改變一次亮滅狀態(tài)。改變一次亮滅狀態(tài)。解:解:INT0INT0輸入按鍵信號(hào),輸入按鍵信號(hào),P P1.01.0輸出改變輸出改變LEDLED狀態(tài)。狀態(tài)。1 1跳變觸發(fā)跳變觸發(fā):每次跳變引起一
13、次中斷請(qǐng)求。:每次跳變引起一次中斷請(qǐng)求。 ORG 0000H LJMP MAINO R G0 0 0 3 H; 中 斷 入 口; 中 斷 入 口LJMP PINT0ORG0100H ;主程序;主程序MAIN:SETB EA;開總允許開關(guān);開總允許開關(guān)SETB EX0;開;開INT0中斷中斷SETB IT0;負(fù)跳變觸發(fā)中斷;負(fù)跳變觸發(fā)中斷Here:SJMP Here ;相當(dāng)于執(zhí)行其它任務(wù);相當(dāng)于執(zhí)行其它任務(wù)ORG0200H ;中斷服務(wù)程序;中斷服務(wù)程序PINT0:CPL P1.0;改變;改變LEDRETI;返回主程序;返回主程序單片機(jī)單片機(jī)INT0P1.01+5V1 1軟件等待按鍵釋放。軟件等待
14、按鍵釋放。2 2硬件清除中斷信號(hào)。硬件清除中斷信號(hào)。2. 電平觸發(fā):電平觸發(fā):避免一次按鍵引起多次中斷響應(yīng)。避免一次按鍵引起多次中斷響應(yīng)。單片機(jī)單片機(jī)INT0P1.01+5V ORG 0000H; LJMP MAINORG0003H ;中斷入口;中斷入口LJMP PINT0ORG0100H ;主程序;主程序MAIN:SETB EA;開總允許開關(guān);開總允許開關(guān)SETB EX0;開;開INT0中斷中斷CLRIT0;低電平觸發(fā)中斷;低電平觸發(fā)中斷Here:SJMP Here ;相當(dāng)于執(zhí)行其它任務(wù);相當(dāng)于執(zhí)行其它任務(wù)ORG0200H ;中斷服務(wù)程序;中斷服務(wù)程序PINT0:CPL P1.0;改變;改變
15、LEDWAIT:JNBP3.2,WAIT;等按鍵釋放;等按鍵釋放, P3.2=INT0RETI;返回主程序;返回主程序19.3 MCS-51的定時(shí)器計(jì)數(shù)器的定時(shí)器計(jì)數(shù)器MCS-51 計(jì)數(shù)/定時(shí)器的實(shí)質(zhì) 實(shí)質(zhì)是計(jì)數(shù)器,實(shí)質(zhì)是計(jì)數(shù)器,脈沖每一次下降沿,計(jì)數(shù)寄存器數(shù)值將加脈沖每一次下降沿,計(jì)數(shù)寄存器數(shù)值將加1. 計(jì)數(shù)的脈沖如果來源于單片機(jī)內(nèi)部的計(jì)數(shù)的脈沖如果來源于單片機(jī)內(nèi)部的晶振晶振,由于其周期極為由于其周期極為準(zhǔn)確,這時(shí)稱為準(zhǔn)確,這時(shí)稱為定時(shí)器定時(shí)器。 計(jì)數(shù)的脈沖如果來源于單片機(jī)計(jì)數(shù)的脈沖如果來源于單片機(jī)外部的引腳外部的引腳,由于其周期一般,由于其周期一般不準(zhǔn)確,這時(shí)稱為不準(zhǔn)確,這時(shí)稱為計(jì)數(shù)器計(jì)數(shù)
16、器。+1計(jì)數(shù)器溢出中斷脈沖控制開關(guān)8031 有有2個(gè)可獨(dú)立控制的個(gè)可獨(dú)立控制的16位定時(shí)器位定時(shí)器/計(jì)數(shù)器:計(jì)數(shù)器:T0、T1晶振晶振/12/1219.3.1 19.3.1 定時(shí)器控制、狀態(tài)寄存器定時(shí)器控制、狀態(tài)寄存器1)TM1)TMOD D 定時(shí)器工作模式寄存器(定時(shí)器工作模式寄存器(89H89H)1 1)功能選擇位)功能選擇位C/TC/T:=0=0,定時(shí)功能,對(duì)內(nèi)部機(jī)器周期脈沖計(jì)數(shù);,定時(shí)功能,對(duì)內(nèi)部機(jī)器周期脈沖計(jì)數(shù);=1=1,計(jì)數(shù)功能,對(duì)引腳,計(jì)數(shù)功能,對(duì)引腳T0(T1)T0(T1)輸入的負(fù)脈沖計(jì)數(shù)。輸入的負(fù)脈沖計(jì)數(shù)。2 2)方式選擇位)方式選擇位M1M1、M0M0: 4 4種工作方式:
17、種工作方式:3 3)門控方式選擇位)門控方式選擇位GATE GATE 計(jì)數(shù)器啟動(dòng)方式選擇:計(jì)數(shù)器啟動(dòng)方式選擇:1 1 要門控要門控 0 0 不要門控不要門控 確定定時(shí)器工作模式指令:確定定時(shí)器工作模式指令: M MOV TMV TMOD D,# #方式字方式字 例:設(shè)例:設(shè)T0T0用方式用方式2 2非門控定時(shí),非門控定時(shí),T1T1用方式用方式1 1門控計(jì)數(shù)。門控計(jì)數(shù)。 M MOV TMV TMOD D,#0D2H ; 1101 0010 B#0D2H ; 1101 0010 BGATEC/TM1M0GATEC/TM1M0T1T019.3.2 定時(shí)器工作方式定時(shí)器工作方式 由方式選擇位由方式選擇
18、位M1M1、M0M0設(shè)定設(shè)定1.方式方式0 01313位定時(shí)位定時(shí)/ /計(jì)數(shù)器。計(jì)數(shù)器。 THx 8THx 8位和位和TLxTLx低低5 5位組成位組成1313位加位加1 1計(jì)數(shù)器,此種方式與計(jì)數(shù)器,此種方式與MCSMCS4848系列兼容,如果系列兼容,如果不是為了兼容的目的,一般不用方式不是為了兼容的目的,一般不用方式0.0.(THx THx 和和TLx TLx 中的中的 x x 可為可為0 0或或1 1,表示定時(shí),表示定時(shí)/ /計(jì)數(shù)計(jì)數(shù)器器0 0或或1 1,以后類同)。,以后類同)。方式方式0 0的全部功能,方式的全部功能,方式1 1都可以代替。都可以代替。 2. 2. 方式方式1 116
19、16位定時(shí)位定時(shí)/ /計(jì)數(shù)器。計(jì)數(shù)器。 THx8THx8位和位和TLx8TLx8位組成位組成1616位加位加1 1計(jì)數(shù)器計(jì)數(shù)器最大計(jì)數(shù)脈沖個(gè)數(shù):最大計(jì)數(shù)脈沖個(gè)數(shù):1 165536(265536(21616) )最長定時(shí)時(shí)間最長定時(shí)時(shí)間( (晶振晶振12MHz T=112MHz T=1 s)s):1 1 s s 6553665536T= 65.54msT= 65.54ms非門控方式:非門控方式:當(dāng)當(dāng)GATE0 控制權(quán)由控制權(quán)由 TRx 決定決定 TRx1 計(jì)數(shù)開始計(jì)數(shù)開始 TRx 0 計(jì)數(shù)停止計(jì)數(shù)停止門控方式:門控方式:當(dāng)當(dāng)GATE1、TRx1 控制權(quán)由控制權(quán)由 INTx 決定決定 INTx1
20、計(jì)數(shù)開始計(jì)數(shù)開始 INTx 0 計(jì)數(shù)停止計(jì)數(shù)停止啟動(dòng)計(jì)數(shù)方式:啟動(dòng)計(jì)數(shù)方式:思考:如何利用門控功能測(cè)量思考:如何利用門控功能測(cè)量脈沖寬度(時(shí)間段測(cè)量)?脈沖寬度(時(shí)間段測(cè)量)?答:答:INTX=0; TRX=1; ;軟件讀計(jì)數(shù)值軟件讀計(jì)數(shù)值3. 3. 方式方式2 2自動(dòng)恢復(fù)初值自動(dòng)恢復(fù)初值8 8位定時(shí)位定時(shí)/ /計(jì)數(shù)器。計(jì)數(shù)器。TLxTLx為為8 8位加位加1 1計(jì)數(shù)器,計(jì)數(shù)器, THxTHx為為8 8位初值暫存器。位初值暫存器。用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。用于需要重復(fù)定時(shí)和計(jì)數(shù)的場(chǎng)合。最大計(jì)數(shù)值:最大計(jì)數(shù)值:256 (2256 (28 8) )最大定時(shí)時(shí)間最大定時(shí)時(shí)間( (晶振晶振12MH
21、z12MHz時(shí)時(shí) T=1T=1 s)s): 256256 s s4.4.方式方式3 3T0T0分成分成2 2個(gè)個(gè)8 8位定時(shí)器:位定時(shí)器:TL0TL0定時(shí)定時(shí)/ /計(jì)數(shù)器和計(jì)數(shù)器和TH0TH0定時(shí)器定時(shí)器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位:控制位:TR1TR1。T1T1不能使用方式不能使用方式3 3工作工作19.3.3 19.3.3 計(jì)算時(shí)間常數(shù)計(jì)算時(shí)間常數(shù)X X計(jì)數(shù)功能:計(jì)數(shù)功能:X= 2X= 2n n - -計(jì)數(shù)值計(jì)數(shù)值n n:8/13/16 8/13/16 定時(shí)功能:定時(shí)功能:X= 2X= 2n n
22、 - t/T- t/T t t:定時(shí)時(shí)間(:定時(shí)時(shí)間(s s) T T:機(jī)器周期:機(jī)器周期 12/12/晶振頻率晶振頻率 如:晶振為如:晶振為12MHz12MHz時(shí),時(shí),T T12/12 MHz12/12 MHz1212(12121010-6-6)(秒)(秒)1 11010-6-61us1us6.4 MCS-51MCS-51定時(shí)器的應(yīng)用定時(shí)器的應(yīng)用定時(shí)器初始化編程:使用定時(shí)器工作之前,先寫入控制寄存定時(shí)器初始化編程:使用定時(shí)器工作之前,先寫入控制寄存器,確定好定時(shí)器工作方式器,確定好定時(shí)器工作方式初始化編程格式:初始化編程格式:MOV TMOD,# 方式字方式字 ;選擇方式;選擇方式MOV T
23、Hx,#XH;裝入;裝入Tx時(shí)間常數(shù)時(shí)間常數(shù)MOV TLx,#XLSETB EA;開;開Tx中斷中斷SETB ETxSETB TRx ;啟動(dòng);啟動(dòng)TxTx定時(shí)器定時(shí)器例例1 1:由:由P1.0P1.0輸出方波信號(hào),周期為輸出方波信號(hào),周期為2ms2ms,設(shè),設(shè)f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1ms1ms改變一次改變一次P1.0P1.0的輸出狀態(tài),即形成方波,用的輸出狀態(tài),即形成方波,用T0T0非門控方式非門控方式1 1定時(shí)。定時(shí)。 計(jì)算時(shí)間常數(shù):計(jì)算時(shí)間常數(shù):X = 2X = 216 16 - t/T = 2- t/T = 216 16 (1/1000)/10
24、(1/1000)/10-6-6 = 65536-1000 = 64536 = FC18H = 65536-1000 = 64536 = FC18H ORG0000HAJMPMAINORG000BH ;T0中斷的硬件入口地址中斷的硬件入口地址AJMPPT0INT ;跳到中斷服務(wù)程序;跳到中斷服務(wù)程序ORG0050H MAIN: MOVTMOD,#01H ;中斷方式;中斷方式MOVTL0,#18H ;計(jì)數(shù)初值;計(jì)數(shù)初值MOVTH0,#0FCHSETBEA ;開放總中斷;開放總中斷SETBET0 ;開放;開放T0中斷中斷SETBTR0 ;啟動(dòng)定時(shí)器;啟動(dòng)定時(shí)器 HERE:SJMPHERE ;等待中斷
25、,相當(dāng)于執(zhí)行其它任務(wù);等待中斷,相當(dāng)于執(zhí)行其它任務(wù) PT0INT: MOVTL0,#18H ;中斷服務(wù)程序;置初值中斷服務(wù)程序;置初值MOVTH0,#0FCHCPLP1.0 ;取反,產(chǎn)生方波;取反,產(chǎn)生方波RETI ;中斷返回;中斷返回思考:如何產(chǎn)生占空比不同的思考:如何產(chǎn)生占空比不同的周期波?周期波?例例2 P1.72 P1.7驅(qū)動(dòng)驅(qū)動(dòng)LEDLED亮亮1 1秒滅秒滅1 1秒地閃爍,設(shè)時(shí)鐘頻率為秒地閃爍,設(shè)時(shí)鐘頻率為12MHz12MHz。 長定時(shí)方法:長定時(shí)方法:增加一個(gè)軟件計(jì)數(shù)器(如增加一個(gè)軟件計(jì)數(shù)器(如R7)R7), 記錄中斷次數(shù),計(jì)滿記錄中斷次數(shù),計(jì)滿n n個(gè)中斷為個(gè)中斷為1 1秒。秒。
26、 ORG 0000H AJMPMAIN ORG 001BH AJMP PT1INT ORG 0030HSTART: MOV R7,#00H MOV TMOD,#10H MOV TL1,#0F0H MOV TH1,#0D8H SETB EA SETB ET1 SETB TR1HERE: SJMP HEREPT1INT: MOV TL1,#0F0H MOV TH1,#0D8H INC R7 CJNE R7,#100, PEND MOV R7, #00H CPL P1.7PEND: RETI設(shè):每設(shè):每10ms10ms中斷一次,時(shí)間常數(shù)中斷一次,時(shí)間常數(shù)X = 65536-10000 X = 655
27、36-10000 =55536=0D8F0H=55536=0D8F0H中斷次數(shù)中斷次數(shù)n= R7=100n= R7=100。若每若每50ms50ms中斷一次,時(shí)間常數(shù)中斷一次,時(shí)間常數(shù)X = 65536-50000 =15536=3CBOHX = 65536-50000 =15536=3CBOH中斷次數(shù)中斷次數(shù)n= R7=20n= R7=20。例例3 3:在不使用:在不使用T0(T1)T0(T1)時(shí),可以利用定時(shí)器外部引腳時(shí),可以利用定時(shí)器外部引腳T0(T1)T0(T1)作為外部中斷信號(hào)輸入端,擴(kuò)展外部中斷功能。作為外部中斷信號(hào)輸入端,擴(kuò)展外部中斷功能。解:將外部中斷請(qǐng)求信號(hào)接定時(shí)器外部引腳解
28、:將外部中斷請(qǐng)求信號(hào)接定時(shí)器外部引腳T0(T1)T0(T1),定時(shí),定時(shí)器器/ /計(jì)數(shù)器計(jì)數(shù)器T0(T1)T0(T1)設(shè)置為計(jì)數(shù)方式,時(shí)間常數(shù)為設(shè)置為計(jì)數(shù)方式,時(shí)間常數(shù)為FFFFHFFFFH。當(dāng)外。當(dāng)外部負(fù)脈沖一到,立即引起中斷請(qǐng)求。部負(fù)脈沖一到,立即引起中斷請(qǐng)求。一直開通TRX=1GATE=1計(jì)數(shù)計(jì)數(shù)初值FFFFH定時(shí)器中斷標(biāo)志,響應(yīng)中斷后會(huì)自動(dòng)清除 中斷 不動(dòng)作 中斷Tx1 ORG 0000H AJMPMAIN ORG 001BH AJMP PT1INT ORG 0030HSTART: MOV TMOD,#50H MOV TL1,#0FFH MOV TH1, #0FFH SETB EA S
29、ETB ET1 SETB TR1HERE: SJMP HEREPT1INT: MOV TL1,#0FFH MOV TH1, #0FFH : ;中斷處理中斷處理 :PEND: RETI例例4 4:門控方式測(cè)量正脈沖寬度:門控方式測(cè)量正脈沖寬度START: MOV TMOD,#90H ;設(shè)置;設(shè)置T1T1定時(shí),門控,方式定時(shí),門控,方式1 1 MOV TL1,#00H ;設(shè)置;設(shè)置T1T1計(jì)數(shù)值從計(jì)數(shù)值從0 0開始開始 MOV TH1,#00HWAIT1: JBP3.3,WAIT1 SETB TR1WAIT2 :JNBP3.3,WAIT2 WAIT3 : JBP3.3,WAIT3CLRTR1MOV
30、 R2,TL1MOV R3,TH1TR1=1 T1啟動(dòng) TR1=0 T1停止INT1解:解: INT1INT1引腳輸入被檢測(cè)信號(hào),記錄在正脈沖的時(shí)間內(nèi)引腳輸入被檢測(cè)信號(hào),記錄在正脈沖的時(shí)間內(nèi)包含機(jī)器脈沖個(gè)數(shù)。包含機(jī)器脈沖個(gè)數(shù)。設(shè)脈寬小于設(shè)脈寬小于65.5ms65.5ms等待查詢等待查詢INT1INT1,正脈沖過后,讀出,正脈沖過后,讀出TH1TL1TH1TL1。思考:如果脈寬大于思考:如果脈寬大于65.5ms65.5ms,程序如何改進(jìn)?程序如何改進(jìn)?19.4 MCS-51的串行口的串行口( (一一).).異步通訊異步通訊以字符為傳送單位,用起始位和停止位標(biāo)識(shí)每個(gè)字符的開始以字符為傳送單位,用起
31、始位和停止位標(biāo)識(shí)每個(gè)字符的開始和結(jié)束,字符間隔不固定,只需字符傳送時(shí)同步。和結(jié)束,字符間隔不固定,只需字符傳送時(shí)同步。異步通訊常用格式:一個(gè)字符幀異步通訊常用格式:一個(gè)字符幀異步通訊的雙方需要兩項(xiàng)約定:異步通訊的雙方需要兩項(xiàng)約定:1.1.字符格式字符格式一幀字符位數(shù)的規(guī)定:數(shù)據(jù)位,校驗(yàn)位,起始位和停止位。一幀字符位數(shù)的規(guī)定:數(shù)據(jù)位,校驗(yàn)位,起始位和停止位。2.2.波特率波特率( (位位/ /秒秒) )對(duì)傳送速率的規(guī)定對(duì)傳送速率的規(guī)定例:要求每秒傳送例:要求每秒傳送120120個(gè)字符,每幀為個(gè)字符,每幀為1010位。位。解:解: B=120B=12010=120010=1200波特波特每位每位0
32、.83ms0.83ms數(shù)據(jù)位傳輸率數(shù)據(jù)位傳輸率=120=1208=9608=960位位/ /秒秒( (二二).).同步通訊同步通訊以一串字符為一個(gè)傳送單位,字符間不加標(biāo)識(shí)位,在一串字以一串字符為一個(gè)傳送單位,字符間不加標(biāo)識(shí)位,在一串字符開始用同步字符標(biāo)識(shí),硬件要求高,通訊雙方須嚴(yán)格同步。符開始用同步字符標(biāo)識(shí),硬件要求高,通訊雙方須嚴(yán)格同步。D0D1D2D3D4D5D6D7停止位停止位起始位起始位二二. .串行接口功能串行接口功能1.1.發(fā)送器:并發(fā)送器:并串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識(shí)位和校驗(yàn)串?dāng)?shù)據(jù)格式轉(zhuǎn)換,添加標(biāo)識(shí)位和校驗(yàn)位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申請(qǐng)中斷。位,一幀發(fā)送結(jié)束,設(shè)置結(jié)束標(biāo)志,申
33、請(qǐng)中斷。2.2.接收器:串接收器:串并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯(cuò)誤,去掉標(biāo)并數(shù)據(jù)格式轉(zhuǎn)換,檢查錯(cuò)誤,去掉標(biāo)識(shí)位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請(qǐng)中斷。識(shí)位,保存有效數(shù)據(jù),設(shè)置接收結(jié)束標(biāo)志,申請(qǐng)中斷。3.3.控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:控制器:接收編程命令和控制參數(shù),設(shè)置工作方式:同步同步/ /異步、字符格式、波特率、校驗(yàn)方式、數(shù)據(jù)位與同異步、字符格式、波特率、校驗(yàn)方式、數(shù)據(jù)位與同步時(shí)鐘比例等。步時(shí)鐘比例等。三三. .串行數(shù)據(jù)傳送方向串行數(shù)據(jù)傳送方向單工通訊:數(shù)據(jù)單向傳送。單工通訊:數(shù)據(jù)單向傳送。半雙工通訊:數(shù)據(jù)可分時(shí)雙向傳送。半雙工通訊:數(shù)據(jù)可分時(shí)雙向傳送。全雙工通訊:可同時(shí)進(jìn)
34、行發(fā)送和接收。全雙工通訊:可同時(shí)進(jìn)行發(fā)送和接收。發(fā)送器接收器發(fā)送器接收器19.4.2 19.4.2 MCS-51串行控制串行控制 1 1個(gè)全雙工串行接口,可同時(shí)進(jìn)行發(fā)送和接收。個(gè)全雙工串行接口,可同時(shí)進(jìn)行發(fā)送和接收。串行接口輸入串行接口輸入/ /輸出引腳:輸出引腳:TXD(P3.1)TXD(P3.1)、RXD(P3.0)RXD(P3.0)數(shù)據(jù)格式:按不同方式,一幀位數(shù)數(shù)據(jù)格式:按不同方式,一幀位數(shù) 8/10/118/10/11發(fā)送發(fā)送/ /接收接收時(shí),數(shù)據(jù)皆低位在前。時(shí),數(shù)據(jù)皆低位在前。一幀字符發(fā)送一幀字符發(fā)送/ /接收結(jié)束,置位標(biāo)志位接收結(jié)束,置位標(biāo)志位(TI/RI)(TI/RI)并申請(qǐng)并申
35、請(qǐng)SIOSIO中斷。中斷。中斷控制:中斷允許位中斷控制:中斷允許位ESES中斷入口:中斷入口:0023H0023HD0D1D2D3D4D5D6D7停止位停止位起始位起始位D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D8停止位停止位起始位起始位D7串行接口控制串行接口控制1 1. .數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器SBUFSBUF(99H99H)發(fā)送發(fā)送SBUFSBUF和接收和接收SBUFSBUF共用一個(gè)地址共用一個(gè)地址99H99H。 1 1)發(fā)送)發(fā)送 SBUFSBUF存放待發(fā)送的存放待發(fā)送的8 8位數(shù)據(jù),位數(shù)據(jù),寫入寫入SBUFSBUF同時(shí)啟動(dòng)發(fā)送同時(shí)啟動(dòng)發(fā)送。發(fā)送指令:發(fā)送指令:MOV
36、MOVSBUFSBUF,A A2 2)接收)接收 SBUFSBUF存放已接收成功的存放已接收成功的8 8位數(shù)據(jù),供位數(shù)據(jù),供CPUCPU讀取。讀取。讀取串行口接收數(shù)據(jù)指令:讀取串行口接收數(shù)據(jù)指令:MOV AMOV A,SBUFSBUFSM0SM1SM2RENTB8RB8TIRI2 2. .串行口控制串行口控制/ /狀態(tài)寄存器狀態(tài)寄存器SCONSCON(98H)(98H)SM0SM0,SM1SM1:選擇串行口:選擇串行口4 4種工作方式。種工作方式。SM2SM2:多機(jī)控制位,用于多機(jī)通訊。:多機(jī)控制位,用于多機(jī)通訊。RENREN:允許接收控制位,:允許接收控制位,REN=1REN=1,允許接收;
37、,允許接收;REN=0REN=0,禁止接收,禁止接收TB8TB8:發(fā)送的第發(fā)送的第9 9位數(shù)據(jù)位,可用作校驗(yàn)位和地址位數(shù)據(jù)位,可用作校驗(yàn)位和地址/ /數(shù)據(jù)標(biāo)識(shí)位數(shù)據(jù)標(biāo)識(shí)位RB8RB8:接收的第:接收的第9 9位數(shù)據(jù)位或停止位位數(shù)據(jù)位或停止位TITI:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1TI=1,必須軟件清零,必須軟件清零RIRI:接收中斷標(biāo)志,接收一幀結(jié)束,:接收中斷標(biāo)志,接收一幀結(jié)束,RI=1RI=1,必須軟件清零,必須軟件清零3 3. .節(jié)電控制寄存器節(jié)電控制寄存器PCONSMOD(PCON.7) ):波特率加倍控制位。:波特率加倍控制位。SMOD=1,波特率
38、加倍,波特率加倍, SMOD=0,則不加倍。,則不加倍。19.4.3 19.4.3 串行接口的工作方式串行接口的工作方式 方式方式0 0:同步移位寄存器方式。:同步移位寄存器方式。 用于擴(kuò)展并行用于擴(kuò)展并行I/OI/O接口。接口。1 1. .一幀一幀8 8位,無起始位和停止位。位,無起始位和停止位。2 2.RXD.RXD:數(shù)據(jù)輸入:數(shù)據(jù)輸入/ /輸出端。輸出端。 TXDTXD:同步脈沖輸出端,每個(gè)脈沖對(duì)應(yīng)一個(gè)數(shù)據(jù)位。:同步脈沖輸出端,每個(gè)脈沖對(duì)應(yīng)一個(gè)數(shù)據(jù)位。3 3. .波特率波特率B = fosc/12B = fosc/12如:如: fosc=12MHzfosc=12MHz, B=1MHzB=
39、1MHz,每位數(shù)據(jù)占,每位數(shù)據(jù)占1 1 s s。SM0SM0,SM1 SM1 選擇四種工作方式選擇四種工作方式。0 0 0 0 方式方式0 00 1 0 1 方式方式1 11 0 1 0 方式方式2 21 1 1 1 方式方式3 34 4. .發(fā)送過程:寫入發(fā)送過程:寫入SBUFSBUF,啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,TI=1TI=1。 接收過程:接收過程:REN=1REN=1且且RI=0RI=0,啟動(dòng)接收,一幀接收完畢,啟動(dòng)接收,一幀接收完畢,RI=1RI=1。 發(fā)送時(shí)序發(fā)送時(shí)序?qū)懭雽懭隨BUFRXD輸出輸出TXDTID0D1D2D3D4D5D6D7寫寫REN=1RI=0R
40、XD輸入輸入RI 接收時(shí)序接收時(shí)序(a)(b) 數(shù)據(jù)從數(shù)據(jù)從RXDRXD(P3.0P3.0)引腳串行輸出,低位在先,高位在)引腳串行輸出,低位在先,高位在后;后;TXDTXD(P3.1P3.1)引腳輸出移位脈沖,其頻率為)引腳輸出移位脈沖,其頻率為foc/12foc/12;發(fā);發(fā)送完畢后,中斷標(biāo)志位送完畢后,中斷標(biāo)志位TITI為為1 1。 如要發(fā)送數(shù)據(jù),按如下所示發(fā)送:如要發(fā)送數(shù)據(jù),按如下所示發(fā)送: MOV SCON,#00H ;MOV SCON,#00H ;串行口方式串行口方式0 0 MOV SBUF,A ; MOV SBUF,A ;將數(shù)據(jù)送出將數(shù)據(jù)送出 JNB TI,$ ;JNB TI,$
41、 ;等待數(shù)據(jù)發(fā)送完畢等待數(shù)據(jù)發(fā)送完畢移位寄存器方式移位寄存器方式(2) (2) 方式方式1 1 8 8位數(shù)據(jù)異步通訊方式。位數(shù)據(jù)異步通訊方式。1 1. .一幀一幀1010位:位:8 8位數(shù)據(jù)位,位數(shù)據(jù)位,1 1個(gè)起始位個(gè)起始位(0)(0),1 1個(gè)停止位個(gè)停止位(1)(1)。 2 2.RXD.RXD:接收數(shù)據(jù)端。:接收數(shù)據(jù)端。 TXDTXD:發(fā)送數(shù)據(jù)端。:發(fā)送數(shù)據(jù)端。3 3. .波特率:波特率:用用T1作為波特率發(fā)生器,作為波特率發(fā)生器,B=(2B=(2SMOD/32)/32)T1T1溢出率。溢出率。4 4. .發(fā)送:寫入發(fā)送:寫入SBUFSBUF,同時(shí)啟動(dòng)發(fā)送,一幀發(fā)送結(jié)束,同時(shí)啟動(dòng)發(fā)送,一
42、幀發(fā)送結(jié)束,TI=1TI=1。 接收:接收:REN=1REN=1,允許接收。接收完一幀,若,允許接收。接收完一幀,若RI=0RI=0且停止且停止位為位為1 (1 (或或SM2=0)SM2=0),將接收數(shù)據(jù)裝入,將接收數(shù)據(jù)裝入SBUFSBUF,停止位裝入,停止位裝入RB8RB8,并使并使RI=1RI=1;否則丟棄接收數(shù)據(jù),不置位;否則丟棄接收數(shù)據(jù),不置位RIRI。 當(dāng)當(dāng)REN=1REN=1,CPUCPU開始采樣開始采樣RXDRXD引腳負(fù)跳變信號(hào),若出現(xiàn)負(fù)引腳負(fù)跳變信號(hào),若出現(xiàn)負(fù)跳變,才進(jìn)入數(shù)據(jù)接收狀態(tài),先檢測(cè)起始位,若第一位為跳變,才進(jìn)入數(shù)據(jù)接收狀態(tài),先檢測(cè)起始位,若第一位為0 0,繼續(xù)接收其余
43、位;否則,停止接收,重新采樣負(fù)跳變。繼續(xù)接收其余位;否則,停止接收,重新采樣負(fù)跳變。 數(shù)據(jù)采樣速率為波特率數(shù)據(jù)采樣速率為波特率1616倍頻,在數(shù)據(jù)位中間,用第倍頻,在數(shù)據(jù)位中間,用第7 7、8 8、9 9個(gè)脈沖連續(xù)采樣個(gè)脈沖連續(xù)采樣3 3次數(shù)據(jù)位,并次數(shù)據(jù)位,并3 3中取中取2 2保留采樣值。保留采樣值。寫入寫入SBUF采樣采樣(a) 發(fā)送時(shí)序圖發(fā)送時(shí)序圖TXD數(shù)據(jù)輸出數(shù)據(jù)輸出TID0D1D2D3D4D5D6D7停止位停止位起始位起始位RXD輸入數(shù)據(jù)輸入數(shù)據(jù)(b) 接收時(shí)序圖接收時(shí)序圖D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI檢測(cè)檢測(cè)負(fù)跳變負(fù)跳變(3)(3) 方式方式2 2和
44、方式和方式3 39 9位數(shù)據(jù)異步通訊方式。位數(shù)據(jù)異步通訊方式。1 1. .一幀為一幀為1111位:位:9 9位數(shù)據(jù)位,位數(shù)據(jù)位,1 1個(gè)起始位個(gè)起始位(0)(0),1 1個(gè)停止位個(gè)停止位(1)(1)。第第9 9位數(shù)據(jù)位在位數(shù)據(jù)位在TB8/RB8TB8/RB8中,常用作校驗(yàn)位和多機(jī)通訊標(biāo)識(shí)位。中,常用作校驗(yàn)位和多機(jī)通訊標(biāo)識(shí)位。2 2.RXD.RXD:接收數(shù)據(jù)端,:接收數(shù)據(jù)端,TXDTXD:發(fā)送數(shù)據(jù)端。:發(fā)送數(shù)據(jù)端。3 3. .波特率:波特率: 方式方式2 2:B=(2B=(2SMOD/64)/64)fosc fosc 。 方式方式3 3:B=(2B=(2SMOD/32)/32)T1T1溢出率溢出
45、率 。4 4. .發(fā)送:先裝入發(fā)送:先裝入TB8TB8,寫入,寫入SBUFSBUF并啟動(dòng)發(fā)送,發(fā)送結(jié)束,并啟動(dòng)發(fā)送,發(fā)送結(jié)束,TI=1TI=1。 接收:接收:REN=1REN=1,允許接收。接收完一幀,若,允許接收。接收完一幀,若RI=0RI=0且第且第9 9位為位為1 1 ( (或或SM2=0)SM2=0),將接收數(shù)據(jù)裝入接收,將接收數(shù)據(jù)裝入接收SBUFSBUF,第,第9 9位裝入位裝入RB8RB8,使,使RI=1RI=1;否則丟棄接收數(shù)據(jù),不置位否則丟棄接收數(shù)據(jù),不置位RIRI。發(fā)發(fā)送送時(shí)時(shí)序序?qū)懭雽懭隨BUFTXD輸出輸出TIRXD輸入輸入接接收收時(shí)時(shí)序序RID0D1D2D3D4D5D6
46、TB8停止位停止位起始位起始位D7D0D1D2D3D4D5D6RB8停止位停止位起始位起始位D7檢測(cè)檢測(cè)負(fù)跳變負(fù)跳變(4 4)計(jì)算波特率計(jì)算波特率方式方式0 0為固定波特率:為固定波特率:B=fosc/12B=fosc/12方式方式2 2可選兩種波特率:可選兩種波特率: B=(2B=(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3為可變波特率,用為可變波特率,用T1T1作波特率發(fā)生器。作波特率發(fā)生器。B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率T1T1為方式為方式2 2的時(shí)間常數(shù):的時(shí)間常數(shù): X = 2X = 28 8 - t/T - t/T溢出時(shí)間:
47、溢出時(shí)間: t= (2t= (28 8 -X)T = (2-X)T = (28 8 -X)-X)12/ fosc12/ foscT1T1溢出率溢出率=1/t= fosc /12=1/t= fosc /12(2(2n n -X)-X) 波特率波特率B=(2B=(2SMOD /32)/32)fosc/12fosc/12(2(28 8-X)-X)串行口方式串行口方式1 1、3 3,根據(jù)波特率選擇,根據(jù)波特率選擇T1T1工作方式,計(jì)算時(shí)間常數(shù)。工作方式,計(jì)算時(shí)間常數(shù)。T1T1選方式選方式2 2: TH1=X= 2TH1=X= 28 8-fosc/12-fosc/122 2SMOD/(32/(32B)B
48、)T1T1選方式選方式1 1用于低波特率,需考慮用于低波特率,需考慮T1T1重裝時(shí)間常數(shù)時(shí)間。重裝時(shí)間常數(shù)時(shí)間。19.4.419.4.4串行口的應(yīng)用串行口的應(yīng)用串行口初始化編程格式:串行口初始化編程格式:SIO:MOV SCON,#控制狀態(tài)字;寫方式字且控制狀態(tài)字;寫方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 ( MOV TMOD,#20H ) ;T1作波特率發(fā)生器作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率;選定波特率 ( MOV TL1,#X ) ( SETB TR1) ( SETB EA) ;開串行口中斷;開串行口中斷 ( SETB E
49、S)發(fā)送程序:先發(fā)送一個(gè)字符,等待發(fā)送程序:先發(fā)送一個(gè)字符,等待TI=1TI=1后再發(fā)送下一個(gè)字符。后再發(fā)送下一個(gè)字符。1.1.查詢方式查詢方式:TRAM:MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù) MOV SBUF,A ;發(fā)送一個(gè)字符;發(fā)送一個(gè)字符WAIT:JBCTI,NEXT ;等待發(fā)送結(jié)束;等待發(fā)送結(jié)束SJMP WAITNEXT:INCR0 ;準(zhǔn)備下一次發(fā)送;準(zhǔn)備下一次發(fā)送SJMP TRAM2.中斷方式中斷方式: ORG 0023H ;串行口中斷入口;串行口中斷入口 AJMP SINTMAIN: ;初始化編程;初始化編程TRAM: MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù)MOV SBUF,A ;發(fā)送第
50、一個(gè)字符;發(fā)送第一個(gè)字符 H:SJMP H ;其它工作;其它工作 SINT:CLR TI ;中斷服務(wù)程序;中斷服務(wù)程序INC R0MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù)MOV SBUF,A ;發(fā)送下一個(gè)字符;發(fā)送下一個(gè)字符RETI接收程序:接收程序:REN=1REN=1、RI=0RI=0等待接收,當(dāng)?shù)却邮?,?dāng)RI=1RI=1,從,從SBUFSBUF讀取數(shù)據(jù)。讀取數(shù)據(jù)。1.1.查詢方式查詢方式: WAIT:JBCRI,NEXT;查詢等待;查詢等待SJMP WAITNEXT:MOV A,SBUF ;讀取接收數(shù)據(jù);讀取接收數(shù)據(jù)MOV R0,A;保存數(shù)據(jù);保存數(shù)據(jù)INCR0 ;準(zhǔn)備下一次接收;準(zhǔn)備下一次
51、接收SJMP WAIT2.2.中斷方式中斷方式:ORG 0023HAJMP RINTMAIN: ;初始化編程;初始化編程 H:SJMP H ;其它任務(wù);其它任務(wù) RINT:CLRRI ;清中斷標(biāo)志;清中斷標(biāo)志MOV A,SBUF ;讀取接收數(shù)據(jù);讀取接收數(shù)據(jù)MOV R0,A;保存數(shù)據(jù);保存數(shù)據(jù)INCR0RETI(一)(一)串行口串行口方式方式0 0 用于擴(kuò)展單片機(jī)的并行用于擴(kuò)展單片機(jī)的并行I/I/O接口。接口。串行口實(shí)現(xiàn):并行串行口實(shí)現(xiàn):并行串行的數(shù)據(jù)轉(zhuǎn)換串行的數(shù)據(jù)轉(zhuǎn)換74LS165/74LS16474LS165/74LS164實(shí)現(xiàn):串行實(shí)現(xiàn):串行并行的數(shù)據(jù)轉(zhuǎn)換。并行的數(shù)據(jù)轉(zhuǎn)換。SM0 SM1 SM2 REN TB8 RB8TIRID0 D1 D2 D3 D4 D5 D6 D7 數(shù)據(jù)輸入 RXD 9 TXD 移位脈沖 2 74LS165 8051 6 5 4 3 14 13 12 11 D7 D6 D5 D4 D3 D2 D1 D0 數(shù)據(jù)輸出 RXD 1 2 TXD 移位脈沖 74LS164 88051 3 4 5 6 10 11 12 13 串行口擴(kuò)展串行口擴(kuò)展IO接口接口 1、使用移位寄存器作為鎖存或輸入信號(hào)的接口,可以方便地?cái)U(kuò)展并行輸入、輸出口。這種方法不占用片外RAM地址 2、串行口擴(kuò)展并行輸入口 串行口擴(kuò)展并行輸出口串行口擴(kuò)展并行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度文化創(chuàng)意產(chǎn)業(yè)投資入股合同3篇
- 2025年度綠色生態(tài)畜牧業(yè)承包經(jīng)營合同3篇
- 2025年旅游業(yè)績考核服務(wù)合同
- 2025年度派駐企業(yè)產(chǎn)品測(cè)試與認(rèn)證合同范本4篇
- 2025年個(gè)性化借款合同
- 2025年度文化產(chǎn)業(yè)園項(xiàng)目投資與管理合同3篇
- 二零二五年度泥水工施工安全教育與技能培訓(xùn)合同3篇
- 2025年度個(gè)人信用卡透支擔(dān)保合同3篇
- 2025年義務(wù)擔(dān)保合同
- 2025年福建中科生物股份有限公司招聘筆試參考題庫含答案解析
- 乳腺癌的綜合治療及進(jìn)展
- 【大學(xué)課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 信息安全意識(shí)培訓(xùn)課件
- 2024年山東省泰安市初中學(xué)業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 2024安全員知識(shí)考試題(全優(yōu))
- 2024年衛(wèi)生資格(中初級(jí))-中醫(yī)外科學(xué)主治醫(yī)師考試近5年真題集錦(頻考類試題)帶答案
- 中國大百科全書(第二版全32冊(cè))08
- 醫(yī)院出入口安檢工作記錄表范本
評(píng)論
0/150
提交評(píng)論