![]() |
|
||||||||||||||
| | 网站首页 | 关于我们 | 单片机培训 | 产品展示 | 产品开发 | 单片机解密 | 技术文章 | 下载中心 | 留言薄 | 技术论坛 | 联系我们 | | ||
|
||
|
|||||
| HT48 & HT46 键盘扫描程序 | |||||
| HT48 & HT46 键盘扫描程序 | |||||
作者:佚名 文章来源:本站原创 点击数: 更新时间:2007-10-16 ![]() |
|||||
|
mov pb,a ;(11) ;从PB口显示键值 jmp keyloop ;跳回键循环扫描 HT48 & HT46 键盘扫描程序 key_in proc ;键值读入子程序 mov a,pa ;读取PA口数据 mov temp,a ;(4) ;将PA口的状态读入的 temp寄存器中 mov temp2,a ;扫描值送入temp2用于检测列值 call delays ;(5) ;调用延时子程序 get_release: ;等待键松开 mov a,pa ;将PA口的主状态值送ACC and a,0f0h ;屏蔽ACC高四位,取按键状态 xor a,0f0h sz acc ;(6) ;等键松开 , 键如松开则acc=0 jmp get_release mov a,0fh ;取屏蔽寄存器的低四位 andm a,matrix mov a,0 get_row: ;取行数 rrc matrix ;(7) ;右移 matrix 指针 sz status.0 ;检查并取键行 jmp get_column1 ;如果找到键行,跳到 get_next clr c ;如果还未找到键行,清carry_c add a,4h ;(8) ;加4到显示指针 jmp get_row ;跳回get_row get_colmn1: mov temp,a mov a,0f0h andm a,temp2 ;取键盘扫描码的高4位,检测列值 swap temp2 ;交换,把列值放到低4位上 mov a,0h ;(9) get_column: rrc temp2 ;逐位检测,到该位为0为止 snz status.0 ;为0,则说明该列有键按下 jmp next |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | | |||
|