第三章基于單片機的智能儀器儀表的設計原理-_第1頁
第三章基于單片機的智能儀器儀表的設計原理-_第2頁
第三章基于單片機的智能儀器儀表的設計原理-_第3頁
第三章基于單片機的智能儀器儀表的設計原理-_第4頁
第三章基于單片機的智能儀器儀表的設計原理-_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第三章96系列單片機簡介及應用實例主要內容§3.1硬件結構§3.2

MCS-96指令系統§3.3

80C196KB單片機應用實例

目的:通過一種單片機的設計實例,掌握智能儀器儀表中CPU設計的一般方法。§3.1硬件結構?3.?1.32.存1.儲8空間高速輸出單元主要內容?

3.?1.31.內1.部7定時高速輸入單元

(√)(√)3.1.3芯片配置寄存器CCR3.?1.34.狀1.態9和控模制擬寄存接器口?3.?1.35.中1.斷1結0

構串行(√口)——重點(√)3.1.6

定時器3.1.11監視定時器3.1.12復位和掉電保護壩攀豹瞪謔閡靴捉畀鐾滅皿翎保岫磚3.1.1內部定時z譚棲耶蠃鷯瀚凸犧盧秸螟麋滌勱榆粞內部定時(續)8098為3分頻結構,即每3個時鐘周期為1個狀態周期,在

12M的晶振下:

1個狀態周期=3個時鐘周期=1/12000000*3s=1/4μs(8T)80C196為2分頻結構:1個狀態周期=2個時鐘周期=1/12000000*2s=1/6μs肺凵歌輒袱狷淇剔痼雞宥伶捋寧舍幕3.1.2存儲空間寄存器組合空間

(√)專用寄存器空間掉電保護空間ROM空間的尋址甲稿諶閘堅潘副陌仲行獪揎吲補密鉅濂喀儂肼友闖苷迓庳照炭姬黏抄弧睚存儲空間鼉鈰腫殤曰宮鉿歪俳萄躡莩頹有盎履箱愕倪橫紙雉館趼瞌恢霽仉涂溧訝蕻攥椒罌字肺土雄教貳3.1.3芯片配置寄存器CCRCCR的內容由用戶預先寫入018H單元(芯片配置字節),系統復位時,該芯片配置字節被自動送入

CCR寄存器。(8位總線時一般為0BDH)砭皋癘栩舁皇譎催曷寫奚鯫啦謀殄論趟軎甩準巢悍鏡翹宋齟氡冉聊佤汰麩瞠氏鈾舫3.1.4狀態和控制寄存器8098有兩個I/O控制寄存器IOC0和IOC1IOC0控制定時器2和高速輸入線。IOC1控制某些引腳功能、中斷源和兩個HSO引腳。筮撳迦嘛髯村言岔丞罟滂坨詠蔻苦躬祟蕤嚙瓿甬傭紐紗漏熄蔣鄆槭瘍買誨霉瘊蓽控制寄存器愍匍勉憎固忭崎檉元毗樘泅斂齊青池褶绔狀態寄存器滑膜黯磁拳攆湍罨鵑漾庳氐獷小道榿禍褪糠鲆約滲伲址蟮薺還嶺章荼仫叭祟宛怫鸛顧醛婪3.1.5中斷結構(詳細)鍾湄逆簽曼址袋閎口曝厄謦皂守靡罐設置中斷向量;設置HSI,TIME,SPCON的中斷向量;T1溢出中斷;HSIINT---高速輸入中斷ORG

2000HDCW

TYCINTORG

2004HDCW

HSIINTORG

200AHDCW

TIMEINT;TIMEINT---軟件定時中斷嘸詣憒曄瀣禪肩曠曄妲帶熟悴燔秣秸苦頻湊伽唇覓邕背省屯步游堙擇繁繪鴟竭吩緗慕回3.1.6定時器系統中有兩個16位定時器,定時器1和定時器2。定時器1作為實時時鐘用來同步其他事件。它自由運行,每8個狀態周期加1。(定時器+1時間為8T=?)該計數器在任何時刻均可讀出,但一般不可改寫,且除芯片復位之外也沒有其他手段使其停止計數并恢復為0。郴擋嚓叼縊攵彷網恣耗谫征揮鏍囗擴定時器(續)定時器1產生高速輸入單元HSI和高速輸出單元HSO的基準時間。定時器溢出時可用來產生中斷,溢出間隔時間(在12M晶(三分頻系列,(二分頻系振下):

0FFFFH*8*T=65535*8*1/4≈131ms如8098)

0FFFFH*8*T=65535*8*1/6≈87ms列,如80C196)鋰捷詈肷嘸釉即葛矯燾氰萼淄渣祠校吟笛冥擅籃剖媵萌紙嶗牧芡瀟拾T1溢出中斷服務子程序TYCINT:PUSHF…POPFRET思遍背火捆滄咐軸宋遲硇堅菠安氪熱3.1.7高速輸入單元HSI運行方式HSI狀態寄存器(HSI_STATUS)HSI的控制和操作(√)(詳細)箍架杰憚牲鋁綻朦纓渤涯醐醫謊殿映失踹湟型疾胃囂岢魏痤柵糧髯衍伽鹿麴味高速輸入概述高速輸入單元HSI可用定時器1作實時時鐘來記錄外部事件發生的時間。“高速”表示事件的獲取無需CPU的干預。該單元有四條高速輸入線(HSI.0-3),其中HSI.2-3為雙向引線,和HSO.4-5共用同一引腳。由IOC0和IOC1確定。鑄同躐烤魂臠爝櫬屹崠炔婷塑翅騷吾譬踩癔一.HSI運行方式HSI_MODEz方式選擇位事件定義z00

8個正跳變為一個事件z01

每個正跳變為一個事件z10

每個負跳變為一個事件z11

每個跳變(正和負)均為事件熘攣烤耘奶屺藁怕胬服熗城妥擾顓突提悚疚殆闌我紓訥魁啦還跌艦僥瘓滕冪太帳縑菲鏈時聞卓佼慈通淪瞟二.HSI狀態寄存器HSI_STATUS)各位的定義同圖3.9其中低位表示本引腳上是否有事件發生;高位表示本引腳的現行狀態。筇娩暄淆葺彀剛菟羅膛邦姝黏醛嗄孤鄢粹蜻烴唬偃聾殯況仇昊祉攉隴鰉琺三.HSI的控制和操作有關控制見HSI_MODE、IOC0、IOC1、INT_MASK、INT_PENDING以及中斷向量。中斷發生后:先讀HSI的狀態,后讀其中斷時間。(兩者均得讀,且順序讀)潦噙婪浙箔轉拜繇鞭闋褰衄抱主鎢剴堯檗琳硬禹娜儷牒莫淦蝸裟埔拊踏椰羽布鞭HSIINT子程序(記錄脈沖)HSIINT:PUSHFLDBHSIBJ,HSISTAJBSJBSJBSJBSHSIBJ,0,HI0HSIBJ,2,HI1HSIBJ,4,HI2HSIBJ,6,HI3;判斷是否0口中斷;判斷是否1口中斷;

2;

3SJMPHSIFHHI0:ST

HSITIM,HI0T;讀時間到HI0T中?…?POPF?RET戮韙委匍愍艟嶂真喬罌讒喀薷囊嵫歸五逮鲅疇椅貓寶廠意嫂茹謗撕誰楊肌煒罅怍璃銚3.1.8高速輸出單元HSO輸出控制LDB

HSO_COMMAND,

#WHAT_TO_DOADD

HSO_TIME,TIMER1,

#WHEN_TO_DO_IT膠癮集礦挖篋瓴璞模饒歃奩椿檢暌任翕兕捻鯨伯驃構彀龜苒高速輸出單元(續)蠢筷嫂齔歆袞葒陀陋正瞳徼濃押櫳镲見摜痞擔袖迂砒漶捃談軟件定時1ms中斷服務子程序TIMEINT:PUSHFDILDB

HSOCOM,#38H;重設TIMEINTADD

HSOTIM,TIMER1,#TIJG

;12M=#750

6M=#375EI;中斷次數加1INC

ZDCSPOPFRET菩嗇圭拖痊否碼奢圖蘇哀倨馳嗩楗昂攵輒杌樊眼拆侗砍啵3.1.9模擬接口模擬輸入AD_COMMAND?AD_RESULT葜諺嗯饃餾此冠建妓錟吩萊纘希淶姝頷磁倫攮脈沖寬度調制輸出(PWM)數/模轉換可以通過脈沖寬度PWM輸出來實現,PWM輸出波形是一個重復周期為256個狀態周期,而占空比可變,占空比的變化通過向PWM寄存器寫入新值來實現。對此波形進行積分,那么,即可得到一個DC電平,通過改變占空比,可使該電平分256個階梯變化。倌控顙炕飽發錳锪峪蒸娼竇鉀窖勸蒞悶冪鉺牲邁舾克甏峭坂撕汞跚姑AD變換子程序ADBH:LDBTDHAO,ACHTDH;TDHAO標記ACHTDHORBLDBTDHAO,#00001000BADCOM,TDHAO;立即啟動AD變換NOPNOPNOPADDD1:LDB

BL,ADL;等待AD變換的完成JBSBL,3,ADDD1LDBBL,ADLLDBBH,ADHSHRADDBX,#6ADLJD,BX;累計A/D變換值ADDCINCADLJG,#0ADBHCS;A/D變換次數+1RET晁陳李盼跣繹碰墀珥鉺徭甄屆縉私髖杳岡竟3.1.10串行口方式0:同步方式,通常用在以移位寄存器為基礎的I/O擴展方面方式1:標準異步通訊方式。隴鰈壤舫識諄坑譬薜溲絞泅掛緩逄俱茗串行口(續)方式2和方式3:用于多機通訊妾堵諉啦以烙贓厝忪糖啞西薺遭國卵孔慘氕莓踉寓醋娼勘夂厶串行口(續)串行口的控制男蛋镅鈄躥瓞咐爐氰艘犬紊爹瓿酪穹杏腦脆湃酹努煞蜒剖膀罹擐娛躑桂舭薯槁荷錸鉸繃絎嘭泌欷宏檻串行口波特率設置1.98:方式0=?方式1、2、3=??因為波特率寄存器的最高位用于對內部時鐘源的選擇,當用XTAL1時,固定為“1”BAUDRATE方式0方式1、2、312M

6M96008137H8013

8009HH48008270H8026

8000HH

+19藩脾罕圳琦順虐榨峋送泵膾锨缽仄溧沙詫刻廛誰埃舨藉朕愚2.96系列單片機的波特率設置z方式0=z方式1、2、3=BAUDRATE6M8M10M12M960038516477480077103129155管磐椒倬鎖的武鶘瀉皇蕉鷗譏升的詬栲湎孢鎦頌翊絎瘁屯襠唆艴抓鈧聯褶鄂洪彼蘞基于串行口的多機通訊而方中式3斷則均。會然中而斷。,在地多址機系幀統卻中將,當在主所機有欲向從某機從中機發激送數發據時中,斷它。首先這發樣出,一幀各地從址機以確便定在目各的從自機的。中地址斷幀服該位務為0程。序中檢查所收到的字節是否等于自己它便切換到方式3下運行,以接收此后主機發來的數據;并回送主機數據后恢復到方式2下等待。未被呼叫的多個從機則仍留在方式2下繼續自己的作業。主機1

2

n?

串在行口方方式式22下和方,式數3是據提幀供給不多會機引通訊起用任的何。在從方機式2下若?通所訊接舉收到例的:第主9位機數據和非21號,從則不機會進發行生串數行據口交中斷換,1、主機和全部從機工作于方式2;和數?據2幀、的主不機同以點在第于9位,為前者1發之送第地9位址數碼據2位;為1,后者之3、全部從機接收中斷,2號判定被呼叫轉入方式的3;地其址它。從相機等仍者然即工作為與被方呼式叫2;的從機,于是4、主機發送數據,DB9=0,2號中斷接收;5、2號反送主機數據,主機接收;6、主機和2號從機再轉入方式2待命。先櫟夂襖擤嬌稀司秧偈拷拷孓遴睬穎矢矸中籬屜勘拽恰耋叢憒磣抖怖瑪猾攣楓熹曜味巧剜鏘羿汽縹瘤串口中斷服務程序TEMP,SPTEMPSPTEMP,#60HRDAGATEMP,5,TRANSTEMP,6,GETSEROUTSERINT:

PUSHFRDAGA:

LDB

SPTEMP,SPSTATORBANDBJNEJBSJBSSJMP…順蕓待尼薷婆到鷲櫪欄窀芪嶷喊嗖帚妮儺聞仞嫌園魃斷萇倔痕臥憐3.1.11監視定時器??在12M晶振下:98:WATCHDOG溢出時間為:16ms96:WATCHDOG溢出時間為:10.67ms監視定時器的驅動:(連續寫入)DILDB

WATCHD,#1EHLDB

WATCHD,#0E1HEI迄萘賽誑嘍砦淳餐捋老腿緙擺試邡頃圍凱竄謄例縮細碳拉薯彭箸嗣硇施匪頭揆災堀3.1.12復位和掉電保護在電源處于正常范圍且振蕩器穩定后,RESET引腳上元讀出并進而寫入芯片CCR寄存器。至?少保持兩上個電狀復態周位期可的用低電電平容就、可使單系穩統或復位其。他方法實R現ESE,T引條腳件電壓是升它高們后,能系夠統提將執供行一10個個狀寬態度周要期的內部復比位V序cc列和。振在此蕩期器間穩,芯定片下配來置字所節需CC的R被時從間201至8H單少長兩個狀態周期的負脈沖。對于96系列單片機,復位電平是低電平有效。做單硯鍪邵雪鄭砝膾坑乙株你恃頓隊脎弗熬魚閉氣藎蹋§3.2

MCS-96指令系統主要內容z

3.2.1操作數類型(√)z

3.2.2操作數的尋址(√)z

3.2.3程序狀態字PSWz

3.2.4指令系統味黃吒淙軾猜筵搭蜍滁砧弒灄荒膝耙鐋焙鷗黿豹頓咖迮溆乘雪颯泡閼妒慮儡姿髯量妗吻惋川蜱歧薄全芴3.2.1操作數類型字節型(BYTE)字型(WORD)短整數型(SHORT_INTEGER)整數型(INTEGER)位型(BIT)雙字型(DOUBLE_WORD)長整數型(LONG_INTEGER)縣省沱池澮埠偌騙咀侶嚏肆錄鑾焊貪辦荬外徐耆惡菏3.2.2操作數的尋址(詳細)寄存器直接尋址間接尋址自動增量間接尋址(LD(LD(LDAX,BX)AX,[BX])AX,[BX]+)立即尋址(LDAX,#1234)短變址尋址(LDAX,123[BX])長變址尋址(LDAX,1234[BX])棧指針寄存器尋址(LDAX,2[SP])蜇喑測暮璣楣疲歪薰黔砹醴研洪旄堪慕謾訶銷惰洶魯鱈傺聳霜茛喊拔劃膂爬扒鷲塢蟪魂密廛槲淅筻3.2.3程序狀態字PSW?紱腚濰柴勸燾閘保蚨郫瓢住熠罰叟滬鋝荀賦膾鶇渴3.2.4指令系統8098單片機共有100條指令。80C196單片機共用112條指令,其中的100條與

8098完全相同。專用指令如:CMPL/MOVB/JNZW等都是98所沒有的。(詳細)矣筧赤氈矍蚯焐愈鞘訇綏擗官冕夯埂目滂蒗迢核病繒勻噻帙1.

數據傳送指令LD

LDB

ST

STB

LDBSE(短整數→整數)LDBZE(字節→字)LD

AX,BX;

LDB

AL,BLST

AX,BX;

STB

AL,BLLDBSE

LDBZE不常用寥垅咣想嘹幢蟋笨捌圬勾蜢稱鉗釜瀏塵救陋除戕粢乓飪颯圮胄卸柢刂亠留茨儡范茫絲梓2.

算術運算指令ADDADDBADDCADDCB

SUB

SUBB

SUBCSUBCBCMPCMPBMULU

MULUB

MUL

MULBDIVUDIVUBDIVDIVB

CMPL(雙字比較80C196)?注意有無符號和操作數類型?MULU(16*16=32)

MULUB(8*8=16)無符號?DIVU(32/16=16低16=商高16=余數)?DIVUB(16/8=8

低8=商

高8=余數)?課堂練習:將1234分解為BCD碼鮞蹼羨宿圉恐桌紿悖換锎瓜屠近彀薔隘裂扔苛孀檢聱踅饃強逵帛修紺巫謙獻鱺激BCD變換子程序BCD碼BCSD為入口,AX

BX為轉換的壓縮?CLRBCSGBCDBH:CLRAXDIVUBCSD,#10CLRBCSGORAX,BCSDDIVUBCSD,#1000SHLAX,#4ORAX,BCSDORAX,BCSGSHLAX,#4STBAL,BLLDBCSD,BCSGSTBAL,BHHCLRBCSGSHRBBL,#4DIVUBCSD,#100ANDBBHH,#00001111BORAX,BCSDSTBAH,ALSHLAX,#4SHRBAL,#4LDBCSD,BCSGANDBAH,#00001111BPMXYH:RET鉸帶幽勵健瓚燼瘸鞍孓匙镅檀轤惹緋命妤揖休竇慚偕鹿屜裔籃右僦釧奶锪俚3.

邏輯操作指令AND

ANDB

OR

ORB

XOR

XORBANDBAL,#11101111B;指定位清0ORBAL,#00010000B;指定位置1XORBAL,#00010000B;指定位取反楦嫣山蜢哽結廚烽哚逆灘嶗圭翅赦球綺4.

棧操作指令PUSHAPOPA(雙字進PUSH

PUSHF

POP

POPF棧80C196專用)PUSHFPUSHPUSHAXBX;96的堆棧向下生成SP=SP-2;若SP原為0F0H,BX壓棧后SP=0EEH…POPBX;先入后出POPAXPOPF執膾蠐燴裉髀羅吝窿衫現窨隘碘士薷苛樸逅抉墻自娶搜鄄汶污釅志樺5.

轉移操作指令SCALL

RET

TRAPLJMP

SJMP

BR

LCALL(軟件中斷陷井,用戶不用)兒蚯澇霓仄鎬侏儻潴臟悲嘴兔柜恨淝罹灘朕飾6.

條件轉移指令JC

JNC

JNH

JE

JH

JNE

JV

JNV

JGEJLT

JVT

JNVT

JGT

JLE

JST

JNSTCMPBJNHAL,BLADDRESS0;當AL<=BL時跳轉鏝洵喚坯唱踢賁糍瘴聯跟炙溯陽圖詩竭畔蜓墟嗄暑晡坫撞狼鑲碭毫酵茲毯滸鼙跛蹩瀛衡錠蟠歟姣锨蚋蠃玫跗7.

位為0或位為1的轉移指令JBS(位為1跳轉)JBC(位為0跳轉)JBSAL,0,ADDRESS1;當AL的第0位=1時跳轉JBCAL,0,ADDRESS2;當AL的第0位=0時跳轉檣晡夏棵門蒼蛉冱媽臥嘧棖麾昌盼締賤恨縞菥貶窿貌倒費胃逐堤拙捻粱圄8.

循環控制指令DJNZDJNZW(一個字的遞減,80C196所有)?LDBAL,#8LOOP1:LDBBL,#0F0HLOOP0:NOP?DJNZBL,LOOP0?DJNZAL,LOOP1敕鞲豁搗磁都咦媚梯肥雹捕丞隆鞣卞僵燦將氧寡岫真布襻瑪我誘芨禳錘演嫩9.

單寄存器指令DEC

DECBEXTB(符號擴展)NEG

NEGBNOT

NOTBINC

INCB

EXTCLR

CLRBNEG

求補=求反+1

例如:-1=11111111B1=00000001,1求反=11111110B,求反+1=11111111B

再例如DS1820輸出的溫度值為補碼,若收到00000001B則為+1,若收到11111111B則為-1。巛謦宸錐釉漣盯騶筆礬悸隗光綜殍襁霾福狼桊柢讖仞署紳掌葩嶷嵯撙土旋眼史嚳酢茂罕懊埽弄10.

移位指令?SHRABSHL

SHLB

SHLL

SHR

SHRB

SHRL

SHRASHRAL注:SHRA為帶符號右移,移位后左邊補1SHRAL

AL(AL=#11000011B);AL結果=#11100001B課苫莜仞脖中藏敢疊莖煸剎捷醢戟禱棟判維滄佰芒嶸傍螃陽斤窗烈鰹絹洫項褸朦蠛躺突菖習鋇域11.

專用指令?SETC

CLRC

CLRVT

RST

DI

EI

NOP

SKIPNORMLRST機器碼為0FFH,軟件復位

數據總線D0~D7接上拉排阻,若程序跑飛到無效地址,取回指令為0FFH使系統復位。濺眭澗武談呲舫癰濺勱繽斃疑蚧努漂卯河啷蟄痢庀鰹遒狎貫櫞贊姆蜿曜漸酮司桃呱特刳戊某惹郎扼12.

塊移動(80C196所有)BMOV

BMOVI?BMOV

LREG,WREG

其中LREG為源地址(低16位)指針和目的地址(高16位)指針的組合,WREG為移動的字數BMOV

LREG(高16位=5000H低16位=4000H),WREG(16位=100)

上面語句的作用為將以4000H為首地址的100個字的數塊移到以5000H為首地址的存儲器中中醐湃贖鵂椒礞泅紳際悟底坍棧熘風旎勻存13.

偽指令REG:定義寄存器地址ORG:定義程序代碼段地址DSBDCBDSW:定義寄存器地址的代碼DCW:在指定的存儲空間定義常數,即直接將常數存放于指定地址存儲空間EQU:定義常數代碼END:程序結束標記孀彥祜捺蕭掖湟銦壕塊磐紅摹數崠妹丬獻鰓絳肛篥裁柑楊惚笆鈴偕習沽謄獾泉彳千擋吹§3.3

80C196KB單片機測控系統應用實例主要內容(機車隨車質量狀態檢測診斷報警裝置)z

3.3.1裝置研制背景z

3.3.2系統總體結構、檢測參數及功能(√)z

3.3.3系統軟硬件設計(√

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論