; 初始化子程序 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的电阻.请问怎么处理啊?
查看: 7541
回复: 7
CH451显示正常,键盘无中断发生?怎么处理啊?
热门产品 :
USB3.0 HUB控制器:CH634
你先把中断关掉试下看你按下键的话,连接的中断脚会变低吗?也就是DOUT脚会变为低吗?
关中断后,连接中断的脚一直为低,开中断后连接中断的脚就一直为高.怎么回事啊?
急啊!WCH工程师赶快回复啊!
还有就是这个指令,451复位的,为什么第一次开机执行时(BCD)译码全部显示0,然后正常显示,当主机复位一次后,再执行这个命令后显示就是全黑?再执行一次又能正常显示,总之就是执行一次好的,第二次就全黑,再一次又好了.是不是芯片设计有问题?还有显示全正常,电路也没有问题,键盘中断DOUT一直为高或为低,按键后一点反映都没有? MOV B,#02H MOV A,#01H CALL CH451_WRITE
现在有了按键中断了,读键也很正确,但是只能识别一次,当中断产生后按键识别以后,DOUT脚就一直是低电平.是不是有什么指令让其恢复到高电平?
终于出来了。
怎么出来得啊?传授一下经验撒
请勿发布广告和违法内容, 代码可以选择编辑器代码语言格式, 更易他人阅读帮助您, 或者留下联系方式,以便更好更快服务您
只有登录才能回复,可以选择微信账号登录