不知道怎么回事发送到电脑上的是十六进制的75
不知道是程序的问题还是方法不对
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit TFT_RST = P3^7; //RST 引脚定义
sbit TFT_RD = P3^3; //RD 引脚定义
sbit TFT_WR = P3^2; //WR 引脚定义
sbit TFT_RS = P3^4; //RS 引脚定义
sbit TFT_CS = P3^5; //CS 引脚定义
#define TFT_DATA P1 //与液晶通信用的IO口
/*******************************
延时函数 1ms
*******************************/
delayms(uchar ms)
{
uchar i,j;
for(i=ms;i>0;i--)
for(j=110;j>0;j--);
}
/*******************************
串口初始化函数
系统时钟晶振11.0592MHz
串口波特率 9600
*******************************/
uartinit()//
{
SCON=0x50;
TMOD=0x20;
TH1=0xfd;
TH0=0xfd;
TR1=1;
EA=1;
}
/*******************************
串口发送一个字节函数
系统时钟晶振11.0592MHz
串口波特率 9600
*******************************/
sendbyte(uchar dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
/*******************************
写命令函数
CH:数据的高八位
CL:数据的低八位
*******************************/
void write_cmd(uchar CH,uchar CL)//写命令
{
TFT_CS=0;
TFT_RS=0;
TFT_WR=0;
TFT_DATA=CH;
TFT_WR=1;
TFT_WR=0;
TFT_DATA=CL;
TFT_WR=1;
TFT_CS=1;
}
/*******************************
写数据函数
DH:数据的高高位
DL:数据的低八位
*******************************/
void write_data(uchar DH,uchar DL)
{
TFT_CS=0;
TFT_RS=1;
TFT_DATA=DH;
TFT_WR=0;
TFT_WR=1;
TFT_DATA=DL;
TFT_WR=0;
TFT_WR=1;
TFT_CS=1;
}
/*******************************
基本的读取一次数据函数
返回值:将从液晶数据脚上读取的数据 dat返回
*******************************/
uchar readdat()
{
uchar dat;
TFT_RD=0;
dat=P1;
TFT_RD=1;
return dat;
}
/*******************************
准备读取ID函数
cmd:寄存器索引号
dat:液晶寄存器设置参数
*******************************/
read_cmd_data1 (unsigned char cmd,unsigned int dat)
{
uchar m,n;
m=dat>>8;
n=dat;
write_cmd(0x00,cmd);//写入寄存器索引号
write_data(m,n);//写入数据,不知道读取ID要不要写入数据
P1=0xff;//释放P1口准备接受数据
TFT_CS=0;//准备读取数据
TFT_WR=1;
TFT_RS=1;
}
main()
{
uchar n1;
uartinit();//串口初始化
read_cmd_data1(0x00,0x0001);//
while(1)
{
n1=readdat();//
sendbyte(n1);//所以把读取到的ID用串口发送到电脑
}
这个液晶屏是37pin的,引脚排列和9325驱动模块的液晶是相同的,请问下ili9325和图像显示相关的寄存器是哪几个? |