请教PORTA口问题

[复制链接]
4979|5
 楼主| jerrylo 发表于 2007-4-27 21:35 | 显示全部楼层 |阅读模式
我使用PIC16F883对IO口进行操作,我在PORTA送0x0f,怎么RA0,RA1,RA2,RA3的电压都只有1.6V呢?&nbsp;请各位帮我诊断一下。初始化芯片程序如下:<br />void&nbsp;InitChip()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;STATUS&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT();<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;interrupt&nbsp;module<br />&nbsp;&nbsp;&nbsp;&nbsp;INTCON&nbsp;=&nbsp;0;&nbsp;//&nbsp;disable&nbsp;all&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;PIE1&nbsp;=&nbsp;0;&nbsp;//&nbsp;disable&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;&nbsp;PIE2&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PIR1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PIR2&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;RBIE&nbsp;=&nbsp;0;<br />//&nbsp;&nbsp;&nbsp;&nbsp;INTE&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;INTE=0;<br />&nbsp;&nbsp;//&nbsp;&nbsp;INT1IE=0;<br />&nbsp;//&nbsp;&nbsp;&nbsp;INTCON2=0;<br />//&nbsp;&nbsp;&nbsp;&nbsp;INTCON3=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;power&nbsp;control&nbsp;register<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCON&nbsp;=&nbsp;0x03;<br />&nbsp;&nbsp;&nbsp;&nbsp;RBPU&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;IOCB&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;//enable&nbsp;port&nbsp;B&nbsp;pullups,&nbsp;prescaler&nbsp;to&nbsp;watchdog<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;timer0&nbsp;module,prescalar&nbsp;set&nbsp;to&nbsp;1:32<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;has&nbsp;done&nbsp;in&nbsp;OPTION_REG<br />&nbsp;&nbsp;&nbsp;&nbsp;TMR0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0CS&nbsp;=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PSA&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PS2&nbsp;=&nbsp;1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PS1&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PS0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;TIMER1&nbsp;module,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;prescalar&nbsp;set&nbsp;to&nbsp;1:8,&nbsp;turn&nbsp;off&nbsp;timer1<br />&nbsp;&nbsp;&nbsp;&nbsp;T1CON&nbsp;=&nbsp;0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;TMR1H&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TMR1L&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;TIMER2&nbsp;module,&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;postscaler&nbsp;set&nbsp;to&nbsp;1:5,prescalar&nbsp;set&nbsp;to&nbsp;1:1,&nbsp;turn&nbsp;off&nbsp;timer1<br />&nbsp;&nbsp;&nbsp;&nbsp;T2CON&nbsp;=&nbsp;0X20;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TMR2&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PR2&nbsp;=&nbsp;150;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;CCP&nbsp;module<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;disable&nbsp;ccp1&nbsp;and&nbsp;ccp2<br />&nbsp;&nbsp;&nbsp;&nbsp;CCP1CON&nbsp;=&nbsp;0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;CCP2CON&nbsp;=&nbsp;0;<br />//&nbsp;&nbsp;&nbsp;&nbsp;CCP3CON&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;ssp&nbsp;module<br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;disable&nbsp;ssp<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPCON&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPCON2&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPBUF&nbsp;=&nbsp;0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;init&nbsp;usart&nbsp;module<br />&nbsp;&nbsp;&nbsp;&nbsp;SPBRG&nbsp;=&nbsp;129;&nbsp;//&nbsp;9600&nbsp;baud&nbsp;rate<br />&nbsp;&nbsp;&nbsp;&nbsp;TXSTA&nbsp;=&nbsp;0x04;&nbsp;//&nbsp;8&nbsp;bit&nbsp;transmition,&nbsp;disable&nbsp;transmition<br />&nbsp;&nbsp;&nbsp;&nbsp;RCSTA&nbsp;=&nbsp;0x00;&nbsp;//disable&nbsp;usart&nbsp;receiver,&nbsp;8&nbsp;bit&nbsp;receive<br />&nbsp;&nbsp;&nbsp;&nbsp;//init&nbsp;comparator&nbsp;register<br />&nbsp;&nbsp;&nbsp;&nbsp;CM1CON0&nbsp;=&nbsp;0x03;<br />&nbsp;&nbsp;&nbsp;&nbsp;CM2CON0&nbsp;=&nbsp;0x03;<br />&nbsp;&nbsp;&nbsp;&nbsp;CM2CON1&nbsp;=&nbsp;0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;VRCON&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SRCON&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//init&nbsp;comparator&nbsp;register<br />&nbsp;&nbsp;&nbsp;&nbsp;PWM1CON&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//init&nbsp;ad&nbsp;module<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCON1&nbsp;=&nbsp;0x0f;&nbsp;//&nbsp;select&nbsp;RA0,RA1,RA3&nbsp;as&nbsp;digital&nbsp;IO<br />&nbsp;&nbsp;&nbsp;&nbsp;ADCON0&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ANSEL&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;ANSELH&nbsp;=&nbsp;0;<br />//&nbsp;&nbsp;&nbsp;&nbsp;ADCON2&nbsp;=&nbsp;0;<br />}<br />IO操作如下<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRISA&nbsp;=&nbsp;0x10;<br />    PORTA&nbsp;=&nbsp;0x0f;<br />麻烦各位了!谢谢!<br />
xieyuanbin 发表于 2007-4-29 14:35 | 显示全部楼层

是你电路问题。

有没有算过IO口的输出电流值?
yewuyi 发表于 2007-4-30 08:32 | 显示全部楼层

默认是AD口,你要转换成IO口……

  
jiaqisun 发表于 2007-4-30 09:08 | 显示全部楼层

楼上正解!

  
jinling14 发表于 2007-5-1 01:10 | 显示全部楼层

怎么才能转换成I/O口呀?

初学PIC,还请指教
xieyuanbin 发表于 2007-5-2 17:40 | 显示全部楼层

未想那么简单

你的问题,数据手册上有详细解释.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

1

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