📄 新建 文本文档.txt
字号:
A2000 B098 MOV AL,98 ;8255初始化,A端口和C端口的高四位作输入端
A2002 E663 OUT 63,AL ;B端口和C端口的低四位作输出端。
A2004 B008 MOV AL,08 ;把PC4初始化为0,关闭蜂鸣器。
A2006 E663 OUT 63,AL
A2008 E600 OUT 00,AL ;启动0809
A200A E462 IN AL,62 ;8255的C端口读入数据。
A200C A880 TEST AL,80 ;查询PC7(接EOC)是否为1,为1则开始转
A200E 74FA JE 200A ;换数据。
A2010 B090 MOV AL,90 ;8255初始化,把C端口高四位改为输出端。
A2012 E663 OUT 63,AL
A2014 E460 IN AL,60 ;从8255的A端口读入数据。
A2016 B9FF64 MOV CX,64FF ;将0~255的数字量转化为0~100的数字量。
A2019 F6E5 MUL CH
A201B F6F1 DIV CL
A201D 32E4 XOR AH,AH
A201F B9040A MOV CX,0A04 ;将0~100的数字量转化为用BCD码表示
A2022 F6F5 DIV CH
A2044 88E3 MOV BL,AH
A2026 32E4 XOR AH,AH
A2028 F6F5 DIV CH
A202A E662 OUT 62,AL ;C端低四位输出百位数的压缩BCD码
A202C 88E7 MOV BH,AH
A202E D2E7 SHL BH,CL
A2030 02DF ADD BL,BH
A2032 88D8 MOV AL,BL
A2034 E661 OUT 61,AL ;B端输出十位和个位数的压缩BCD码。
A2036 3C40 CMP AL,40 ;判断温度是否小于40度,是则跳到2050
A2038 7216 JB 2050
A203A 3660 CMP AL,60 ;判断温度是否大于60度,是则跳到2050
A203C 7712 JA 2050
A203E BBB808 MOV BX,0BB8
A2041 E82C00 CALL 2070 ;调用延时子程序,使延时30秒。
A2044 EBBA JMP 2000
A2050 B009 MOV AL,09 ;把PC4置为1,开蜂鸣器。
A2052 E663 OUT 63,AL
A2054 BBC800 MOV BX,00C8 ;延时2秒。
A2057 E81600 CALL 2070
A205A B008 MOV AL,08 ;把PC4恢复为0,关蜂鸣器。
A205C E663 OUT 63,AL
A205E BBF00A MOV BX,0AF0
A2061 E80C00 CALL 2070 ;延时28秒,加蜂鸣2秒,正好30秒。
A2064 EB9A JMP 2000
A2070 B9F10A MOV CX,0AF1 ;延时子程序,通过BX控制不同延时时间。
A2073 E2FE LOOP 2073
A2075 4B DEC BX
A2076 75F8 JNE 2070
A2078 C3 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -