历史上的今天
今天是: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;i } 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); //清屏 } }
上一篇:基于MSP430智能小车的设计
史海拾趣
|
D:\WINCE600\PUBLIC\DIRECTX\SDK\SAMPLES\DSHOW\FILTERS\BALL 范例如何编译,如何使用? D:\\WINCE600\\PUBLIC\\DIRECTX\\SDK\\SAMPLES\\DSHOW\\FILTERS\\BALL目录下的范例如何编译,如何使用,编译出来的文件放在什么地方,什么形式(exe, lib) ?… 查看全部问答> |
|
大家好! 请问: wince stand Shell桌面界面里中间较大的黑体字\" windows CE \"的字体大小该如何修改?? 我的是240*320TFT,现在只能显示windows,头和尾都没了,郁闷!! 谢谢!!… 查看全部问答> |
|
我用IoCreateDevice来创建一个FILE_DEVICE_CD_ROM类型的设备,在2K下可以在我的电脑中 找到,但是当我在XP上的时候,却发现没有了反应.查看MSDN上面有这样一句话: Device objects for disks, tapes, CD-ROMs, and RAM disks are given a Volume Para ...… 查看全部问答> |
|
在移植之前先了解Bootloader 的一些通用概念,对理解它的代码会有所帮助。 嵌入式Linux 系统从软件的角度通常可以分为以下4 个层次。 (1)引导加载程序,包括固化在固件(firmware)中的boot 代 ...… 查看全部问答> |
|
最近看到一篇科技网站采访到微软IE程序经理John Hrvatin的新闻。John是IE开发部门的高层人物,从他的口中得到了一些关于IE 9的最新消息:提问1:IE 9测试版的累积下载量已经超过1300万次,这是微软历史上最大的一次测试。从这次测试中,开发小组获 ...… 查看全部问答> |
|
对它的高速度PWM感兴趣,如果不写复杂的算法和人机界面,单纯用汇编语言可行吗?哪些开发工具最简单易用? 我的意思是既然STM32那么便宜,功能强大速度快,干脆大大小小的项目都用这个,省得好多种单片机感觉很累。… 查看全部问答> |




