打印
[PIC®/AVR®/dsPIC®产品]

小弟初学单片机,有个问题求助

[复制链接]
978|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liu10xue10|  楼主 | 2016-8-5 16:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面是我用pic6f882写的一个简单程序,RA0ad采集加RC0小灯闪烁,我想知道哪里有问题,下载到单片机,程序不运行,//get_ad后小灯闪烁,求助!谢谢大家

#include<pic.h>
#define uchar unsigned char
#define uint  unsigned int
void init();
void delay(uint x);
void led();
void get_ad();
uint ADdata[]={0,0,0,0,0,0};
void main()//主程序
{
        init();
        uart_int();
        while(1)
        {
         get_ad();
          led();       
        }       
}
void delay(uint x)//延时函数
{
        uint a,b;
        for(a=x;a>0;a--)
                for(b=110;b>0;b--);
}
void init()//初始化寄存器
{
        TRISA=0x1f;
        ANSEL=0x1f;//AN0-4模拟输入
        TRISB=0x3f;//00111111
        ANSELH=0x3f;//AN8-13模拟输入
        PORTB=0;
        TRISC=0b10000000;
        PORTC=0;
        ADCON0=0x40;//AD初始化
        ADCON1=0X80;
        ADRESH=0;
        ADRESL=0;
        ADIF=0;
        GIE=1;//中断初始化
        PEIE=1;
        ADIE=1;
        OPTION_REG=0x87; //预分频为256
        delay(1);
}
void get_ad()
{
        uint adval;
    ADON=1;//AD使能
           delay(1);
    GO=1;//转换开始标志位 AN0
        while(GO);//转换完成自动清零
        adval=ADRESH;//00000000 00000011
        adval=adval<<8|ADRESL;//00000011 11111111右对齐
        ADdata[0]=adval;
}
void led()
{
  PORTC=0x01|PORTC;
  delay(500);
  PORTC=0xfe&PORTC;
  delay(500);
}
沙发
JY-DX-JY| | 2016-8-5 17:24 | 只看该作者
你说的不运行什么意思?小灯不闪吗?

使用特权

评论回复
板凳
liu10xue10|  楼主 | 2016-8-5 17:25 | 只看该作者
  求教,感激不尽

使用特权

评论回复
地板
liu10xue10|  楼主 | 2016-8-5 17:27 | 只看该作者
JY-DX-JY 发表于 2016-8-5 17:24
你说的不运行什么意思?小灯不闪吗?

我整个程序烧写进单片机小灯不闪,把get_ad子程序//掉就闪了,看了半天也不知道为什么

使用特权

评论回复
5
JY-DX-JY| | 2016-8-5 18:37 | 只看该作者
GO=1;//转换开始标志位 AN0
        while(GO);//转换完成自动清零
可能在这里死掉啦

使用特权

评论回复
6
yklstudent| | 2016-8-5 20:19 | 只看该作者
查看下配置位设置是否正确

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝