首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

s12dg128的PORTH 口键盘循环扫描程序,真怪!!!

s12dg128的PORTH 口键盘循环扫描程序,真怪!!!

真奇了怪了!!在扫描4X4键盘(反转法)时,如果DDRH不反转,只判断出column是可以的;只要加入翻转(即:DDRH=0x0f 变为DDRH=0xf0),就什么也判断不出来了!下面是源代码,请赐教:

for(;;){
DDRH=0x0f; //低四位输出
PTH=0x00; //因为输入有上拉,所以输出应为低电平
PERH=0xff; //允许上拉下拉装置,仅输入时有效
PPSH=0x00; //falling edge; pull-up device
if(!(PTIH_PTIH7)) column=1;
if(!(PTIH_PTIH6)) column=2;
if(!(PTIH_PTIH5)) column=3;
if(!(PTIH_PTIH4)) column=4;
DDRH=0xf0; //高四位输出
sdelay(1); //短暂延时
if(!(PTIH_PTIH3)) row=1;
if(!(PTIH_PTIH2)) row=2;
if(!(PTIH_PTIH1)) row=3;
if(!(PTIH_PTIH0)) row=4;
//PORTB=row; //用来显示
//PORTB=column; //用来显示
//SCI0_Transmit(row); //用来显示
//SCI0_Transmit(column); //用来显示
}
考虑到 PORTH 内有上拉功能,所以在硬件上没有做上拉,下拉。这样做对吗?
你有没有单步走一下,看看过程中到底有什么问题?注意单步走时输入信号要配合。
海纳百川  有容乃大
谢谢版主,俺准备在硬件上作 独立式键盘了。尽量避开反转吧,嘿嘿!
返回列表