• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

请教关于PIC16f7x7单片机I/O口操作!

在对单片机的两个I/O口进行输出配置后,在对端口操作的时候,发现其中一个端口输出高电平的时候保持非常短,似乎是对另一个端口操作的时候,此端口就关闭了一样,请问这是怎么回事?
全部回复(7)
正序查看
倒序查看
whwh
LV.3
2
2007-07-10 16:02
是不是用了bsf bcf?
0
回复
whatcall
LV.5
3
2007-07-10 21:30
具体是哪一个端口?是哪一款单片机,737吗?
首先检查端口配置是不是完全没有问题.
0
回复
2007-07-17 17:00
@whwh
是不是用了bsfbcf?
我用的是C语言
对PORTB的RB4和RB5操作!
端口已经配置好了!

RB4 = 1;
RB5 = 0;    //当执行到这句的时候,从示波器上发现,RB4对应的波形也立刻被拉到低电平.
0
回复
2007-07-17 17:04
@whatcall
具体是哪一个端口?是哪一款单片机,737吗?首先检查端口配置是不是完全没有问题.
是767
端口配置没有问题

后来我采用对整个端口操作,问题已经回避了!

要彻底解决这个问题,可能要从外部的电路上着手!具体的我也不清楚.前辈能给讲讲I/O口不同配置情况下,其外围电路设计吗?
比如作为输入/输出时,上拉或者下拉电阻的设计,以及何时需要上拉或者下拉电阻,何时不需要,能给讲讲吗?谢谢!

或者发点资料给我ryan_jun@126.com
0
回复
2007-07-17 17:13
@whatcall
具体是哪一个端口?是哪一款单片机,737吗?首先检查端口配置是不是完全没有问题.
现在又遇到了一个新问题.
在做两片之间的SPI通讯时(一片有SPI模块,为从接收;一片没有,为从主发送),其中从那片的片选信号ss因为其他原因硬件上没有考虑,后来通过下拉电阻直接接地了.
通讯可以通,但是接收到的数据,不是我发送的.
例如发送0xf3,即1111 0011.
而接收到的是0x3f,0xe7, 0x7e ,0x9f, 0xf9等等,就是说接收的时候第一个clk信号不定.
这难道是片选ss一直是低的原故吗?
0
回复
2007-07-18 12:59
@ryan_te200
我用的是C语言对PORTB的RB4和RB5操作!端口已经配置好了!RB4=1;RB5=0;    //当执行到这句的时候,从示波器上发现,RB4对应的波形也立刻被拉到低电平.
这是读改写指令,要考虑引脚分布电容等因素,中间要加空指令做延时,如果是高主频,可能还得加多几条空指令.可以参看微芯的33023A_cn文档.

RB4 = 1;
asm("nop");
RB5 = 0;
0
回复
2007-07-23 10:15
问题已经解决,感谢各位前辈的解惑!
谢谢!
0
回复