本帖最后由 新乡家电维修 于 2018-8-30 12:20 编辑
P5.5是比较器正输入端,
P5.4是比较器负输入端,
如果比较器负端选择了内部的参考电压1.27V,那么P5.4现在还能作为一个正常IO口使用吗?
有高人用过吗,回答下
解决了,经过实验程序测试,负端选择内部参考电压,不影响P5.4口作为正常IO口使用,
;汇编比较器使用(中断方式,中断入口00ABH)
CMPCR1 DATA 0E6H ;比较器控制寄存器1
CMPEN EQU 080H ;B7,比较模块使能位,1允许,0禁用
CMPIF EQU 040H ;B6,中断标志位,1是有中断,必须手动清零(有中断此位置1,需要手动清零)
PIE EQU 020H ;B5,上升沿使能位,1允许,0禁用
NIE EQU 010H ;B4,下降沿使能位,1允许,0禁用
PIS EQU 008H ;B3,+极选择位,1选ADCIS,0选P5.5+
NIS EQU 004H ;B2,-极选择位,1选P5.4,0选内部BGV
CMPOE EQU 002H ;B1,1输出P1.2,0禁止到P1.2
CMPRES EQU 001H ;B0,比较结果,只读(+端高于-端输出1,+端低于-端输出0,直接反应比较器结果,不受软件控制,只读)
CMPCR2 DATA 0E7H ; 比较器控制寄存器2
INVCMPO EQU 080H ;B7,1取反后输出到P1.2,0正常输出
DISFLT EQU 040H ;B6,1无0.1us延时输出,0有0.1us延时输出
LCDTY EQU 03FH ;B5-B0,输出抖动时间控制(防止误触发)00000表示没有延时
附上我的测试程序,修改过的,官网推荐程序复杂繁琐,下面是我修改过的,只有短短几行,
稍加改动就能实际应用,我打算用于停机保存数据到EEPROM。
测试成功程序:
ORG 00H
LJMP MAIN
ORG 00ABH ;比较器中断入口
LJMP INT_8
;===============================
ORG 0100H
MAIN:
MOV 0E6H, #10010000B
MOV 0E7H,#0
SETB EA
SJMP $
;===========================================
INT_8:
MOV A,0E6H
MOV P1,A
RETI
END
|