基于8086的信號燈的設計與實現(xiàn)_第1頁
基于8086的信號燈的設計與實現(xiàn)_第2頁
基于8086的信號燈的設計與實現(xiàn)_第3頁
基于8086的信號燈的設計與實現(xiàn)_第4頁
基于8086的信號燈的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、l 1. 設計題目應用軟件定時方式控制信號燈的設計與實現(xiàn)l 2. 設計目的鞏固“微機原理”課程學過的知識,加強理論與實踐的聯(lián)系。通過本課程設 計,使學生初步了解微機系統(tǒng)的硬件設備,學會 8086 系列編程指令的基本功能。l 3. 設計思路3.1 硬件接口器件的選擇以 8086 作為 cpu,且工作在最小組態(tài)下, 74hc373 用于鎖存 8086 的地址而 將其地址送出,74hc138 進行端口地址的譯碼,8255 做輸入定時時間的開關和顯 示倒計時時間的輸入輸出接口芯片, 8253 作為 1 秒鐘的定時器, 8259 用作中斷 控制器。3.2定時的啟動由 8255 的 pa 端口通過邏輯開關

2、輸入定時時間,pb 口和 pc 的一些普通端口 作為倒計時的輸出顯示。定時的啟動可有由一個開關以中斷的方式進行啟動,即 位中斷 1,開關閉合的同時,產生一中斷由 8259 送至 cpu,執(zhí)行中斷程序,同時 8253 重新開始計數,觸發(fā) 24v 的信號開關閉合將電壓加在繼電器上,使繼電器 的常開接點閉合從而信號燈亮。3.3倒計時的顯示顯示可以在 8 只發(fā)光二極管(bcd 碼)上顯示,但不是很直觀,在這里采 用 2 個數碼管更直觀地顯示時間,首先將其顯示的初值定為 60 秒,定時啟動后, 對于 8253 定時計數器,1 秒鐘定時時間到即產生中斷 2,發(fā)送中斷類型碼到 8086 中,8086 根據中

3、斷類型碼從存儲器中找到中斷向量,讀取中斷向量程序,判斷 數碼顯示管中的數值是否為 0,若為 0,數碼顯示管置初值,且信號燈滅,繼電 器接點打開;否則,數碼顯示管當前值減一,信號燈狀態(tài)不變。,如此反復,實 現(xiàn)了設計要求。3.4 繼電器的選擇與電氣隔離的實現(xiàn)繼電器就是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起 著自動調節(jié)、安全保護、轉換電路等作用,這里用一個開關接點的即可。對于電磁繼電器,只要在線圈兩端加上一定的電壓,線圈中就會流過一定的 電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力 吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電

4、磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點 與原來的靜觸點(常閉觸點)吸合。這樣吸合、釋放,從而達到了在電路中的導 通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線 圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱 為“常閉觸點”。圖 1 繼電器電氣隔離可以用電磁隔離和光耦合隔離,由于繼電器的電壓不高,這里采用 光耦合隔離即可。所謂光耦隔離就是采用光耦合器進行隔離,光耦合器的結構相 當于把發(fā)光二極管和光敏三極管封裝在一起。發(fā)光二極管把輸入的電信號轉換為 光信號傳給光敏管轉換為電信號輸出,由于沒有直接的電氣連接,這樣既耦合

5、傳 輸了信號,又有隔離作用。4. 系統(tǒng)部分主要硬件設計及原理4.1 各芯片間的關系及原理定時輸入單元8086 8255a 8253倒計時顯示單元q074hc373q1燈y074hc138y2定時啟動和8259 控制定時中74hc373y6光耦合隔離開始的中斷斷和定時開 始中斷圖 2整體框圖8255,8253 和 8259 的數據端口及讀寫信號都要和總線相連,8255 和 8253 的1a0,a1 兩個端口可以接在 ad0,ad1 經過地址鎖存器出來的 q0,q1 兩個端口上 面, 8259 的 a0 也可以和 138 譯碼器出來的信號相與再接到片選信號上. 地址通 過 138 譯碼器進行譯碼。

6、譯碼器有 3 個控制端,分別為 g(高電平有效),g2 a(低 電平有效),g 2b (低電平有效),當 g=1,ga 和 gb 全為 0 時,譯碼器處于工作 狀態(tài)。a15 接在 g 上,a12-a14 分別接到 a,b,c 三個端口中,y6 與 8259 的 cs(低 電平有效)相連,y2 與 8253 的 cs (低電平有效)相連,y0 與 8255 的 cs 相連。所以可以得出根據 8255 的端口號:8000h,8001h,8002h,8003h.8259 的端口 地址:e000h,e001h。8253 的端口號:a000h,a001h,a002h,a003h。8255 并行通信接口的

7、 3 種工作方式:工作方式 0 :這是 8255a 中各端口的基本輸入輸出方式。它只完成簡單的并 行輸入輸出操作, cpu 可從指定端口輸入信息,也可向指定端口輸出信息,如 果三個端口均處于工作方式 0 ,則可由工作方式控制字定義 16 種工作方式的 組合。工作方式 1 :被稱作選通輸入 / 輸出方式。在這種工作方式下,數據輸入 / 輸出操作要在選通信號控制下完成。 如果 pa,pb 一個工作在方式 1,一個工作 在方式 0,則 c 端口只有 5 個端口可以作為普通的輸入輸出端口工作方式 2 :被稱作帶選通的雙向傳送方式。 8255a 中只允許端口 a 處于 工作方式 2 ,可用來在兩臺處理機

8、之間實現(xiàn)雙向并行通信。其有關的控制信號 由端口 c 提供,并可向 cpu 發(fā)出中斷請求信號。8253 的工作原理:8253 是可編程的計數器/定時器,其內部有三個獨立的 16 位計數器/定時器通道,每個計數器通道均可按 6 種不同的方式工作, 8254 有六 種工作方式:方式 0:計數結束中斷,方式 1:可編程頻率發(fā)生器,方式 2:頻 率發(fā)生器,方式 3:方波頻率發(fā)生器,方式 4:軟件觸發(fā)的選通信號,方式 5: 硬件觸發(fā)的選通信號。并且都可以按二進制或十進制計數。其 clk0clk2 是計 數器 02 的時鐘脈沖輸入端, 計數器對該引腳輸入的脈沖進行計數。它的輸入 脈沖可以是任何脈沖提供的。g

9、ate0gate2 是門控脈沖輸入端, out0out2 是 輸出端,當計數到 0 時,該引腳輸出低電平。在不同的工作方式下,輸出不同形 式的信號。8259 的工作原理,中斷請求寄存器 irr:8 位,用以分別保存 8 個中斷請求 信號,在此采用電平觸發(fā)中斷。當響應的中斷請求輸入腳有中斷請求時,該寄存2器的相應位置 1,此時 8259 的 int 發(fā)出中斷請求信號到 8086 的 intr,8086 的inta(低電平有效)發(fā)出中斷響應信號給 8259 的 inta ,8253 的 1s 定時器的out1 通過一個非門后接在 8259 的 ir7 上作為中斷 2,定時開始的信號接在 ir4 上

10、作為中斷 1,顯然中斷 1 的優(yōu)先級高于中斷 2 的優(yōu)先級。4.2 倒計時單元的顯示在此可以讓 pa 口用 1 方式輸入,通過邏輯開關輸入定時時間,pb 口用作 0 方式輸出,pb 可用作顯示倒計時的數碼管的段選端口,pc 口的 pc4 作為單脈沖 的輸出端,可以用來控制信號燈定時時刻的開始,當 pc4 端口一來脈沖,pc0, pc1 作為數碼管的位選端口,pc2 作為普通端口與信號燈相連。4.3 1s 定時的實現(xiàn)對于 8253 而言,由于外部可以提供 1mhz 的時鐘脈沖,則每計數一次的時間 為 1us,最大能計數 63535 次,即 63.35ms,為了能利用 8253 實現(xiàn) 1s 的定時

11、,可 以采用將計數器 0 和計數器 1 級聯(lián)按 5000200 方式分頻,將計數器 0 的 out0 端口接在計數器 1 的 clk1 上作為它的計數脈沖。即計數器 0 寫入 5000 時,在 計數器 1 clk1 中會有 200hz 脈沖。對于 1s ,需對計數器 1 初始化寫入時間參 數 time1=200。且兩個定時通道都選用 2 方式。4.4 電氣隔離的實現(xiàn)通過光進行開關作用 , 光電耦合器就是將發(fā)光二極管和光電三極管密封 在一塊 ,發(fā)光二極管通電點亮以后 ,照到光電三極管的基極上 , 基極收到信號就導 致集電極到發(fā)射極之間形成通路 ,發(fā)光二極管熄滅后,光電三極管上集電極到發(fā)射 極的通

12、路阻斷了, 二極管到三極管之間沒有電器連接,所以很安全。圖 3,電氣隔離模塊的原理圖定時的啟動可以通過一開關,觸發(fā) 24v 的開關電源,使之閉合從而使繼電器兩3端獲得 24v 的電壓,繼而使其吸合,信號燈兩端有電流流過,從而亮。開關閉 合的同時 8253 的 gate 端在下降沿時刻開始計時重裝初值,而且 8259 產生中斷。 倒計時為 0 的時候由軟件方式讓燈熄滅,繼電器的結合開關斷開。5.系統(tǒng)軟件部分設計5.1系統(tǒng)的程序流程圖開始關中斷, 寫中斷向量表8255a和 8253 的初始化8259a的初始化倒計時單元顯示初值開中斷等待中斷定時開始?ny執(zhí)行中斷 1 程序 , 并返回n1s 定時到

13、?y執(zhí)行中斷 2 程序, 并返回結束圖 4,系統(tǒng)總程序4中斷 1 處理程序讀取 pa 端口的數據 轉換成十進制并送至倒計時單元執(zhí)行中斷 2 處理程序倒計時的時間為0 ?nny個位為 0 ?y中斷返回個位數值減 1十位減 1 ,個位變?yōu)?9中斷返回圖 5,兩個中斷服務程序5.2各子模塊的實現(xiàn)5.2.1 關中斷,寫中斷向量 , 把中斷服務程序的入口地址寫入中斷向量表中,使 用的中斷類型號為 0ch,0fhcli ;關中斷push dsxor ax,axmov ds,axmov si,24h ;找到該中斷類型號在中斷向量表中的首地址mov ax,offset irq4add ax,2000hmov

14、word ptr si,ax ;把中斷服務程序的偏移地址放入低字中 mov ax,0mov word ptr si+2,ax ;把中斷服務程序的段地址放入高字中 mov si,3ch ;找到該中斷類型號在中斷向量表中的首地址mov ax,offset irq7add ax,2000hmov word ptr si,ax ;把中斷服務程序的偏移地址放入低字中 mov ax,0mov word ptr si+2,ax ;把中斷服務程序的段地址放入高字中 pop ds5.2.2 8255,8253 和 8259 的初始化init :;8259a 初始化,其中地址為 0e000h 和 0e001hmo

15、v al,13h ;設置 icw1,單片,上升沿觸發(fā),需要設置 icw4 mov dx,0e000h5out dx,al ;icw1 寫入 8259a 的偶地址中mov al,08h ;設置 icw2,中斷類型號的基值mov dx,0e001hout dx,al ;icw2 寫入 8259a 的奇地址中;由于是單片 8259,所以不需要設置 icw3mov al,09h ;設置 icw4,非自動結束,緩沖方式,完全嵌套 mov dx,0e001hout dx,al ;icw4 寫入 8259a 的奇地址中mov al,6fh ;設置 ocw1,開放 4 和 7 的中斷請求口mov dx,0e0

16、01hout dx,al ;ocw1 寫入 8259a 的奇地址中;8255a 初始化,其中地址 a 口:8000h,b 口:8001h,c 口:8002h, 控制口:8003hmov dx,8003hmov al,0b0h ;設置 8255a 工作方式控制字,a 口為方式 1 輸入、b 口 為方式 0 輸出out dx,almov dx,8000h;in al,dxmov time,al;time 用來存儲倒計時剩下的時間;8253 初始化,其中地址為通道 0:0a000h,通道 1:0a001h,通道 2: 0a002h,控制寄存器:0a003hmov al,35h ;設置 8253 控制

17、字,通道 0 為工作方式 2,bcd 計數,先讀寫 低字節(jié),后讀寫高字節(jié)mov dx,0a003hout dx,almov al,00 ; 設置計數通道 0 的計數初值 5000,先送低字節(jié)mov dx,0a000hout dx,almov al,50 ; 計數通道 0 的計數初值高字節(jié)out dx,almov al,75h;設置 8253 控制字,通道 1 為工作方式 2,bcd 計數,先讀 寫低字節(jié),后讀寫高字節(jié)mov dx,0a003hout dx,almov al,00 ; 把計數初值寫入通道 2,先送低字節(jié)mov dx,0a002hout dx,almov al,02h ;計數通道

18、1 的計數初值高字節(jié)out dx,alsti ;初始化完畢,開中斷5.2.3 倒計時顯示單元的實現(xiàn),每次 1s 的中斷來了,顯示的值發(fā)生變化,將段 碼送至 pb 口,位碼送至 pc0 和 pc16data segmenttable db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;數字 09 的 7 段顯示碼number dw 2 dup (0) ;開辟了 2 個字空間,用來存放倒計時要顯示的數字 time db 03ch ; 存儲定時時間,初值 60sdata endsdisp:again:xor bx,bx ;將 bx 清零mov cx,o2hmov

19、ah,0fehmov si,offset table ;用 si 來存放段碼add si,number +bxmov al,byte ptrsi ;把段碼送 b 口l1: mov dx,8002hout dx,almov al,1 ;把位碼送 pc0 口call delay ;延時 2msmov al,0ffh ;關閉顯示管add al,3;獲得下一個位碼 pc1 口add bx,2 ;指向下一個要顯示的段碼mov si,number+bxmov al,byte ptrsiloop nextjmp again5.2.4 兩個中斷服務程序 irq4 和 irq7irq4:out dx,almov

20、 dx,8000h;in al,dxmov time,al;重置定時時間irq7:push ax ;保護現(xiàn)場push cxmov al,00 ; 設置計數通道 0 的計數初值 5000,先送低字節(jié)mov dx,0a000hout dx,almov al,50 ; 計數通道 0 的計數初值高字節(jié)out dx,almov al,00 ; 把計數初值寫入通道 1,初值為 200,先送低字節(jié)mov dx,0a001h7out dx,almov al,02 ; 計數通道 1 的計數初值高字節(jié)out dx,alxor di dimov cx,2mov di,offset numberl2: cmp wor

21、d ptrdi,0 ;先比較個位,再比較十位jz l3dec word ptrdijmp exitl3: add di,2cmp word ptrdi,0jne l3mov si,offset timemov al,byte ptrsimov dx,8002hout dx,alnot almov byte ptrsi,al ;重新對 al 賦值mov word ptrdi,6jmp exitl4: sub di,2mov word ptrdi,9add di,2cmp word ptrdi,0jz l5dec word ptrdijmp exitl5: mov word ptrdi,5add

22、di,2loop l2exit:pop cx;恢復現(xiàn)場pop axmov al,20hout 20h,al ;發(fā)中斷結束命令sti ; 開中斷 ,因為系統(tǒng)在響應中斷時 ,除了保護斷點外 ,還自動關閉了中斷 允許位iret ;中斷返回delay: push cx; 2ms 延時子程序mov cl,0fhl2: mov ch,0fhl1: dec chjnz l18dec cljnz l2pop cxretl6.實驗小結通過此次課程設計對微機的接口電路的設計有了更加深刻的認識,以前用 單片機進行定時和中斷,但和微機還是有很大的不同,有一點遺憾的是時間有限, 沒能在 proteus 將該工程仿真出來

23、。但收獲還是蠻大的!l7參考文獻1 戴梅萼.微型計算機技術及應用m.清華大學出版社,20052周明德.微型計算機系統(tǒng)原理及應用m.北京:清華大學出版社,2007.1附件:總體電路圖東、西兩個相對路口紅燈亮 12s,南、北兩個路口綠燈亮 6s,后轉為黃燈亮 6s; 南、北兩個相對路口紅燈亮 12s,東、西兩個路口綠燈亮 6s,后轉為黃燈亮 6s;(10 分)3. 每個路口設一個緊急按鍵,可以中斷當前的交通燈狀態(tài),使當前路口為綠燈,經 12s 后 恢復原來的工作狀態(tài);(20 分)4. 使用 8253 提供時間定時,每 6s 讀入 1 次溫、濕度;(20 分)925 5.daad0ad1p1114d

24、3r41210r610k.d18rp1respack-81 2 3 4 5 6 7 8 9u6dsw11mhz(a)vcc2122int24inta18313023173319u1ad0.15reset ad0.15ready a16.19inta/qs1intr ale/qs0 134 .hold/gt1 bhe 027 hlda/gt0 t/r/s126test den/s232nmi rd29mn/mx wr/lock28clk m/io/s08086program=e:masm615led.exead2ad3ad4ad5ad6ad7ad8ad9ad10ad11ad12ad13ad14ad15ad0.15u53d0 q04d1 q17d2 q28d3 q313d4 q414d5 q517d6 q618d7 q71oe11le74hc373u23d0 q04d1 q17d2 q28

溫馨提示

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

評論

0/150

提交評論