本帖最后由 尹志平 于 2012-12-30 15:26 编辑
*
*
这是温度控制的,用8086做的,两个灯在交替闪烁,两个按键也没有用,那位帮忙改一下
CODE SEGMENT
ASSUME CS:CODE
START:
ARER1 DB 4 DUP(0)
ARER2 DB 4 DUP(0)
ARER3 DB 4 DUP(0)
ARER4 DB 4 DUP(0)
ARER5 DB 4 DUP(0)
ARER6 DB 4 DUP(0)
ARER7 DB 4 DUP(0)
MOV AL,10001000B ;8255初始化
OUT 66H,AL
MOV DX,300H ;0809IO端口地址
OUT DX,AL ;启动AD转换
MOV ARER7,40H;初始温度
MAIN: ;循环扫描数码管
NEXT:
MOV AL,0FFH
OUT 62H,AL
MOV DL,20H
MOV AL,08H
OUT 64H,AL
MOV AL,ARER1
OUT 62H,AL
SIM0: DEC DL
JNZ SIM0 ;数码管第0位显示
MOV AL,0FFH
OUT 62H,AL
MOV DL,20H
MOV AL,04H
OUT 64H,AL
MOV AL,ARER2
OUT 62H,AL
SIM1: DEC DL
JNZ SIM1 ;数码管第1位显示
MOV AL,0FFH
OUT 62H,AL
MOV DL,20H
MOV AL,02H
OUT 64H,AL
MOV AL,ARER3
OUT 62H,AL
SIM2: DEC DL
JNZ SIM2 ;数码管第2位显示
MOV DX,300H
IN AL,DX ;采集AD数据
MOV DL,0FAH
MUL DL
MOV DL,0FFH
DIV DL
MOV DL,02H
MUL DL ;数据处理
MOV DL,64H
DIV DL
MOV BX,OFFSET TABLE
XLAT
MOV ARER3,AL ;最高位值存入内存
MOV AL,AH
MOV AH,00H
MOV DL,0AH
DIV DL
XLAT
MOV ARER2,AL ;后两位值
MOV AL,AH
XLAT
MOV ARER1,AL
MOV DX,300H
OUT DX,AL ;启动AD转换
;************************** 控制 *************
TEMP: MOV DX,0300H ;温度比较
IN AL,DX
CMP AL,ARER7
JAE T_ON
JMP T_OFF
T_ON: MOV AL,01H ;比较结果,亮1灯
OUT 60H,AL
JMP KONGZ
T_OFF:MOV AL,02H ;比较结果,亮2灯
OUT 60H,AL
JMP KONGZ
KONGZ: ;温度控制设置
MOV DX,64H
IN AL,DX
AND AL,0F0H ;屏蔽低四位
MOV CL,04H
ROL AL,CL ;移到低四位
TEST AL,01H
JNZ KZ_1
TEST AL,02H
JNZ KZ_2
KZ_1: ;温度加一
INC ARER7
JMP NEXT
KZ_2: ;温度减一
DEC ARER7
JMP NEXT
JMP MAIN
TABLE DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳表
CODE ENDS
END START
这是我写的代码,那位帮我看看
-
两个灯不停的闪,两个按键控制也无效
-
-
新建文件夹 (5).rar
下载积分: 积分 -1 分
28.66 KB, 下载次数: 1, 下载积分: 积分 -1 分
一周热门 更多>