打印

求助:C51读取TFT的ID,为什么读不出来哦

[复制链接]
2615|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mylovepzq|  楼主 | 2011-9-8 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
C51, TFT, CD, LCD, TE
这个不知道为什么,怎么也读不出来
#include <reg51.h>
#define  LCD_DataPortH P2     //高8位数据口,8位模式下只使用高8位  
sbit LCD_CS=P1^0; //片选
sbit LCD_REST = P1^1;       //复位   
sbit LCD_RS = P1^2;    //数据/命令切换
sbit LCD_WR = P1^3;   //写控制
sbit LCD_RD =P1^4;      //读控制



void UART_init();                //串口初始化函数   
void COM_send(void);             //串口发送函数   
char bdata Temp;   
char str[16];   

//-------------------------------------------------------------------   
void COM_send(void)   
{   
   char point;   
     
   for(point=0;point< 16;point++)       //连续发送一百位数据                                      //把缓存区的数据都发送到串口   
   {   
    SBUF=str[point];   
    while(!TI);   
    TI=0;   
    }   
      
      
}   
//--------------------------------------------------------------   


void UART_init()   
{   
                      //初始化串行口和波特率发生器   
SCON =0x40;           //选择串口工作方式1,不允许接收   
TMOD =0x20;           //定时器1工作在方式2,定时器0工作在方式1   
TH1 =0xfA;            //   
PCON = 0x80;          //速度加倍   
TR1 =1;               //启动定时器T1   
//ET1 =0;   
//ES=1;                 //允许串行口中断   
//PS=1;                 //设计串行口中断优先级   
//EA =0;                //单片机中断允许   
}   


void delayms(int count)  // /* X1ms */
{
        int i,j;
        for(i=0;i<count;i++)
                for(j=0;j<1000;j++);
}

void LCD_Writ_Bus(char VH,char VL)   //并行数据写入函数
{
    LCD_DataPortH=VH;
    LCD_WR=0;
LCD_WR=1;
LCD_DataPortH=VL;
LCD_WR=0;
LCD_WR=1;
}
void Lcd_Write_Com(char VH,char VL)  //发送命令-8位参数
{
    LCD_RS=0;
LCD_Writ_Bus(VH,VL);
}
void Lcd_Write_Data(char VH,char VL) //发送数据-8位参数
{
    LCD_RS=1;
LCD_Writ_Bus(VH,VL);
}
void Lcd_Write_Com_Data(int com,int val)    //发送数据命令
{
Lcd_Write_Com(com>>8,com);
    Lcd_Write_Data(val>>8,val);
}

main()
{
while(1)
{  
unsigned char i;   
UART_init();        //初始化串口   
//P0=0Xf0;   

P2=0XF0;   

   Temp=P2;  
   for(i=8;i>0;i--)   
   {   
    str[i]= Temp&0x01 + 0x30;   
    Temp= Temp>>1;   
   }   

COM_send();   
   
}

}

相关帖子

沙发
sedatefire| | 2012-7-4 20:59 | 只看该作者
LCD_WR=0;
LCD_WR=1;
中间没有延时,这样可以吗
不管怎样,示波器搭上去,对照datasheet时序要求,一个个对照

使用特权

评论回复
板凳
amwrdfe| | 2012-7-5 12:24 | 只看该作者
不需要延时的,
一个320*240*60hz的显示,8bit接口,262k颜色,的情况下
320*240*60*3=13.8m,还不包括行头行尾。
基本上模拟控制器的都不需要延时。

程序上没使用RD信号就想读出数据....,能读出才怪。

使用特权

评论回复
地板
sedatefire| | 2012-7-5 20:49 | 只看该作者
不需要延时的,
一个320*240*60hz的显示,8bit接口,262k颜色,的情况下
320*240*60*3=13.8m,还不包括行头行尾。
基本上模拟控制器的都不需要延时。

程序上没使用RD信号就想读出数据....,能读出才怪。 ...
amwrdfe 发表于 2012-7-5 12:24

LCD_RD 和 WR貌似共用的好像

使用特权

评论回复
5
joing1999| | 2012-7-6 11:02 | 只看该作者
LCD_RD 和 WR貌似共用的好像
sedatefire 发表于 2012-7-5 20:49

不是共用的,共用的那是8080模式,叫R/W引脚

使用特权

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

本版积分规则

0

主题

88

帖子

1

粉丝