请单片机高手看看,这个问题怎么搞得

2019-07-16 02:56发布

本帖最后由 尹志平 于 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 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。