《單片機系統(tǒng)設(shè)計》PPT課件.ppt

上傳人:za****8 文檔編號:15810533 上傳時間:2020-09-08 格式:PPT 頁數(shù):330 大?。?0.28MB
收藏 版權(quán)申訴 舉報 下載
《單片機系統(tǒng)設(shè)計》PPT課件.ppt_第1頁
第1頁 / 共330頁
《單片機系統(tǒng)設(shè)計》PPT課件.ppt_第2頁
第2頁 / 共330頁
《單片機系統(tǒng)設(shè)計》PPT課件.ppt_第3頁
第3頁 / 共330頁

下載文檔到電腦,查找使用更方便

19.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《單片機系統(tǒng)設(shè)計》PPT課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《《單片機系統(tǒng)設(shè)計》PPT課件.ppt(330頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、1,單片機系統(tǒng)設(shè)計技術(shù),主講教師:栗 華 ,山東大學(xué)信息科學(xué)與工程學(xué)院,大學(xué)生電子設(shè)計競賽培訓(xùn),2,單片機系統(tǒng)設(shè)計的重要性:,在工業(yè)測、控領(lǐng)域中,單片機作為智能測控系統(tǒng)的“大腦”,占據(jù)了核心位置的地位。在電子設(shè)計競賽中,往往設(shè)計的對象也都是智能測控系統(tǒng),自然,單片機系統(tǒng)的設(shè)計也就具有成了系統(tǒng)設(shè)計中一個至關(guān)重要的組成部分。,3,在前期單片機原理與應(yīng)用課程的基礎(chǔ)上,擴展介紹利用單片機這一智能單元來設(shè)計一個智能電子系統(tǒng)時所需要的各種接口知識、單元知識、和系統(tǒng)實現(xiàn)時所需要的各種系統(tǒng)知識 ,使大家不僅學(xué)習(xí)并理解單片機,更要學(xué)會如何使用單片機來構(gòu)建我們自己的應(yīng)用系統(tǒng),讓單片機按照我們的意圖來為我們服務(wù)。從

2、而,為大家參加電子設(shè)計大賽,在規(guī)定的時間內(nèi)完成智能電子系統(tǒng)的設(shè)計與實現(xiàn)儲備足夠的經(jīng)驗知識和應(yīng)用技能 ,最終能夠在電子設(shè)計大賽中取得良好的成績,為以后的職業(yè)生涯也能夠奠定良好的基礎(chǔ)。,培訓(xùn)目的:,4,(1 )單片機基本知識的回顧,重點是回顧單片機的內(nèi)部組成結(jié)構(gòu)、特點以及在應(yīng)用單片機的這些內(nèi)部構(gòu)件時應(yīng)該注意的問題。 (2 )單片機有關(guān)接口設(shè)計方法及常用接口芯片介紹,從系統(tǒng)設(shè)計的角度出發(fā),以功能實現(xiàn)為依據(jù),分類介紹一些常用的接口設(shè)計方法。 (3 )單片機系統(tǒng)設(shè)計有關(guān)技術(shù),從系統(tǒng)實現(xiàn)的角度,介紹系統(tǒng)設(shè)計時應(yīng)該考慮的一些問題,為了使系統(tǒng)能夠長期可靠地運行應(yīng)該采取哪些技術(shù)。,培訓(xùn)的內(nèi)容:,5,第一章

3、單片機應(yīng)用系統(tǒng)設(shè)計基礎(chǔ),一、綜述 1、單片機系統(tǒng)設(shè)計的內(nèi)容 智能 應(yīng)用系統(tǒng)的設(shè)計一般包括單片機系統(tǒng)設(shè)計、接口設(shè)計和多種類型的輔助電路(如:模擬信號調(diào)理電路、功率驅(qū)動電路、電源電路等)設(shè)計內(nèi)容。而單片機系統(tǒng)設(shè)計往往是其中最主要、最復(fù)雜的設(shè)計部分。,6,2、單片機的定義與特點 單片機全稱為單片微型計算機(Single Chip Microcomputer),又稱微控制論器(Micro-Controller Unit)或嵌入式控制器(Embedded Controller)。它是將傳統(tǒng)計算機的各種基本組成部件(如:CPU、ROM、RAM、并行I/O口、串行I/O口、定時計數(shù)器、中斷控制、

4、系統(tǒng)時鐘和系統(tǒng)總線控制等)微型化并集成到一塊芯片上的微型計算機。 單片機有體積小、集成度高、功能強、功耗低、性能價格比高、易于實現(xiàn)各種智能系統(tǒng)。,7,3、單片機的種類 按總線寬度分成4位單片機、8位單片機、16位單片機、32位單片機。 (1)4位單片機:主要用于各種小型智能電子設(shè)備如:計算器、遙控器、玩具控制、電子鐘、簡單游戲機、游戲桿等。目前主要集中在日本的一些廠家如:OKI的MSM64164C、MSM64481、NEC的75006x系列、EPSON的SMC62系列等。 (2)8位單片機:用于各種中等智能電子設(shè)備,產(chǎn)品種類最多、功能較強、性價比最高、應(yīng)用最廣泛。8位單片機分成兩大類

5、:一類是MCS-51系列及其兼容機,另一類是非MCS-51系列。,8,(a)MCS51系列單片機:特點是結(jié)構(gòu)簡單、內(nèi)部資源比較豐富,易學(xué)易用、資料齊全、應(yīng)用廣泛,是一種傳統(tǒng)的單片機。 有: Intel的8031、8051、8751,ATMEL的89C5x系列和89S5x等,WINBOND的W77E5x、W78E5x,PHILIPS的P87LPC7x、P89C5x、P87C5x,ST公司的uPSD系列等。 (b)非MCS51系列單片機:和MCS-51不兼容,有各自的特點,如: ATMEL公司的AVR單片機(常用的是:Atmega32、Atmega64、Atmega128等,特點是:芯片上擁有F

6、lash存儲器,一般不用外部擴展程序存儲器. 片內(nèi)有EEPROM也方便了數(shù)據(jù)的保存。采用增強的RISC結(jié)構(gòu),使其具有高速處理能力,在一個時鐘周期內(nèi)可執(zhí)行復(fù)雜的指令,每MHz可實現(xiàn)1MIPS的處理能力. 另外還有一些豐富的外部接口如A/D、PWM、SPI等)。,9, Motorola單片機: 從M6800開始,開發(fā)了廣泛的品種,4位,8位,16位32位的單片機, 8位機M6805,M68HC05系列,8位增強型M68HC11,M68HC12 , 16位機M68HC16, 32位機M683XX. Motorola單片機的特點之一是在同樣的速度下所用的時鐘頻率較Intel類單片機低得多,因而使得高頻

7、噪聲低,抗干擾能力強,更適合于工控領(lǐng)域及惡劣的環(huán)境 . Motorola單片機在家電、汽車電子和通信產(chǎn)品領(lǐng)域應(yīng)用較廣。,10, MicroChip單片機: MicroChip單片機的主要產(chǎn)品是PIC 16C系列和17C系列8位單片機,CPU采用RISC結(jié)構(gòu),分別僅有33,35,58條指令,采用Harvard雙總線結(jié)構(gòu),運行速度快,低工作電壓,低功耗,較大的輸入輸出直接驅(qū)動能力,價格低,小體積. 適用于用量大,檔次低,價格敏感的產(chǎn)品.在自動化設(shè)備,智能儀器儀表, 工業(yè)控制等領(lǐng)域,PIC系列單片機占據(jù)了主導(dǎo)地位. (3)16位單片機:總線寬度為16位,CPU執(zhí)行速度和效率都比8位單片機都有很大提高

8、。目前以Intel的MCS-96/196系列、TI公司的MSP430系列、Motorola公司的68HC11為主。主要用于工業(yè)控制、智能儀器儀表、便攜式電子設(shè)備、智能IC卡讀寫系統(tǒng)等領(lǐng)域。,11,(4)32位單片機:32位單片機是單片機市場的發(fā)展趨勢,其特點是資源和接口更豐富、內(nèi)部采用RISC架構(gòu)和哈佛總線結(jié)構(gòu),CPU處理速度和處理能力更強、支持基于操作系統(tǒng)的開發(fā),因此能夠?qū)崿F(xiàn)更加復(fù)雜的處理任務(wù)、人機界面也更靈活。ATMEL、MOTOROLA、SAMSUNG、HITACH等廠家都有32位單片機產(chǎn)品,這些產(chǎn)品一般以ARM嵌入式處理器內(nèi)核為基礎(chǔ)(ARM公司自己并不生產(chǎn)嵌入式處理器,而是研究和發(fā)展嵌

9、入式處理器的內(nèi)核知識產(chǎn)權(quán)核,即IP核,然后將IP核的生產(chǎn)和使用許可協(xié)議賣給各IC生產(chǎn)廠家),所以32位單片機一般都是指ARM系統(tǒng)。,12,二、MCS-51單片機的內(nèi)部資源,13,ATMEL 51單片機選型指南,14,1、程序存儲器配置,三、單片機的存儲器配置,(一)程序存儲器,15,2、與程序存儲器配置有關(guān)的偽指令:,偽指令:指的是匯編程序用的一些控制信息的指令,它們只能被匯編程序所識別,不是單片機的CPU可執(zhí)行的指令。,偽指令主要用來指定程序位置,定義一個數(shù)據(jù)塊,為中間運算結(jié)果保留一部分存儲空間,或者定義一些變量的別名以及表示程序的結(jié)束等。,定位偽指令ORG 格式: 標號: ORG m

10、 m是一個16位二進制數(shù),代表地址。 功能:它放在一段程序或數(shù)據(jù)塊的前面,說明緊跟其后的程序段或數(shù)據(jù)塊的起始地址就是指令中的16位地址。,16,例如: ORG 0000H AJMP MAIN ORG 0003H AJMP INT0_S ORG 000BH AJMP T0_S ORG 0013H AJMP INT1_S ORG 001BH AJMP T1_S ORG 0023H AJMP SI_S ORG 0100H ;Main program MAIN: MOV P1,#0FEH AJ

11、MP $ INT0_S: RETI,17,3、與常數(shù)表格定義有關(guān)的偽指令:,功能:在程序存儲器從標號開始的連續(xù)單元開始定義一些字節(jié)數(shù)據(jù)單元,用來存放指令中指出的這些常數(shù)和字符。 例如: ORG 2000H TAB1: DB 30H , 8AH , 7FH , 73 DB 5 , A , BCD,30H,8AH,7FH,49H,35H,41H,42H,43H,44H,2000H,2001H,2002H,2003H,2004H,2005H,2006H,2007H,2008H,(1)定義字節(jié)偽指令DB(Define Byte) 格式:標號: DB X1,X2, ,

12、Xn Xi:單字節(jié)二進制、十進制、十六進制數(shù),或以 括起來的字符串,數(shù)據(jù)符號。,18,(2)、定義字偽指令DW(Define Word) 格式:標號: DW Y1,Y2,Yn Yn:雙字節(jié)二進制、十進制、十六進制數(shù)。 功能:同DB,不同的是為16位數(shù)據(jù)。執(zhí)行匯編時,機器會自動按高8位先存入,低8位后存入的格式排列。,例如: ORG 1500H TAB2: DW 1234H , 80H,12H,34H,00H,80H,1500H,1501H,1502H,1503H,19,1、數(shù)據(jù)存儲器配置,(二)數(shù)據(jù)存儲器,20,2、內(nèi)部存儲器的分布,21,(1)工作寄存器區(qū),,,,,00H,20H,

13、2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),,,,,,,,,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,,,,08H,1FH,工作寄存器區(qū)3,工作寄存器區(qū)2,工作寄存器區(qū)1,,,,工作寄存器區(qū)0,0FH,10H,17H,18H,22,片內(nèi)RAM前32個單元(00H1FH)是工作寄存器區(qū) (由PSW中的RS1,RS0決定),,,,,,,,CY,AC,F0,RS0,OV,P,,RS1,PSW.7,PSW.0,,,PSW.4 PSW.3,例如: SETB PSW.

14、3 ; (PSW.3) 1 CLR PSW.4 ; (PSW.4) 0 其功能是將PSW中的RS0置為1, RS1清0,選擇當前工作寄存器區(qū)為1區(qū) 。,23,,,,,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),27H,22H,21H,20H,26H,24H,25H,23H,28H,,,2FH,單元地址,07 06 05 04 03 02 01 00,,,,,,,,0F 0E 0D 0C 0B 0A 09 08,,,,,,,,17 16 15 14 13 12 11 10,,,,,,,,1F 1E

15、1D 1C 1B 1A 19 18,,,,,,,,27 26 25 24 23 22 21 20,,,,,,,,2F 2E 2D 2C 2B 2A 29 28,,,,,,,,37 36 35 34 33 32 31 30,,,,,,,,3F 3E 3D 3C 3B 3A 39 38,,,,,,,,47 46 45 44 43 42 41 40,,,,,,,,,,7F 7E 7D 7C 7B 7A 79 78,,,,,,,,位地址,,總共128個可按位尋址的位,片內(nèi)RAM中有128個可按位尋址的位。 位地址:00H7FH 分布在:20H2FH單元,(2)位尋址區(qū),24,位操作又稱布爾操作,它是

16、以位為單位進行的各種操作。 MCS-51單片機內(nèi)部設(shè)置了一個位處理器(布爾處理機),它有自己的累加器C(PSW中的進位標志位CY),自己的存儲器(即:內(nèi)部RAM中的20H2FH共128個位,以及特殊功能寄存器中的可以進行位尋址的各個位),同樣,也有相應(yīng)的位操作指令集,共17條,用來完成位傳送,位運算和基于位的轉(zhuǎn)移。 位操作指令中的位地址有4 種表示形式,以下表示的都是PSW中的位5 :,直接地址方式(如,0D5H);,點操作符方式(如,0D0H.5、PSW.5等);,位名稱方式(如,F(xiàn)0,RS0,RS1);,偽指令定義方式。,25,格式: 位地址別名 BIT 位地址 功能:使程序中的所出現(xiàn)

17、的位地址別名均表示BIT后面的位地址。一般放置在程序開始的位置。,例如: LEFT BIT P1.0 RIGHT BIT P1.1 ORG 0100H SETB LEFT ;左轉(zhuǎn) LCALL WAIT30S ;等待30秒 CLR LEFT SETB RIGHT;右轉(zhuǎn),位地址賦值偽指令BIT,26,(3)普通RAM區(qū),,,,,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),27,堆棧: 在片內(nèi)RAM中,常常要指定一個專門的區(qū)域來存放某些特別的數(shù)據(jù),它遵循順序

18、存取和后進先出(LIFO/FILO)的原則,這個RAM區(qū)叫堆棧。,功用: 1)子程序調(diào)用和中斷服務(wù)時CPU自動將當前PC 值壓棧保存,返回時自動將PC值彈棧。 2)保護現(xiàn)場/恢復(fù)現(xiàn)場 3)數(shù)據(jù)傳輸,28,,,,,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,,,,,,下一個進棧的數(shù)據(jù)將存在此,,數(shù)據(jù)進棧,已經(jīng)進棧的數(shù)據(jù)存放在此,,,,,,,初始 SP,,,復(fù)位后 SP=07H,數(shù)據(jù)進棧時:首先SP自動增 1 ,放進數(shù)據(jù), SP仍指著棧頂,堆棧區(qū)由特殊功能寄存器堆棧指針SP管理 堆棧區(qū)可以安排在 RA

19、M區(qū)任意位置,一般不安排在工作寄存器區(qū)和可按位尋址的RAM區(qū),通常放在RAM區(qū)的靠后的位置。 89C51的堆棧一般設(shè)在30H7FH的范圍內(nèi)。,入棧,29,從堆棧取出數(shù)據(jù)時:取出的數(shù)據(jù)是最近放進去的一個數(shù)據(jù),也就是當前棧頂?shù)臄?shù)據(jù)。然后SP再自動減1,仍指著棧頂,,,,,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有 的RAM區(qū),普通RAM區(qū),位尋址區(qū),工作寄存器區(qū),SP棧頂,,,,,,當前要出棧的數(shù)據(jù),,數(shù)據(jù)出棧,SP-1指向下一個將要出棧的數(shù)據(jù),,,,,,初始 SP,,,出棧,30,特殊功能寄存器(SFR) ,又稱專用寄存器。它專用于控制、管理單片機內(nèi)部算術(shù)邏輯

20、部件、并行I/O口鎖存器、串行口數(shù)據(jù)緩沖器、定時器/計數(shù)器、中斷系統(tǒng)等功能模塊的工作,SFR的地址空間為80HFFH。 MCS-51有18個專用寄存器,其中3個為雙字節(jié)寄存器,共占21個字節(jié)。MCS-52有21個專用寄存器,其中5個為雙字節(jié)寄存器,共占26個字節(jié)。SFR中共有12個專用寄存器可以位尋址,他們的字節(jié)地址可以被8整除,共有93個可尋址位。,(4)特殊功能寄存器區(qū),31,注意: 除A、B,DPTR 外,其他SFR只能采用直接尋址方式。如:MOV A,P0。對于內(nèi)部RAM具有高128字節(jié)即:80HFFH的MCS-52單片機而言,這些RAM與SFR地址重迭,只能用寄存器間接尋址訪問,而

21、不能用直接尋址方式訪問。,32,33,四、CPU時序及有關(guān)概念,一條指令可以分解為若干基本的微操作,而這些微操作所對應(yīng)的脈沖信號,在時間上有嚴格的先后次序,這些次序就是計算機的時序。時序是非常重要的概念,它指明單片機內(nèi)部以及內(nèi)部與外部互相聯(lián)系所遵循的規(guī)律。 震蕩周期: 指為單片機提供定時信號的振蕩源的周期。 時鐘周期: 又稱狀態(tài)周期或S周期,因為時鐘發(fā)生器就是上述的2分頻觸發(fā)器,所以它是振蕩周期的兩倍,,34,, 機器周期:一個機器周期由6個狀態(tài)(12個振蕩脈沖)組成,即6個時鐘貯存器期,12個振蕩周期。 指令周期: 指執(zhí)行一條指令所占用的全部時間,一個指令周期通常含有14個機器周期。,3

22、5,單片機各種周期的相互關(guān)系,若外接晶振為12MHZ,MCS-51單片機的四個周期的具體值為: 振蕩周期=1/12s; 時鐘周期=1/6s; 機器周期=1s; 指令周期=14s;,36,五、單片機的存儲器訪問,(一)尋址方式,尋址方式:指令中的操作數(shù)給出參與運算的數(shù)和數(shù)的地址,確定操作數(shù)地址的方式為尋址方式。尋址方式的多少是計算機功能強弱的重要標志。 MCS-51指令尋址方式主要有7種: (1)寄存器尋址 (2)立即尋址 (3) 寄存器間接尋址 (4)直接尋址 (5)基址寄存器變址寄存器間接尋址 (6)相對尋址 (7)位尋址,37,1、寄存器尋址,指令

23、直接給出該寄存器名稱,該寄存器的內(nèi)容就是操作數(shù),這種尋址方式就是寄存器尋址。采用寄存器尋址可以獲得較高的傳送和運算速度。,寄存器尋址方式尋址范圍: (1)內(nèi)部RAM中的32個工作寄存器R0R7; (2)A、B、CY(或C)、DPTR;,例如: MOV A,R0 ;(A)(R0) MOV DPTR , #1234H,38,2、立即尋址,操作數(shù)以常數(shù)的形式出現(xiàn),直接跟在操作碼后面,以指令字節(jié)的形式存放在ROM中,由于不需再去寄存器或存儲器中去取數(shù),可以從指令機器碼中立即得到,因此,這種尋址方式為立即尋址。 立即數(shù)前面冠以“#”號表示這是一個數(shù),而不是地址。立即數(shù)可以是8位,也可以是16位。如:

24、 MOVA,#0FH MOV P1,#00000111B MOV R3,#18 立即數(shù)主要用來給寄存器或存儲器賦初值,并且只能用于源操作數(shù),而不能用作目的操作數(shù)。,39,3、直接尋址,在指令直接給出操作數(shù)所在的存儲單元的地址的尋址方式稱為直接尋址。,直接尋址的尋址范圍: (1)內(nèi)部數(shù)據(jù)存儲器的低128字節(jié),00H7FH;如:MOV A,40H;(A) (40H) (2)特殊功能寄存器,注意除A、B,DPTR 外,其他SFR只能采用直接尋址方式。如:MOV A,P0。,40,4、間接尋址,指令中指出某一個寄存器的內(nèi)容作為操作數(shù)的地址的尋址方法叫做寄存器間接尋址。寄存器間接尋址以符

25、號“”指明。,其尋址范圍: (1)以R0,R1為地址指針,尋址內(nèi)部RAM 007FH 和外RAM的低256B;如:MOV A,R0 (2)以DPTR,或R0、R1(須用P2指定高8位地址)為地址指針,尋址外部RAM空間和擴展I/O口。 如:MOVX A,R0 ;訪問外部RAM 00HFFH MOVX DPTR,A ;訪問外部RAM 0000HFFFFH,41,5、變址尋址,以基址寄存器(PC、 DPTR)和變址寄存器(A)的內(nèi)容作無符號數(shù)相加,形成16位地址,該地址就是操作數(shù)所在的地址,這種尋址方式就是變址尋址。變址尋址常用來訪問程序存儲器,完成查詢表格功能

26、。兩種形式: MOVC A,A+PC ;(A)((A)+(PC)) MOVCA,A+DPTR ;(A)((A)+(DPTR)),例: MOVC A,A+DPTR,42,6、相對尋址,指令中給定地址的相對偏移量rel,以PC當前值為基地址,加上rel所得結(jié)果為操作數(shù)實際地址的尋址方式為相對尋址。用于程序存儲器訪問,常出現(xiàn)在相對轉(zhuǎn)移指令中。 當前PC值=PC源地址+轉(zhuǎn)移指令字節(jié)數(shù) 目的地址=當前PC值+rel。 rel:有符號數(shù),單字節(jié)補碼,-128+127。負數(shù)表示向上轉(zhuǎn)移,正數(shù)表示向下轉(zhuǎn)移。 例如:JZ 08H,表示累加器A 為零時,從源地址(設(shè)為:2050H) 向下轉(zhuǎn)移10個

27、字節(jié)。,43,7、位尋址,MCS-51中具有一些可以直接尋址的位,并且可以對這些位進行操作,指令中直接給出位的地址的尋址方式為位尋址。位尋址空間是:內(nèi)部RAM中的20H2FH共16個字節(jié)128個位和SFR中的93個位。 例如: SETB PSW.3 ; (PSW.3) 1 其功能是將PSW中的RS0置為1。指令代碼為:D2H D3H,其中的第2個字節(jié)D3H就是PSW.3的位地址。,44,(二)程序存儲器訪問的有關(guān)指令--ROM查表指令,(1) DPTR內(nèi)容為基址,程序存儲器除存放程序外,還可存放一些常數(shù),這些常數(shù)的數(shù) 據(jù)結(jié)構(gòu)一般稱為表格。查表指令就是把存放在程序存儲器(ROM)中的表格

28、數(shù)據(jù)讀出,傳送到累加器A 的指令。查表指令采用變址尋址方式,共有2條指令,這兩條指令都是單字節(jié)雙周期指令。,MOVC A,A+DPTR ;A ((A)+(DPTR)),45,(2) PC 內(nèi)容為基址,MOVC A,A+PC ;A ((A)+(PC)),取出該單字節(jié)指令后PC的內(nèi)容增1,以增1后的當前值去執(zhí)行16位無符號數(shù)加法,將獲得的基址與變址之和作為16位的程序存儲器地址。然后將該地址單元的內(nèi)容傳送到累加器A。指令執(zhí)行后PC的內(nèi)容不變。,優(yōu)點: 不改變PC的狀態(tài),根據(jù)A的內(nèi)容取表格常數(shù)。 缺點:(a)表格只能存放在查表指令以下的256個單元內(nèi)。,(b)當表格首地址與本指令間有其他指令時,須用

29、調(diào)整偏移量,調(diào)整量為下一條指令的起始地址到表格首址之間的字節(jié)數(shù)。,46,補充:單片機非線性運算快速實現(xiàn)的基本方法,(1)查表法,查表是非線性運算和非數(shù)值計算數(shù)據(jù)處理中常用的方法之一。利用查表可以免去復(fù)雜的計算,節(jié)省時間,具有靈活性強、運行速度高及實時性好的特點。表分為有無序表和有序表;一維表、二維表、三維表及多維表等。常用的表格一般是線性表,這種表中的數(shù)據(jù)元素具有線性一維關(guān)系。查表就是根據(jù)變量x,在表格中查找函數(shù)值y,使得y = f(x)。換句話說,查表就是根據(jù)輸入值來確定表的地址,然后從該地址中找出相應(yīng)的函數(shù)值。 采用這種方法首先要根據(jù)自變量的變化范圍和精度要求制作一個表格,把有關(guān)數(shù)據(jù)固化

30、在程序存儲器中,一旦表格內(nèi)容確定之后就不能再改變。然后編寫查表程序,通過輸入值來尋找表格中的相應(yīng)值。這樣就使運算量變的較少,甚至完全不用進行運算,就可獲得滿足精度要求的輸出。因此在數(shù)字信號處理中,特別是在智能化測試儀表和數(shù)字發(fā)動機控制應(yīng)用中,查表法是經(jīng)常使用的一種操作。,47,(2)查表法舉例,【例3.5 】累加器A中存有壓縮的BCD碼,將其轉(zhuǎn)化為八段顯示碼,并將結(jié)果送至P1口(送高位)和P2口(送低位)。如A中數(shù)據(jù)為48H,則P1口連接的數(shù)碼管顯示4,P2口連接的數(shù)碼管顯示8(假設(shè)所使用的數(shù)碼管都是共陽極數(shù)碼管)。,分析:這是一個典型的查表程序。所顯示數(shù)字與所輸出的二進制數(shù)(顯示碼)之間的關(guān)

31、系為:,48,參考程序為: ORG 0000h SJMP START ORG 0030H START: MOV R0,A ;備份BCD數(shù) ANL A,#0FH ;取低位 MOV DPTR,#TABLE MOVC A,A+DPTR ;取低位顯示碼 MOV P2,A ;從P2口輸出顯示碼 MOV A,R0 ;恢復(fù)BCD數(shù) ANL A,#0F0H ;取高位 SWAP A MOVC A,A+DPTR ;取高位顯示碼 MOV P1,A ;從P1口輸出顯示碼 SJMP $ TABLE: DB 3FH,06H,5BH,4FH,66H DB

32、 6DH,7DH,07H,7FH,6FH END,49,(2)插值法,在智能儀表和數(shù)字發(fā)動機控制應(yīng)用中,表格插值是經(jīng)常要做的一種操作,對一些計算精度要求不高但運行速度要求較高的場合,應(yīng)避開復(fù)雜的計算,盡量采用通用性強、實時性好的分段線性插值法或二次拋物線插值法來逼近真實函數(shù)值。,50,分段線性插值法:,假設(shè):已知函數(shù)Y= f(X)的曲線如右圖 所示。按一定要求將X軸分為x0、x1、 xi、xi+1、 xn,則對應(yīng)的函數(shù)輸出為y0、y1、 yi、yi+1、 yn,它們都是已知的。把曲線上兩兩相臨的分段點用直線連接起來,如圖中虛線所示,當n取得足夠大時,這些虛線可以近似的代替原曲線,這就是一般

33、分段線性插值法的原理。顯然,對于落在(xi,xi+1)區(qū)間內(nèi)的輸入x,有相應(yīng)的輸出近似值:,Y =yi + (x-xi) =yi + ki(x-xi),51,因此,可將n點輸入輸出對照值儲存在程序存儲器內(nèi),當輸入量x落在第i段內(nèi)時,可通過三個步驟算出相應(yīng)的輸出值, 第一步:查表,在區(qū)間xi,xi+1上找到點x的位置,計算x-xi ; 第二步:計算ki; 第三步:求得結(jié)果y= yi+ ki(x- xi)。 顯然,采用線性插值逼近法時,只要分段數(shù)n取得足夠大,就可以獲得要求的精度。一般的,只要分段點取得合理,分段數(shù)愈多,則逼近精度愈高,但同時所要求的計算機內(nèi)存容量也將增加。

34、 因此,應(yīng)該根據(jù)精度要求和函數(shù)曲線的斜率及曲率大小來決定分段點的選取。只要給定了允許誤差和函數(shù)的理論計算公式,就可以求得合理的分段點,使得既滿足精度要求又盡可能地減少分段數(shù)目。,52,線性插值節(jié)點選取的一般方法,采用分段線性插值近似算法時,首先要考慮如何選取插值節(jié)點的問題。解決這一問題的出發(fā)點是:在滿足精度要求的前提下,使插值節(jié)點數(shù)目減至最少,從而使表格存儲器的容量減少,節(jié)省硬件資源,同時使插值搜索過程加快。,(a)固定步長選取法 固定步長選取法就是沿X軸等距離地選取插值節(jié)點,又稱為等距選取法。采用固定步長的插值節(jié)點時,可以減少表格的長度,僅存儲xmin、xmax、n值以及縱坐標上各節(jié)點的函

35、數(shù)yi值。 該方法的主耍缺點是,當被逼近函數(shù)的曲率或斜率變化較大時,為了使曲率或斜率較大的區(qū)域不超差,插值間距需取得較小。因而插值節(jié)點數(shù)將大大增加,使表格變長,運行也變長。所以,固定步長插值法適用于非線性程度不大的函數(shù)。,53,(b)非固定步長選取法 非固定步長選取法根據(jù)函數(shù)曲線形狀的變化而修正插值間距的大小,又稱為非等距選取法。對于非線性程度較大的函數(shù),插值節(jié)點數(shù)可以大大減少,但是在表格中,需要對每個節(jié)點存放三個常教xi 、yi 和ki ,顯然,表格的長度較長,占用的存儲單元較多。當然也可以在表格中只存儲xi 、yi這兩個常數(shù),然后在插值過程中再去計算ki值,但這樣作增加了運算量,使運行速

36、度減慢,這在某些應(yīng)用場合是不允許的。,54,55,(三)外部數(shù)據(jù)存儲器訪問的有關(guān)指令,MCS-51單片機CPU對片外擴展的數(shù)據(jù)存儲器RAM或I/O接口進行數(shù)據(jù)傳送的指令。采用寄存器間接尋址,通過累加器A來完成。 片外數(shù)據(jù)的傳送是通過P0口和P2口配合來完成的,其中P2口輸出高8位地址,P0口分時輸出低8位地址和數(shù)據(jù)。這類數(shù)據(jù)傳送指令共有4條指令,其中2條讀指令,2條寫指令,這4條指令都是單字節(jié)雙周期指令。,56,(四)堆棧操作指令,棧頂?shù)奈恢茫ǖ刂罚┯蓷V羔楽P指示(即SP的內(nèi)容是棧頂?shù)牡刂罚?。?0C51中,堆棧的生長方向是向上的(地址增大)。系統(tǒng)復(fù)位時,SP的內(nèi)容為07H。通常用戶應(yīng)在系

37、統(tǒng)初始化時對SP重新設(shè)置(SP的值越小,堆棧的深度越深) 。 堆棧操作有進棧和出棧操作,即壓入和彈出數(shù)據(jù)。常用于現(xiàn)場保護和恢復(fù)。這類指令共有2條,這2條指令都是雙字節(jié)雙周期指令。,57,六、MCS-51單片機的匯編指令簡介,(一)指令分類,1、按指令字節(jié)數(shù)分類,MCS-51指令含有的操作碼和操作數(shù)都有相應(yīng)的二進制代碼,根據(jù)指令包含的字節(jié)數(shù)的多少不同,單片機指令系統(tǒng)(共111條指令)分成單字節(jié)指令(49條) 、雙字節(jié)指令(45條)和三字節(jié)指令(17條) 。,2、按指令的執(zhí)行時間分類,單片機指令系統(tǒng)(共111條指令)根據(jù)指令執(zhí)行的時間長短分類,可以分成: (1) 單周期指令(64條)

38、 (2) 雙周期指令(45條) (3) 四周期指令(只有乘除2條)。,58,3、按指令的功能分類,單片機指令系統(tǒng)(共111條指令)根據(jù)指令所完成的功能分類,可以分成: (1) 數(shù)據(jù)傳送類指令(28條) (2) 算術(shù)運算類指令(24條) (3) 邏輯運算及移位類指令(25條) (4) 控制轉(zhuǎn)移類指令(17條) (5) 位操作(布爾操作)類指令(17條),59,(二)指令簡介,1、數(shù)據(jù)傳送類指令,數(shù)據(jù)傳送類指令一般不影響程序狀態(tài)字PSW寄存器。只有在往累加器A中傳送數(shù)時有可能影響PSW的奇偶位P,其它位不受影響。當然,往PSW寄存器里面?zhèn)魉蛿?shù)據(jù)肯定影響PS

39、W。 傳送類指令可以分成兩大類。一是采用MOV操作符,稱為一般傳送指令;二是采用非MOV操作符,稱為特殊傳送指令。,60,61,,MCS-51單片機一般數(shù)據(jù)傳送指令數(shù)據(jù)傳遞關(guān)系圖,62,立即數(shù)可以為累加器A、寄存器Rn和DPTR、直接尋址或間接尋址的RAM賦初值,只能作為源操作數(shù),不能作為目的操作數(shù)。 累加器A可以和寄存器Rn、直接尋址或間接尋址的RAM之間相互賦值,既可以作為源操作數(shù),也可以作為目的操作數(shù)。 直接尋址的RAM可以和累加器A、寄存器Rn、直接尋址或間接尋址的RAM之間相互賦值,既可以作為源操作數(shù),也可以作為目的操作數(shù)。 間接尋址的RAM可以和累加器A、直接尋址的RAM之間相互

40、賦值,既可以作為源操作數(shù),也可以作為目的操作數(shù)。但不能和寄存器Rn與間接尋址的RAM之間相互賦值。 寄存器Rn可以和累加器A、直接尋址的RAM之間相互賦值,既可以作為源操作數(shù),也可以作為目的操作數(shù)。但不能和寄存器Rn與間接尋址的RAM之間相互賦值。,63,特殊數(shù)據(jù)傳送指令,64,2、算術(shù)運算類指令,包括、、、、加1、減1、十進制調(diào)整指令,共有24條。,65,66,算術(shù)運算類指令一般影響PSW中的CY、AC、OV、P 標志位。進位(借位)標志CY為無符號整數(shù)的多字節(jié)加法、減法、移位等操作提供了方便;溢出標志OV可方便的控制補碼運算;輔助進位標志AC用于BCD碼運算。,67,加減 1 指令僅 IN

41、C A、 DEC A 影響P標志(即使有進位或借位,CY也不變)。其余指令都不影響標志位的狀態(tài)。,DA A指令的功能是對累加器A中剛進行的兩個BCD碼的加法的結(jié)果進行十進制調(diào)整(加6修正) ,只影響CY位。該指令的使用條件:,(1)只能緊跟在加法指令(ADD/ADDC)后進行 (2)兩個加數(shù)必須已經(jīng)是BCD碼 (3)只能對累加器A中結(jié)果進行調(diào)整,68,DIV AB指令的功能是將累加器A中的無符號8位二進制數(shù)除以寄存器B中的無符號8位二進制數(shù) ,商的整數(shù)部分存放在累加器A中,余數(shù)部分存放在寄存器B中。當除數(shù)為0時,則結(jié)果的A和B的內(nèi)容不定,且溢出標志位(OV)=1。而標志CY總是被清0。,MUL

42、 AB指令的功能是將累加器A與寄存器B中的無符號8位二進制數(shù)相乘 ,乘積的低8位留在累加器A中,高8位存放在寄存器B中。當乘積大于FFH時,溢出標志位(OV)=1。而標志CY總是被清0。,69,3、邏輯運算和循環(huán)移位類指令,70,71,邏輯“與”指令常常用于屏蔽字節(jié)中的某些位。若清除某位,則用“0”與該位進行邏輯“與”,若保留某位,則用“1”與該位進行邏輯“與”。,邏輯“或”指令常常用于使字節(jié)中的某些位置“1”。若置“1”某位,則用“1”與該位進行邏輯“或”,若保留某位,則用“0”與該位進行邏輯“或”。,邏輯“異或”指令常用于使字節(jié)中的某些位取反。若用“1”與某位進行邏輯“異或”則該位取反 ,

43、若保留某位,則用“0”與該位進行邏輯“異或”。還可以利用異或指令對某個單元進行自身異或,以實現(xiàn)清零操作。,邏輯運算指令(共18條)可以完成與、或、異或、清0和取反操作,當以累加器A為目的操作數(shù)時,對P標志有影響。,72,A7,A0,,,,,,,,A7,A0,,,,,,,,CY,,,RR A,RRC A,A7,A0,,,,,,,,A7,A0,,,,,,,,CY,,,RL A,RLC A,右移:,左移:,使累加器A的各位逐位左移1位相當于原內(nèi)容乘2;使累加器A的各位逐位右移1位相當于原內(nèi)容除2;預(yù)先清零CY,采用帶進位位的左移和右移,能夠保留乘除產(chǎn)生的進位和余數(shù) 。,73,4、控制轉(zhuǎn)移類指令,控制

44、程序的轉(zhuǎn)移要利用轉(zhuǎn)移指令。MCS-51的轉(zhuǎn)移指令(共17條)分無條件轉(zhuǎn)移、條件轉(zhuǎn)移及子程序調(diào)用與返回等。利用這些控制轉(zhuǎn)移類指令可以方便地實現(xiàn)程序的向前、向后跳轉(zhuǎn),并根據(jù)條件分支運行、循環(huán)運行、調(diào)用子程序等。,74,75,AJMP指令的轉(zhuǎn)移范圍為AJMP下面一條指令的存儲地址相同的2KB區(qū)間內(nèi),可以向前也可以向后,指令的執(zhí)行不影響PSW的狀態(tài)標志位。,SJMP rel ,rel 是一個帶符號的偏移字節(jié)數(shù)(2的補碼),取值范圍為 128 127 (00H7FH對應(yīng)表示0 127,80HFFH對應(yīng)表示1281)。負數(shù)表示反向轉(zhuǎn)移,正數(shù)表示正向轉(zhuǎn)移。,JMP A+DPTR指令具有散轉(zhuǎn)功能,可以代替許多

45、判別跳轉(zhuǎn)指令。其轉(zhuǎn)移地址由數(shù)據(jù)指針DPTR的16位數(shù)作為基址和累加器A的8位數(shù)作為相對偏移量進行無符號數(shù)相加形成,并將相加結(jié)果直接裝入PC。該指令執(zhí)行時對標志位無影響。 該指令常用于多分支轉(zhuǎn)移。,76,散轉(zhuǎn)程序舉例:,【例3.21】 根據(jù)R0的值轉(zhuǎn)向7個分支程序。 R0=60,轉(zhuǎn)向SUB6;,分析:,程序流程如下圖所示。,77,參考程序如下: ORG 2000H MOVDPTR,#TAB;取轉(zhuǎn)移指令表首地址 MOV A,R0 ;取數(shù) MOV B,#10 DIV AB ;A10,商在A中 CLR C RLC A ;A2A JMP A+DPTR ;PC A+DPTR TAB:

46、 AJMP SUB0 ;轉(zhuǎn)移指令表 AJMP SUB1 AJMP SUB2 AJMP SUB6,78,RET指令的功能是從堆棧中彈出由調(diào)用指令壓入堆棧保護的斷點地址,并送入指令計數(shù)器PC,從而結(jié)束子程序的執(zhí)行。程序返回到斷點處繼續(xù)執(zhí)行。,RETI指令是專用于中斷服務(wù)程序返回的指令,除正確返回中斷斷點處執(zhí)行主程序以外,并有清除內(nèi)部相應(yīng)的中斷狀態(tài)寄存器(以保證正確的中斷邏輯)與中斷優(yōu)先,開放低級中斷的功能。,79,5、位操作類指令,80,【例3.18】利用位邏輯指令,模擬下圖3.11所示的邏輯電路功能。,位操作程序舉例:,,實現(xiàn)該功能的程序如下: PR2: MOV C,P

47、1.1 ;(CY) (P1.1) ORL C, P1.2 ;(CY) (P1.1)V (P1.2) ,得出A點邏輯狀態(tài) ANL C, P1.0 ;(CY) (P1.0)A點狀態(tài) CPL C ; 取反,得出B點邏輯狀態(tài) MOV F0, C ;F0內(nèi)暫存B點狀態(tài) MOV C,P1.3 ;(CY) (P1.3) ANL C, P1.4 ;(CY) (P1.3)(P1.4) CPL C ; 取反,得出C點邏輯狀態(tài) ORL C, F0 ;B點狀態(tài)與C點狀態(tài)進行邏輯或 MOV P1.5, C ;運算結(jié)果送入P1.5 RET,81,七、MCS-51單片機的輔助

48、電路,單片機的復(fù)位狀態(tài),82,上電復(fù)位電路和開關(guān)復(fù)位組合電路,83,單片機的時鐘電路 內(nèi)部時鐘方式 、外接時鐘方式,84,八、MCS-51單片機的最小系統(tǒng),85,8051/8751最小應(yīng)用系統(tǒng)的特點是: (1)全部I/O口線均可作為并行口供用戶使用。 (2)內(nèi)部存儲器容量有限(只有128B的RAM和4KB地址 空間)。 (3)應(yīng)用系統(tǒng)開發(fā)具有特殊性。因為P0和P2口在開發(fā)系統(tǒng) 時作為數(shù)據(jù)、地址總線,而在應(yīng)用系統(tǒng)中如果作為普 通I/O口,調(diào)試時不方便硬件調(diào)試,只能用模擬的方法 調(diào)試。,86,第二章 中斷、定時計數(shù)器、串行接口,87,一、定時,MCS-51有幾個定時

49、器/計數(shù)器? MCS-51有2個定時器/計數(shù)器T0和T1 在單片微機控制系統(tǒng)中為什么要使用它們? 在單片微機控制系統(tǒng)中,常要求一些外部實時時鐘,以實現(xiàn)定時或延時;也常要求有一些外部計數(shù)器,以實現(xiàn)對外部事件進行計數(shù)。 T0/T1是幾位的計數(shù)器/定時器? T0/T1是16位的計數(shù)器/定時器,通過編程的方式可以用來設(shè)定為定時器或者為計數(shù)器。,(一)、MCS-51定時器/計數(shù)器,88,計數(shù)器/定時器本質(zhì)區(qū)別是什么? 計數(shù)器/定時器的基本核心是一個加1計數(shù)器 加1計數(shù)器的脈沖有兩個來源: 外部脈沖源; 內(nèi)部的時鐘振蕩器。 * 定時器 對內(nèi)部的時鐘振蕩器標準脈沖計數(shù) * 計數(shù)器

50、對外部脈沖計數(shù),89,,與計數(shù)器/定時器相關(guān)的特殊功能寄存器有哪幾個? 工作方式控制寄存器,,90,,GATE:門控位的作用:,當GATE=0時,定時計數(shù)器的啟動不受外部中斷信號的影響,只要用軟件使TR0(或TR1)置1就能啟動定時器T0(或T1)。 當GATE=1時,由外中斷引腳信號控制或門的輸出,此時控制與門的開啟由外中斷引腳 INT0 (P3.2)或INT1 (P3.3)信號和TR0共同控制。當TR0=1時,外中斷引腳信號引腳INT0(P3.2) 或INT1(P3.3)的高電平啟動計數(shù),外中斷引腳信號引腳的低電平停止計數(shù)。這種方式常用來測量外中斷引腳上正脈沖的寬度。,91,定時器控制寄存

51、器 用于用于T--用于中斷控制 溢出中斷標志:溢出自動置,硬件自動清或 供軟件查詢和清 定時器運行控制位,由軟件置或清 用于中斷控制,92,、、、功能 : 寄存計數(shù)初值,均可以通過軟件賦值,系統(tǒng)復(fù)位時,均為 討論,當工作于方式時,是的高位,是的低位,組成的位計數(shù)器,加到后,再加便溢出,置為“” 當工作于方式時,是的高位,是的低位,組成的位計數(shù)器,加到后,再加便溢出,置為“”; 當工作于方式時,是的計數(shù)初值寄存器,是的位計數(shù)器,組成的位計數(shù)器,加到后,再加便溢出,置為“”,同時將中的計數(shù)初值裝入,于是又在的新值基礎(chǔ)上計數(shù),周而復(fù)始。(自動裝入常

52、數(shù)),93,當工作于方式時,只使用于定時器,把分成兩個獨立的位定時器計數(shù)器,位定時器,位定時器計數(shù)器,94,定時器工作方式的選擇 定時器有4種工作方式,選擇哪一種,首先要看這幾種工作方式所允許的最大時間間隔。 當時鐘為6MHz時,一個機器周期為2s由于定時器是對機器周期計數(shù)的,所以: 8位定時器最大定時間隔 =282S=512s 13位定時器最大定時間隔 =2132S=16.384ms 16位定時器最大定時間隔 =2162S=131.07ms,95,定時器定時常數(shù)的選擇,定時器定時時長與裝入TL0、TH0或TL1、TH1的常數(shù)有關(guān),定時常數(shù)TC的計算公式為: 其中

53、,f為單片機應(yīng)用系統(tǒng)的晶體頻率;X與系統(tǒng)采用的定時方式有關(guān),方式0、1、2、3的X分別是13、16、8、8。 例:當 =6MHz,采用方式1,求定時10ms的定時常數(shù)。T=10ms=10,000us,X=16,根據(jù)方式公式可以得到: TC=216-10000*f/12=60536=0EC78H,即: TL0=78H,TH0=ECH,,,96,我們可以將定時器/計數(shù)器的編程要點概括如下: 確定方式控制字 MOV TMOD,#DATA 予置時或計數(shù)初值 MOV THX,#DATAH MOV TLX,#DATAL 啟動定時/計數(shù)器工作 SETB TRx 查詢

54、 WAIT:JBC TFX NEXT SJMP WAIT 允許定時/計數(shù)中斷,相應(yīng)命令為: SETB EA SETB ETx 重新裝入定時/計數(shù)初值 NEXT : MOV THX,#DATAH MOV TLX,#DATAL,定時器/計數(shù)器的編程要點,97,(二)、實時時鐘及其軟硬件實現(xiàn)方法,單片機的實時時鐘通常由兩種方法實現(xiàn): (1)通過內(nèi)部的定時/計數(shù)器,結(jié)合軟件的方式實現(xiàn),這種方式一般適合于定時時間精度要求不高的場合。 (2)通過采用時鐘芯片,比較典型的有:Motorola公司的MC1

55、46818,Dallas公司的DS12887和DS1302和Philips公司的PCF8563、PCF8583。早期的時鐘芯片一般采用并行接口的方式:如MC146818 ,現(xiàn)在流行的則是采用SPI、I2C總線等接口的串行芯片,如DS1302 和PCF8563 。這種實現(xiàn)方式精度較高,還能節(jié)省大量的單片機CPU指令周期,所以廣泛被人們使用。,98,1、DS1302芯片簡介,實時時鐘DS1302芯片內(nèi)部除了有時鐘管理外,還有31B的RAM,使用SPI串行接口僅需用到三個口線( RES 復(fù)位、 I/O 數(shù)據(jù)線和SCLK)與單片機進行通信。可以提供秒、分、時、日、月、年的信息,每月和閏年的天數(shù)還可以自

56、動進行調(diào)整,可以選擇12小時或24小時工作方式。DS1302 工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW。 DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。,99,DS1302外部引腳結(jié)構(gòu)如下圖所示:,DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。 RST是復(fù)位/片選線當RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS130

57、2進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。 I/O為串行數(shù)據(jù)輸入輸出端(雙向)。SCLK始終是輸入端。,100,2、DS1302芯片與單片機的連接,3、DS1302芯片的控制字節(jié),DS1302的控制字如下圖所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行

58、讀操作,控制字節(jié)總是從最低位開始輸出。,101,4、DS1302芯片的數(shù)據(jù)輸入輸出(I/O),在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。,102,5、DS1302芯片的內(nèi)部寄存器,DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見下表:,103,104,二、串行口,MCS-51有一個可編程的全雙工串行通信接口,可作為通用異步接收/發(fā)送器UART,也可作為同步

59、移位寄存器。它的幀格式有8位、10位和11位,可以設(shè)置為固定波特率和可變波特率,給使用者帶來很大的靈活性。,105,一、MCS-51串行口的結(jié)構(gòu),106,MCS-51單片機的串行口主要由2個物理上獨立的串行數(shù)據(jù)緩沖器SBUF、輸入移位寄存器和控制器等組成。還有2個SFR寄存器SCON和PCON,用于串行口的初始化編程。,SCON 是一個特殊功能寄存器,用以設(shè)定串行口的工作方式,控制數(shù)據(jù)的接收和發(fā)送,并標示串行口的工作狀態(tài)等。該寄存器的字節(jié)地址為98H,可位尋址,其位格式為:,SM0、SM1:串行口工作方式控制位,兩位對應(yīng)四種工作方式,如下表所示(fosc是晶振頻率):,107, SM2,多機通

60、信控制位,主要用于方式2和方式3。當接收機的SM2=1時可以利用收到的RB8來控制是否激活RI(RB80時不激活RI,收到的信息丟棄;RB81時收到的數(shù)據(jù)進入SBUF,并激活RI,進而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機通信。,在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1。,REN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。,108,TB8,在方式2

61、或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標志位。 在方式0和方式1中,該位未用。,RB8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標志位。在方式1時,若SM2=0,則RB8是接收到的停止位。,TI,發(fā)送中斷標志位。在方式0時,當串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。,RI,接收中斷標志位。在方式0時,當串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時

62、,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。,,109,PCON主要是為CHMOS型單片機的電源控制而設(shè)置的專用寄存器,該寄存器中只有一位SMOD與串行口工作有關(guān),它的位格式為:,,,,,,,,,SMOD GF1 GF0 PD 1DL,PCON (97H),D7 D6 D5 D4 D3 D2 D1 D0, SMOD:波特率倍增位。串行口工作在方式1、方式2、方式3時,若SMOD=1,則波特率提高一倍;若SMOD=0,則波特率不提高一倍。單片機復(fù)位時,SMOD=0。,110,一、方式0,方

63、式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴展并行輸入或輸出口。數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。,1、方式0輸出,111,發(fā)送:當一個數(shù)據(jù)寫入SBUF后,串行數(shù)據(jù)將由RxD逐位移出;TxD輸出移位時鐘,頻率=fosc1/12; 每送出8位數(shù)據(jù) TI就自動置1; 再次發(fā)送前需要用軟件清零 TI。,112,2、方式0 輸入,113,接收:串行數(shù)據(jù)由RxD逐位移入SBUF中; TxD輸出移位時鐘,頻率=fosc1/12; 每接收 8位數(shù)據(jù)RI就自動置1; 再次接收

64、前需要用軟件清零 RI。,114,例:利用串行口工作方式0擴展出8位并行I/O口,驅(qū)動共陽LED數(shù)碼管顯示09。,,,,,,,,,,,,,,,AB,CLK,h g f e d c b a,CLR,,,,,,,,+5V,VCC,TxD,RxD,51單片機,,,,,,,,,,74LS164,,共陽LED數(shù)碼管,,,,,115,二、方式1,方式1是8位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。 8位UART(1+8+1位)波特率可變。,116,波特率可變 用定時器T1作波特率發(fā)生器: 公式:波特率 =(2SMOD

65、/32)T1的溢出率,, 溢出率:T1溢出的頻繁程度 即:T1溢出一次所需時間的倒數(shù)。, 初值 X = 2n -,2SMOD fosc 32 波特率 12,,, 波特率 =,2SMOD fosc 32 12(2n - X),其中:X 是定時器初值,,117,, 例已知晶振頻率=6MHz,SMOD=0,要求用T1工作于方式2來產(chǎn)生波特率1200,求出T1的初值:,,初值 X = 28 -,20 6106 32 1200 12,,= 256 - = 256 - 13.02,6106 460800,, 243 = 0F3H,118,T1作波特率發(fā)生器時初始化包括: 選定時器工作方式2(TMOD選

66、8位自動重裝); 將計算(或查表)出的初值X賦給TH1,TL1; 啟動T1 (SETB TR1); 對T1不要開中斷 !!,串行口的初始化包括: 對SCON選工作方式 對PCON設(shè)波特率加倍位“SMOD”(缺省值=0) 如果是接收數(shù)據(jù),仍要先置“1”REN位,119,1、方式1輸出,串行口以方式1發(fā)送數(shù)據(jù)時,數(shù)據(jù)位由TXD端輸出,發(fā)送一幀信息為10位,其中1位起始位,8位數(shù)據(jù)位(先低位后高位),1位停止位。 CPU執(zhí)行1條寫入發(fā)送緩沖器的指令后,就會啟動發(fā)送器發(fā)送,當發(fā)送完數(shù)據(jù)后,就置中斷標志TI為1。,120,2、方式1輸入,用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進行最后一次移位。當RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進入RB8,并置RI=1,向CPU請求中斷。,121,三、方式2

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!