版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、at89c51 系統(tǒng)軟件設(shè)計3.1 at89s51單片機的中斷系統(tǒng)cpu正在執(zhí)行主程序時,單片機外部或內(nèi)部發(fā)生的某一事件(如外部設(shè)備產(chǎn)生的一個電平的變化,一個脈沖沿的發(fā)生或內(nèi)部計數(shù)器的計數(shù)溢出等)請求cpu迅速處理,于是,cpu暫時中止當(dāng)前的工作,轉(zhuǎn)到中斷服務(wù)處理程序處理所發(fā)生的事件。中斷服務(wù)處理程序處理完該事件后,再回到原來中止的地方,繼續(xù)原來的工作(例如,繼續(xù)執(zhí)行被中斷的主程序),這稱為中斷。cpu處理事件的過程,稱為cpu的中斷響應(yīng)過程。3.1.1中斷處理涉及幾個環(huán)節(jié) 中斷源、中斷申請、開放中斷、保護現(xiàn)場、中斷服務(wù)、恢復(fù)中斷、中斷返回。單片機處理中斷的原則是:先高后低;停低轉(zhuǎn)高;高不睬低
2、;中斷同級時按系統(tǒng)設(shè)計優(yōu)先順序處理。單片機有5種中斷源。3.1.2mcs-51中斷系統(tǒng)的結(jié)構(gòu)其基本特點是:有5個固定的可屏蔽中斷源,3個在片內(nèi),2個在片外,它們在程序存儲器中各有固定的中斷入口地址,由此進入中斷服務(wù)程序;5個中斷源有兩級中斷優(yōu)先級,可形成中斷嵌套;2個特殊功能寄存器用于中斷控制和條件設(shè)置的編程。中斷系統(tǒng)的結(jié)構(gòu):5個中斷源的符號。名稱及產(chǎn)生的條件如下。int0:外部中斷0,由p32端口線引入,低電平或下跳沿引起。int1:外部中斷1,由p33端口線引入,低電平或下跳沿引起。t0:定時器計數(shù)器0中斷,由t0計滿回零引起。t1:定時器計數(shù)器l中斷,由t1計滿回零引起。tiri:串行i
3、o中斷,串行端口完成一幀字符發(fā)送接收后引起。3.1.3中斷請求源(1)外部中斷請求源:即外中斷0和1,經(jīng)由外部引腳引入的,在單片機上有兩個引腳,名稱為int0.int1,在內(nèi)部的tcon中有四位是與外中斷有關(guān)的。it0:int0觸發(fā)方式控制位,可由軟件進和置位和復(fù)位,it0=0,int0為低電平觸發(fā)方式,it0=1,int0為負跳變觸發(fā)方式。ie0:int0中斷請求標志位。當(dāng)有外部的中斷請求時,這位就會置1(這由硬件來完成),在cpu響應(yīng)中斷后,由硬件將ie0清0。it1.ie1的用途和it0.ie0相同。(2)內(nèi)部中斷請求源tf0:定時器t0的溢出中斷標記,當(dāng)t0計數(shù)產(chǎn)生溢出時,由硬件置位t
4、f0。當(dāng)cpu響應(yīng)中斷后,再由硬件將tf0清0。tf1:與tf0類似。ti.ri:串行口發(fā)送。接收中斷,在串口中再講解。3.1.4中斷系統(tǒng)的控制寄存器(1)中斷允許寄存器ie中斷屏蔽在中斷源與cpu之間有一級控制,類似開關(guān),其中第一級為一個總開關(guān),第二級為五個分開關(guān),由ie控制。在mcs51中斷系統(tǒng)中,中斷的允許或禁止是由片內(nèi)可進行位尋址的8位中斷允許寄存器ie來控制的。其中ea是總開關(guān),如果它等于0,則所有中斷都不允許。es串行口中斷允許et1定時器1中斷允許ex1外中斷1中斷允許。et0定時器0中斷允許ex0外中斷0中斷允許。(2)中斷優(yōu)先級寄存器ip中斷優(yōu)先原則:(概括為四句話)1).低
5、級不打斷高級2).高級不睬低級3).同級不能打斷4).同級。同時中斷,事先約定。cpu同一時間只能響應(yīng)一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必須有先有后。為此將5個中斷源分成高級。低級兩個級別,高級優(yōu)先,由ip控制。在mcs中斷優(yōu)先級中由中斷優(yōu)先級寄存器ip來高置的,ip中某位設(shè)為1,相應(yīng)的中斷就是高優(yōu)先級,否則就是低優(yōu)先級。ip優(yōu)先級別寄存器各位介紹如下: ps:串行口中斷優(yōu)先級控制位。ps=1設(shè)定串行口為高優(yōu)先級中斷;ps=0為低優(yōu)先級中斷。pt1: t1中斷優(yōu)先級控制位。pt1=1設(shè)定定時器t1為高優(yōu)先級中斷;pt1=0為低優(yōu)先級中斷。px1:外部中斷1優(yōu)先級控制位。px1=
6、1設(shè)定定時器外部中斷1為高優(yōu)先級中斷;px1=0為低優(yōu)先級中斷。pt0: t0中斷優(yōu)先級控制位。pt0=1設(shè)定定時器t0為高優(yōu)先級中斷;pt0=0為低優(yōu)先級中斷。px0:外部中斷0優(yōu)先級控制位。px0=1設(shè)定定時器外部中斷0為高優(yōu)先級中斷;px0=0為低優(yōu)先級中斷。3.1.5中斷響應(yīng)過程及反回過程中斷過程cpu每個機器周期都需要順序檢查每個中斷源,當(dāng)檢測到有中斷請求時,能否響應(yīng),還要看下述情況是否存在:.cpu正處理相同級別或更高級別的中斷;.正在執(zhí)行指令,還未到最后一個機器周期;.正在執(zhí)行的指令是reti或訪問ip.ie指令,則執(zhí)行完上述指令后,再執(zhí)行一條指令后,才會響應(yīng)新中斷。響應(yīng)過程:(
7、假設(shè)已使某中斷請求標志置1).先使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器置1;.執(zhí)行一個硬件子程序的調(diào)用。1)硬件清零相應(yīng)中斷請求標志(ti.ri除外)2)將當(dāng)前pc內(nèi)容壓入堆棧保護斷點;3)將中斷服務(wù)子程序入口地址送pc轉(zhuǎn)移。返回過程(reti執(zhí)行后).使相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清0。.從堆棧中彈出棧頂?shù)膬蓚€字節(jié)內(nèi)容送pc恢復(fù)斷點。.cpu接著中斷處繼續(xù)執(zhí)行原程序。3.2 at89s51單片機指令系統(tǒng)3.2.1指令系統(tǒng)的尋址方式指令系統(tǒng)尋址方式規(guī)定了單片機內(nèi)部地址單元或數(shù)據(jù)的訪問方式。at89s51單片機指令系統(tǒng)中有寄存器尋址方式、直接尋址方式、間接尋址方式、位尋址方式、立即數(shù)尋址方式、基址變址尋址方式、相對尋址
8、方式共7中尋找方式。3.2.2 at89s51的指令單片機與一般通用微處理器指令系統(tǒng)的區(qū)別在于突出了控制功能,具體表現(xiàn)為有大量的轉(zhuǎn)移指令和位操作指令。按指令操作功能,mcs-51指令系統(tǒng)由數(shù)據(jù)傳送、算術(shù)運算、邏輯操作、程序轉(zhuǎn)移和位操作指令組成,共有111條指令。數(shù)據(jù)傳送類指令共24條,分為程序存儲器查表指令(movc)、片外數(shù)據(jù)存儲器傳送指令(movx)、片內(nèi)寄存器及數(shù)據(jù)存儲器傳送指令(mov)和數(shù)據(jù)交換指令(xch、xchd、swap)算術(shù)運算類指令共23條,有加(add)、帶進位加(addc)、帶借位減(subb)、乘(mul)、除(div)、加1(inc)和減1(dec)操作。邏輯運算指
9、令共25條,邏輯主要是“與”(anl)、“或”(orl)、“異或”(xrl)、的邏輯操作和累加器自身內(nèi)容的清0(clr)、求反(cpl)、右移(rr)、帶進位位右移(rrc)、左移(rl)、帶進位位左移(rlc)和十進制調(diào)整(da)。轉(zhuǎn)移操作類指令共23條,分為無條件轉(zhuǎn)移和條件轉(zhuǎn)移。無條件轉(zhuǎn)移指令有跳轉(zhuǎn)、調(diào)用、散轉(zhuǎn)、返回及空操作指令;條件轉(zhuǎn)移指令有零與非零轉(zhuǎn)移jz/jnz、減1非零轉(zhuǎn)移djnz和比較不等轉(zhuǎn)移cjne。條件轉(zhuǎn)移均為相對轉(zhuǎn)移,條件符合是轉(zhuǎn)移到相對地址rel指令處。布爾指令集共有17條指令,包括位操作指令和位條件轉(zhuǎn)移指令。在布爾指令集中,實現(xiàn)累加器功能的是進位位c3.3 led顯示器
10、的顯示原理led數(shù)碼管顯示器由8個發(fā)光二極管中的7個長條形發(fā)光二極管(稱七筆段)按a、b、c、d、e、f、g順序組成“8”字形,另一個點形的發(fā)光二極管放在右下方,用來顯示小數(shù)點。本設(shè)計采用的是2位led數(shù)碼管。2位led數(shù)碼管顯示原理與1位led數(shù)碼管顯示原理基本相同,區(qū)別在于2位led數(shù)碼管的1、6引腳分別為2位數(shù)碼管的位選控制,c1為第一位數(shù)碼管的公共端,c2為第二位數(shù)碼管的公共端。數(shù)碼管按內(nèi)部連接方式又分為共陽極數(shù)碼管和共陰極數(shù)碼管兩種。若內(nèi)部8個發(fā)光二極管的陽極連在一起接電源正極,就稱為共陽極數(shù)碼管;若8個發(fā)光二極管的陰極連在一起接地,則稱為共陰極數(shù)碼管。本設(shè)計采用共陽極數(shù)碼管顯示,2
11、位led數(shù)碼管如圖3-1所示。采用共陽級連接:圖3-1 兩位led數(shù)碼管表3-1數(shù)碼管顯示碼字符hgfedcba驅(qū)動代碼(16進制)011000000c0h111111001f9h210100100a4h310110000b0h41001100199h51001001092h61000001082h711111000f8h81000000080h91001000090ha1000100088hb1000001183hc11000110c6hd10100001a1he1000011086hf100011108eh3.4 主程序流程圖 主程序流程圖如圖3-2所示,開始接上電源,程序進行初始化設(shè)置。
12、然后啟動程序,然后執(zhí)行程序。編程思路:正常情況下交通燈的紅燈可以直接變成綠燈,但綠燈不能直接變成紅燈,在變成紅燈之前需要經(jīng)過黃燈,同時交通燈的旁邊顯示有這種燈亮的剩余秒數(shù),即經(jīng)過一秒鐘顯示數(shù)字減1,因此單片機需要知道何時到1秒,在這里采用定時器t0進行1秒的定時(工作方式1)。 程序工作流程如下:先對用到的寄存器、存儲器和中斷入口地址進行初始化,比如初始化東西南北線式存儲器,定時器t0和外部中斷0入口地址等,東西亮綠燈,同時顯示還剩25秒,南北亮紅燈,同時顯示還剩30秒;判斷東西南北時間是否到,如到由綠燈變成黃燈,顯示時間為5秒,南北紅燈不變;繼續(xù)判斷黃燈的現(xiàn)實時間是否到,如到有黃燈變成紅燈,
13、顯示時間為30秒,同時判斷紅燈顯示時間是否到,如到有紅燈變成綠燈,顯示時間為25秒。之后周而復(fù)始。圖3-2 基本交通等主程序流程圖3.5 四種狀態(tài)的主程序流程圖 四種狀態(tài)的子程序流程圖如圖3-3所示,通過點亮相關(guān)紅綠黃燈,再調(diào)用東西及南北顯示子程序運行,若顯示結(jié)束則返回,若沒結(jié)束則繼續(xù)執(zhí)行子程序。 四種狀態(tài)的主程序如下:start: acall s1 acall s2 acall s3 acall s4 sjmp starts1: mov p1,#0eeh lcall ewdisp lcall sndisp mov a, ewtime cjne a, #00h, s1 mov ewtime,
14、#5 rets2: clr c mov a, #10 subb a, r0 jc s21 mov p1,#0feh ajmp s22s21: mov p1, #0dehs22: lcall ewdisp lcall nsdispmov a, ewtimecjne a, #00h, s2mov ewtime ,#30mov sntime, #25rets3: mov p1, #0f5h lcall ewdisp lcall nsdisp mov a.,sntime cjne sntime, #5 rets4: clr c mov a, #10 subb a, r0 jc s41 mov p1 ,
15、 #0f7h ajmp s42s41: mov p1, #0f3hs42: lcall ewdisp lcall nsdisp mov a, sntime cjne a, #00h,s4 mov ewtime, #25 mov sntime ,#30ret圖3-3 四種狀態(tài)的子程序流程圖3.6 顯示子程序流程圖顯示子程序流程圖如圖3-4所示,通過顯示時間的十位字位口來顯示時間,把顯示的時間拆分成十位和個位,分別把十位和個位數(shù)字送各自的字位口。顯示子程序如下:ewdisp: mov r2,#0bh mov a, ewtime. mov b .#10 div ab mov r1,a call di
16、sp mov r2 ,#07h mov r1,b call disp ret nsdisp : mov r2 ,#0eh mov a,sntime mov b ,#10 div ab mov r1 ,a lcall disp mov r2 ,#0dh mov r1 ,b lcall dispdisp: mov p2 , r2 mov a, r1 mov dptr , #tab movc a , a+dptr mov p0, a lcall delay mov p0 , #0ffhdisp: mov p2, r2 mov a, r1 mov dptr ,#tab movc a, a+dptr mov p0 ,#0ffh ret圖3-4 顯示子程序流程圖3.7 t0中斷服務(wù)子程序流程圖t0中斷服務(wù)子程序流程圖如圖3-5所示,通過重載定時器初值,然后判斷1秒定時是否到,是則東
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴陽幼兒師范高等??茖W(xué)校《動畫場景設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025山西省安全員C證(專職安全員)考試題庫
- 硅湖職業(yè)技術(shù)學(xué)院《面向?qū)ο蠹夹g(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025甘肅省建筑安全員考試題庫
- 廣州幼兒師范高等??茖W(xué)?!毒G色建筑與綠色施工》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年四川建筑安全員-B證(項目經(jīng)理)考試題庫
- 廣州衛(wèi)生職業(yè)技術(shù)學(xué)院《溫病學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025貴州建筑安全員B證(項目經(jīng)理)考試題庫
- 2025黑龍江省安全員-C證(專職安全員)考試題庫
- 《ESD知識和控制》課件
- 人教版四年級上冊豎式計算400題及答案
- 重慶開縣2023-2024學(xué)年七年級上學(xué)期期末數(shù)學(xué)檢測卷(含答案)
- 血氣分析結(jié)果判讀及臨床應(yīng)用護理課件
- 智能船舶與海洋工程:物聯(lián)網(wǎng)在船舶與海洋工程中的應(yīng)用
- 高速服務(wù)區(qū)經(jīng)營分析報告
- 浙江省湖州市2022-2023學(xué)年四年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
- 建井施工方案
- YMO青少年數(shù)學(xué)思維28屆五年級全國總決賽試卷
- 個人業(yè)績相關(guān)信息采集表
- 過敏性紫癜課件PPT
- 大學(xué)生暑期社會實踐證明模板(20篇)
評論
0/150
提交評論