搜索
bottom↓
回复: 11

C8051F340 I/O不受控,求解

[复制链接]

出0入0汤圆

发表于 2016-9-19 09:20:45 | 显示全部楼层 |阅读模式
用C8051F340驱动240320 TFT一直不成功,虚拟4线SPI接口,最后发现IO口不受控,初始化以后RST脚电平仍然一直在高低变化,检查接线没问题,请大家帮忙看下什么原因,谢谢

sbit        OE = P0^6;
sbit        DIR = P0^7;
sbit        RST = P3^4;
sbit  spi_SDA  = P2^0;
sbit  spi_SCK  = P2^1;
sbit  spi_A0         = P3^1;
sbit  spi_CS   = P3^0;

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

void  MCU_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);
       
}

出0入0汤圆

发表于 2016-9-19 09:23:32 | 显示全部楼层
一般都是IO口输入输出状态设置不当引起的!

出0入0汤圆

发表于 2016-9-19 09:31:05 | 显示全部楼层
一般都是IO口输入输出状态设置不当引起的!  +1

出0入0汤圆

 楼主| 发表于 2016-9-19 09:31:34 | 显示全部楼层
pcwinner 发表于 2016-9-19 09:23
一般都是IO口输入输出状态设置不当引起的!

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

出20入0汤圆

发表于 2016-9-19 09:32:22 | 显示全部楼层

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

出0入0汤圆

发表于 2016-9-19 09:44:48 | 显示全部楼层
IO状态不一定是输入输出的问题。!
XBR0     |= 0x02;  看看这个,好像是第二功能打开了!

出0入75汤圆

发表于 2016-9-19 09:56:02 | 显示全部楼层
喂狗了吗?

出0入0汤圆

发表于 2016-9-19 10:26:50 | 显示全部楼层
把MOV PCA0MD,#0放到启动文件中

出0入0汤圆

发表于 2016-9-19 10:31:01 | 显示全部楼层
本帖最后由 ddds 于 2016-9-19 10:32 编辑

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

出0入0汤圆

发表于 2016-9-20 13:15:16 来自手机 | 显示全部楼层
先跑流水灯试一下,禁止全局的上拉,设置为挽推模式,打开交叉矩阵。

出0入0汤圆

 楼主| 发表于 2016-9-20 18:19:48 | 显示全部楼层
试了一天,还是不行,谢谢大家了

出0入85汤圆

发表于 2016-9-20 20:34:25 | 显示全部楼层
上电先关狗
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-30 00:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表