新:PIC16F72 I/O口问题

[复制链接]
3398|9
 楼主| wenbilin 发表于 2008-6-20 09:50 | 显示全部楼层 |阅读模式
将RC3设置成输出,且输出高电平,然后<br />1、将RC3短路到地P沟通场效应管为何不烧坏,且无电流(好像过流保护了)<br />2、此时将RC3连地线断开,RC3仍然为低电平,不为高电平,且接一电阻到电源<br />电压就变高了。<br />这样的电路能设计吗?请教<br />事实上在I/O口复用时可能会遇到类似的问题<br /><br />谢谢<br /><br />
xieyuanbin 发表于 2008-6-20 10:38 | 显示全部楼层

看一下IO口输出电流特性

图是16F72数据手册P113页截图,根据此特性可知,在5V电源,25摄氏度时,IO口输出高电平当负载在25mA时输出电压仅2.3V左右,由此可计算出单片机中负责输出高电平的P管的RdsON大概在90Ω左右,此时IO口短路到地时,电流也不过55mA,如果电源吃得消,完全可保证单片机不致复位,但完全不能保证IO口不致损坏。<br />之所以出现你所说的情况,在短路到地之后输出低电平,是因为程序中对RC口有读-修改-写的过程。比如BSF&nbsp;PORTC,1这种指令,MOVF&nbsp;PORTC,F这种指令,或者你自己程序中将C口读进再写入,当RC3口短路至地时,你执行上面的程序,就会导致RC3口输出低电平,而并不是单片机本身过流保护。此时如果将RC3口强拉至高,再执行读-修改-写指令时,RC3一样也会输出高电平。<br />注意,PORTC口输入是施密特触发输入,电平的高低有回差。如果你的上面的电阻阻值过大,RC3是不会输出高电平的。<br />
 楼主| wenbilin 发表于 2008-6-20 11:03 | 显示全部楼层

55mA电流不存在

55mA电流不存在,程序中也未对RC口有读-修改-写的过程(比如BSF&nbsp;PORTC,1这种指令,MOVF&nbsp;PORTC,F这种指令)
xieyuanbin 发表于 2008-6-20 11:06 | 显示全部楼层

55mA电流你看得到么?

你要能看到,单片机早烧掉了。你可否把所有对PORTC口的操作程序贴出来?
 楼主| wenbilin 发表于 2008-6-20 12:11 | 显示全部楼层

回xieyuanbin

上电时:<br />&nbsp;&nbsp;&nbsp;movlw&nbsp;&nbsp;0xff<br />&nbsp;&nbsp;&nbsp;movwf&nbsp;&nbsp;PORTC<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;TRISC<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;STATUS<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KoreaF<br />&nbsp;&nbsp;&nbsp;btfsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTC,0x3<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KoreaF<br /><br />MAIN:<br />&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;&nbsp;&nbsp;clrwdt<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;MAIN
xieyuanbin 发表于 2008-6-20 14:40 | 显示全部楼层

除非,楼主别的程序有BANK切换错误

错误写入PORTC
 楼主| wenbilin 发表于 2008-6-21 08:08 | 显示全部楼层

原因找到了,很怪的

上电时:<br />&nbsp;&nbsp;&nbsp;movlw&nbsp;&nbsp;0xff<br />&nbsp;&nbsp;&nbsp;movwf&nbsp;&nbsp;PORTC<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;STATUS,RP0<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;TRISC<br />&nbsp;&nbsp;&nbsp;clrf&nbsp;&nbsp;&nbsp;STATUS<br /><br />START&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;btfsc&nbsp;&nbsp;&nbsp;&nbsp;PORTC,2&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;&nbsp;&nbsp;$+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;PORTC,2&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;&nbsp;&nbsp;$+2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />&nbsp;&nbsp;&nbsp;bcf&nbsp;&nbsp;&nbsp;&nbsp;PORTC,2&nbsp;&nbsp;*<br /><br />&nbsp;&nbsp;&nbsp;clrwdt<br /><br />&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;&nbsp;&nbsp;START<br /><br />MAIN:<br />&nbsp;&nbsp;&nbsp;&nbsp;....<br />&nbsp;&nbsp;&nbsp;&nbsp;clrwdt<br />&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;MAIN<br /><br />去掉加*的五行,将RC3短路到地,RC3口输出较大电流,将地断开,RC3仍为高<br />如果不去掉加*的五行,将RC3短路到地,RC3口不输出电流,将地断开,RC3就为低<br /><br /><br /><br />
xieyuanbin 发表于 2008-6-21 08:16 | 显示全部楼层

都说你操作了PORTC口

&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;PORTC,2&nbsp;&nbsp;*<br />这句,如果去掉就不会出现楼主的情况.<br />
 楼主| wenbilin 发表于 2008-6-21 08:49 | 显示全部楼层

原因找到了,程序还要改吗?

原因找到了,程序还要改吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

48

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部