打印

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

[复制链接]
1473|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ihafd|  楼主 | 2008-5-5 15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<pic.h>

typedef unsigned int uint;
typedef unsigned char uchar;
#define RA PORTA
#define RD PORTD
#define LED1  RA5
#define LED2  RA3
#define LED3  RA2
#define LED4  RA1
#define LED5  RA0
main()
{
 Initialization();  //初始化.
 RD = 0X00;
 while(1)
 { 
 LED1 = 1;  //1
 LED2 = 1;  //2
 LED3 = 1;  //3
 LED4 = 1;  //4
 LED5 = 1;  //5
 }
//********初始化*//
void Initialization() 
{
 ADCON1 = 0XFF;   //**关闭模拟口**//
 TRISD = 0X00;
 TRISA = 0X00;
 PORTA = 0X00;
}
以上程序为什么运行结果这样的?          {HiTech编译器}
当运行到//2处时LED1和LED2都是1的,
当运行到//3处时LED1 是1 而LED2却自动变成0而LED3 是1.
当运行到LED4 处时LED1 是1 LED2是0 LED3也是0 LED4 是1.
当运行到LED5处时 LED1 是1 LED2 是0 LED3 是0 LED4 是1 LED5是1.
真不明白为什么会这样的结果啊????

沙发
ihafd|  楼主 | 2008-5-5 16:08 | 只看该作者

哈哈!知道为什么了.

正确方法:
把这个寄存器设置成这样:
 ADCON1 = 0XF7;   //**关闭模拟口**//

使用特权

评论回复
板凳
ayb_ice| | 2008-5-6 19:18 | 只看该作者

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

290

主题

844

帖子

3

粉丝