历史上的今天
返回首页

历史上的今天

今天是:2025年02月22日(星期六)

2021年02月22日 | 使用MSP430驱动HX8340 TFT液晶屏

2021-02-22 来源:eefocus

#include

#define uint unsigned int

#define uchar unsigned char

#define LCD_RD_SET {P2OUT |= BIT0;}

#define LCD_RD_CLR {P2OUT &= ~BIT0;}

#define LCD_WR_SET {P2OUT |= BIT1;}

#define LCD_WR_CLR {P2OUT &= ~BIT1;}

#define LCD_RS_SET {P2OUT |= BIT2;}

#define LCD_RS_CLR {P2OUT &= ~BIT2;}

#define LCD_CS_SET {P2OUT |= BIT3;}

#define LCD_CS_CLR {P2OUT &= ~BIT3;}

#define LCD_RESET_SET {P2OUT |= BIT5;}

#define LCD_RESET_CLR {P2OUT &= ~BIT5;}

#defineLCD_DataPortH P1OUT //高8位数据口

/*

程序默认IO连接方式:

DB0-DB7 P1OUT

RD P2OUT.0

WR P2OUT.1

RS P2OUT.2

CS P2OUT.3

RESET P2OUT.5

*/

void delayms(uint count)// /* X1ms */

{

uint i,j;

for(i=0;ifor(j=0;j<100;j++);

}

void Lcd_Write_Com( uintDH) //命令

{

LCD_RS_CLR

LCD_CS_CLR

LCD_DataPortH=DH>>8;

LCD_WR_CLR

LCD_WR_SET

LCD_DataPortH=DH;

LCD_WR_CLR

LCD_WR_SET

LCD_CS_SET

}

void lcd_write_color(uchar hh,uchar ll) //发送颜色数据为提高速度高8位低8位分别传递

{

LCD_RS_SET

LCD_CS_CLR

LCD_DataPortH=hh;

LCD_WR_CLR

LCD_WR_SET

LCD_DataPortH=ll;

LCD_WR_CLR

LCD_WR_SET

LCD_CS_SET

}

void Lcd_Write_Data(uint DH) //数据

{

LCD_RS_SET

LCD_CS_CLR

LCD_DataPortH=DH>>8;

LCD_WR_CLR

LCD_WR_SET

LCD_DataPortH=DH;

LCD_WR_CLR

LCD_WR_SET

LCD_CS_SET

}

void Lcd_Write_Com_Data( uint com1,uint dat1) //命令数据一起

{

Lcd_Write_Com(com1);

Lcd_Write_Data(dat1);

}

void Address_set(uint x1,uint y1,uint x2,uint y2)

{

Lcd_Write_Com_Data(0x0002,0x0000);

Lcd_Write_Com_Data(0x0003,x1);

Lcd_Write_Com_Data(0x0004,0x0000);

Lcd_Write_Com_Data(0x0005,x2);

Lcd_Write_Com_Data(0x0006,0x0000);

Lcd_Write_Com_Data(0x0007,y1);

Lcd_Write_Com_Data(0x0008,0x0000);

Lcd_Write_Com_Data(0x0009,y2);

Lcd_Write_Com (0x22);//LCD_WriteCMD(GRAMWR);

}

void TFT_init(void)

{

LCD_RESET_SET

delayms(5);

LCD_RESET_CLR

delayms(10);

LCD_RESET_SET

LCD_CS_SET

LCD_RD_SET

LCD_WR_SET

delayms(20);

Lcd_Write_Com_Data(0x0026,0x0084); //PT=10,GON=0, DTE=0, D=0100

delayms(40);

Lcd_Write_Com_Data(0x0026,0x00B8); //PT=10,GON=1, DTE=1, D=1000

delayms(40);

Lcd_Write_Com_Data(0x0026,0x00BC); //PT=10,GON=1, DTE=1, D=1100

delayms(20); //新增加的延时080421

// Lcd_Write_Com_Data(0x0001,0x0000); // PTL='1' Enter Partail mode

//Driving ability Setting

Lcd_Write_Com_Data(0x0060,0x0000); //PTBA[15:8]

Lcd_Write_Com_Data(0x0061,0x0006); //PTBA[7:0]

Lcd_Write_Com_Data(0x0062,0x0000); //STBA[15:8]

Lcd_Write_Com_Data(0x0063,0x00C8); //STBA[7:0]

delayms(20); //新增加的延时 080421

//Gamma Setting

Lcd_Write_Com_Data(0x0073,0x0070); //

Lcd_Write_Com_Data(0x0040,0x0000); //

Lcd_Write_Com_Data(0x0041,0x0040); //

Lcd_Write_Com_Data(0x0042,0x0045); //

Lcd_Write_Com_Data(0x0043,0x0001); //

Lcd_Write_Com_Data(0x0044,0x0060); //

Lcd_Write_Com_Data(0x0045,0x0005); //

Lcd_Write_Com_Data(0x0046,0x000C); //

Lcd_Write_Com_Data(0x0047,0x00D1); //

Lcd_Write_Com_Data(0x0048,0x0005); //

Lcd_Write_Com_Data(0x0050,0x0075); //

Lcd_Write_Com_Data(0x0051,0x0001); //

Lcd_Write_Com_Data(0x0052,0x0067); //

Lcd_Write_Com_Data(0x0053,0x0014); //

Lcd_Write_Com_Data(0x0054,0x00F2); //

Lcd_Write_Com_Data(0x0055,0x0007); //

Lcd_Write_Com_Data(0x0056,0x0003); //

Lcd_Write_Com_Data(0x0057,0x0049); //

delayms(20); //新增加的延时 080421

//Power Setting

Lcd_Write_Com_Data(0x001F,0x0003); //VRH=4.65V VREG1(GAMMA) 00~1E080421

Lcd_Write_Com_Data(0x0020,0x0000); //BT (VGH~15V,VGL~-12V,DDVDH~5V)

Lcd_Write_Com_Data(0x0024,0x0024); //VCOMH(VCOM High voltage3.2V) 0024/12 080421 11~40

Lcd_Write_Com_Data(0x0025,0x0034); //VCOML(VCOM Low voltage -1.2V) 0034/4A 080421 29~3F

//****VCOM offset**///

Lcd_Write_Com_Data(0x0023,0x002F); //VMF(no offset)

delayms(20); //新增加的延时080421 10~39

//##################################################################

// Power Supply Setting

Lcd_Write_Com_Data(0x0018,0x0044); //I/P_RADJ,N/P_RADJ Noraml mode 60Hz

Lcd_Write_Com_Data(0x0021,0x0001); //OSC_EN='1' start osc

Lcd_Write_Com_Data(0x0001,0x0000); //SLP='0' out sleep

Lcd_Write_Com_Data(0x001C,0x0003); //AP=011

Lcd_Write_Com_Data(0x0019,0x0006); // VOMG=1,PON=1, DK=0,

delayms(20); //新增加的延时080421

//##################################################################

// Display ON Setting

Lcd_Write_Com_Data(0x0026,0x0084); //PT=10,GON=0, DTE=0, D=0100

delayms(40);

Lcd_Write_Com_Data(0x0026,0x00B8); //PT=10,GON=1, DTE=1, D=1000

delayms(40);

Lcd_Write_Com_Data(0x0026,0x00BC); //PT=10,GON=1, DTE=1, D=1100

delayms(20); //新增加的延时080421

//SET GRAM AREA

Lcd_Write_Com_Data(0x0002,0x0000);

Lcd_Write_Com_Data(0x0003,0x0000);

Lcd_Write_Com_Data(0x0004,0x0000);

Lcd_Write_Com_Data(0x0005,0x00AF);

Lcd_Write_Com_Data(0x0006,0x0000);

Lcd_Write_Com_Data(0x0007,0x0000);

Lcd_Write_Com_Data(0x0008,0x0000);

Lcd_Write_Com_Data(0x0009,0x00DB);

delayms(20); //新增加的延时080421

Lcd_Write_Com_Data(0x0016,0x0008);//MV MX MY ML SET0028横屏显示(此时Lcd_Write_Com_Data(0x0005,0x00DB);Lcd_Write_Com_Data(0x0009,0x00AF);)

Lcd_Write_Com_Data(0x0017,0x0005);//COLMOD Control Register (R17h)

Lcd_Write_Com (0x0021);//LCD_WriteCMD(GRAMWR)

Lcd_Write_Com(0x0022);

}

void Pant(uint color)

{

uint i,j;

Address_set(0,0,175,219);

for(i=0;i<220;i++)

{

for (j=0;j<176;j++)

{

Lcd_Write_Data(color);

}

}

}

void main()

{

WDTCTL=WDTPW+WDTHOLD;//关看门狗

BCSCTL1 = CALBC1_8MHZ; // Set DCO

DCOCTL = CALDCO_8MHZ;

// BCSCTL2=SELM_3;//选择时钟源为MCLK

P1SEL&=0x00;//P1为I/O模式

P1DIR|=0xff;//选择P1为输出端

P2DIR|=0xff;//P2为输出端

P1OUT = 0x00;

P2OUT = 0x00;

TFT_init(); //tft初始化

while(1)

{

Pant(0xf800); //红色

Pant(0X07E0); //绿色

Pant(0x001f); //蓝色

Pant(0xffff); //清屏

}

}


推荐阅读

史海拾趣

Dolphin Interconnect Solutions Asa公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Dolphin Interconnect Solutions ASA面临着前所未有的挑战。为了应对这些挑战,公司积极调整战略方向,加大在人工智能、物联网等新兴领域的投入。同时,Dolphin还加强了与产业链上下游企业的合作,共同推动产业链的转型升级。这些努力使得Dolphin在激烈的市场竞争中保持了稳健的发展态势。

雅特力(Artery)公司的发展小趣事

随着公司实力的不断增强,雅特力开始将目光投向全球市场。公司积极参与国际电子展会和论坛,与全球各地的客户和合作伙伴建立了广泛的联系。同时,雅特力还通过设立海外分支机构、开展跨国合作等方式,进一步拓展其全球市场。这些举措不仅提升了雅特力的品牌知名度和影响力,也为公司的长远发展奠定了坚实的基础。

Hpc Technology Inc公司的发展小趣事

在发展过程中,雅特力积极寻求与其他企业的战略合作,以实现共赢发展。通过与上下游企业建立紧密的合作关系,雅特力不仅确保了供应链的稳定性和高效性,还获得了更多的技术支持和市场资源。同时,雅特力还注重与同行业企业的交流与合作,共同推动电子行业的进步与发展。这些战略合作不仅增强了雅特力的综合实力和市场竞争力,也为整个电子行业的繁荣做出了积极贡献。

综上所述,雅特力公司通过技术创新、全球市场布局、企业社会责任、人才培养和战略合作等多个方面的努力,实现了从初创企业到行业领军者的华丽转身。这些故事不仅展现了雅特力的发展历程和成就,也揭示了其在电子行业中的重要地位和影响力。

Collins Electronics Corp公司的发展小趣事

随着全球环保意识的提高,Collins Electronics Corp开始关注其生产活动对环境的影响。他们引入了环保材料和生产工艺,减少了废弃物和有害物质的排放。同时,公司还开展了一系列环保宣传活动,提高员工和客户的环保意识。这些举措不仅提升了公司的社会责任形象,也为其赢得了更多消费者的青睐。公司还研发了节能型电子产品,为推动行业的绿色发展做出了贡献。

Cystech公司的发展小趣事

C-TECH Co., Ltd自1997年成立以来,始终将技术创新作为公司发展的核心驱动力。在2008年,公司敏锐地捕捉到了5G通信技术的潜在商机,开始投入大量资源进行研发。经过数年的不懈努力,终于在2018年成功开发出了5G(3.5GHz)频段中频、射频SAW(声表面波)滤波器,这一技术突破为公司在5G通信市场赢得了先机。通过不断的技术创新,C-TECH Co., Ltd逐步确立了在电子行业中的领先地位。

赛微(Cellwise)公司的发展小趣事

赛微公司自创立之初,就专注于模拟芯片的研发和销售。公司汇聚了一批资深的模拟集成电路设计专家和电池电化学专家,致力于在电池管理芯片和电源管理芯片领域实现技术突破。通过不断的技术创新和研发投入,赛微成功推出了一系列高性能、高可靠性的电池安全芯片、电池计量芯片和充电管理芯片等产品,赢得了市场的广泛认可。

问答坊 | AI 解惑

D:\WINCE600\PUBLIC\DIRECTX\SDK\SAMPLES\DSHOW\FILTERS\BALL 范例如何编译,如何使用?

D:\\WINCE600\\PUBLIC\\DIRECTX\\SDK\\SAMPLES\\DSHOW\\FILTERS\\BALL目录下的范例如何编译,如何使用,编译出来的文件放在什么地方,什么形式(exe, lib) ?…

查看全部问答>

求sim300网络测试软件

跪求sim300服务器端的测试软件!!!!!! 可以接受sim300的连接请求,接收gprs发送过来的数据。。。…

查看全部问答>

wince 桌面字体修改

大家好! 请问: wince stand Shell桌面界面里中间较大的黑体字\" windows CE \"的字体大小该如何修改?? 我的是240*320TFT,现在只能显示windows,头和尾都没了,郁闷!! 谢谢!!…

查看全部问答>

求红外遥控资料

我的目的: 想知道常用红外遥控器(电视、空调、手机、特别是那种万能遥控器)的,原理(最好有所用芯片型号、电路图资料); 及编码方法(编码应该是通用的吧,我的遥控器控制另一台空调只要设置下型号码就行); 用单片机加红外接收器识别这些 ...…

查看全部问答>

关于IoCreateDevice的问题

我用IoCreateDevice来创建一个FILE_DEVICE_CD_ROM类型的设备,在2K下可以在我的电脑中 找到,但是当我在XP上的时候,却发现没有了反应.查看MSDN上面有这样一句话: Device objects for disks, tapes, CD-ROMs, and RAM disks are given a Volume Para ...…

查看全部问答>

移植uClibc库

现在2.4.27的内核和RAMDISK可以正常运行在AT91RM9200中,我交叉编译了一个简单测试程序 放到RAMDISK中,但是执行时却提示: Not Found ! eg: ash> ./bin/Test ash> ./bin/Test : Not Found 路径是没问题的,属性也具有可执行.原因可能是我动态 ...…

查看全部问答>

Bootloader 的结构

    在移植之前先了解Bootloader 的一些通用概念,对理解它的代码会有所帮助。    嵌入式Linux 系统从软件的角度通常可以分为以下4 个层次。   (1)引导加载程序,包括固化在固件(firmware)中的boot 代 ...…

查看全部问答>

DIY FPGA学习板 新鲜出炉

拖了很久了,呵呵,是在不要意思   先睹为快,上图     来个3D的 …

查看全部问答>

【转】IE9未来如何?微软IE高管提前爆料

最近看到一篇科技网站采访到微软IE程序经理John Hrvatin的新闻。John是IE开发部门的高层人物,从他的口中得到了一些关于IE 9的最新消息:提问1:IE 9测试版的累积下载量已经超过1300万次,这是微软历史上最大的一次测试。从这次测试中,开发小组获 ...…

查看全部问答>

只想用定时计数PWM功能的时候,用汇编可行吗?

对它的高速度PWM感兴趣,如果不写复杂的算法和人机界面,单纯用汇编语言可行吗?哪些开发工具最简单易用?  我的意思是既然STM32那么便宜,功能强大速度快,干脆大大小小的项目都用这个,省得好多种单片机感觉很累。…

查看全部问答>