微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教,为何我的AD显示不出来?

请教,为何我的AD显示不出来?

时间:10-02 整理:3721RD 点击:
#include <pic.h>
#define uchar   unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
void init(void);
void init();
void delay(int x);
void disp(uchar num1,uchar num2,uchar num3,uchar num4);
uint get_ad();
unsigned char table[]={0b11000000,0b11111001,0b10100100,
               0b10110000,0b10011001,0b10010010,0b10000010,
               0b11111000,0b10000000,0b10010000};  //字形码数组
void main()
{
        uint lednum;
        uchar a1,a2,a3,a4;
        init();
        while(1)
        {
        lednum=get_ad();
        a1=lednum/1000;
        a2=lednum&1000/100;
        a3=lednum&100/10;
        a4=lednum&10;
        disp(a1,a2,a3,a4);       
        }
}       
void init()
{       
        TRISA0=1,
        TRISD=0;
        TRISC=0;
        PORTA=0;
        PORTC=0;
        PORTD=0;
        ADCON1=0x8e;
        ADCON0=0x41;
        delay(10);
}
uint get_ad()
{
        uint adval;
        GO=1;
        while(GO);
        adval=ADRESH;
        adval=adval<<8|ADRESL;
        return (adval);
}
void disp(uchar num1,uchar num2,uchar num3,uchar num4)
{
PORTC=table[num1];
PORTD=0x08;
delay(2);
PORTC=table[num1];
PORTD=0x04;
delay(2);
PORTC=table[num1];
PORTD=0x02;
delay(2);
PORTC=table[num1];
PORTD=0x01;
delay(2);
}
void delay (int x)
{
        uint a,b;
        for(a=x;a>0;a--)
                for(b=110;b>0;b--);
}

显示的效果是什嘛?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top