找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4197|回復: 2
打印 上一主題 下一主題
收起左側(cè)

請幫我看下這個程序,謝謝

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:31665 發(fā)表于 2011-9-22 17:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

請幫我看下,另外具體怎么連接啊,我不太懂,要是幫我畫個連接圖就好了,我們硬件課程設計。 要求順序點亮led燈,并用數(shù)碼管顯示哪個燈點亮,開關模擬故障,有故障時紅外報警燈亮,中斷執(zhí)行,并顯示哪個燈出現(xiàn)故障,故障排除繼續(xù),我不太會,謝謝大家了。

CONTROL EQU 20BH
COUNT0 EQU 208H
COUNT1 EQU 209H
COUNT2 EQU 20AH ;8253端口地址
code segment
assume cs:code,ds:data
data segment
SUM DB 1 DUP(?)
lksign DB 1 DUP(?)
data ends
start:
MOV AL, 00110111B ; 計數(shù)器0,16位,先讀/寫低字節(jié),后高字節(jié),方式3,BCD
MOV DX, CONTROL
OUT DX, AL
MOV Al, 00H 
MOV DX, COUNT0
OUT DX, AL ; 計數(shù)器低字節(jié)
MOV AL, 50H
OUT DX, AL ; 計數(shù)器高字節(jié)
MOV AL, 01110111B ; 計數(shù)器1,16位,先讀/寫低字節(jié),后高字節(jié),方式3,BCD
MOV DX, CONTROL
OUT DX, AL
MOV AL, 00H
MOV DX, COUNT1
OUT DX, AL ; 計數(shù)器低字節(jié)
MOV AL, 04H
OUT DX, AL ; 計數(shù)器高字節(jié)
; 定時初始設置
mov al,10010000b
mov dx,203h
out dx,al ;初始化8255
mov SUM,00H ;設定計數(shù)初值,此值可以改動
MOV AL,0FEH
MOV BL,0FEH
lp: ;計時累加模塊,查看8255端口的信號,
call lok
call lok
MOV AL,BL
MOV DX,201H
OUT DX,AL
SHL AL,01H
MOV BL,AL

inc SUM

push ax
push bx
push dx 
call show ;調(diào)用顯示程序
pop dx
pop bx
pop ax
cmp SUM,08H
jnz lp
lok proc near
lk: 
mov dx,200h 
in al,dx ;讀入8255a口的值
and al,10000000b ;開關K7接入PA7,按下后時鐘暫停
cmp al,10000000b
jnz lk

mov dx,200h 
in al,dx
and al,10000001b ;檢測PA0 時鐘信號,是否到一秒了
cmp al,lksign
jz lk
mov lksign,al
ret
lok endp


show proc near
mov dx,212h
mov al,0
out dx,al
mov al,38h
out dx,al;初始化8279
mov dx,210h
mov al,0
out dx,al
out dx,al
out dx,al
out dx,al
out dx,al
out dx,al
out dx,al
out dx,al;熄滅8279
mov al,SUM
mov ah,0
mov dl,10
div dl
mov bl,ah;將余數(shù)(即秒的個位)放在BL中
mov bh,al;將商(即秒的十位)放在BH中
call trans;調(diào)用8279顯示秒的個位
mov bl,bh
call trans;調(diào)用8279顯示秒的十位
call trans
call trans
mov dx,212h
mov al,0c2h;清空8279緩存
out dx,al
mov al,cl
ret
show endp
trans proc near;數(shù)碼管顯示程序
one:
cmp bl,1
jnz two
mov al,00000110b
two:
cmp bl,2
jnz tri
mov al,01011011b
tri:
cmp bl,3
jnz for
mov al,01001111b
for:
cmp bl,4
jnz fiv
mov al,01100110b
fiv:
cmp bl,5
jnz six
mov al,01101101b
six:
cmp bl,6
jnz sev
mov al,01111101b
sev:
cmp bl,7
jnz eit
mov al,00000111b
eit:
cmp bl,8
jnz nin
mov al,01111111b
nin:
cmp bl,9
jnz zro
mov al,01101111b
zro:
cmp bl,0
jnz shw
mov al,00111111b
shw:
mov dx,210h
out dx,al
ret
trans endp





CODE ENDS 
END START
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:31672 發(fā)表于 2011-9-22 19:25 | 只看該作者

匯編、、、表示看不懂 我學C的。。。

回復

使用道具 舉報

板凳
ID:31873 發(fā)表于 2011-9-30 01:21 | 只看該作者
不是51程序吧
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表