




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、試卷形式(xngsh)閉卷填空題(15分)簡答題(35分)編程題(20分)綜合(zngh)設(shè)計(jì)(30分)共一百三十六頁第一章 MCS51單片機(jī)的結(jié)構(gòu)(jigu) 一、MCS-51單片機(jī)的基本組成二、MCS-51單片機(jī)內(nèi)部結(jié)構(gòu) 1. 運(yùn)算器 2. 控制器 3. 存儲器 4. I/O接口三、MCS-51單片機(jī)引腳及其功能四、8051存儲器配置五、CPU時(shí)序六、復(fù)位(f wi)七、輸入/輸出端口共一百三十六頁內(nèi)中斷振蕩器和時(shí)序OSC程序存儲器4KB ROM數(shù)據(jù)存儲器256B RAM/SFR216位定時(shí)器/計(jì)數(shù)器64KB總線擴(kuò)展控 制 器可編程I/O可編程全雙工串行口8051CPU外部時(shí)鐘源外部事件計(jì)
2、數(shù)外中斷控制并行口串行通訊共一百三十六頁P(yáng)SWAccB 寄存(jcn) 器共一百三十六頁CYACF0RS1RS0OV-PPSW共一百三十六頁 控制器寄存器包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、堆棧指針(zhzhn)寄存器、數(shù)據(jù)指針寄存器和時(shí)鐘電路等。 共一百三十六頁堆棧(duzhn)SP堆棧是一組編有地址碼的特殊存儲單元。SP可以指向8051片內(nèi)00H7FH RAM的任何單元。系統(tǒng)復(fù)位后,SP初始化為07H。 51系統(tǒng)的堆棧屬于“向上生成”的編址方式,SP指針指示堆棧棧頂?shù)刂?,?shù)據(jù)壓棧時(shí)SP先自動增“1”,然后將數(shù)據(jù)壓入SP所指示的單元;彈出時(shí),先將SP所指示的堆棧元內(nèi)的數(shù)據(jù)彈出
3、,然后SP自動減“1”。堆棧存取信息(xnx)是按“后進(jìn)先出”或“先進(jìn)后出”的原則進(jìn)行的。共一百三十六頁數(shù)據(jù)(shj)指針DPTR16位專用寄存器(51系統(tǒng)中唯一的一個(gè)可供用戶使用(shyng)的16位寄存器),由DPH和DPL組成。提供對外部RAM(I/O)的訪問,擴(kuò)展地址空間最大為216=64KB。DPTR常用于調(diào)用、轉(zhuǎn)移、訪問外部數(shù)據(jù)存儲器和查表等指令中。共一百三十六頁程序(chngx)存儲器空間數(shù)據(jù)(shj)存儲器空間片內(nèi)程序存 儲 器空 間片外程序存 儲 器空 間片內(nèi)數(shù)據(jù)存 儲 器空 間片外程序存 儲 器空 間共一百三十六頁8051存儲器地址空間(kngjin)分為三類:片內(nèi)、片外統(tǒng)
4、一編址0000HFFFFH的64KB程序(chngx)存儲器地址空間(16位地址) 64KB片外數(shù)據(jù)存儲器地址空間,地址也從0000HFFFFH編址(16位地址) 256B數(shù)據(jù)存儲器地址空間(8位地址) 共一百三十六頁SFRRAM7F00FF808051片內(nèi)存儲器4KBROMEA=100000FFF64KBROMEA=000000FFF1000FFFF000064KBRAM(I/O)FFFF片外擴(kuò)展存儲器共一百三十六頁1. 程序存儲器地址(dzh)空間 程序存儲器用于存放編好的程序和表格常數(shù),它通過16位程序計(jì)數(shù)器尋址,尋址能力位64KB。 89C51片內(nèi)ROM/EPROM的容量為4KB,地址
5、(dzh)為0000H0FFFH,片外最多可擴(kuò)至64KB ROM/EPROM,地址為1000HFFFFH,片內(nèi)外統(tǒng)一編址。 引腳EA1(接高電平),PC在0000H0FFFH范圍內(nèi)執(zhí)行片內(nèi)ROM; 引腳EA0(接地),8051片內(nèi)ROM不起作用,CPU只能從片外ROM/EPROM中取指令,地址可以從0000H開始編址。 8031片內(nèi)不帶ROM,所以使用時(shí)必須使EA0,這樣才能從片外擴(kuò)展的EPROM中取指令。 需要指出的是:8051從片內(nèi)程序存儲器和片外程序存儲器取指時(shí)執(zhí)行速度相同。 共一百三十六頁 程序存儲器的0000H0002H單元被保留用于程序的起始(q sh)。從0003H0032H單元
6、被保留專用于中斷服務(wù)程序 存儲單元保留目的0000H0002H復(fù)位后初始化引導(dǎo)程序0003H 000AH外部中斷0000BH 0012H定時(shí)器0溢出中斷0013H 001AH外部中斷1001BH 002AH定時(shí)器1溢出中斷0023H 002AH串行端口中斷002BH定時(shí)器2中斷(8052才有)共一百三十六頁中斷源中斷服務(wù)程序入口地址外部中斷0(INT0)0003H定時(shí)器/計(jì)數(shù)器0溢出000BH外部中斷10013H定時(shí)器/計(jì)數(shù)器1溢出001BH串行口0023H共一百三十六頁片外RAM 8051片外數(shù)據(jù)存儲器空間為64KB,地址從0000HFFFFH,需要注意的是,片外數(shù)據(jù)存儲器的地址部分(b f
7、en)與片內(nèi)數(shù)據(jù)存儲器空間(0000H00FFH)是重疊的,片內(nèi)、片外的區(qū)別是靠MOV和MOVX兩個(gè)指令來區(qū)分的。2. 數(shù)據(jù)存儲器地址(dzh)空間 數(shù)據(jù)存儲器在物理上和邏輯上分為兩個(gè)地址空間內(nèi)部數(shù)據(jù)存儲器、外部數(shù)據(jù)存儲器。訪問內(nèi)部數(shù)據(jù)存儲器用MOV指令;訪問外部數(shù)據(jù)存儲器用MOVX指令。 共一百三十六頁片內(nèi)RAM片內(nèi)數(shù)據(jù)存儲器分為兩個(gè)部分(b fen): 00H7FH(0127)單元組成的低128字節(jié)的RAM區(qū); 80HFFH單元組成的特殊功能寄存器(SFR)。共一百三十六頁用戶RAM區(qū)(堆棧、數(shù)據(jù)緩沖)位尋址區(qū)(位地址00H7FH)R7 第3組 R0 工作寄存器區(qū) R7 第2組 R0 工作
8、寄存器區(qū)R7 第1組 R0 工作寄存器區(qū)R7 第0組 R0 工作寄存器區(qū)00H07H08H0FH10H17H18H1FH20H2FH30H7FHB* 特 ACC* 殊 PSW* 功 IP* 能 P3* 寄 IE* 存 P2* 器 SBUF 區(qū) SCON* SFR P1* TH1 TH0 TL1 TL0 TMOD TCON* PCON DPH DPL SP P0* 81H82H83H87H88H89H8AH8BH8CH8DH90H98H99HA0HA8HB0HB8HD0HE0HF0H80HFFH共一百三十六頁 00H1FH地址安排為四組工作(gngzu)寄存器區(qū),每組有8個(gè)工作寄存器(R0R7)
9、,占32個(gè)單元; 從20H2FH共16個(gè)字節(jié)(z ji)單元中,共包含了128位既可位尋址又可字節(jié)尋址; 30H7FH共80個(gè)字節(jié)單元為字節(jié)尋址的內(nèi)部RAM區(qū)。 由此可見,低128RAM分為三個(gè)部分:工作寄存器區(qū);位尋址RAM區(qū);字節(jié)尋址RAM區(qū)。不用的工作寄存器單元,可作RAM用,不用的位尋址單元可進(jìn)行字節(jié)尋址的RAM用。 共一百三十六頁寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0 P3FFHSCON00HIPxx000000BSBUF不定IE0 x000000BPCON0 x
10、xx0000BTMOD00H共一百三十六頁 在單片機(jī)系統(tǒng)的實(shí)際應(yīng)用中,常把單片機(jī)的復(fù)位(f wi)分為冷啟動和熱啟動。 單片機(jī)的啟動(qdng)共一百三十六頁8051單片機(jī)有四個(gè)8位并行I/O端口:P0、P1、P2和P3,每個(gè)端口都是8位準(zhǔn)雙向口,每一條I/O線都能獨(dú)立地用作輸入或輸出。每個(gè)端口都包括一個(gè)鎖存器,一個(gè)輸出驅(qū)動器和輸入緩沖器。四個(gè)通道功能不完全相同。在無片外擴(kuò)展存儲器的系統(tǒng)中,四個(gè)P口都可以作為準(zhǔn)雙向通用I/O口使用(shyng)。在有片外擴(kuò)展存儲器的系統(tǒng)中,P2口送出高8位地址,P0口為雙向總線,分時(shí)送出低8位地址和數(shù)據(jù)。共一百三十六頁 并行I/O口的負(fù)載(fzi)能力 P1、
11、P2、P3口的輸出緩沖器可驅(qū)動4個(gè)LSTTL的電路。 作為輸入口時(shí),任何TTL或NMOS電路都能以正常的方式驅(qū)動8051單片機(jī)的P1P3口,由于輸出級接有內(nèi)部上拉電阻,也可以被集電極開路(OC門)或漏極開路所驅(qū)動,而無需外接上拉電阻。此外(cwi),作輸入時(shí),必須先在相應(yīng)端口鎖存器上寫1。 共一百三十六頁 P0口的輸出緩沖器可驅(qū)動8個(gè)LSTTL電路(dinl),驅(qū)動MOS電路需外接上拉電阻,但當(dāng)P0口用作地址/數(shù)據(jù)總線時(shí),可直接驅(qū)動MOS的輸入而不必外加上拉電阻。 并行I/O口的負(fù)載(fzi)能力 共一百三十六頁第二章 8051指令系統(tǒng)(zh ln x tn) 指令(zhlng)和程序設(shè)計(jì)語言
12、 指令格式 尋址方式 指令系統(tǒng)分類 數(shù)據(jù)的傳送指令 算術(shù)運(yùn)算指令 邏輯運(yùn)算及移位指令 控制轉(zhuǎn)移指令 位操作指令或布爾操作共一百三十六頁操作碼地址碼70單字節(jié)指令(zhlng)(49條)操作碼地址碼數(shù)據(jù)或地址碼7070操作碼數(shù)據(jù)或地址碼數(shù)據(jù)或地址碼雙字節(jié)(z ji)指令(45條)三字節(jié)指令(17條)共一百三十六頁序號尋址方式相應(yīng)存貯器、寄存器空間1工作寄存器R0R7A,B,Cy(位),DPTR2片內(nèi)RAM低128B和特殊功能寄存器3片內(nèi)RAM低128B(R1,R0,SP)片外RAM( R1,R0 ,DPTR)4程序存儲器立即數(shù)5程序存儲器(A+DPTR,A+PC)6程序存儲器256B范圍(PC+
13、偏移量)7片內(nèi)RAM的20H2FH字節(jié)地址部分特殊功能寄存器寄存器尋址直接(zhji)尋址寄存器間接(jin ji)尋址立即尋址基址寄存器加變址寄存器間接尋址相對尋址位尋址共一百三十六頁 無條件轉(zhuǎn)移(zhuny)類指令 條件(tiojin)轉(zhuǎn)移類指令 循環(huán)轉(zhuǎn)移類指令共一百三十六頁 子程序調(diào)用(dioyng)類指令短調(diào)用(dioyng)指令A(yù)CALLaddr11;(PC)+2PC (SP)+1 SP (PC 07) (SP) (SP)+1 SP (PC 815) (SP) addr 010 (PC 010) (PC 1115)不變 該指令提供低11位目標(biāo)地址,被調(diào)子程序被限制在以當(dāng)前PC值為首地
14、址的2K字節(jié)地址空間內(nèi)調(diào)用。高5位地址不變。不影響標(biāo)志位共一百三十六頁長調(diào)用(dioyng)指令LCALLaddr16;(PC)+3PC (SP)+1 SP (PC 07) (SP) (SP)+1 SP (PC 815) (SP) addr 015 (PC) LCALL提供16位目標(biāo)地址,以調(diào)用(dioyng)64K字節(jié)范圍內(nèi)所指定的子程序。 不影響標(biāo)志位共一百三十六頁 短調(diào)用(dioyng)指令為雙字節(jié)指令,用于目標(biāo)地址在當(dāng)前指令的2K字節(jié)范圍內(nèi)的調(diào)用。優(yōu)點(diǎn):可節(jié)省一個(gè)字節(jié)的存儲單元缺點(diǎn):被調(diào)用子程序的存放區(qū)域受到限制 長調(diào)用(dioyng)指令為三字節(jié)指令,可調(diào)用(dioyng)64K字節(jié)
15、存儲空間的任一目標(biāo)地址。優(yōu)點(diǎn):可在64K字節(jié)存儲空間內(nèi)任意存放,為編程帶來方便缺點(diǎn):與短調(diào)用指令相比,指令多占用了一個(gè)字節(jié)的存儲單元。共一百三十六頁 返回(fnhu)類指令子程序返回(fnhu)指令 RET;(SP)(PC815) (SP) -1 (SP) (SP)(PC07) (SP) -1 (SP)中斷服務(wù)程序返回指令 RETI;(SP)(PC815) (SP) -1 (SP) (SP)(PC07) (SP) -1 (SP)共一百三十六頁 RETI為專用于中斷服務(wù)程序的返回指令,除正確返回中斷斷點(diǎn)處繼續(xù)往下執(zhí)行主程序外,并告知中斷系統(tǒng),表示已結(jié)束中斷服務(wù)程序的執(zhí)行,恢復(fù)中斷邏輯以接受新的中
16、斷請求,如果在執(zhí)行RETI指令時(shí)已有一個(gè)(y )同級或較低級中斷請求,或者正在執(zhí)行RETI指令時(shí)有高級中斷提出請求,均需在執(zhí)行完RETI指令后,必須返回?cái)帱c(diǎn)再執(zhí)行完一條原程序指令后才響應(yīng)新的中斷請求,轉(zhuǎn)去執(zhí)行新的中斷服務(wù)程序。共一百三十六頁 轉(zhuǎn)移(zhuny)類指令 無條件轉(zhuǎn)移(zhuny)指令 短轉(zhuǎn)移指令:AJMPaddr11; (PC) + 2 PC addr11 PC 100 (PC 1511)不變長轉(zhuǎn)移指令: LJMPaddr16; addr16 PC 相對轉(zhuǎn)移指令SJMPrel; (PC) + 2 PC (PC) + rel PC 共一百三十六頁間接(jin ji)轉(zhuǎn)移指令JMPA
17、+ DPTR; (A) + (PC) PC 空操作(cozu)指令NOP; (PC) + 1 (PC)共一百三十六頁(PC)地址 程序存儲器 AJMP addr11+22KB程序轉(zhuǎn)移范圍共一百三十六頁64KB(PC) 地址 0000H程序存儲器 AJMP addr11FFFFH+2+1+3程序轉(zhuǎn)移范圍共一百三十六頁SJMP程序存儲器地址 (PC)+2rel128+127程序轉(zhuǎn)移范圍126+129共一百三十六頁SJMP$HERE:SJMPHERE共一百三十六頁256B地址(dzh) (PC)程序(chngx)存儲器JMP A + DPTR(DPTR)轉(zhuǎn)向以DPTR內(nèi)容為首地址的256字節(jié)范圍內(nèi)共
18、一百三十六頁第三章、中斷(zhngdun)系統(tǒng) 有關(guān)中斷的概念 MCS-51中斷系統(tǒng)的結(jié)構(gòu) 響應(yīng)中斷的條件和過程 關(guān)于外部(wib)中斷 中斷響應(yīng)時(shí)間共一百三十六頁共一百三十六頁中斷響應(yīng)(xingyng)的條件: 有中斷(zhngdun)源發(fā)出中斷(zhngdun)請求; EA1,即CPU開中斷; 申請中斷的中斷源的中斷允許位為1,即中斷沒有被屏蔽 ; 無同級或高優(yōu)先級中斷正在服務(wù)中; 當(dāng)前的指令已執(zhí)行到最后一個(gè)機(jī)器周期并已結(jié)束 ; 若現(xiàn)行指令為RETI或者是訪問IE或IP指令時(shí),該指令以及緊接著的另一條指令已經(jīng)執(zhí)行完。 共一百三十六頁中斷響應(yīng)(xingyng)過程S6P2S5M1M2M4M3
19、中斷有效中斷鎖存中斷查詢長調(diào)用到中斷矢量地址中斷服務(wù)程序M5共一百三十六頁第四章 定時(shí)(dn sh)/計(jì)數(shù)器及應(yīng)用1、 51定時(shí)/計(jì)數(shù)器的基本原理2、 定時(shí)/計(jì)數(shù)器控制與狀態(tài)寄存器3、 定時(shí)/計(jì)數(shù)器的四種工作方式4、 定時(shí)器/計(jì)數(shù)器的定時(shí)/計(jì)數(shù)范圍5、 編程中需考慮的問題(wnt)6、 應(yīng)注意的問題共一百三十六頁振蕩器12分頻(fn pn)TFxTLxTHxC/T=0T1引腳C/T=1TRXINTXGATE共一百三十六頁定時(shí)/計(jì)數(shù)器控制(kngzh)與狀態(tài)寄存器GATEC/TM1M0GATEC/TM1M0用于T1用于T0TOMDM1 M0工作方式功能描述00方式013位計(jì)數(shù)器01方式116位計(jì)
20、數(shù)器10方式2自動再裝入8位計(jì)數(shù)器11方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù) 工作方式(fngsh)控制寄存器共一百三十六頁用于定時(shí)/計(jì)數(shù)器用于中斷TF1TR1TF0TR0IE1IT1IE0IT0TCON 控制(kngzh)寄存器共一百三十六頁工作(gngzu)方式0 定時(shí)器/計(jì)數(shù)器的工作方式(fngsh)0稱之為13位定時(shí)/計(jì)數(shù)方式。它由TL(1/0)的低5位和TH(0/1)的8位構(gòu)成13位的計(jì)數(shù)器,此時(shí)TL(1/0)的高3位未用。 共一百三十六頁共一百三十六頁工作(gngzu)方式1 工作方式(fngsh)1是16位的定時(shí)/計(jì)數(shù)方式,將M1M0設(shè)為01即可,其它特性與工作方式
21、0相同。 共一百三十六頁工作(gngzu)方式2 共一百三十六頁工作(gngzu)方式3 共一百三十六頁工作方式0:13位定時(shí)/計(jì)數(shù)方式,因此,最多可以(ky)計(jì)到213,也就是8192次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間的計(jì)算:t=(213-Tx初值)振蕩周期12工作方式1:16位定時(shí)/計(jì)數(shù)(j sh)方式,因此,最多可以計(jì)到216,也就是65536次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間的計(jì)算: t=(216-Tx初值)振蕩周期12 共一百三十六頁工作(gngzu)方式2和工作方式3:都是8位的定時(shí)/計(jì)數(shù)方式,因此,最多可以計(jì)到28,也說是256次。定時(shí)工作方式時(shí),其定時(shí)時(shí)間的計(jì)算:t=(28-Tx初值)
22、振蕩周期12 共一百三十六頁根據(jù)應(yīng)用要求,通過程序初始化,正確設(shè)置控制字,正確計(jì)算和設(shè)置計(jì)數(shù)初值;編寫中斷復(fù)位程序;適時(shí)設(shè)置控制位等,通常情況下設(shè)置順序(shnx)大致如下:工作方式控制字(TMOD)的設(shè)置;計(jì)數(shù)初值的計(jì)算及裝入TLx、THx;中斷允許位、TRx的設(shè)置等。MCS-51的定時(shí)/計(jì)數(shù)器的應(yīng)用(yngyng)編程需考慮:共一百三十六頁(1)初始化程序(chngx) START:MOVSP, 60H ;設(shè)置堆棧區(qū)域 MOVTMOD,10H ;選擇T1、定時(shí)模式,方式1 MOVTHl,0D8H ;設(shè)置高字節(jié)初值 MOVTLl,0FOH ;設(shè)置低字節(jié)初值開中斷 SETBEA ; SETBE
23、T1 ; ;其它初始化等主程序 MOV B,01H ;將循環(huán)(xnhun)初值保存在B中 SETBTRl ;啟動定時(shí)計(jì)數(shù)器1(T1) ;繼續(xù)主程序 開中斷共一百三十六頁(2)中斷(zhngdun)服務(wù)子程序INT1: ; ;MOVTL1,#0F0H ;MOVTH1,#0D6H ;MOVA,B ;保存在B中值送ARLA ;A內(nèi)容循環(huán)(xnhun)左移一位MOVP1,A ;A內(nèi)容送P1口輸出MOVB,A ;循環(huán)內(nèi)容送B保存中斷結(jié)束處理, 如保護(hù)參數(shù)出棧等 ; ;RETI ;中斷結(jié)束返回中斷初值處理,如參數(shù)進(jìn)棧保護(hù)等重新置初值中斷結(jié)束處理,如保護(hù)參數(shù)出棧等共一百三十六頁注意(zh y)點(diǎn):TMOD控
24、制著T0和T1的方式,在初始化T0和T1中間的一個(gè)(y )Timer時(shí),其設(shè)置可能影響到另外一個(gè)定時(shí)器的工作方式,解決的辦法時(shí)兩個(gè)定時(shí)器一起進(jìn)行設(shè)置,或采用以下方法向TMOD送數(shù):MOVA,TMODANLA,#0FHORLA,#10HMOVTMOD,ATMOD初始狀態(tài)讀入AT1、定時(shí)模式,方式1設(shè)置高4位,低4位保持不變共一百三十六頁(1)定時(shí)(dn sh)計(jì)數(shù)器的實(shí)時(shí)性 定時(shí)計(jì)數(shù)器啟動后當(dāng)計(jì)滿回0溢出時(shí)向主機(jī)請求中斷處理,由內(nèi)部硬件自動進(jìn)行。但從回0溢出請求中斷到主機(jī)響應(yīng)中斷并作出處理存在時(shí)間延遲,且這種延時(shí)隨中斷請求時(shí)的環(huán)境不同而不同,一般需延時(shí)3個(gè)機(jī)器周期以上,這就給實(shí)時(shí)處理帶來誤差。大
25、多數(shù)應(yīng)用場合可忽略不計(jì),但對某些要求實(shí)時(shí)性苛刻的場合,應(yīng)采用補(bǔ)償措施。 例如選用定時(shí)方式1設(shè)置系統(tǒng)時(shí)鐘,由于上述原因就會產(chǎn)生實(shí)時(shí)誤差。這種場合可采用動態(tài)補(bǔ)償?shù)霓k法減少系統(tǒng)時(shí)鐘誤差。所謂動態(tài)補(bǔ)償,即在中斷服務(wù)程序中對TLx、THx重新置初值時(shí),應(yīng)將TLx、THx從回0溢出又重新從0開始繼續(xù)計(jì)數(shù)(j sh)的值讀出,補(bǔ)償?shù)匠踔抵羞M(jìn)行重新設(shè)置??煽紤]如下軟件 共一百三十六頁(2)動態(tài)讀取運(yùn)行(ynxng)中的計(jì)數(shù)值在動態(tài)讀取運(yùn)行(ynxng)中的定時(shí)計(jì)數(shù)器的計(jì)數(shù)值時(shí),如果不加注意,就可能出錯(cuò)。這是因?yàn)椴豢赡茉谕粫r(shí)刻同時(shí)讀取TLx和THx的值。比如,先讀TLx,后讀THx,因?yàn)槎〞r(shí)計(jì)數(shù)器處于運(yùn)行狀態(tài)
26、,在讀THx前正好TLx產(chǎn)生溢出向THx進(jìn)位,則讀得的THx值就不對了。同樣,先讀THx,再讀TLx,也可能出錯(cuò)。 一種可避免讀錯(cuò)的方法是:先讀THx,后讀TLx,再讀THx,將兩次讀得的THx進(jìn)行比較,若兩次值相等,則可確定讀得的值是正確的,否則重復(fù)上述過程,重復(fù)讀得的值一般不會再錯(cuò)。 共一百三十六頁8051單片機(jī)的通訊(tngxn)方式 :并行通訊(tngxn):數(shù)據(jù)的各位同時(shí)發(fā)送或接收。串行通訊:數(shù)據(jù)一位一位順序發(fā)送或接收 串行通訊方式:異步通訊同步通訊第五章、串行接口共一百三十六頁異步通訊中與外設(shè)的兩項(xiàng)規(guī)定:字符格式:雙方能夠在對同一種0和1的串理解成同一種意義。原則上字符格式可以由通
27、訊的雙方自由制定,但從通用、方便的角度出發(fā),一般還是使用(shyng)一些標(biāo)準(zhǔn)為好,如采用ASCII標(biāo)準(zhǔn)。 波特率:數(shù)據(jù)傳送的速率。定義每秒鐘傳送的二進(jìn)制數(shù)的位數(shù)。奇偶位停止位 1停止位2起始位1345678數(shù)據(jù)位選擇位2例:數(shù)據(jù)傳送速率是120字符/秒,每個(gè)字符格式包含十個(gè)代碼位(一個(gè)起始位、一個(gè)終止位、8個(gè)數(shù)據(jù)位),這時(shí)傳送的波特率為:10120位/秒1200波特(bps)每一位代碼的傳送時(shí)間Td為波特率的倒數(shù):Td1/12000.833ms共一百三十六頁通訊(tngxn)方向: 在串行通訊中,把通訊接口只能發(fā)送或接收的單向傳送方法叫單工傳送;接收器乙發(fā)送器甲共一百三十六頁 數(shù)據(jù)在甲乙兩機(jī)
28、之間的雙向傳遞(chund),稱之為雙工傳送; 雙工傳送方式中又分為半雙工傳送和全雙工傳送半雙工傳送是兩機(jī)之間不能同時(shí)進(jìn)行發(fā)送和接收(jishu),任一時(shí)刻,只能發(fā)或者只能收信息。 接收器甲站數(shù)據(jù)流接收器乙站發(fā)送器發(fā)送器共一百三十六頁接收器接收器數(shù)據(jù)流發(fā)送器發(fā)送器甲站乙站全雙工方式共一百三十六頁2MCS-51單片機(jī)的串行接口結(jié)構(gòu)(jigu) MCS-51單片機(jī)通過引腳RXD(P3.0,串行數(shù)據(jù)接收端)和引腳TXD(P3.1,串行數(shù)據(jù)發(fā)送端)與外界通訊。SBUF是串行口緩沖寄存器,包括發(fā)送寄存器和接收寄存器。它們有相同名字和地址空間,但不會出現(xiàn)(chxin)沖突,因?yàn)樗鼈儍蓚€(gè)一個(gè)只能被CPU讀出
29、數(shù)據(jù),一個(gè)只能被CPU寫入數(shù)據(jù)。共一百三十六頁 串行口的控制(kngzh)與狀態(tài)寄存器 51串行口設(shè)有兩個(gè)控制寄存器:串行控制寄存器SCON和波特率選擇(xunz)特殊功能寄存器PCON。2)波特率選擇特殊功能寄存器PCON1) 串行控制寄存器SCOND7 D6 D5 D4 D3 D2 D1 D0 SM0 SM1 SM2 REN TB8 RB8 TI RI 7 6 5 4 3 2 1 0 SMOD 共一百三十六頁 串行口的工作(gngzu)方式 1) 方式(fngsh)02)方式13) 方式24) 方式3波特率的設(shè)置串口應(yīng)用編程帶奇偶校驗(yàn)共一百三十六頁SIN S/L GND Vcc976H G
30、 F E D C B AQHHQ74LS165543141312118051RXDTXDP1.04+5V15281610SIN S/L GND Vcc976H G F E D C B AQHHQ74LS16554314131211+5V168215410利用串行口擴(kuò)展并行輸入口A用并入串出8位移位寄存器74LS165擴(kuò)展并行輸入口共一百三十六頁8051RXDTXDP1.0利用串行口擴(kuò)展并行輸出口10981,2143456111213QA QB QC QD QE QF QG QHA,B74LS164VccGNDCPQA QB QC QD QE QF QG QHA,B74LS16498VccGND
31、1,21434561011121377CPB. 用串入并出8位移(wiy)位寄存器74LS164擴(kuò)展并行輸出口 共一百三十六頁 在51串行口的四種工作方式中,方式0和2的波特率是固定(gdng)的,而方式1和3的波特率是可變的,由定時(shí)器T1的溢出率控制。 1)方式0: 波特率2)方式2:波特率除與fosc有關(guān)外,還與SMOD位有關(guān)基本式為當(dāng)SMOD1時(shí),波特率當(dāng)SMOD0時(shí),波特率共一百三十六頁第六章 單片機(jī)系統(tǒng)(xtng)擴(kuò)展 及接口技術(shù) 概述 串行擴(kuò)展總線接口技術(shù) 單片機(jī)的外部并行擴(kuò)展 程序存儲器的擴(kuò)展 片外數(shù)據(jù)(shj)存儲器的擴(kuò)展 擴(kuò)展片外程序存儲器和片外數(shù)據(jù)存儲器 通過并行總線擴(kuò)展I
32、/O口 外部中斷源的擴(kuò)展共一百三十六頁并行擴(kuò)展法是指利用(lyng)單片機(jī)的三組總線(AB、DB、CB)進(jìn)行的系統(tǒng)擴(kuò)展 串行擴(kuò)展法是指利用SPI(Serial Peripheral Interface)三線總線(zn xin)和I2C雙總線的串行系統(tǒng)擴(kuò)展。 對于單片機(jī)系統(tǒng)擴(kuò)展的方法有并行擴(kuò)展法和串行擴(kuò)展法兩種 :共一百三十六頁芯片(xn pin)的串行接口與總線目前單片機(jī)應(yīng)用系統(tǒng)中使用的串行擴(kuò)展總線主要有Mmorola公司的串行外圍接口(ji ku)SPIQSP1,NS公司的Microwireplus串行同步雙工通訊接口和Phitips公司的I2C BUS三種。共一百三十六頁SPI串行外設(shè)接口
33、(ji ku)總線 SPI(Serial Peripheral Interface)總線 一種同步串行外設(shè)接口,用于MCU與各種外圍設(shè)備以串行方式進(jìn)行通信(8位數(shù)據(jù)(shj)同時(shí)同步地被發(fā)送和接收),系統(tǒng)可配置為主或從操作模式。共一百三十六頁從機(jī)選擇線SS(有的SPI接口芯片帶有中斷信號線INT或INT 、有的SPI接口芯片沒有主機(jī)(zhj)輸出從機(jī)輸人數(shù)據(jù)線MOSI)。 SPI系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)(biozhn)外圍器件直接接口。一般使用4條線:串行時(shí)鐘線(SCK)主機(jī)輸入從機(jī)輸出數(shù)據(jù)線MISO主機(jī)輸出從機(jī)輸人數(shù)據(jù)線MOSI外圍設(shè)備包括:簡單的移位寄存器(用作并行輸入或輸出口)
34、至復(fù)雜的LCD顯示驅(qū)動器或A/D轉(zhuǎn)換器等。共一百三十六頁1. SPI總線(zn xin)接口邏輯時(shí)序共一百三十六頁 51單片機(jī)串行擴(kuò)展SPI外設(shè)接口(ji ku)的方法 用一般(ybn)I/O口線模擬SPI操作使用軟件模擬SPI的操作,包括串行時(shí)鐘、數(shù)據(jù)輸入和輸出。不同的串行接口外圍芯片,其時(shí)鐘時(shí)序是不同的。共一百三十六頁對于在時(shí)鐘上升沿輸入數(shù)據(jù)(shj)和在下降沿輸出數(shù)據(jù)(shj)的器件,一般取時(shí)鐘輸出P1.1的初態(tài)為1;在允許接口芯片后,置P1.1為0。P1.0模擬MCU的數(shù)據(jù)輸出端(MOSI),P1.1模擬SPI的SCK輸出端,P1.2模擬SPI的從機(jī)選擇(xunz)端,P1.3模擬SP
35、I的數(shù)據(jù)輸入端(MISO)。輸出 輸入對2814,有:P1.1共一百三十六頁常用于開關(guān)量I/O、A/D、D/A、時(shí)鐘、顯示(xinsh)及打印功能等。串行時(shí)鐘(shzhng)芯片(2) 利用89C51串行口方式0實(shí)現(xiàn)SPI操作共一百三十六頁I2C總線(zn xin)I2C(Inter-Integrated Circuit)總線是PHILIPS公司推出的同步串行數(shù)據(jù)傳輸總線。在很多器件上都配備有I2C總線接口,使用時(shí)一般(ybn)需要通過I2C總線進(jìn)行控制。1. I2C總線的概念是一種具有自動尋址、高低速設(shè)備同步和仲裁等功能的高性能串行總線,能夠?qū)崿F(xiàn)完善的全雙工數(shù)據(jù)傳輸,是總線中使用信號線數(shù)量較
36、少的。I2C總線只有兩根信號線: 數(shù)據(jù)線SDA和時(shí)鐘線SCL??偩€傳輸速率 100 kb/s(改進(jìn)后的規(guī)范為400 kb/s),總線的長度可高達(dá)25英尺 。進(jìn)入I2C總線系統(tǒng)中的設(shè)備都帶有I2C總線接口,符合I2C總線的電氣規(guī)范,I2C總線上所有節(jié)點(diǎn)的串行數(shù)據(jù)線SDA和時(shí)鐘線SCL分別與總線的SDA和SCL相連。各節(jié)點(diǎn)供電可以不同,但需共地,SDA和SCL需分別接上拉電阻。共一百三十六頁應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號后,等待受控單元發(fā)出一個(gè)應(yīng)答信號,CPU接收到應(yīng)答信號后,根據(jù)實(shí)際情況作出是否繼
37、續(xù)傳遞信號的判斷(pndun)。若未收到應(yīng)答信號,由判斷(pndun)為受控單元出現(xiàn)故障 I2C總線在傳送數(shù)據(jù)過程中共有三種(sn zhn)類型信號,它們分別是:開始信號、結(jié)束信號和應(yīng)答信號。 開始信號:SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。結(jié)束信號:SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。共一百三十六頁模擬I2C總線 51單片機(jī)與I2C總線(zn xin)的接口 51單片機(jī)不帶I2C接口(ji ku),若需控制I2C總線時(shí),可選擇兩個(gè)I/O口線,在軟件中分別定義成SCL和SDA。(1) 單片機(jī)與I2C總線的硬件連接共一百三十六頁 51單片機(jī)與I2C總
38、線(zn xin)的接口(2)51單片機(jī)對I2C總線(zn xin)的控制程序根據(jù)I2C總線對SDA和SCL在各個(gè)時(shí)段的時(shí)序要求,寫出起始、停止、送應(yīng)答位、送非應(yīng)答位、檢查應(yīng)答位、發(fā)送一字節(jié)、接收一字節(jié)、發(fā)送N字節(jié)數(shù)據(jù)、接收N字節(jié)數(shù)據(jù)的子程序。共一百三十六頁1) 51系列(xli)單片機(jī)的片外總線結(jié)構(gòu) 共一百三十六頁 2)51系列單片機(jī)的系統(tǒng)并行(bngxng)擴(kuò)展能力 由于地址總線寬度為16位,在片外可擴(kuò)展的存儲器最大容量為64KB,地址為0000HFFFFH。片外數(shù)據(jù)存儲器與程序存儲器的操作使用不同的指令(zhlng)和控制信號,允許兩者的地址重復(fù),故片外可擴(kuò)展的數(shù)據(jù)存儲器與程序存儲器分別
39、為64KB。 片外數(shù)據(jù)存儲器與片內(nèi)數(shù)據(jù)存儲器的操作指令不同(片外RAM只能用MOVX指令),允許兩者地址重復(fù),亦即外部擴(kuò)展數(shù)據(jù)存儲器地址可從0000H開始。 共一百三十六頁 為了配置外圍設(shè)備而需要擴(kuò)展的IO口,可與片外數(shù)據(jù)存儲器統(tǒng)一編址,不再(b zi)另外提供地址線。因此,在應(yīng)用系統(tǒng)要大量配置外圍設(shè)備以及擴(kuò)展較多IO口時(shí),要占去大量的RAM地址。 片外程序存儲器與片內(nèi)程序存儲器采用相同(xin tn)的操作指令,片內(nèi)與片外程序存儲器的選擇靠硬件結(jié)構(gòu)實(shí)現(xiàn)。 當(dāng)EA0時(shí),不論片內(nèi)有無程序存儲器,此時(shí)只使用片外程序存儲器,片外程序存儲器的地址應(yīng)從000OH開始設(shè)置;當(dāng)EA1時(shí),前4KB地址0000
40、H 0FFFH為片內(nèi)程序存儲器所有,片外擴(kuò)展的程序存儲器的地址只能從1000H開始設(shè)置。 共一百三十六頁1片外數(shù)據(jù)存儲器擴(kuò)展時(shí)的總線(zn xin)功能和讀、寫操作時(shí)序 5l單片機(jī)對片外數(shù)據(jù)存儲器讀、寫操作的指令(zhlng)如下有兩組: MOVX A,Ri ;片外RAM(A) 讀(RD)操作MOVX Ri,A ;(A)片外RAM 寫(WR)操作 這組指令由于Ri只能提供8位地址,因此,僅能擴(kuò)展256個(gè)字節(jié)的片外RAM; MOVX A,DPTR ;片外RAM(A) 讀(RD)操作 MOVX DPTR,A ;(A)片外RAM 寫(WR)操作這四條指令都是單字節(jié)雙周期指令。 共一百三十六頁2擴(kuò)展片
41、外數(shù)據(jù)存儲器的硬件(yn jin)電路 共一百三十六頁(1)擴(kuò)展(kuzhn)2K8位片外數(shù)據(jù)存儲器 共一百三十六頁兩種訪問(fngwn)方法: 采用 “ MOVX A,DPTR ” 和 “ MOVX DPTR,A”指令訪問。 這時(shí)認(rèn)定全部P0、P2口的16根口線同時(shí)用來傳送地址信息。雖然(surn),此處只使用了P2.2P2.0,但是P2.7P2.3卻不宜再作IO口線使用了。讀操作: MOV DPTR,#0000H MOVX A,DPTR寫操作: MOV DPTR,#0000H MOVX DPTR,A 采用 “ MOVX A, Ri ” 和 “ MOVXRi,A ” 指令訪問 這時(shí)用P2.2
42、P2.0來傳送地址,而其余的P2.7P23仍保留IO口的功能。不過P2.2P2.0的高位地址需要通過程序來設(shè)定。共一百三十六頁(2)擴(kuò)展(kuzhn)16K8位片外數(shù)據(jù)存儲器 共一百三十六頁(3)擴(kuò)展(kuzhn)更多片外數(shù)據(jù)存儲器 共一百三十六頁1. 分別擴(kuò)展(kuzhn)片外程序存儲器和片外數(shù)據(jù)存儲器 共一百三十六頁 完成輸入(shr)輸出口功能的擴(kuò)展,可以利用簡單的TTL電路或CMOS電路,也可以使用一些結(jié)構(gòu)較為復(fù)雜的可編程接口芯片。 INTEL系列接口(ji ku)芯片有:可編程并行接口(8155、8255) 可編程通用同步異步通信接口(8251)可編程定時(shí)器計(jì)數(shù)器(8253)可編程中
43、斷控制器(8259)可編程鍵盤顯示接口(8279)等。共一百三十六頁1利用(lyng) “ MOVXA,Ri ” 或 “ MOVXA,DPTR ” 擴(kuò)展輸入輸出口 將擴(kuò)展的IO口掛接在片外數(shù)據(jù)存儲器空間,即與片外RAM統(tǒng)一(tngy)編址,所以IO口的輸入、輸出指令就是片外數(shù)據(jù)存儲器的讀寫指令。 共一百三十六頁2擴(kuò)展(kuzhn)簡單的輸入輸出口方法 (1)無片外數(shù)據(jù)(shj)存儲器時(shí)的擴(kuò)展 共一百三十六頁(2)有片外數(shù)據(jù)(shj)存儲器時(shí)的擴(kuò)展 當(dāng)P1.00時(shí),選通片外數(shù)據(jù)(shj)存儲器6264,其地址范圍為0000H1FFFH; 當(dāng)P1.00時(shí),選通輸入口,口地址為0000H1FFFH范
44、圍內(nèi)的任一地址。 共一百三十六頁第七章 應(yīng)用(yngyng)系統(tǒng)配置及接口技術(shù) 一、 人機(jī)通道配置與接口技術(shù)二、 單片機(jī)系統(tǒng)(xtng)測控系統(tǒng)(xtng)前向通道配置三、 A/D轉(zhuǎn)換器及接口技術(shù)四、 系統(tǒng)后向通道配置及接口技術(shù)五、 D/A轉(zhuǎn)換器及接口技術(shù)共一百三十六頁 鍵盤(jinpn)接口及處理程序 共一百三十六頁鍵開關(guān)(kigun)狀態(tài)的可靠輸入 按鍵的消抖共一百三十六頁 鍵盤(jinpn)結(jié)構(gòu) 鍵盤可以分為(fn wi)兩類:獨(dú)立連接式和行列式(矩陣式),每一類按譯碼方法可分為編碼及非編碼兩種類型。 獨(dú)立式非編碼鍵盤 共一百三十六頁(a)、按鍵(n jin)結(jié)構(gòu)共一百三十六頁(b)共一
45、百三十六頁、按鍵(n jin)的軟件結(jié)構(gòu)查詢(chxn)方式的鍵盤程序(設(shè)IO為P1口)START: MOV A, 0FFH ;置輸入方式 MOV P1, A MOV A , P1 ;鍵狀態(tài)輸入 JNB ACC.0, P0 ;0號鍵按下轉(zhuǎn)JNB ACC.1,P1 ;1號鍵按下轉(zhuǎn)JNB ACC.2,P2 ; 2號鍵按下轉(zhuǎn)JNB ACC.3,P3 : 3號鍵按下轉(zhuǎn)JNB ACC.4,P4 ; 4號鍵按下轉(zhuǎn)JNB ACC.5,P5 ; 5號鍵按下轉(zhuǎn)共一百三十六頁使用擴(kuò)展IO口的獨(dú)立式按鍵(n jin)電路 共一百三十六頁 行列式鍵盤(jinpn) 一、工作(gngzu)原理共一百三十六頁鍵盤(jin
46、pn)處理程序 判斷有無鍵按下 識別(shbi)按鍵兩種方法:逐行(或列)掃描查詢法 線反轉(zhuǎn)法 共一百三十六頁二、單片機(jī)對非編碼鍵盤掃描(somio)的控制方式 三種(sn zhn)方式 :程序控制掃描方式,即查詢方式 定時(shí)掃描方式,利用單片機(jī)內(nèi)部定時(shí)器產(chǎn)生中斷(例如l0ms),CPU響應(yīng)中斷后對鍵盤掃描一次。定時(shí)掃描方式的硬件電路與程序掃描方式相同。 中斷掃描方式,引起外部中斷(INT0或INT1)后,CPU響應(yīng)中斷,對鍵盤進(jìn)行掃描。 共一百三十六頁、LED顯示(xinsh)器接口及顯示(xinsh)程序 單片機(jī)應(yīng)用(yngyng)系統(tǒng)中,使用的顯示器主要有LED(發(fā)光二極管顯示器)和LCD(液晶顯示器)。 一、LED顯示器結(jié)構(gòu)與原理 LED顯示塊是由發(fā)光二極管顯示字段的顯示器件 共一百三十六頁共一百三十六頁二、LED顯示器與顯示方式 共一百三十六頁 LED顯示器有靜態(tài)(jngti)顯示與動態(tài)顯示兩種方式 1LED靜態(tài)(jngti)顯示方式 共一百三十六頁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆江蘇省蘇州市張家港市梁豐初級中學(xué)七下數(shù)學(xué)期末質(zhì)量跟蹤監(jiān)視試題含解析
- 行政判例的重要性研究試題及答案
- 信息技術(shù)的未來與數(shù)據(jù)驅(qū)動之路試題及答案
- 2025屆江蘇省泰州市泰興市七年級數(shù)學(xué)第二學(xué)期期末經(jīng)典試題含解析
- 組織變革中的風(fēng)險(xiǎn)管理實(shí)踐試題及答案
- 提升學(xué)生自信心的有效途徑計(jì)劃
- 預(yù)算編制審批流程計(jì)劃
- 云南省保山市2025年七年級數(shù)學(xué)第二學(xué)期期末調(diào)研試題含解析
- 2024年浙江省交通運(yùn)輸廳下屬事業(yè)單位真題
- 2024年上海財(cái)經(jīng)大學(xué)輔導(dǎo)員考試真題
- 學(xué)生實(shí)習(xí)自主申請表
- 江蘇省南京師大附中、淮陰中學(xué)自主招生考試化學(xué)試題
- (6.4)-第四章 明確價(jià)值要求 踐行價(jià)值準(zhǔn)則
- 人教版小學(xué)數(shù)學(xué)五年級下冊課件 5.1《旋轉(zhuǎn)》
- 麥肯錫:戰(zhàn)略方法論三層面法和財(cái)務(wù)模型
- 捷藍(lán)大健康生活館運(yùn)營手冊
- 婦產(chǎn)科學(xué)-盆腔器官脫垂課件
- 園藝植物種質(zhì)資源圖文
- 村史范本、模板
- 石膏板吊頂施工方案
- 投標(biāo)函(格式范本)
評論
0/150
提交評論