标题:
8086定时洗衣机Proteus仿真+汇编代码(带注水 洗衣 排水 甩干模拟)
[打印本页]
作者:
htx
时间:
2018-12-9 16:47
标题:
8086定时洗衣机Proteus仿真+汇编代码(带注水 洗衣 排水 甩干模拟)
8086cpu芯片洗衣机仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)带带注水 洗衣 排水 甩干4个按钮
0.png
(18.88 KB, 下载次数: 63)
下载附件
2018-12-10 03:11 上传
0.png
(45.49 KB, 下载次数: 30)
下载附件
2018-12-10 03:12 上传
源程序如下:
;上一片8255的地址
PA EQU 08H
PB EQU 0AH
PC EQU 0CH
CONW EQU 0EH
;下一片8255的地址
PA1 EQU 20H
PB1 EQU 22H
PC1 EQU 24H
CONW1 EQU 26H
;8253
AD82530 EQU 10H
AD82531 EQU 12H
AD82532 EQU 14H
AD8253CONW EQU 16H
;
AD82590 EQU 20H
AD82591 EQU 22H
;============================
STACK SEGMENT STACK
DB 200 DUP(0)
STACK ENDS
;============================
DATA SEGMENT
LED_TAB DB 3FH, 06H, 5BH, 4FH, 66H
DB 6DH, 7DH, 07H, 7FH, 6FH
DB 77H, 7CH, 39H, 5EH, 79H, 71H
MMM DB 0
SSS DB 0
ONE DB 5
TWO DB 15
THREE DB 5
FOUR DB 15
DATA ENDS
;=============================
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START:
PUSH DS
MOV AX, DATA
MOV DS, AX
;=================
;设置中断向量8253
CLI
MOV AX, 0
MOV ES, AX
MOV SI, 08H
MOV AX, OFFSET TIME_INT
MOV ES:[SI], AX
MOV AX, CS
MOV ES:[SI+2], AX
;=================
;初始化8255A
MOV AL, 80H
OUT CONW, AL
;MOV AL, 80H
;OUT CONW1, AL
;初始化8253
MOV AL, 36H
OUT AD8253CONW, AL
MOV AX, 65000
OUT AD82530, AL
MOV AL, AH
OUT AD82530, AL
;===============
LL:
;=================
;CALL IS_AD_TIMT
CALL PRINT_ALL
;=================
JMP LL
INC_S:
PUSH AX
INC SSS
MOV AL, SSS
CMP AL, 60
JNE ENDIF0
MOV AL, 0
MOV SSS, AL
CALL INC_M
ENDIF0:
POP AX
RET
INC_M:
PUSH AX
INC MMM
MOV AL, MMM
CMP AL, 60
JNE ENDIF1
MOV AL, 0
MOV MMM, AL
;CALL INC_H
ENDIF1:
POP AX
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DENG1: MOV AL, ONE
CMP AL, 0
JNE DENG11
JE DENG2
DENG11:
DEC ONE
MOV DX,PC
MOV AL,01H ;第一个灯亮
OUT DX,AL
RET
DENG2:
MOV AL, TWO
CMP AL, 0
JNE DENG22
JE DENG3
DENG22:
DEC TWO
MOV DX,PC
MOV AL,02H ;第二个灯亮
OUT DX,AL
RET
DENG3:
MOV AL, THREE
CMP AL, 0
JNE DENG33
JE DENG4
DENG33:
DEC THREE
MOV DX,PC
MOV AL,04H ;第三个灯亮
OUT DX,AL
RET
DENG4:
MOV AL, FOUR
CMP AL, 0
JNE DENG44
JE DENG5
DENG44:
DEC FOUR
MOV DX,PC
MOV AL,08H ;第四个灯亮
OUT DX,AL
RET
DENG5:
MOV AL,5
MOV ONE,AL
MOV AL,15
MOV TWO,AL
MOV AL,5
MOV THREE,AL
MOV AL,15
MOV FOUR,AL
MOV AL,0
MOV MMM,AL
MOV AL,0
MOV SSS,AL
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WRITE_LED: ;(位选, 数字) ;写某一位数码管
MOV BP, SP
PUSH AX
PUSH DX
;=========
MOV AX, [BP + 4]
OUT PB, AL
MOV BX, [BP + 2]
LEA SI, LED_TAB
MOV AL, [BX + SI]
OUT PA, AL
;=========
POP DX
POP AX
RET 4
PRINT_TIME: ;(时0分2秒4,数值) ;写时分秒
MOV BP, SP
PUSH AX
PUSH DX
PUSH CX
;=============
MOV AX, [BP + 2]
MOV DL, 10
DIV DL
MOV CL, AH
MOV DX, [BP + 4]
PUSH DX
XOR AH, AH
PUSH AX
CALL WRITE_LED
CALL DELAY
INC DX
PUSH DX
XOR CH, CH
PUSH CX
CALL WRITE_LED
;=============
POP CX
POP DX
POP AX
RET 4
PRINT_ALL: ;显示时间
PUSH AX
;============HOUR
MOV AX, 2
PUSH AX
MOV AL, MMM
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
;============MINUTE
PUSH AX
MOV AX, 4
PUSH AX
MOV AL, SSS
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
;==============SECOND
D1:
MOV AL, ONE
CMP AL, 0
JNE D11
JE D2
D11:
PUSH AX
;==============SECOND
MOV AX, 0
PUSH AX
MOV AL, ONE
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
RET
D2:
MOV AL, TWO
CMP AL, 0
JNE D22
JE D3
D22:
PUSH AX
;==============SECOND
MOV AX, 0
PUSH AX
MOV AL, TWO
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
RET
D3:
;DEC EEE
MOV AL, THREE
CMP AL, 0
JNE D33
JE D4
D33:
PUSH AX
;==============SECOND
MOV AX, 0
PUSH AX
MOV AL, THREE
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
RET
D4:
MOV AL, FOUR
CMP AL, 0
JNE D44
JE D1
D44:
PUSH AX
;==============SECOND
MOV AX, 0
PUSH AX
MOV AL, FOUR
XOR AH, AH
PUSH AX
CALL PRINT_TIME
CALL DELAY
POP AX
RET
DELAY:
PUSH BX
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
洗衣机.zip
(31.44 KB, 下载次数: 181)
2018-12-9 16:54 上传
点击文件名下载附件
定时仿真设计
下载积分: 黑币 -5
作者:
tsq117
时间:
2019-12-17 21:39
用了两片8255??
作者:
643068934
时间:
2019-12-26 14:58
pr仿真出现问题,打不开啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1