《片機系統(tǒng)設(shè)計》PPT課件
《《片機系統(tǒng)設(shè)計》PPT課件》由會員分享,可在線閱讀,更多相關(guān)《《片機系統(tǒng)設(shè)計》PPT課件(330頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1,單片機系統(tǒng)設(shè)計技術(shù),主講教師:栗 華 ,山東大學信息科學與工程學院,大學生電子設(shè)計競賽培訓,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)知識 ,使大家不僅學習并理解單片機,更要學會如何使用單片機來構(gòu)建我們自己的應(yīng)用系統(tǒng),讓單片機按照我們的意圖來為我們服務(wù)。從
2、而,為大家參加電子設(shè)計大賽,在規(guī)定的時間內(nèi)完成智能電子系統(tǒng)的設(shè)計與實現(xiàn)儲備足夠的經(jīng)驗知識和應(yīng)用技能 ,最終能夠在電子設(shè)計大賽中取得良好的成績,為以后的職業(yè)生涯也能夠奠定良好的基礎(chǔ)。,培訓目的:,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ù)。,培訓的內(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)部資源比較豐富,易學易用、資料齊全、應(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ù)了主導地位. (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ù)牡刂罚T?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)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學下冊6整理和復(fù)習2圖形與幾何第7課時圖形的位置練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復(fù)習2圖形與幾何第1課時圖形的認識與測量1平面圖形的認識練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復(fù)習1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認識作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊2百分數(shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊1負數(shù)第1課時負數(shù)的初步認識作業(yè)課件新人教版
- 2023年六年級數(shù)學上冊期末復(fù)習考前模擬期末模擬訓練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊易錯清單十二課件新人教版
- 標準工時講義
- 2021年一年級語文上冊第六單元知識要點習題課件新人教版
- 2022春一年級語文下冊課文5識字測評習題課件新人教版
- 2023年六年級數(shù)學下冊6整理和復(fù)習4數(shù)學思考第1課時數(shù)學思考1練習課件新人教版