pic程序问题,急!!!

2020-02-09 09:37发布

#include "config.h"

void delay(uchar i);
void init_12864(void);
void write_data(uchar data);
void write_comd(uchar comd);
void init_timer1(void);
void init_rb4(void);
void init_rb0(void);

void main()
{
       
        init_12864();
        write_data('1');
        init_rb0();
        while(1)
        {
                TRISD=0;
                PORTD=0;
        }       
}

void delay(uchar i)
{
        uchar j;
        for(j=i;j>0;j--);
}

void init_12864(void)
{
        delay(10000);
        ADCON1=0X02;
        TRISE&=0;
        write_comd(0x0e);
        delay(60);
        write_comd(0x0e);
        delay(60);
        write_comd(0x01);
        delay(60);
        write_comd(0x06);
        delay(60);
        write_comd(0x80);
        delay(60);
}

void write_data(uchar data)
{
        uchar i;
        cs_12864=1;
        sid_12864=0;
        sid_12864=1;
        for(i=0;i<5;i++)
        {
                sclk_12864=0;
                sclk_12864=1;       
        }
        sclk_12864=0;
        sid_12864=0;
        sclk_12864=1;
        sclk_12864=0;
        sid_12864=1;
        sclk_12864=1;
        sclk_12864=0;
        sid_12864=0;
        sclk_12864=1;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                if(data&0x80)
                        sid_12864=1;
                else
                        sid_12864=0;
                data=data<<1;
                sclk_12864=1;
        }
        sid_12864=0;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                sclk_12864=1;
        }
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                if(data&0x80)
                        sid_12864=1;
                else
                        sid_12864=0;
                data=data<<1;
                sclk_12864=1;
        }
        sid_12864=0;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                sclk_12864=1;
        }
        sclk_12864=0;
        sid_12864=1;
}

void write_comd(uchar comd)
{
        uchar i;
        cs_12864=1;
        sid_12864=0;
        sid_12864=1;
        for(i=0;i<5;i++)
        {
                sclk_12864=0;
                sclk_12864=1;       
        }
        sclk_12864=0;
        sid_12864=0;
        sclk_12864=1;
        sclk_12864=0;
        sid_12864=0;
        sclk_12864=1;
        sclk_12864=0;
        sid_12864=0;
        sclk_12864=1;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                if(comd&0x80)
                        sid_12864=1;
                else
                        sid_12864=0;
                comd=comd<<1;
                sclk_12864=1;
        }
        sid_12864=0;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                sclk_12864=1;
        }
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                if(comd&0x80)
                        sid_12864=1;
                else
                        sid_12864=0;
                comd=comd<<1;
                sclk_12864=1;
        }
        sid_12864=0;
        for(i=0;i<4;i++)
        {
                sclk_12864=0;
                sclk_12864=1;
        }
        sclk_12864=0;
        sid_12864=1;
}

void interrupt cpu_interrupt(void)
{
        if(INTF==1)
        {
                PORTD=0;
        }
        INTF=0;
}

void init_rb0(void)
{
        GIE=0;
        INTE=1;
        INTEDG=1;
        GIE=1;
}


PORTD接的是发光二极管,但是发光二极管不亮
12864用的是PORTE三个口,PORTE和PORTD无任何连接
12864正常显示,
但是主函数中加上
TRISD=0;
PORTD=0;
后就不显示了,而且二极管不亮
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。