4513|8

86

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

设置P5.2为输入, 接VCC, P5DIR &= 0xFB;后,P5IN是0x00!怎么办? [复制链接]

也就是说P5.2在输入模式情况下,并且接了VCC, 应该在P5IN变量和P5.2对应的比特位上读入1才对啊?

我用电压表量过,P5.2引脚上的电压就是VCC高电平,可是为啥P5IN会是0x00呢?

除了是芯片坏了,还有别的情况吗?那位大侠碰到过这种事情?

最新回复

这个程序看得好累啊! P5SEL &= 0xfb; // P5.2 设置为I/O端口 P5SEL &= 0x9F; // P5.6, P5.5 设置为I/O端口 P4SEL &= 0xF7; // P4.3 设置为I/O端口 P1SEL &= 0xEF; // P1.4 设置为I/O端口 P3SEL &= 0xBF; // P3.6 设置为I/O端口 P2SEL &= 0xDF; // P2.5 设置为I/O端口 这段程序是多余的吧?单片机默认就是配置成IO口功能的。  详情 回复 发表于 2009-7-27 19:38
 
点赞 关注

回复
举报

72

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
其他的寄存器怎么设置的?
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

re

都没有设置。

引用:

其他的寄存器怎么设置的?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
先将P5.2设置为输入,再接VCC到P5.2引脚,最后再看P5.2的输入寄存器状态
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 

re

谢谢指点!不过,我的做法跟你说的是一样的,出了问题,P5IN,P4IN, P3IN, P2IN, P1IN的值都不对了。没有设置PXSEL,但是上电后程序初始,所有端口都是默认为I/O口的,而且通过别的程序间接表明了芯片没有坏,P5.2脚输入功能也是正常的。到底是出了什么问题?使得所有端口都不能读入输入值了呢?

引用:

先将P5.2设置为输入,再接VCC到P5.2引脚,最后再看P5.2的输入寄存器状态
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
LZ把完整的程序贴上来看下。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 

re

只看执行过的那部分行吗?

下面是单步调试执行过的程序部分:


void init_Keyboard(void){

/*
P5SEL &= 0xfb; // P5.2 设置为I/O端口

P5SEL &= 0x9F; // P5.6, P5.5 设置为I/O端口
P4SEL &= 0xF7; // P4.3 设置为I/O端口
P1SEL &= 0xEF; // P1.4 设置为I/O端口
P3SEL &= 0xBF; // P3.6 设置为I/O端口
P2SEL &= 0xDF; // P2.5 设置为I/O端口
*/

P5DIR &= 0xfb; // P5.2 设置为输入模式

P5DIR |= 0x60; // P5.6, P5.5 设置为输出模式
P4DIR |= 0x08; // P4.3 设置为输出模式
P1DIR |= 0x10; // P1.4 设置为输出模式
P3DIR |= 0x40; // P3.6 设置为输出模式
P2DIR |= 0x20; // P2.5 设置为输出模式

P5OUT &= 0x9F; // P5.6, P5.5输出值清零
P4OUT &= 0xF7; // P4.3 输出值清零
P1OUT &= 0xEF; // P1.4 输出值清零
P3OUT &= 0xBF; // P3.6 输出值清零
P2OUT &= 0xDF; // p2.5 输出值清零

key_Flag = 0;// 初始化key_Flag
key_Pressed = 0;// 初始化key_Pressed

}

void key_Event(void){

unsigned char tmp;

P5OUT &= 0x9F; // P5.6, P5.5输出值清零
P4OUT &= 0xF7; // P4.3 输出值清零
P1OUT &= 0xEF; // P1.4 输出值清零
P3OUT &= 0xBF; // P3.6 输出值清零
P2OUT &= 0xDF; // p2.5 输出值清零

tmp = P5IN; // 获取 p5IN
...
}

void main(void) {
WDTCTL = WDTPW + WDTHOLD; //停止看门狗
P1DIR |= 0x01; // set P1.0 to output direction

char tmp[2]="0";

init_Keyboard(); // 初始化键盘
while(1)
{
key_Event(); //检测按键事件
...
}
}




引用:

LZ把完整的程序贴上来看下。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

8
 

re

没人响应,估计应该是程序没啥毛病,准备查查硬件上接线是否正确。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
这个程序看得好累啊!

P5SEL &= 0xfb; // P5.2 设置为I/O端口

P5SEL &= 0x9F; // P5.6, P5.5 设置为I/O端口
P4SEL &= 0xF7; // P4.3 设置为I/O端口
P1SEL &= 0xEF; // P1.4 设置为I/O端口
P3SEL &= 0xBF; // P3.6 设置为I/O端口
P2SEL &= 0xDF; // P2.5 设置为I/O端口
这段程序是多余的吧?单片机默认就是配置成IO口功能的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表