版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、例 子 講 解如右圖所示,將如右圖所示,將P1口的口的P1.4P1.7作為輸入位,作為輸入位, P1.0P1.3作為作為輸出位。要求利用輸出位。要求利用8031將開(kāi)關(guān)所設(shè)的數(shù)據(jù)讀入將開(kāi)關(guān)所設(shè)的數(shù)據(jù)讀入單片機(jī),并依次通過(guò)單片機(jī),并依次通過(guò)P1.0P1.3輸出,驅(qū)動(dòng)發(fā)輸出,驅(qū)動(dòng)發(fā)光二極管,以檢查光二極管,以檢查P1.4P1.7輸入的電平情況輸入的電平情況高電平高電平LED亮亮?,F(xiàn)要?,F(xiàn)要求采用中斷觸發(fā)方式求采用中斷觸發(fā)方式, 每每中斷一次完成一次操作中斷一次完成一次操作。程序如下:程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030HMAI
2、N:SETB EX0 SETB IT0 SETB EAHERE:SJMP HERE 中斷效勞子程序:中斷效勞子程序:輸入、顯示輸入、顯示 ORG 0200HINTER:MOV P1,#0F0H MOV A,P1 SWAP A MOV P1,A RETI END如右圖所如右圖所示的中斷電路可實(shí)現(xiàn)系示的中斷電路可實(shí)現(xiàn)系統(tǒng)的故障顯示。當(dāng)系統(tǒng)統(tǒng)的故障顯示。當(dāng)系統(tǒng)的各部分正常工作時(shí),的各部分正常工作時(shí),4個(gè)故障源的輸入均為個(gè)故障源的輸入均為低電平,顯示燈全不低電平,顯示燈全不亮。當(dāng)有某個(gè)部分出現(xiàn)亮。當(dāng)有某個(gè)部分出現(xiàn)故障時(shí),那么相應(yīng)的輸入故障時(shí),那么相應(yīng)的輸入線由低電平變?yōu)楦唠娖骄€由低電平變?yōu)楦唠娖?,相?yīng)
3、的發(fā)光二極管點(diǎn),相應(yīng)的發(fā)光二極管點(diǎn)亮。亮。程序如下:程序如下: ORG 0000H AJMP MAIN ORG 0003H AJMP INTER ORG 0030HMAIN:SETB EX0 SETB IT0 SETB EAHERE:SJMP HERE 中斷效勞子程序:中斷效勞子程序: ORG 0100HINTER:JNB P1.0, L1 SETB P1.1L1: JNB P1.2, L2 SETB P1.3L2: JNB P1.4, L3 SETB P1.5L3: JNB P1.6, L4 SETB P1.7L4: RETI END某工業(yè)監(jiān)控系統(tǒng)具有溫度、壓力、某工業(yè)監(jiān)控系統(tǒng)具有溫度、壓力
4、、pH值等多路監(jiān)控功能。在值等多路監(jiān)控功能。在pH值值7時(shí)將向時(shí)將向CPU申請(qǐng)中斷,申請(qǐng)中斷,CPU響應(yīng)后令響應(yīng)后令P3.0引腳輸引腳輸出高電平,經(jīng)驅(qū)動(dòng)使加堿管道電磁閥接通出高電平,經(jīng)驅(qū)動(dòng)使加堿管道電磁閥接通1秒,以調(diào)整秒,以調(diào)整pH值。值。一、電路及分析:一、電路及分析: 中斷懇求輸中斷懇求輸入相當(dāng)于入相當(dāng)于“四輸四輸入的與或門(mén)入的與或門(mén),外電路上升沿外電路上升沿有效。有效。 P1.0P1.3用用于查詢中斷源。于查詢中斷源。 P1.4P1.7用用于去除中斷懇求。于去除中斷懇求。主程序及中斷程序入口部分:主程序及中斷程序入口部分: ORG 0000H LJMP MAIN LJMP INTX0
5、ORG 0030HMAIN:MOV SP,#5FH SETB EX0 SETB IT0 ;下降沿觸發(fā)下降沿觸發(fā) SETB EA SJMP $查詢部分:查詢部分:INTX0:CLR EA PUSH PSW PUSH A SETB EA JB P1.0, DV1 JB P1.1, DV2 JB P1.2, DV3 JB P1.3, DV4EXIT: CLR EA POP A POP PSW SETB EA RETI各裝置的中斷效勞程序部分各裝置的中斷效勞程序部分:DV1: 裝置裝置1的中斷效勞程序的中斷效勞程序 : LJMP EXITDV2: 裝置裝置2的中斷效勞程序的中斷效勞程序 : LJMP
6、EXITDV4: 裝置裝置4的中斷效勞程序的中斷效勞程序 : LJMP EXIT裝置裝置3的中斷效勞程序的中斷效勞程序:DV3:SETB P3.0 LCALL DELAY CLR P3.0 CLR P1.6 SETB P1.6 LJMP EXIT延時(shí)時(shí)間計(jì)算:延時(shí)時(shí)間計(jì)算:8+2+2+4*249+2*100 +2*10+8=1000056S1S延時(shí)延時(shí)1秒的子程序秒的子程序: 設(shè)晶振為設(shè)晶振為12MHzDELAY:PUSH 30H PUSH 31H PUSH 32H MOV 32H,#10DY1: MOV 31H,#100DY2: MOV 30H,#249LY3: NOP NOP DJNZ 3
7、0H,DY3 DJNZ 31H,LY2 DJNZ 32H,LY1 POP 32H POP 31H POP 30H RET應(yīng)用舉例應(yīng)用舉例設(shè)定時(shí)器設(shè)定時(shí)器T0選擇工作形式選擇工作形式0,定時(shí)時(shí)間為,定時(shí)時(shí)間為1ms, osc=6MHz。試確定。試確定T0初值,計(jì)算最大定時(shí)時(shí)間初值,計(jì)算最大定時(shí)時(shí)間T。 解:解: 1求求T0的初值的初值X由公式:由公式:t=213-T0初值初值*機(jī)器周期機(jī)器周期Tcy t=1ms=1000s 機(jī)器周期機(jī)器周期Tcy=12/ osc=12/6000000s=2s得得 1000= 213 -X*2所以初值所以初值 X=8192-500=7692=11110000011
8、00BT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H2最大定時(shí)時(shí)間最大定時(shí)時(shí)間T 當(dāng)當(dāng)T0的初值的初值=0時(shí)為最大定時(shí)時(shí)間時(shí)為最大定時(shí)時(shí)間 T=213 -0*2=8192*2s =16384 s =16.384ms7692 32商為高商為高8位,余數(shù)為低位,余數(shù)為低5設(shè)設(shè)T1以形式以形式0定時(shí),定時(shí)時(shí)間為定時(shí),定時(shí)時(shí)間為1ms, osc=6MHz,編程實(shí)現(xiàn)其定時(shí)功能。編程實(shí)現(xiàn)其定時(shí)功能。解解: 1計(jì)算初值同上,略計(jì)算初值同上,略 F0HTH0,0CHTL02程序清單程序清單 ORG 0000HRESET:AJMP MAIN ORG 000BH AJM
9、P IT0P;主程序;主程序 ORG 0100HMAIN: MOV SP,#5FHMOV TL0,#0CHMOV TH0,#0F0HSETB TR0SETB ET0SETB EASJMP $;中斷效勞程序;中斷效勞程序 ORG 0120HIT0P:MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI利用利用T0的工作形式的工作形式0產(chǎn)生產(chǎn)生1ms的定時(shí),編程實(shí)如今的定時(shí),編程實(shí)如今P1.0引腳上輸出周期為引腳上輸出周期為2ms的方波。設(shè)單片機(jī)的晶振頻的方波。設(shè)單片機(jī)的晶振頻率率 osc=12MHz。解解: 方法:方法:定時(shí)定時(shí)1ms,對(duì),對(duì)P1.0取反,然后繼續(xù)定時(shí)
10、取反,然后繼續(xù)定時(shí)1設(shè)置形式字設(shè)置形式字 TMOD= * 0000B =00000000B=00H 2計(jì)算初值計(jì)算初值由公式:由公式:t=213-T0初值初值*機(jī)器周期機(jī)器周期 t=1ms=1000s,機(jī)器周期機(jī)器周期Tcy=12/ osc=12/12000000s=1s得得 1000= 213 -X*1=8192-X*1所以初值所以初值 X=7192=1110000011000BT0的低的低5位:位:11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms7192 32商為高商為高8位,位,余數(shù)為低余數(shù)為低5位位3程序清單程序清單方法一:中斷方式方法一:中斷方式 OR
11、G 0000HRESET:LJMP MAIN ORG 000BH LJMP CTC0;主程序;主程序 ORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB EA SETB ET0 SETB TR0 SJMP $;中斷效勞程序中斷效勞程序 ORG 0100HCTC0:MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 RETI方法二:查詢方式方法二:查詢方式 ORG 0000HSTART:MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H
12、SETB TR0LOOP: JBC TF0,NEXT SJMP LOOPNEXT: MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 SJMP LOOP可交換為可交換為:LOOP:JNB TF0,$ CLR TF0 MOV TL0,#18H :用定時(shí)器用定時(shí)器T1產(chǎn)生一個(gè)產(chǎn)生一個(gè)50Hz的方波,由的方波,由P1.1輸出。使用輸出。使用程序查詢方式,設(shè)程序查詢方式,設(shè) osc=12MHz。解解: 1計(jì)算初值計(jì)算初值方波周期方波周期T為:為:T=1/50s=0.02s=20ms定時(shí)時(shí)間為:定時(shí)時(shí)間為:t=T/2=10ms=10000s 由公式:由公式: t=216-X*機(jī)器周
13、期機(jī)器周期Tcy因因Tcy=1s,得,得10000= 216-X*1, 10000=65536-XX=55536=D8F0H55536 256商為高商為高8位,位,余數(shù)為低余數(shù)為低8位位 2形式字形式字TMODTMOD=0001*B=10H 3源程序源程序 ORG 0000H MOV TMOD,#10H SETB TR1LP: MOV TH1,#0D8H MOV TL1,#0F0H JNB TF1,$ CLR TF1 CPL P1.1 SJMP LP當(dāng)當(dāng)P3.4引腳上輸入的電平發(fā)生負(fù)跳變時(shí),從引腳上輸入的電平發(fā)生負(fù)跳變時(shí),從P1.0輸出輸出一個(gè)一個(gè)500s的同步脈沖,請(qǐng)編程實(shí)現(xiàn)該功能。的同步脈
14、沖,請(qǐng)編程實(shí)現(xiàn)該功能。 設(shè)設(shè) osc=6MHz。解題思路:解題思路: 先令先令T0以形式以形式2計(jì)數(shù)計(jì)數(shù),其初值設(shè)為,其初值設(shè)為FFH,當(dāng),當(dāng)P3.4引腳上輸入的電平發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加引腳上輸入的電平發(fā)生負(fù)跳變時(shí),計(jì)數(shù)器加1使溢出使溢出標(biāo)志置標(biāo)志置1;然后令然后令T0以形式以形式2定時(shí)定時(shí),使,使P1.0輸出一個(gè)輸出一個(gè)500s的同步負(fù)脈沖。的同步負(fù)脈沖。解解:1、 T0以形式以形式2計(jì)數(shù)計(jì)數(shù) 1計(jì)數(shù)初值計(jì)數(shù)初值 X=0FFH 2形式字形式字 TMOD=*0110B=06H 2、 T0以形式以形式2定時(shí)定時(shí) 1定時(shí)初值定時(shí)初值X計(jì)算計(jì)算 t=500 s , Tcy=2 s由公式:由公式:
15、t=28-X*機(jī)器周期機(jī)器周期Tcy得得 500=256-X*2 X=6 2形式字形式字 TMOD=*0010B=02H 3、程序清單:、程序清單: ORG 0000HSTART:MOV TMOD,#6 ; T0以形式以形式2計(jì)數(shù)計(jì)數(shù) MOV TH0,#0FFH MOV TL0,#0FFH SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 MOV TMOD,#2 ; T0以形式以形式2定時(shí)定時(shí) MOV TH0,#06 MOV TL0,#06 CLR P1.0 SETB TR0 JNB TF0,$ SETB P1.0 CLR TF0 CLR TR0 SJMP START利用定
16、時(shí)器利用定時(shí)器T1的形式的形式2對(duì)外部信號(hào)計(jì)數(shù),要求每計(jì)滿對(duì)外部信號(hào)計(jì)數(shù),要求每計(jì)滿100次對(duì)次對(duì)P1.0端取反。端取反。解:解:1計(jì)算計(jì)數(shù)初值計(jì)算計(jì)數(shù)初值X 100=28-X X=256-100=156=9CH 2形式字形式字 TMOD=0110*B=60H 3程序清單程序清單 ;用中斷方式;用中斷方式 ORG 0000HMAIN:MOV TMOD,#60H MOV TL1,#156 MOV TH1,#156 MOV IE,#88H SETB TR1 SJMP $;中斷效勞程序中斷效勞程序ORG 001BHCPL P1.0RETI設(shè)某單片機(jī)系統(tǒng)中已經(jīng)使用了兩個(gè)外部中斷源,并置設(shè)某單片機(jī)系統(tǒng)中
17、已經(jīng)使用了兩個(gè)外部中斷源,并置定時(shí)器定時(shí)器T1為形式為形式2,作串行口波特率發(fā)生器用。現(xiàn)要,作串行口波特率發(fā)生器用。現(xiàn)要求再增加一個(gè)外部中斷源,并由求再增加一個(gè)外部中斷源,并由P1.0引腳輸出一個(gè)引腳輸出一個(gè)5kHz的方波。的方波。 osc=12MHz。解:解:1、確定定時(shí)器的工作方式、確定定時(shí)器的工作方式 將將T0設(shè)置為形式設(shè)置為形式3計(jì)數(shù),計(jì)數(shù),T0的引腳接外部中斷源,的引腳接外部中斷源,TL0的計(jì)數(shù)初值設(shè)為的計(jì)數(shù)初值設(shè)為FFH,下降沿產(chǎn)生中斷;,下降沿產(chǎn)生中斷;T0的的TH0為為8位定時(shí)器,可產(chǎn)生方波,用中斷方式;位定時(shí)器,可產(chǎn)生方波,用中斷方式;T1設(shè)設(shè)為形式為形式2定時(shí),作串行口的波
18、特率發(fā)生器。定時(shí),作串行口的波特率發(fā)生器。2、計(jì)算各個(gè)初值、計(jì)算各個(gè)初值 1TL0的初值的初值 為為0FFH 2TH0的初值的初值產(chǎn)生產(chǎn)生5kHz的方波的周期為:的方波的周期為:T=1/5000s=0.2ms=200 s因此因此TH0的定時(shí)時(shí)間為:的定時(shí)時(shí)間為:t=T/2=100 s , Tcy=1 s得得 100=256-X*Tcy X=256-100=156 TH1=TL1,由波特率值確定,由波特率值確定3、TMOD值值: 00100111B=27H TCON值值: 01010101B=55H4、程序清單、程序清單: 1中斷入口部分中斷入口部分: ORG 0000HSTART:LJMP M
19、AIN LJMP E0INT ORG 000BH LJMP TL0INT ORG 0013HLJMP E1INTORG 001BHLJMP TH0INT 2主程序部分:主程序部分:MAIN:MOV SP,#5FH MOV TMOD,#27H MOV TL0,#0FFH MOV TH0,#156 MOV TH1,#data MOV TL1,#data MOV IE,#9FH ;開(kāi)中斷;開(kāi)中斷 :3中斷處理程序部分:中斷處理程序部分: TL0溢出中斷效勞程序溢出中斷效勞程序:TL0INT:MOV TL0,#0FFH 外部中斷處理外部中斷處理 RETI TH0溢出中斷效勞程序:溢出中斷效勞程序:TH
20、0INT:MOV TH0,#156 CPL P1.0 ERTI 其它外部中斷效勞程序略其它外部中斷效勞程序略設(shè)某單片機(jī)系統(tǒng)的晶振頻率為設(shè)某單片機(jī)系統(tǒng)的晶振頻率為6MHz,試編寫(xiě)利用,試編寫(xiě)利用T0產(chǎn)產(chǎn)生生1s定時(shí)的程序。定時(shí)的程序。解:解: 1、確定定時(shí)器、確定定時(shí)器T0的工作形式的工作形式 Tcy=2 s形式形式0最長(zhǎng)可定時(shí):最長(zhǎng)可定時(shí):2s*8192=16.384ms形式形式1最長(zhǎng)可定時(shí):最長(zhǎng)可定時(shí):2s*65536=131.072ms形式形式2最長(zhǎng)可定時(shí):最長(zhǎng)可定時(shí):2s*256=512s 選形式選形式1,每隔,每隔100ms中斷一次,中斷中斷一次,中斷10次為次為1s。2、計(jì)算初值、計(jì)
21、算初值X 100000 s=65536-X*2 s X=65536-50000=15536=3CB0H3、實(shí)現(xiàn)的方法、實(shí)現(xiàn)的方法:1計(jì)數(shù)器法計(jì)數(shù)器法;2中斷循環(huán)程序法中斷循環(huán)程序法15536 256商為高商為高8位,位,余數(shù)為低余數(shù)為低8位位4、程序清單:、程序清單:1中斷入口和主程序部分:中斷入口和主程序部分: ORG 0000HSTART:LJMP MAIN ORH 000BH LJMP SERVE ORG 0030HMAIN:MOV SP,#5FH MOV B,#10 MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 ;開(kāi)運(yùn);開(kāi)運(yùn)行行 S
22、ETB ET0 ;開(kāi)中;開(kāi)中斷斷 SETB EA SJMP $2中斷效勞程序部分:中斷效勞程序部分:SERVE: MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0LOOP:RETI END8031與與8155的連接方法的連接方法P2.7=0P2.0=0P2.7=0P2.0=1P2.1P2.6均取均取1設(shè)置設(shè)置8155,使用,使用I/O口和定時(shí)器:使口和定時(shí)器:使A口為根本輸入方口為根本輸入方式,式,B口為根本輸出方式;定時(shí)器作方波發(fā)生器,對(duì)口為根本輸出方式;定時(shí)器作方波發(fā)生器,對(duì)輸入的脈沖進(jìn)展輸入的脈沖進(jìn)展24分頻。試編程實(shí)現(xiàn)之。分頻。試編程實(shí)現(xiàn)之。
23、 思路:思路:先對(duì)定時(shí)器賦初值和設(shè)定輸出波形,向定先對(duì)定時(shí)器賦初值和設(shè)定輸出波形,向定時(shí)器時(shí)器/計(jì)數(shù)器存放器中寫(xiě);再設(shè)定計(jì)數(shù)器存放器中寫(xiě);再設(shè)定A、B口的工作方式口的工作方式和傳輸方向,并啟動(dòng)定時(shí)器工作,向命令存放器中和傳輸方向,并啟動(dòng)定時(shí)器工作,向命令存放器中寫(xiě)。寫(xiě)。 程序段如下:程序段如下:1對(duì)定時(shí)器賦初值和設(shè)定輸出波形:對(duì)定時(shí)器賦初值和設(shè)定輸出波形: 定時(shí)器定時(shí)器/計(jì)數(shù)器存放器地址:計(jì)數(shù)器存放器地址:7F04H、7F05HMOV DPTR,#7F04HMOV A,#24MOVX DPTR,A INC DPTRMOV A,#01000000BMOVX DPTR,A2設(shè)定設(shè)定A、B口的工作方
24、式并啟動(dòng)定時(shí)器工作:口的工作方式并啟動(dòng)定時(shí)器工作: 命令存放器地址:命令存放器地址:7F00HMOV DPTR,#7F00HMOV A,#11000010BMOVX DPTR,A 8051單片機(jī)的時(shí)鐘振蕩頻率為單片機(jī)的時(shí)鐘振蕩頻率為11.0592MHz,選用定,選用定時(shí)器時(shí)器T1工作于形式工作于形式2作為波特率發(fā)生器,波特率為作為波特率發(fā)生器,波特率為2400b/s。求。求T1的初值的初值X,并編寫(xiě)初始化程序段。,并編寫(xiě)初始化程序段。解:設(shè)波特率加倍位解:設(shè)波特率加倍位SMOD=0 X=256-11.0592 106 0+10+1/ /38438424002400 =244 =244 =F4H
25、 =F4H 初始化程序段:初始化程序段: :MOV TMOD,#20HMOV TH1,#0F4HMOV TL1,#0F4HSETB TR1 :用用8051串行口外接串行口外接CD4049或或74LS164串入串入-并出移位并出移位存放器,擴(kuò)展存放器,擴(kuò)展8位并行口。位并行口。8位并行口的每位都接位并行口的每位都接一個(gè)發(fā)光二極管,要求發(fā)光二極管從左到右他延遲一個(gè)發(fā)光二極管,要求發(fā)光二極管從左到右他延遲的輪流顯示,并且不斷循環(huán)。設(shè)發(fā)光二極管為共陰的輪流顯示,并且不斷循環(huán)。設(shè)發(fā)光二極管為共陰極接法,如以下圖所示。極接法,如以下圖所示。 STB為高電平時(shí)允許并行輸出為高電平時(shí)允許并行輸出選通選通串入串
26、入并出移位寄存器并出移位寄存器解:采用中斷方式發(fā)送;解:采用中斷方式發(fā)送;逐位輸出高電平逐位輸出高電平使二極管輪使二極管輪流發(fā)光;顯示延時(shí)通過(guò)調(diào)用延時(shí)子程序?qū)崿F(xiàn)。流發(fā)光;顯示延時(shí)通過(guò)調(diào)用延時(shí)子程序?qū)崿F(xiàn)。 程序如下:程序如下: 中斷服務(wù)子程序中斷服務(wù)子程序SETB P1.0LCALL DELAYCLR TIRR ACLR P1.0MOV SBUF, ARETI 主程序主程序 ORG 0023H LJMP SBR ORG 0030H MOV SCON,#0 SETB ES SETB EA MOV A,#80H CLR P1.0 MOV SBUF,A SJMP $SBR:循環(huán)右移循環(huán)右移用用8051
27、的的串行口以方式串行口以方式1發(fā)送發(fā)送ASCII數(shù)據(jù)塊,要求波特?cái)?shù)據(jù)塊,要求波特率為率為1200b/s,進(jìn)展校驗(yàn)進(jìn)展校驗(yàn)。試編寫(xiě)。試編寫(xiě)采用查詢方式采用查詢方式發(fā)送發(fā)送的程序。設(shè)數(shù)據(jù)在片內(nèi)的程序。設(shè)數(shù)據(jù)在片內(nèi)RAM的的20H3FH單元單元, osc=11.0592MHz。解解:1最高位作校驗(yàn)位,最高位作校驗(yàn)位,采用奇校驗(yàn)采用奇校驗(yàn),P最高位最高位 2用定時(shí)器用定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1以形式以形式2定時(shí)定時(shí),作為波特,作為波特率率 發(fā)生器;計(jì)算初值,由發(fā)生器;計(jì)算初值,由初值初值X=X= 2N - oscSMOD+1SMOD+1/ /384384波特率值波特率值這里這里 N=8, osc=11.0
28、592MHz 波特率為波特率為1200b/s, 取取 SMOD=0 PCON=00H得得 初值初值X=232D=0X=232D=0E8H。 3TMOD=00100000B=20H 4SCON=01000000B=40H5程序清單:程序清單: 主程序主程序 MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV SCON,#40HMOV R0,#20HMOV R7,#32MOV A,R0LCALL SP-OUTJNB P, ERRORINC R0DJNZ R7, LP :串行口發(fā)送子程序串行口發(fā)送子程序 MOV C,P CPL C MOV ACC.7
29、, C MOV SBUF,A JNB TI, $ CLR TI RETERROR: (略)(略)SP-OUT: P為為0說(shuō)明發(fā)送出的數(shù)據(jù)中有說(shuō)明發(fā)送出的數(shù)據(jù)中有偶數(shù)個(gè)偶數(shù)個(gè)1,是錯(cuò)誤的。,是錯(cuò)誤的。LP:用用8051的串行口以方式的串行口以方式1接收帶奇偶校驗(yàn)位的數(shù)據(jù)塊接收帶奇偶校驗(yàn)位的數(shù)據(jù)塊與上題配合。試編寫(xiě)采用查詢方式的程序,接與上題配合。試編寫(xiě)采用查詢方式的程序,接收的數(shù)據(jù)放在片內(nèi)收的數(shù)據(jù)放在片內(nèi)RAM的的20H3FH單元。單元。 osc=11.0592MHz。解解:1最高位為校驗(yàn)位采用奇校驗(yàn),最高位為校驗(yàn)位采用奇校驗(yàn),應(yīng)去掉應(yīng)去掉 2用定時(shí)器用定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1以形式以形式2定時(shí)定
30、時(shí),作為波特,作為波特率率 發(fā)生器;計(jì)算初值,由發(fā)生器;計(jì)算初值,由初值初值X=X= 2N - oscSMOD+1SMOD+1/ /384384波特率值波特率值這里這里 N=8, osc=11.0592MHz 波特率為波特率為1200b/s, 取取 SMOD=0 PCON=00H得得 初值初值X=232D=0X=232D=0E8H。 3TMOD=00100000B=20H 4SCON=01010000B=50H5程序清單:程序清單: 主程序主程序MOV SCON,#50H MOV PCON,#0MOV TMOD,#20HMOV TL1,#0E8HMOV TH1,#0E8HSETB TR1MOV
31、 R0,#20HMOV R7,#32LCALL SP-INJC ERRORMOV R0,AINC R0DJNZ R7, LP :串行口接收子程序串行口接收子程序 JNB RI, $ CLR RI MOV SBUF,A MOV C,P CPL C ANL A,#7FH RETERROR: (略)(略)SP-IN:LP: C為為1說(shuō)明接收的數(shù)據(jù)有說(shuō)明接收的數(shù)據(jù)有偶數(shù)個(gè)偶數(shù)個(gè)1,是錯(cuò)誤的(因采用奇校驗(yàn))。,是錯(cuò)誤的(因采用奇校驗(yàn))。8031串行口按雙工方式收發(fā)串行口按雙工方式收發(fā)ASCII字符,最高位用來(lái)字符,最高位用來(lái)作奇偶校驗(yàn)位,作奇偶校驗(yàn)位,采用奇校驗(yàn)采用奇校驗(yàn),要求傳送的波特率為,要求傳送的
32、波特率為1200b/s,用中斷方式收發(fā)用中斷方式收發(fā),試編寫(xiě)程序。設(shè)發(fā)送的,試編寫(xiě)程序。設(shè)發(fā)送的數(shù)據(jù)的首地址為數(shù)據(jù)的首地址為20H,接收的數(shù)據(jù)放在從,接收的數(shù)據(jù)放在從40H開(kāi)場(chǎng)的開(kāi)場(chǎng)的單元。單片機(jī)的振蕩頻率為單元。單片機(jī)的振蕩頻率為 osc=6MHz。解:解:1最高位作校驗(yàn)位,最高位作校驗(yàn)位,采用奇校驗(yàn)采用奇校驗(yàn),P最高位最高位 2用定時(shí)器用定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器1以形式以形式2定時(shí)定時(shí),作為波特,作為波特率率 發(fā)生器;計(jì)算初值,由發(fā)生器;計(jì)算初值,由初值初值X=X= 2N - oscSMOD+1SMOD+1/ /384384波特率值波特率值這里這里 N=8, osc=6MHz 波特率為波特率為
33、1200b/s, 取取 SMOD=0, PCON=00H得得 初值初值X=243D=0X=243D=0F3H。 3TMOD=00100000B=20H 4SCON=01010000B=50H 4程序清單:程序清單: 主程序主程序ORG 0000HMOV TMOD,#20HMOV TL1,#0F3HMOV TH1,#0F3HSETB TR1MOV SCON,#50HMOV PCON,#0MOV R0,#20HMOV R1,#40HLCALL SOUTSETB ESSETB EASJMP $ 接收子程序接收子程序CLR RIMOV A,SBUFMOV C,PCPL CANL A,#7FHMOV R1, AINC R1RETSIN:SEND:NEXT: 中斷服務(wù)程序中斷服務(wù)程序ORG 0023HJNB RI, SENDLCALL SINSJMP NEXTLCALL SOUTRETI 發(fā)送子程序發(fā)送子程序CLR TIMOV A,R0MOV C, PCPL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 云計(jì)算軟件架構(gòu)-深度研究
- 農(nóng)業(yè)生物安全-深度研究
- 基于歷史數(shù)據(jù)的負(fù)荷預(yù)測(cè)方法-深度研究
- 智能棚膜自清潔技術(shù)-深度研究
- 2025年常州信息職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 基于腸道菌群和代謝組學(xué)探討黃芩清熱除痹膠囊改善類(lèi)風(fēng)濕關(guān)節(jié)炎的作用機(jī)制
- Se(Ⅵ)對(duì)豬糞好氧堆肥溫室氣體釋放和有機(jī)物轉(zhuǎn)化的影響研究
- 金屬窗施工方案
- 珠海美式花園施工方案
- 2025年安徽中澳科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年常考版參考題庫(kù)含答案解析
- 餐廚垃圾收運(yùn)安全操作規(guī)范
- 皮膚內(nèi)科過(guò)敏反應(yīng)病例分析
- 電影《獅子王》的視聽(tīng)語(yǔ)言解析
- 妊娠合并低鉀血癥護(hù)理查房
- 煤礦反三違培訓(xùn)課件
- 向流程設(shè)計(jì)要效率
- 2024年中國(guó)航空發(fā)動(dòng)機(jī)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 當(dāng)代中外公司治理典型案例剖析(中科院研究生課件)
- 動(dòng)力管道設(shè)計(jì)手冊(cè)-第2版
- 2022年重慶市中考物理試卷A卷(附答案)
- Python繪圖庫(kù)Turtle詳解(含豐富示例)
評(píng)論
0/150
提交評(píng)論