这小程序为什么结果是这样的?

[复制链接]
 楼主| ihafd 发表于 2008-5-5 15:41 | 显示全部楼层 |阅读模式
#include&ltpic.h&gt<br /><br />typedef&nbsp;unsigned&nbsp;int&nbsp;uint;<br />typedef&nbsp;unsigned&nbsp;char&nbsp;uchar;<br />#define&nbsp;RA&nbsp;PORTA<br />#define&nbsp;RD&nbsp;PORTD<br />#define&nbsp;LED1&nbsp;&nbsp;RA5<br />#define&nbsp;LED2&nbsp;&nbsp;RA3<br />#define&nbsp;LED3&nbsp;&nbsp;RA2<br />#define&nbsp;LED4&nbsp;&nbsp;RA1<br />#define&nbsp;LED5&nbsp;&nbsp;RA0<br />main()<br />{<br />&nbsp;Initialization();&nbsp;&nbsp;//初始化.<br />&nbsp;RD&nbsp;=&nbsp;0X00;<br />&nbsp;while(1)<br />&nbsp;{&nbsp;<br />&nbsp;LED1&nbsp;=&nbsp;1;&nbsp;&nbsp;//1<br />&nbsp;LED2&nbsp;=&nbsp;1;&nbsp;&nbsp;//2<br />&nbsp;LED3&nbsp;=&nbsp;1;&nbsp;&nbsp;//3<br />&nbsp;LED4&nbsp;=&nbsp;1;&nbsp;&nbsp;//4<br />&nbsp;LED5&nbsp;=&nbsp;1;&nbsp;&nbsp;//5<br />&nbsp;}<br />//********初始化*//<br />void&nbsp;Initialization()&nbsp;<br />{<br />&nbsp;ADCON1&nbsp;=&nbsp;0XFF;&nbsp;&nbsp;&nbsp;//**关闭模拟口**//<br />&nbsp;TRISD&nbsp;=&nbsp;0X00;<br />&nbsp;TRISA&nbsp;=&nbsp;0X00;<br />&nbsp;PORTA&nbsp;=&nbsp;0X00;<br />}<br />以上程序为什么运行结果这样的?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{HiTech编译器}<br />当运行到//2处时LED1和LED2都是1的,<br />当运行到//3处时LED1&nbsp;是1&nbsp;而LED2却自动变成0而LED3&nbsp;是1.<br />当运行到LED4&nbsp;处时LED1&nbsp;是1&nbsp;LED2是0&nbsp;LED3也是0&nbsp;LED4&nbsp;是1.<br />当运行到LED5处时&nbsp;LED1&nbsp;是1&nbsp;LED2&nbsp;是0&nbsp;LED3&nbsp;是0&nbsp;LED4&nbsp;是1&nbsp;LED5是1.<br />真不明白为什么会这样的结果啊????<br /><br />
 楼主| ihafd 发表于 2008-5-5 16:08 | 显示全部楼层

哈哈!知道为什么了.

正确方法:<br />把这个寄存器设置成这样:<br />&nbsp;ADCON1&nbsp;=&nbsp;0XF7;&nbsp;&nbsp;&nbsp;//**关闭模拟口**//
ayb_ice 发表于 2008-5-6 19:18 | 显示全部楼层

还有要注意PIC读的是引脚电压

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

本版积分规则

294

主题

858

帖子

3

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