版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章 96系列單片機(jī)簡介及應(yīng)用實(shí)例,主要內(nèi)容§3.1 硬件結(jié)構(gòu)§3.2 MCS-96指令系統(tǒng)§3.3 80C196KB單片機(jī)應(yīng)用實(shí)例目的:通過一種單片機(jī)的設(shè)計(jì)實(shí)例,掌握智能儀器儀表中CPU設(shè)計(jì)的一般方法。,§3.1 硬件結(jié)構(gòu),主要內(nèi)容3.1.1 內(nèi)部定時(shí)3.1.2 存儲(chǔ)空間3.1.3 芯片配置寄存器CCR3.1.4 狀態(tài)和控制寄存器3.1.5 中斷結(jié)構(gòu) (√)——重
2、點(diǎn)3.1.6 定時(shí)器,3.1.7 高速輸入單元 (√)3.1.8 高速輸出單元 (√)3.1.9 模擬接口3.1.10 串行口 (√)3.1.11 監(jiān)視定時(shí)器3.1.12 復(fù)位和掉電保護(hù),3.1.1內(nèi)部定時(shí),,內(nèi)部定時(shí)(續(xù)),8098為3分頻結(jié)構(gòu),即每3個(gè)時(shí)鐘周期為1個(gè)狀態(tài)周期,在12M的晶振下:1個(gè)狀態(tài)周期=3個(gè)時(shí)鐘周期=1/12000000*3s=1/4μs (8T)80C196為
3、2分頻結(jié)構(gòu):1個(gè)狀態(tài)周期=2個(gè)時(shí)鐘周期=1/12000000*2s=1/6μs,3.1.2存儲(chǔ)空間,寄存器組合空間 (√)專用寄存器空間掉電保護(hù)空間ROM空間的尋址,存儲(chǔ)空間,3.1.3芯片配置寄存器CCR,CCR的內(nèi)容由用戶預(yù)先寫入018H單元(芯片配置字節(jié)),系統(tǒng)復(fù)位時(shí),該芯片配置字節(jié)被自動(dòng)送入CCR寄存器。(8位總線時(shí)一般為0BDH),3.1.4狀態(tài)和控制寄存器,8098有兩個(gè)I/O控制寄存器IOC0和IOC1IO
4、C0控制定時(shí)器2和高速輸入線。IOC1控制某些引腳功能、中斷源和兩個(gè)HSO引腳。,控制寄存器,狀態(tài)寄存器,3.1.5中斷結(jié)構(gòu) (詳細(xì)),,設(shè)置中斷向量,;設(shè)置HSI,TIME,SPCON 的中斷向量ORG2000HDCWTYCINT ;T1溢出中斷ORG2004HDCWHSIINT ;HSIINT---高速輸入中斷ORG200AHDCWTIMEINT ;TIMEINT---軟件定時(shí)中
5、斷,3.1.6定時(shí)器,系統(tǒng)中有兩個(gè)16位定時(shí)器,定時(shí)器1和定時(shí)器2。定時(shí)器1作為實(shí)時(shí)時(shí)鐘用來同步其他事件。它自由運(yùn)行,每8個(gè)狀態(tài)周期加1。(定時(shí)器+1時(shí)間為8T=?)該計(jì)數(shù)器在任何時(shí)刻均可讀出,但一般不可改寫,且除芯片復(fù)位之外也沒有其他手段使其停止計(jì)數(shù)并恢復(fù)為0。,定時(shí)器(續(xù)),定時(shí)器1產(chǎn)生高速輸入單元HSI和高速輸出單元HSO的基準(zhǔn)時(shí)間。定時(shí)器溢出時(shí)可用來產(chǎn)生中斷,溢出間隔時(shí)間(在12M晶振下):0FFFFH*8*T=6553
6、5*8*1/4≈131ms (三分頻系列,如8098)0FFFFH*8*T=65535*8*1/6≈87ms (二分頻系列,如80C196),T1溢出中斷服務(wù)子程序,TYCINT:PUSHF… POPF RET,3.1.7高速輸入單元,HSI運(yùn)行方式HSI狀態(tài)寄存器(HSI_STATUS)HSI的控制和操作 (√)(詳細(xì)),高速輸入概述,高速輸入單元HSI可用定時(shí)器1作實(shí)
7、時(shí)時(shí)鐘來記錄外部事件發(fā)生的時(shí)間。“高速”表示事件的獲取無需CPU的干預(yù)。該單元有四條高速輸入線(HSI.0-3),其中HSI.2-3為雙向引線,和HSO.4-5共用同一引腳。由IOC0和IOC1確定。,一. HSI運(yùn)行方式HSI_MODE,,,方式選擇位 事件定義008個(gè)正跳變?yōu)橐粋€(gè)事件01 每個(gè)正跳變?yōu)橐粋€(gè)事件10每個(gè)負(fù)跳變?yōu)橐粋€(gè)事件11每個(gè)跳變(正和負(fù))均為事件,二.HSI狀態(tài)寄存器HSI_
8、STATUS),各位的定義同圖3.9其中低位表示本引腳上是否有事件發(fā)生;高位表示本引腳的現(xiàn)行狀態(tài)。,三.HSI的控制和操作,有關(guān)控制見HSI_MODE、IOC0、IOC1、INT_MASK、INT_PENDING以及中斷向量。中斷發(fā)生后:先讀HSI的狀態(tài),后讀其中斷時(shí)間。(兩者均得讀,且順序讀),HSIINT 子程序(記錄脈沖),HSIINT: PUSHFLDBHSIBJ,HSISTAJBSHSIBJ,0,HI0
9、 ;判斷是否0口中斷JBSHSIBJ,2,HI1 ;判斷是否1口中斷JBSHSIBJ,4,HI2 ;2JBSHSIBJ,6,HI3 ;3SJMPHSIFHHI0:STHSITIM ,HI0T ;讀時(shí)間到HI0T中 … POPF RET,3.1.8高速輸出單元,HSO輸出控制 LDB HSO_COMMAND, #WHAT_TO
10、_DOADD HSO_TIME,TIMER1, #WHEN_TO_DO_IT,高速輸出單元(續(xù)),軟件定時(shí)1ms中斷服務(wù)子程序,TIMEINT:PUSHFDILDBHSOCOM ,#38H ;重設(shè)TIMEINTADDHSOTIM ,TIMER1 ,#TIJG ;12M=#750 6M=#375EIINCZDCS ;中斷次數(shù)加1POPFRET,3.1.9模擬接口,模擬輸入
11、 AD_COMMAND AD_RESULT,脈沖寬度調(diào)制輸出(PWM),數(shù)/模轉(zhuǎn)換可以通過脈沖寬度PWM輸出來實(shí)現(xiàn),PWM輸出波形是一個(gè)重復(fù)周期為256個(gè)狀態(tài)周期,而占空比可變,占空比的變化通過向PWM寄存器寫入新值來實(shí)現(xiàn)。對(duì)此波形進(jìn)行積分,那么,即可得到一個(gè)DC電平,通過改變占空比,可使該電平分256個(gè)階梯變化。,,,,,,,,,,,,,,,,,,AD變換子程序,ADBH:LDBTDHAO,ACHTDH;TDHAO標(biāo)記
12、ACHTDHORBTDHAO,#00001000BLDBADCOM,TDHAO;立即啟動(dòng)AD變換NOPNOPNOPADDD1:LDBBL,ADL;等待AD變換的完成JBSBL,3,ADDD1LDBBL,ADLLDBBH,ADHSHRBX,#6ADDADLJD,BX ;累計(jì)A/D變換值A(chǔ)DDCADLJG,#0INCADBHCS
13、 ;A/D變換次數(shù)+1RET,3.1.10串行口,方式0:同步方式,通常用在以移位寄存器為基礎(chǔ)的I/O擴(kuò)展方面方式1:標(biāo)準(zhǔn)異步通訊方式。,串行口(續(xù)),方式2和方式3:用于多機(jī)通訊,串行口(續(xù)),串行口的控制,串行口波特率設(shè)置,1. 98:方式0= 方式1、2、3= 因?yàn)椴ㄌ芈始拇嫫鞯淖罡呶挥糜趯?duì)內(nèi)部時(shí)鐘源的選擇 ,當(dāng)用XTAL1時(shí),固定為“1
14、”,,,2. 96系列單片機(jī)的波特率設(shè)置,,方式0= 方式1、2、3=,基于串行口的多機(jī)通訊,串行口方式2和方式3是提供給多機(jī)通訊用的。在方式2下若所接收到的第9位數(shù)據(jù)非1,則不會(huì)發(fā)生串行口中斷,而方式3則均會(huì)中斷。在多機(jī)系統(tǒng)中,當(dāng)主機(jī)欲向某從機(jī)發(fā)送數(shù)據(jù)時(shí),它首先發(fā)出一幀地址以確定目的從機(jī)。地址幀和數(shù)據(jù)幀的不同點(diǎn)在于,前者之第9位數(shù)據(jù)位為1,后者之該位為0。,在方式2下,數(shù)據(jù)幀不會(huì)引起任何從機(jī)中斷。然而,地址幀卻將在所有從機(jī)
15、中激發(fā)中斷。這樣,各從機(jī)便在各自的中斷服務(wù)程序中檢查所收到的字節(jié)是否等于自己的地址。相等者即為被呼叫的從機(jī),于是它便切換到方式3下運(yùn)行,以接收此后主機(jī)發(fā)來的數(shù)據(jù);并回送主機(jī)數(shù)據(jù)后恢復(fù)到方式2下等待。未被呼叫的多個(gè)從機(jī)則仍留在方式2下繼續(xù)自己的作業(yè)。,通訊舉例:主機(jī)和2號(hào)從機(jī)進(jìn)行數(shù)據(jù)交換1、主機(jī)和全部從機(jī)工作于方式2;2、主機(jī)以第9位為1發(fā)送地址碼2;3、全部從機(jī)接收中斷,2號(hào)判定被呼叫轉(zhuǎn)入方式3;其它從機(jī)仍然工作與方式2;4、
16、主機(jī)發(fā)送數(shù)據(jù),DB9=0,2號(hào)中斷接收;5、2號(hào)反送主機(jī)數(shù)據(jù),主機(jī)接收;6、主機(jī)和2號(hào)從機(jī)再轉(zhuǎn)入方式2待命。,串口中斷服務(wù)程序,SERINT: PUSHFRDAGA:LDBSPTEMP,SPSTATORBTEMP,SPTEMPANDBSPTEMP,#60HJNERDAGAJBSTEMP,5,TRANSJBSTEMP,6,GETSJMPSEROUT …,3.1.11監(jiān)視定時(shí)器,在12M晶振
17、下:98:WATCHDOG溢出時(shí)間為:16ms96:WATCHDOG溢出時(shí)間為:10.67ms監(jiān)視定時(shí)器的驅(qū)動(dòng):(連續(xù)寫入) DI LDB WATCHD,#1EH LDB WATCHD,#0E1H EI,3.1.12復(fù)位和掉電保護(hù),在電源處于正常范圍且振蕩器穩(wěn)定后,RESET引腳上至少保持兩個(gè)狀態(tài)周期的低電平就可使系統(tǒng)復(fù)位。RESET引腳電壓升高后,系統(tǒng)將執(zhí)行10個(gè)狀態(tài)周期的內(nèi)部復(fù)位序列。在此期間,芯片
18、配置字節(jié)CCR被從2018H單元讀出并進(jìn)而寫入芯片CCR寄存器。,上電復(fù)位可用電容、單穩(wěn)或其他方法實(shí)現(xiàn),條件是它們能夠提供一個(gè)寬度要比Vcc和振蕩器穩(wěn)定下來所需的時(shí)間至少長兩個(gè)狀態(tài)周期的負(fù)脈沖。對(duì)于96系列單片機(jī),復(fù)位電平是低電平有效。,§3.2 MCS-96指令系統(tǒng),主要內(nèi)容3.2.1操作數(shù)類型 (√)3.2.2操作數(shù)的尋址 (√)3.2.3程序狀態(tài)字PSW3.2.4指令系統(tǒng),3.2.1操作數(shù)類型,字節(jié)型(B
19、YTE)字型(WORD)短整數(shù)型(SHORT_INTEGER)整數(shù)型(INTEGER)位型(BIT)雙字型(DOUBLE_WORD)長整數(shù)型(LONG_INTEGER),3.2.2 操作數(shù)的尋址 (詳細(xì)),寄存器直接尋址 (LD AX,BX)間接尋址 (LD AX,[BX])自動(dòng)增量間接尋址 (LD AX,[BX]+)立即尋址 (LD AX,#1234
20、)短變址尋址 (LD AX,123[BX])長變址尋址 (LD AX,1234[BX])棧指針寄存器尋址 (LD AX,2[SP]),3.2.3程序狀態(tài)字PSW,,3.2.4指令系統(tǒng),8098單片機(jī)共有100條指令。80C196單片機(jī)共用112條指令,其中的100條與8098完全相同。專用指令如:CMPL/MOVB/JNZW等都是98所沒有的。(詳細(xì)),1.
21、60; 數(shù)據(jù)傳送指令,LD LDB ST STB LDBSE(短整數(shù)→整數(shù)) LDBZE(字節(jié)→字)LD AX,BX; LDB AL,BLST AX,BX; STB AL,BLLDBSE LDBZE不常用,2. 算術(shù)運(yùn)算指令,ADD ADDB ADDC ADDCB SUB SUBB SUBC SUBCB CMP
22、 CMPB MULU MULUB MUL MULB DIVU DIVUB DIV DIVB CMPL(雙字比較80C196)注意有無符號(hào)和操作數(shù)類型MULU(16*16=32) MULUB(8*8=16) 無符號(hào)DIVU(32/16=16 低16=商 高16=余數(shù))DIVUB(16/8=8 低8=商 高8=余數(shù))課堂練習(xí):將1234分解為BCD碼,BCD變換子程序BCSD為入口,AX BX
23、為轉(zhuǎn)換的壓縮BCD碼,BCDBH:CLRAXCLRBCSGDIVUBCSD,#1000ORAX,BCSDSHLAX,#4LDBCSD,BCSGCLRBCSGDIVUBCSD,#100ORAX,BCSDSHLAX,#4LDBCSD,BCSGCLRBCSG,DIVUBCSD,#10ORAX,BCSDSHLAX,#4ORAX,BCSGSTBAL,BL
24、STBAL,BHHSHRBBL,#4ANDBBHH,#00001111BSTBAH,ALSHRBAL,#4ANDBAH,#00001111BPMXYH:RET,3. 邏輯操作指令,AND ANDB OR ORB XOR XORBANDB AL,#11101111B ;指定位清0ORB AL,#00010000B ;
25、指定位置1XORB AL,#00010000B ;指定位取反,4. 棧操作指令,PUSH PUSHF POP POPF PUSHA POPA(雙字進(jìn)棧80C196專用)PUSHFPUSH AX ;96的堆棧向下生成SP=SP-2PUSH BX ;若SP原為0F0H,BX壓棧后SP=0EEH …POP BX
26、 ;先入后出POP AX POPF,5. 轉(zhuǎn)移操作指令,LJMP SJMP BR LCALL SCALL RET TRAP(軟件中斷陷井,用戶不用),6. 條件轉(zhuǎn)移指令,JC JNC JNH JE JH JNE JV JNV JGE JLT JVT JNVT JGT JLE
27、JST JNSTCMPBAL,BLJNHADDRESS0 ;當(dāng)AL<=BL時(shí)跳轉(zhuǎn),7. 位為0或位為1的轉(zhuǎn)移指令,JBS(位為1跳轉(zhuǎn)) JBC(位為0跳轉(zhuǎn))JBS AL,0,ADDRESS1 ;當(dāng)AL的第0位=1時(shí)跳轉(zhuǎn)JBC AL,0,ADDRESS2 ;當(dāng)AL的第0位=0時(shí)跳轉(zhuǎn),8. 循環(huán)控制指令
28、,DJNZ DJNZW(一個(gè)字的遞減,80C196所有) LDB AL,#8LOOP1: LDBBL,#0F0HLOOP0: NOP DJNZ BL,LOOP0 DJNZ AL,LOOP1,9. 單寄存器指令,DEC DECB NEG NEGB INC INCB EXT EXTB(符號(hào)擴(kuò)展) NOT NOTB
29、 CLR CLRBNEG 求補(bǔ)=求反+1 例如:-1=11111111B1=00000001,1求反=11111110B,求反+1=11111111B再例如DS1820輸出的溫度值為補(bǔ)碼,若收到00000001B則為+1,若收到11111111B則為-1。,10. 移位指令,SHL SHLB SHLL SHR SHRB SHRL SHRA SHRAB SH
30、RAL注:SHRA 為帶符號(hào)右移,移位后左邊補(bǔ)1SHRAL AL(AL=#11000011B);AL結(jié)果=#11100001B,11. 專用指令,SETC CLRC CLRVT RST DI EI NOP SKIP NORMLRST 機(jī)器碼為0FFH ,軟件復(fù)位數(shù)據(jù)總線D0~D7接上拉排阻,若程序跑飛到無效地址,取回指令為0FFH使系統(tǒng)復(fù)位。,12.
31、; 塊移動(dòng)(80C196所有),BMOV BMOVIBMOV LREG,WREG 其中LREG為源地址(低16位)指針和目的地址(高16位)指針的組合,WREG為移動(dòng)的字?jǐn)?shù)BMOV LREG(高16位=5000H 低16位=4000H),WREG(16位=100)上面語句的作用為將以4000H為首地址的100個(gè)字的數(shù)塊移到以5000H為首地址的存儲(chǔ)器中中,13.
32、0; 偽指令,REG:定義寄存器地址ORG:定義程序代碼段地址DSB DSW:定義寄存器地址的代碼DCB DCW:在指定的存儲(chǔ)空間定義常數(shù),即直接將常數(shù)存放于指定地址存儲(chǔ)空間EQU:定義常數(shù)代碼END:程序結(jié)束標(biāo)記,§3.3 80C196KB單片機(jī)測(cè)控系統(tǒng)應(yīng)用實(shí)例,主要內(nèi)容(機(jī)車隨車質(zhì)量狀態(tài)檢測(cè)診斷報(bào)警裝置)3.3.1 裝置研制背景3.3.2 系統(tǒng)總體結(jié)構(gòu)、檢測(cè)參數(shù)及功能 (√)
33、3.3.3 系統(tǒng)軟硬件設(shè)計(jì) (√)3.3.4 試驗(yàn)及結(jié)論,3.3.1 裝置研制背景,目前,根據(jù)鐵道部規(guī)定,機(jī)車實(shí)行定期大修、段修,在段修中經(jīng)常存在某些部件尚可運(yùn)行,而某些部件應(yīng)早該更換的問題,這樣勢(shì)必存在浪費(fèi)和事故。因此有必要設(shè)計(jì)一種隨車的儀器,隨車檢測(cè)重要參數(shù),并隨車診斷報(bào)警、記錄機(jī)車隨車實(shí)時(shí)的動(dòng)態(tài)信息,數(shù)據(jù)轉(zhuǎn)儲(chǔ)后,通過地面數(shù)據(jù)分析處理診斷出是否存在故障隱患,以保運(yùn)輸安全。,3.3.2 系統(tǒng)總體結(jié)構(gòu)、檢測(cè)參數(shù)及功能,,系統(tǒng)總體結(jié)構(gòu)、
34、檢測(cè)參數(shù)及功能(續(xù)),裝置檢測(cè)診斷的內(nèi)容語音報(bào)警和應(yīng)急故障處理提示的部分內(nèi)容系統(tǒng)總體功能(詳細(xì)),3.3.3 系統(tǒng)軟硬件設(shè)計(jì),裝置關(guān)鍵硬件的設(shè)計(jì)單總線數(shù)字式DS18B20傳感器編碼與自動(dòng)尋碼定位系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟硬件詳細(xì)功能描述系統(tǒng)主機(jī)硬件的研制系統(tǒng)傳感器的選取系統(tǒng)主機(jī)軟件的研制PC機(jī)軟件的研制,裝置硬件原理圖,CPU板信號(hào)采集和調(diào)理板,3.3.4 試驗(yàn)及結(jié)論,裝置綜合應(yīng)用計(jì)算機(jī)軟硬件技術(shù)、數(shù)據(jù)采集、記錄、顯示
35、及存儲(chǔ)技術(shù),實(shí)現(xiàn)對(duì)機(jī)車主要的電參數(shù)、電氣線路狀態(tài)、油耗率、熱工參數(shù)、軸溫及火情等質(zhì)量參數(shù)的實(shí)時(shí)采集、記錄、顯示,并進(jìn)行實(shí)時(shí)的機(jī)車故障診斷、語音定點(diǎn)定性報(bào)警提示,通過數(shù)據(jù)轉(zhuǎn)儲(chǔ)地面分析處理,參數(shù)性能變化趨勢(shì)和機(jī)車故障先兆信息,及時(shí)發(fā)現(xiàn)機(jī)車故障隱患,從而提高機(jī)車質(zhì)量,確保運(yùn)輸安全。,本章小結(jié),本章重點(diǎn)介紹了96系列單片機(jī)的硬件結(jié)構(gòu)、軟件操作以及一個(gè)基于80C196KB的隨車智能儀表的設(shè)計(jì)實(shí)例。通過96系列單片機(jī)的實(shí)例,大家掌握智能儀表CP
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- AVR系列單片機(jī)c語言編程與應(yīng)用實(shí)例.pdf
- AVR系列單片機(jī)c語言編程與應(yīng)用實(shí)例.pdf
- 0566、avr系列單片機(jī)c語言編程與應(yīng)用實(shí)例
- 0566、avr系列單片機(jī)c語言編程與應(yīng)用實(shí)例
- 單片機(jī)外文翻譯-----單片機(jī)簡介
- 96系列單片機(jī)仿真器研究與設(shè)計(jì).pdf
- 單片機(jī)編程實(shí)例大全
- 單片機(jī)編程實(shí)例大全
- 96單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)應(yīng)用系統(tǒng)單片機(jī)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)原理及應(yīng)用
- msp430教程1msp430 單片機(jī)系列簡介
- 單片機(jī)課程設(shè)計(jì)-- 單片機(jī)原理及應(yīng)用
- 51單片機(jī)c語言編程基礎(chǔ)及實(shí)例
- 第十一章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例
- [工學(xué)]單片機(jī)的課程設(shè)計(jì)綜合應(yīng)用實(shí)例
- 51單片機(jī)簡介外文翻譯
- 單片機(jī)編程實(shí)例____c語言____匯編
- 單片機(jī)c語言編程實(shí)例大全
- 單片機(jī)編程實(shí)例____c語言____匯編
評(píng)論
0/150
提交評(píng)論