Board logo

标题: s12dg128的PORTH 口键盘循环扫描程序,真怪!!! [打印本页]

作者: jonah008    时间: 2007-8-13 21:03     标题: 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); //用来显示
}

作者: jonah008    时间: 2007-8-13 21:08

考虑到 PORTH 内有上拉功能,所以在硬件上没有做上拉,下拉。这样做对吗?
作者: strongchen    时间: 2007-8-14 15:31

你有没有单步走一下,看看过程中到底有什么问题?注意单步走时输入信号要配合。
作者: jonah008    时间: 2007-8-14 16:03

谢谢版主,俺准备在硬件上作 独立式键盘了。尽量避开反转吧,嘿嘿!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0