PIC 16F630 I/O问题

[复制链接]
 楼主| h_x_zhong 发表于 2007-5-24 18:21 | 显示全部楼层 |阅读模式
//&nbsp;用PIC16F630&nbsp;内部晶振4MHz<br />//&nbsp;程式如下,检测键盘总是两个都检到,请高人指点<br />//&nbsp;MPLAB&nbsp;IDE&nbsp;V7.5&nbsp;模拟仿真(没仿真器)<br /><br />#include&nbsp;&nbsp;&nbsp;&nbsp;&ltpic.h&gt<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&ltpic16630.h&gt<br /><br />#define&nbsp;_NOP()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;nop&quot;)<br />//-------------------------------------------------------------------------------------------------<br />__CONFIG&nbsp;(INTOSCIO&nbsp;&&nbsp;WDTEN&nbsp;&&nbsp;PWRTEN&nbsp;&&nbsp;MCLREN&nbsp;&&nbsp;BOREN&nbsp;&&nbsp;CPROTECT&nbsp;&&nbsp;CPD&nbsp;&&nbsp;BGLOW);&nbsp;//&nbsp;配置位定义<br /><br />//-------------------------------------------------------------------------------------------------<br />//&nbsp;引脚定义<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P_KeyRead1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RA1<br />#define&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P_KeyRead2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RA2<br /><br />/*-----------------------------------------------------------------------------------------------*/<br />void&nbsp;ScanKey(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;t_Key&nbsp;=&nbsp;0x00;<br /><br />//-----------------------------------------------<br />//&nbsp;&nbsp;A1A2为输入<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;P_KeyRead1&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;P_KeyRead2&nbsp;=&nbsp;1;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt40;&nbsp;i++)&nbsp;_NOP();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;if(P_KeyRead1==0)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;程式运行此口为低<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Key&nbsp;=&nbsp;0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(P_KeyRead2==0)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;程式运行此口为低<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Key&nbsp;=&nbsp;0x02;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />/*-----------------------------------------------------------------------------------------------*/<br /><br />void&nbsp;main(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;GIE&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清总中断<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;RAPU&nbsp;&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;上拉电阻使能<br />&nbsp;&nbsp;&nbsp;&nbsp;WPUA1&nbsp;&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;上拉弱电阻<br />&nbsp;&nbsp;&nbsp;&nbsp;WPUA2&nbsp;&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;上拉弱电阻&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;TRISA&nbsp;=&nbsp;0x06;&nbsp;&nbsp;&nbsp;//&nbsp;A1A2为输入<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISC&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTA&nbsp;=&nbsp;0xFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTC&nbsp;=&nbsp;0xFF;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;GIE&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;开总中断<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ScanKey();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />&nbsp;请问&nbsp;在运行时P_KeyRead1,P_KeyRead2为什么一直为低。<br /><br />&nbsp;烧写芯片后,在目标板上运行也是一样!<br /><br />&nbsp;&nbsp;谢谢!<br />
兰天白云 发表于 2007-5-25 07:39 | 显示全部楼层

首先不要把PIC当51来用

1:硬件上是否已没问题?<br />2:注意RA1,RA2的复用功能<br />3:如果两键同时按下???&nbsp;&nbsp;&nbsp;t_Key=????<br /><br />if(P_KeyRead1==0)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;程式运行此口为低<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Key&nbsp;=&nbsp;0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if(P_KeyRead2==0)&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;程式运行此口为低<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t_Key&nbsp;=&nbsp;0x02;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />
xieyuanbin 发表于 2007-5-25 08:01 | 显示全部楼层

2:注意RA1,RA2的复用功能

630的PA0,1,2是比较器复用脚,在上电后默认为比较器的功能.你应将其设置成数字引脚.
 楼主| h_x_zhong 发表于 2007-5-28 22:47 | 显示全部楼层

RA1,RA2的复用功能

原来上电后默认为比较器的功能,要设置成数字引脚,谢谢!
armauk 发表于 2013-1-12 21:22 | 显示全部楼层
PIC芯片到现在还是居高不下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

57

帖子

1

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

9

主题

57

帖子

1

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