CH451显示正常,键盘无中断发生?怎么处理啊?

; 初始化子程序 CH451_INIT: CLR CH451_DIN ;先低后高,输出上升沿通知CH451选择4线串行接口 SETB CH451_DCLK ;置为默认的高电平 SETB CH451_DIN SETB CH451_LOAD SETB CH451_DOUT ;置为输入 MOV B,#04H ;设置系统参数命令 MOV A,#03H ;禁止看门狗,使能键盘功能,使能显示驱动 CALL CH451_WRITE ;发出命令 ; ... MOV B,#05H ;显示方式为BCD;扫描极限为8,亮度为8/16 MOV A,#088H ; CALL CH451_WRITE CLR KEYOK ; 下述三条指令用于键盘中断 CLR IT0 ;置外部信号为低电平触发 ;SETB IT0 SETB PX0 ;置高优先级或者低优先级 CLR IE0 ;清中断标志 SETB EX0 ;允许键盘中断 SETB EA ;允许中断 RET 初始化是这样设置的,开了键盘的,但是按键后没有中断产生. 键盘是SEG0~SEG3行线,DIG0~DIG3列线,4*4的16键,照手册中DIG接键盘的前端串一个2K的电阻.请问怎么处理啊?

你先把中断关掉试下看你按下键的话,连接的中断脚会变低吗?也就是DOUT脚会变为低吗?


关中断后,连接中断的脚一直为低,开中断后连接中断的脚就一直为高.怎么回事啊?


急啊!WCH工程师赶快回复啊!


还有就是这个指令,451复位的,为什么第一次开机执行时(BCD)译码全部显示0,然后正常显示,当主机复位一次后,再执行这个命令后显示就是全黑?再执行一次又能正常显示,总之就是执行一次好的,第二次就全黑,再一次又好了.是不是芯片设计有问题?还有显示全正常,电路也没有问题,键盘中断DOUT一直为高或为低,按键后一点反映都没有? MOV B,#02H MOV A,#01H CALL CH451_WRITE


现在有了按键中断了,读键也很正确,但是只能识别一次,当中断产生后按键识别以后,DOUT脚就一直是低电平.是不是有什么指令让其恢复到高电平?


终于出来了。


怎么出来得啊?传授一下经验撒


只有登录才能回复,可以选择微信账号登录