微機實驗 帶數碼管倒計時的交通指示燈設計

2021-08-21 06:42:56 字數 2506 閱讀 6949

一、實驗原理

使用8253對1mhz時鐘進行1m分頻,從而實現1s精確定時。

使用8255a口控制指示燈,8255b口控制數碼管倒計時,8255c口0-1控制數碼管片選,7口對1s時鐘進行讀取。

二、連線

8253的clk0接1mhz時鐘源,out0接clk1,out1接8255的pc7,gate0、gate1接電源+5v。

8255的pa0、pa1、pa2分別接路口1的綠、黃、紅燈,pa5、pa6、pa7分別接路口2的綠、黃、紅燈,

pb0-pb6接七段數碼管的a-g口,pc0、pc1分別接數碼管高、低位片選。

8253片選接280h,8255片選接288h。

三、匯程式設計序

1.精確延時子函式

在呼叫該delay子函式時,傳入引數cx為需要延時的時間,單位秒。在延時過程中,使用數碼管顯示距離延時結束剩餘的時間。該函式應該放在code段裡,以下為函式**:

delay proc near

push ax

push bx

push dx

cont: mov ax,cx

push cx

mov bx,10

div bl

mov bl,al

mov dx,io8255c

mov al,1

out dx,al

mov al,[bx]

mov dx,io8255b

out dx,al

mov cx,0ffffh

d1: loop d1

mov cx,0ffffh

d2: loop d2

mov bl,ah

mov dx,io8255c

mov al,2

out dx,al

mov al,[bx]

mov dx,io8255b

out dx,al

mov cx,0ffffh

d3: loop d3

mov cx,0ffffh

d4: loop d4

pop cx

mov dx,io8255c

in al,dx

and al,80h

mov ah,temp

mov temp,al

cmp ah,al

jz cont

cmp ah,80h

jnz cont

loop cont

pop dx

pop bx

pop ax

retdelay endp

2.主函式

綠燈時間60s,黃燈時間3s,紅燈時間63s。

data segment

ioport equ 0ff00h-0280h

io8253a equ ioport+280h

io8253b equ ioport+281h

io8253c equ ioport+282h

io8253d equ ioport+283h

io8255a equ ioport+288h

io8255b equ ioport+289h

io8255c equ ioport+28ah

io8255d equ ioport+28bh

ta db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

temp db 0

data ends

code segment

assume ds:data,cs:code

start: mov ax,data

mov ds,ax

mov dx,io8253d

mov al,36h

out dx,al

mov dx,io8253a

mov al,50h

out dx,al

mov al,0c3h

out dx,al

mov dx,io8253d

mov al,56h

out dx,al

mov dx,io8253b

mov al,20

out dx,al

mov dx,io8255d

mov al,88h

out dx,al

mov dx,io8255a

lo: mov al,24h

out dx,al

mov cx,60

call delay

mov al,44h

out dx,al

mov cx,3

call delay

mov al,81h

out dx,al

mov cx,60

call delay

mov al,82h

out dx,al

mov cx,3

call delay

jmp lo

code ends

end start

搶答器數碼管倒計時 八人搶答器

要求 1 八人搶答邏輯 只有乙個最先搶答有效。2 在主持人控制下,10秒內搶答有效。3 採用數碼管顯示搶答10秒倒計時,若有搶答直接結束,顯示結果。4 搶答結束後用數碼管顯示搶答結果 搶答有效人編號 若有異常 提前搶答,犯規 顯示搶答人編號和e,本次搶答結束 5 設主持人控制鍵 復位鍵。控制鍵 啟動...

微機介面實驗 數碼管顯示程式詳解

本次講解的針對的是共陰極數碼管,先把原理圖和 放上來 數碼管裡共8個led,由於說明了給定的是共陰極數碼管,即陰極是接在一起的,通過原理圖下方的7407驅動器接在了x1 x6,陽極分別通過1k電阻上拉。所以當x1 x6接8255的io口時,可以通過io口輸出低電平,將陰極拉低。同時8個段選a dp也...

驅動數碼管的實驗

課程名稱 微控制器原理與應用 專業班級 嵌入式14103班 姓 名 趙存檔 學 號 14160310317 2015 2016 學年第 1 學期 實驗專案 四 預習報告 專案名稱 驅動7段數碼管實驗 實驗目的及要求 1 掌握用proteus畫電路圖。2 用keil編寫 進行除錯。3 進行 測試 實驗...