bourne 发表于 2016-9-19 09:20:45

C8051F340 I/O不受控,求解

用C8051F340驱动240320 TFT一直不成功,虚拟4线SPI接口,最后发现IO口不受控,初始化以后RST脚电平仍然一直在高低变化,检查接线没问题,请大家帮忙看下什么原因,谢谢

sbit        OE = P0^6;
sbit        DIR = P0^7;
sbit        RST = P3^4;
sbitspi_SDA= P2^0;
sbitspi_SCK= P2^1;
sbitspi_A0       = P3^1;
sbitspi_CS   = P3^0;

void main(void)
{
        MCU_Init();
        LCD_Init();       
        while(1);
}

voidMCU_Init(void)
{
    unsigned char n;
        PCA0MD &= ~0x40;

        //OSC
    OSCICN = 0x83;           //Internal oscillator enabled, SYSCLK = Internal Oscillator = 12MHz
    CLKMUL = 0x00;    //Select internal oscillator as clock multiplier source clock

    CLKMUL |= 0x80;   //Enable clock multiplier

        for(n=0;n<255;n++);

        CLKMUL |= 0xC0;         //Initialize the clock multiplier
        while(!(CLKMUL & 0x20));//Wait for multiplier to lock
    CLKSEL = 0x00;            //Change SYSCLK to (4x Multiplier    ) = 48MHz(48MHz is as fast as F34 will run); 0x03;
   
    RSTSRC   |= 0x02;

        //P0~P4                                       //set high impedance ,        skipped by crossbar
        P0MDIN |= 0xFF;          //Êý×ÖÊäÈë(ÎÞÄ£ÄâÊäÈ룩
        P0MDOUT |= 0xFF;                //ÍÆÍìÊä³ö£¨¿ÉÑ¡¿ªÂ©Êä³ö£¬Êä³öÉèΪÍÆÍ죬ÊäÈëÉèΪ¿ªÂ©£©

    P1MDOUT |= 0xFF;         
    P1MDIN &= 0x00;

    P2MDIN |= 0xFF;
                P2MDOUT |= 0xFF;
               
        P4MDOUT |= 0xFF;         

        P3MDIN |= 0xFF;
        P3MDOUT |= 0xFF;               //0001 0111
        OE=0;
        DIR=1;
        //TP_PENIRQ = 1;
        //TP_DOUT = 1;

    XBR0   |= 0x02;
    XBR1   |= 0x40;       // Enable Crossbar
}

void LCD_Init(void)
{
        //CS0=0;
       
        RST=1;
        Delay(100);
       
        RST=0;
        Delay(1000);

        RST=1;
        Delay(1000);
       
//************* Start Initial Sequence **********//
spi4line_wr_reg(0x11);               
Delay(200);          

spi4line_wr_reg(0x36);   
spi4line_wr_dat(0x00);

spi4line_wr_reg(0x3A);   
spi4line_wr_dat(0x55);

spi4line_wr_reg(0xB2);   
spi4line_wr_dat(0x0C);   
spi4line_wr_dat(0x0C);
spi4line_wr_dat(0x00);   
spi4line_wr_dat(0x33);
spi4line_wr_dat(0x33);

spi4line_wr_reg(0xB7);   
spi4line_wr_dat(0x35);


spi4line_wr_reg(0xBB);
spi4line_wr_dat(0x2B);

spi4line_wr_reg(0xC0);
spi4line_wr_dat(0x2C);

spi4line_wr_reg(0xC2);
spi4line_wr_dat(0x01);

spi4line_wr_reg(0xC3);
spi4line_wr_dat(0x11);

spi4line_wr_reg(0xC4);
spi4line_wr_dat(0x20);

spi4line_wr_reg(0xC6);
spi4line_wr_dat(0x0F);

spi4line_wr_reg(0xca);
spi4line_wr_dat(0x0f);

spi4line_wr_reg(0xc8);
spi4line_wr_dat(0x08);

spi4line_wr_reg(0x55);
spi4line_wr_dat(0x90);

spi4line_wr_reg(0xD0);
spi4line_wr_dat(0xA4);
spi4line_wr_dat(0xA1);

spi4line_wr_reg(0xE0);
spi4line_wr_dat(0xD0);
spi4line_wr_dat(0x00);
spi4line_wr_dat(0x03);
spi4line_wr_dat(0x09);
spi4line_wr_dat(0x13);
spi4line_wr_dat(0x1C);
spi4line_wr_dat(0x3A);
spi4line_wr_dat(0x55);
spi4line_wr_dat(0x48);
spi4line_wr_dat(0x18);
spi4line_wr_dat(0x12);
spi4line_wr_dat(0x0E);
spi4line_wr_dat(0x19);

spi4line_wr_reg(0xE1);
spi4line_wr_dat(0xD0);
spi4line_wr_dat(0x00);
spi4line_wr_dat(0x03);
spi4line_wr_dat(0x09);
spi4line_wr_dat(0x05);
spi4line_wr_dat(0x25);
spi4line_wr_dat(0x3A);
spi4line_wr_dat(0x55);
spi4line_wr_dat(0x50);
spi4line_wr_dat(0x3D);
spi4line_wr_dat(0x1C);
spi4line_wr_dat(0x1D);
spi4line_wr_dat(0x1D);
spi4line_wr_dat(0x1E);

spi4line_wr_reg(0xB0);
spi4line_wr_dat(0x11);
spi4line_wr_dat(0xc0);

spi4line_wr_reg(0xB1);
spi4line_wr_dat(0x4c);
spi4line_wr_dat(0x02);
spi4line_wr_dat(0x14);

spi4line_wr_reg(0x29);               
spi4line_wr_reg(0x2C);
       
}

pcwinner 发表于 2016-9-19 09:23:32

一般都是IO口输入输出状态设置不当引起的!

mcucow 发表于 2016-9-19 09:31:05

一般都是IO口输入输出状态设置不当引起的!+1

bourne 发表于 2016-9-19 09:31:34

pcwinner 发表于 2016-9-19 09:23
一般都是IO口输入输出状态设置不当引起的!

我现在调试全部设置成输出了,没有输入状态,还是不行

talkingbeast 发表于 2016-9-19 09:32:22


一般都是IO口输入输出状态设置不当引起的!+1
我也被坑过好几次,楼主看看是否设置为输入了

pcwinner 发表于 2016-9-19 09:44:48

IO状态不一定是输入输出的问题。!
XBR0   |= 0x02;看看这个,好像是第二功能打开了!

Doding 发表于 2016-9-19 09:56:02

喂狗了吗?

modbus 发表于 2016-9-19 10:26:50

把MOV PCA0MD,#0放到启动文件中

ddds 发表于 2016-9-19 10:31:01

本帖最后由 ddds 于 2016-9-19 10:32 编辑

C8051F系列的单片机不是有配置软件吗?主要还是喂狗和IO配置吧,

dengxm2009 发表于 2016-9-20 13:15:16

先跑流水灯试一下,禁止全局的上拉,设置为挽推模式,打开交叉矩阵。

bourne 发表于 2016-9-20 18:19:48

试了一天,还是不行,谢谢大家了

marshallemon 发表于 2016-9-20 20:34:25

上电先关狗
页: [1]
查看完整版本: C8051F340 I/O不受控,求解