历史上的今天
返回首页

历史上的今天

今天是:2024年11月19日(星期二)

正在发生

2019年11月19日 | 89c52单片机仿真ILI9341液晶屏驱动程序

2019-11-19 来源:51hei

ILI9341的单片机仿真原理图如下
il9341.jpg?imageView2/2/w/550

给各位做了参考.ILI9341 8位模式,16位色

ILI9341单片机源程序如下:

//#include

#include


#include

#include "map.h"


//#define     RED          0XF800          //红色

//#define     GREEN        0X07E0          //绿色

//#define     BLUE         0X001F          //蓝色

//#define     WHITE        0XF785          //白色



#define DATA_H P2

#define DATA_L P1


sbit LCD_CS = P3^1;

sbit LCD_RS = P3^2;

sbit LCD_WR = P3^3;

sbit LCD_RD = P3^4;

sbit LCD_RESET = P3^0;


void Delay1ms()                //@12.000MHz

{

        unsigned char i, j;


        i = 12;

        j = 169;

        do

        {

                while (--j);

        } while (--i);

}


void delay_ms(unsigned int ms)

{

        while(ms--)

        {

                Delay1ms();

        }

}


void LCD_WR_DATA(unsigned char val)

{  

        LCD_RS=1;  //RS=1;

        LCD_CS=0;        //CS=0;

        DATA_L=val;                                        

        LCD_WR=0;        //WR=0;

        LCD_WR=1;        //WR=1;

        LCD_CS=1;        //CS=1;        

}


void LCD_WR_REG(unsigned char reg)                

{        

          LCD_RS=0;        //RS=0;

        LCD_CS=0;        //CS=0;        

        DATA_L=reg;        

        LCD_WR=0;        //WR=0;

        LCD_WR=1;        //WR=1;

        LCD_CS=1;        //CS=1;                

}


void LCD_Init()

{

        LCD_RESET=0;

        delay_ms(10);

        LCD_RESET=1;

        delay_ms(120);

        LCD_WR_REG(0xCF);  

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0xC1); 

        LCD_WR_DATA(0X30); 

        LCD_WR_REG(0xED);  

        LCD_WR_DATA(0x64); 

        LCD_WR_DATA(0x03); 

        LCD_WR_DATA(0X12); 

        LCD_WR_DATA(0X81); 

        LCD_WR_REG(0xE8);  

        LCD_WR_DATA(0x85); 

        LCD_WR_DATA(0x10); 

        LCD_WR_DATA(0x7A); 

        LCD_WR_REG(0xCB);  

        LCD_WR_DATA(0x39); 

        LCD_WR_DATA(0x2C); 

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x34); 

        LCD_WR_DATA(0x02); 

        LCD_WR_REG(0xF7);  

        LCD_WR_DATA(0x20); 

        LCD_WR_REG(0xEA);  

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x00); 

        LCD_WR_REG(0xC0);    //Power control //电源控制

        LCD_WR_DATA(0x1B);   //VRH[5:0] 

        LCD_WR_REG(0xC1);    //Power control 

        LCD_WR_DATA(0x01);   //SAP[2:0];BT[3:0] 

        LCD_WR_REG(0xC5);    //VCM control 

        LCD_WR_DATA(0x30);          //3F

        LCD_WR_DATA(0x30);          //3C

        LCD_WR_REG(0xC7);    //VCM control2 

        LCD_WR_DATA(0XB7); 

        LCD_WR_REG(0x36);    // Memory Access Control (存储器访问控制)

        LCD_WR_DATA(0x48); 

        LCD_WR_REG(0x3A);   //像素格式设置

        LCD_WR_DATA(0x55); 

        LCD_WR_REG(0xB1);   

        LCD_WR_DATA(0x00);   

        LCD_WR_DATA(0x1A); 

        LCD_WR_REG(0xB6);    // Display Function Control 

        LCD_WR_DATA(0x0A); 

        LCD_WR_DATA(0xA2); 

        LCD_WR_REG(0xF2);    // 3Gamma Function Disable 

        LCD_WR_DATA(0x00); 

        LCD_WR_REG(0x26);    //Gamma curve selected 

        LCD_WR_DATA(0x01); 

        LCD_WR_REG(0xE0);    //Set Gamma 

        LCD_WR_DATA(0x0F); 

        LCD_WR_DATA(0x2A); 

        LCD_WR_DATA(0x28); 

        LCD_WR_DATA(0x08); 

        LCD_WR_DATA(0x0E); 

        LCD_WR_DATA(0x08); 

        LCD_WR_DATA(0x54); 

        LCD_WR_DATA(0XA9); 

        LCD_WR_DATA(0x43); 

        LCD_WR_DATA(0x0A); 

        LCD_WR_DATA(0x0F); 

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x00);                  

        LCD_WR_REG(0XE1);    //Set Gamma 

        LCD_WR_DATA(0x00); 

        LCD_WR_DATA(0x15); 

        LCD_WR_DATA(0x17); 

        LCD_WR_DATA(0x07); 

        LCD_WR_DATA(0x11); 

        LCD_WR_DATA(0x06); 

        LCD_WR_DATA(0x2B); 

        LCD_WR_DATA(0x56); 

        LCD_WR_DATA(0x3C); 

        LCD_WR_DATA(0x05); 

        LCD_WR_DATA(0x10); 

        LCD_WR_DATA(0x0F); 

        LCD_WR_DATA(0x3F); 

        LCD_WR_DATA(0x3F); 

        LCD_WR_DATA(0x0F); 

        LCD_WR_REG(0x2B); 

        LCD_WR_DATA(0x00);

        LCD_WR_DATA(0x00);

        LCD_WR_DATA(0x01);

        LCD_WR_DATA(0x3f);

        LCD_WR_REG(0x2A); //列地址设定

        LCD_WR_DATA(0x00); //第一个参数

        LCD_WR_DATA(0x00);        //第二参数

        LCD_WR_DATA(0x00);                //第三参数

        LCD_WR_DATA(0xef);                 //第四参数

        LCD_WR_REG(0x11); //Exit Sleep

        delay_ms(120);

        LCD_WR_REG(0x29); //display on        

}


void LCD_SetArea(unsigned int stx,unsigned int sty,unsigned int endx,unsigned int endy)

{//分别四个参数来设置起使X,起使Y,结整X,结束Y

        LCD_WR_REG(0x2A);          //列地址

        LCD_WR_DATA(stx>>8);    

        LCD_WR_DATA(stx&0xff);            

        LCD_WR_DATA(endx>>8); 

        LCD_WR_DATA(endx&0xff);        


        LCD_WR_REG(0x2B);        //页地址

        LCD_WR_DATA(sty>>8); 

        LCD_WR_DATA(sty&0xff);        

        LCD_WR_DATA(endy>>8); 

        LCD_WR_DATA(endy&0xff);        

}


void LcdWirteColorData(unsigned int color)

{

//        LCD_RS=1;  //RS=1;

//        LCD_CS=0;        //CS=0;

//         DATA_H=color>>8;        

//        DATA_L=color;                                        

//        LCD_WR=0;        //WR=0;

//        LCD_WR=1;        //WR=1;

//        LCD_CS=1;        //CS=1;        

        

        LCD_RS=1;  //RS=1;

        LCD_CS=0;        //CS=0;

        DATA_L=color>>8;                                                

推荐阅读

史海拾趣

D+H Mechatronic AG公司的发展小趣事

随着公司业务的不断发展,D+H Mechatronic AG开始寻求与国际知名企业的合作。通过多次洽谈和协商,公司成功与一家德国的汽车制造巨头签订了战略合作协议。双方共同研发出了一款高度智能化的生产线,大大提高了汽车制造的效率和质量。这次国际合作不仅为D+H Mechatronic AG带来了可观的收益,也使其在国际市场上的影响力得到了显著提升。

Analogix Semiconductor公司的发展小趣事

在电子行业的激烈竞争中,D+H Mechatronic AG公司凭借其在精密机械与电子技术结合领域的深厚积累,成功研发出一款具有划时代意义的智能机械臂。这款机械臂不仅具有高精度、高速度的运动性能,还能通过智能算法实现自主学习和优化操作路径。这一技术的突破为公司在工业自动化领域赢得了极高的声誉,也为其后续的市场拓展奠定了坚实的基础。

Hi-Light Electronic Co Ltd公司的发展小趣事

随着市场竞争的加剧,D+H Mechatronic AG开始调整其市场布局策略。公司根据市场需求和产品特点,有针对性地开拓新的市场领域。同时,公司还加强了与客户的沟通和合作,深入了解客户需求并提供定制化的解决方案。这些举措使公司在激烈的市场竞争中保持了稳定的增长态势,并逐步巩固了其在电子行业中的地位。

台湾肯尼威(CANNYWELL)公司的发展小趣事

台湾肯尼威公司成立于1986年,其创始人李明(化名)是一位对电子技术充满热情的工程师。在当时的台湾,电子制造业正处于蓬勃发展的阶段。李明看到电源滤波器在电子设备中的重要性,于是决定专注于这一领域的研发和生产。他带领一支小团队,经过无数次的试验和改进,终于成功研发出CW系列单相电源滤波器,为公司的发展奠定了坚实的技术基础。

COTO TECHNOLOGY公司的发展小趣事

近年来,随着全球电子产业的快速发展,中国市场的重要性日益凸显。COTO TECHNOLOGY也看到了这一机遇,开始深耕中国市场,寻求与当地企业的合作。通过与成都迈极芯科技等公司的战略合作,COTO不仅将先进的技术和产品引入中国,还为中国半导体测试产业提供了更优质的产品和服务。这一系列的合作不仅促进了COTO在中国市场的发展,也推动了中国电子产业的进步。

这五个故事只是COTO TECHNOLOGY发展历程中的一部分,但它们充分展示了这家公司在电子行业中的成长与变迁。从初创时期的线圈绕组制造商,到后来的干簧继电器领导者,再到全球范围内的扩张与战略合作,COTO始终保持着对技术的追求和对市场的敏锐洞察。这些故事不仅反映了COTO的发展历程,也见证了整个电子行业的变革与进步。

DRS Technologies公司的发展小趣事

进入80年代,DRS开始拓展其业务范围。在1981年上市后,DRS于1984年收购了其第一家公司,迈出了其市场扩张的第一步。随后,DRS不断投入研发,致力于提高其在电子和信息技术领域的核心竞争力。特别是在C4ISR(指挥、控制、通信、计算机、情报、监视和侦察)系统领域,DRS取得了显著的成果,为其在全球市场上赢得了广泛的认可。

问答坊 | AI 解惑

教你认识单片机汇编语言写的延迟函数意义

首先我们要温习下:51单片机内有R0-R7,8个通用寄存器。          1秒=1000毫妙       1S=1000ms          1毫妙=1000微妙     1ms=1000u ...…

查看全部问答>

贡献classAB的好文章!

Compact_Low-Voltage_Power-Efficient_Operational_Amplifier_Cells_for_VLSI.…

查看全部问答>

谁知道3G 模块哪里有卖啊?

各位大吓,有知道TD或者WCDMA模块的,请顶一下哦!谢谢.…

查看全部问答>

嵌入式开发入门!!

嵌入式开发入门 从哪儿入手,我想从LINUX开始,请专家指教! 需要哪些书籍和开发板! …

查看全部问答>

有人需要CC250芯片吗?有人需要NRF2402G模块的吗?

CC2500 有几百个吧  价格暂定5元!~原装 NRF2402G模块价格9元一个!~ 有需要的朋友请联系QQ1625345502   …

查看全部问答>

征求意见-草拟的前言

由于编辑觉得前言内容过于简单,也不够吸引人。希望大家看过之后,多提出一些意见。前言——拟稿    从大二开始接触电路,到研究生毕业,硬件设计对我而言就是电路图和电路板两个阶段。感谢狄工给我这个机会进入了汽车电子的行业 ...…

查看全部问答>

气压传感器选型指南:多款气压传感器性能比较

在我给客户做技术的工作当中,经常遇到客户问到这样的问题,\"目前市场上气压传感器都各有什么优势?\"\"我们应该如何去选型?\" 本文就目前市场上的几款气压传感器性能做次比较,仅供大家选型时参考!目前市场上的气压传感器有:VTI的SCP1000,Bosc ...…

查看全部问答>

stm32---liunx

作为一个低端的arm芯片,cortex-m3内核在上次上海培训的时候有说会达到1G的主频,有没有以后出支持LIUNX芯片的计划。芯片未来前景怎样,就目前的情况来说STM32利用目前的策略,市场反应应该还是不错的。    我只是想知道 ...…

查看全部问答>

关于STM32中MAP文件的内容

大家好! 在MAP文件中,可以看到 6 926 bytes of readonly  code memory     582 bytes of readonly  data memory   1 348 bytes of readwrite data memory 的内容。 我知道“6 926 bytes of ...…

查看全部问答>

新手问题,关于sdram的,谢谢指导

1\dsp为TMS320VC5510,用两片4M,16-bit的SDRAM芯片构造32-bit的SDRAM空间. 我不解的地方是:根据datasheet,4M32-bit的SDRAM占据了所有四个EMIF空间.那么要使用这四兆32位空间,是不是把所有四个CE控制寄存器都设置成SDRAM模式,而硬件上只连接CE0? ...…

查看全部问答>