//===========================================================================//
// //
// 文件: TFTDRV430.C //
// 说明: BW-DK5438开发板TFT驱动程序 //
// 编译: IAR Embedded Workbench IDE for msp430 v4.21 //
// 版本: v1.1 //
// 编写: JASON.ZHANG //
// 版权: 北京拓普博维电子技术有限公司 //
// 日期: 2010.09.19 //
// //
//===========================================================================//
#include <math.h>
#include "TFTDRV430.H"
//#define HX8347
extern unsigned int Color ; // 前景颜色
extern unsigned int Color_BK ; // 背景颜色
extern const char LED_FONT_2436[10][108] ;
void Init_SSTSPI(void)
{
P8OUT |= LCD_NCS ;
P8DIR |= LCD_NCS ;
P3OUT |= NCS25 ;
P3DIR |= NCS25 ;
P3SEL &= 0xF0 ;
P3SEL |= 0x0E ; // // P3.1/2/3功能选择为SPI
UCB0CTL1 |= UCSWRST ; // 复位SPI状态机
UCB0CTL0 |= UCMST+UCSYNC+UCCKPL+UCMSB ; // 3-pin, 8-bit SPI master, Clock polarity high, MSB
UCB0CTL1 |= UCSSEL_2 ; // 选择SCK参考源为SMCLK
UCB0BR0 = 0x02 ; // SCK = SMCK/2
UCB0BR1 = 0 ;
UCB0CTL1 &=~UCSWRST ; // SPI状态机使能
}
void Init_LCDSPI(void)
{
P3OUT |= 0x0F ;
P3DIR |= 0x0F ;
P3SEL &= 0xF0 ;
P3SEL |= 0x08 ; // P3.3功能选择为SCK
UCB0CTL1 |= UCSWRST ; // 复位SPI状态机
UCB0CTL0 |= UCMST+UCSYNC+UCCKPL+UCMSB ; // 3-pin, 8-bit SPI master, Clock polarity high, MSB
UCB0CTL1 |= UCSSEL_2 ; // 选择SCK参考源为SMCLK
UCB0BR0 = 0x03 ; // SCK = SMCK/3
UCB0BR1 = 0 ;
UCB0CTL1 &=~UCSWRST ; // SPI状态机使能
}
/****************************************************************************
* 名 称:u16 CheckController(void)
* 功 能:返回控制器代码
* 入口参数:无
* 出口参数:控制器型号
* 说 明:调用后返回兼容型号的控制器型号
* 调用方法:code=CheckController();
****************************************************************************/
//#pragma location = "BOOTLOADER"
//#pragma optimize=none
unsigned int Read_Reg(unsigned short Reg_Addr)
{
unsigned char code[2] ;
unsigned int temp ;
BUS_OUT ;
// LCD_WriteReg(0x00, 0x0001) ;
CLR_LCD_CS ;
CLR_LCD_RS ;
LOW_BYTE_OUT(Reg_Addr) ;
HIGH_BYTE_OUT(0x00) ;
CLR_LCD_WR ;
SET_LCD_WR ;
SET_LCD_RS ;
BUS_IN ;
CLR_LCD_RD ;
_NOP();_NOP() ;
code[0] = TFT_DATA_LOW ;
code[1] = TFT_DATA_HIGH ;
SET_LCD_RD ;
temp = (unsigned int)(code[1]*256+code[0]);
return temp ;
}
/*******************************************************************************
* Function Name : LCD_WriteReg
* Description : Writes to the selected LCD register.
* Input : - LCD_Reg: address of the selected register.
* - LCD_RegValue: value to write to the selected register.
* Output : None
* Return : None
*******************************************************************************/
//#pragma location = "BOOTLOADER"
//#pragma optimize=none
void LCD_WriteReg(unsigned short LCD_Reg, unsigned int LCD_RegValue)
{
unsigned int RegValue ;
RegValue = LCD_RegValue ;
CLR_LCD_CS ;
CLR_LCD_RS ;
LOW_BYTE_OUT(LCD_Reg) ;
HIGH_BYTE_OUT(0x00) ;
BUS_OUT ;
CLR_LCD_WR ;
SET_LCD_WR ;
SET_LCD_RS ;
LOW_BYTE_OUT(RegValue) ;
HIGH_BYTE_OUT(RegValue>>8) ;
CLR_LCD_WR ;
SET_LCD_WR ;
SET_LCD_CS ;
}
//#pragma location = "BOOTLOADER"
//#pragma optimize=none
void Reset_LCD(void)
{
BUS_IN ;
SET_LCD_RST ;
SET_LCD_WR ;
SET_LCD_CS ;
SET_LCD_RS ;
SET_LCD_RD ;
__delay_cycles(10240) ;
CLR_LCD_RST ;
__delay_cycles(10240) ;
SET_LCD_RST ;
__delay_cycles(10240) ;
}
void WriteIndex(unsigned int data)
{
SET_LCD_CS;
SET_LCD_WR;
CLR_LCD_RS;
LOW_BYTE_OUT(data) ;
HIGH_BYTE_OUT(data>>8) ;
CLR_LCD_CS ;
CLR_LCD_WR ;
SET_LCD_WR ;
SET_LCD_CS;
}
//#pragma optimize=none
//#pragma location = "BOOTLOADER"
void LCD_Init(void)
{
unsigned int Driver_IC ;
__delay_cycles(10240) ;
P3OUT |= LCD_NRS + LCD_NRD + LCD_NWR
+LCD_NCS + LCD_NRST ;
P3DIR |= LCD_NRS + LCD_NRD + LCD_NWR
+LCD_NCS + LCD_NRST ;
P1OUT &=~BL_CTR ;
P1DIR |= BL_CTR ;
Reset_LCD() ;
Driver_IC = Read_Reg(0x00) ;
if(Driver_IC==0x0000)
{
LCD_WriteReg(0x0000,0x0001);
Delay(20) ;
LCD_WriteReg(0x46,0x91);
LCD_WriteReg(0x47,0x11);
LCD_WriteReg(0x48,0x00);
LCD_WriteReg(0x49,0x66);
LCD_WriteReg(0x4a,0x37);
LCD_WriteReg(0x4b,0x04);
LCD_WriteReg(0x4c,0x11);
LCD_WriteReg(0x4d,0x77);
LCD_WriteReg(0x4e,0x00);
LCD_WriteReg(0x4f,0x1F);
LCD_WriteReg(0x50,0x0F);
LCD_WriteReg(0x51,0x00); //以上这段是调整GAMMA值的,也就是调相应亮度区间的,这组是最优的不用动了
LCD_WriteReg(0x01,0x06); // IDMON=0, INVON=1, NORON=1, PTLON=0 //IC的ID
//240x320 window setting
LCD_WriteReg(0x02,0x00); // Column address start2
LCD_WriteReg(0x03,0x00); // Column address start1
LCD_WriteReg(0x04,0x00); // Column address end2
LCD_WriteReg(0x05,0xef); // Column address end1
LCD_WriteReg(0x06,0x00); // Row address start2
LCD_WriteReg(0x07,0x00); // Row address start1
LCD_WriteReg(0x08,0x01); // Row address end2
LCD_WriteReg(0x09,0x3f); // Row address end1
LCD_WriteReg(0x16,0xc8); // MY=1,MX=1,MV=0,M
没有合适的资源?快使用搜索试试~ 我知道了~
control-and-input.rar_control_edit ime
共31个文件
h:6个
r43:6个
c:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 151 浏览量
2022-09-19
20:02:30
上传
评论
收藏 273KB RAR 举报
温馨提示
msp430f5438 edit ime
资源推荐
资源详情
资源评论
收起资源包目录
control-and-input.rar (31个子文件)
编辑控件和中英文输入法
Edit+CN_EN_Input.ewd 15KB
PIN_DEF.H 9KB
Edit+CN_EN_Input.dep 7KB
INPUT_CN.H 370B
main.c 13KB
Edit.h 3KB
INPUT_CN.C 17KB
Edit+CN_EN_Input.ewp 46KB
TFTDRV430.C 132KB
Edit.c 31KB
TFTDRV430.H 9KB
PY_MB.H 63KB
settings
TextMenu.cspy.bat 3KB
Edit+CN_EN_Input.dbgdt 5KB
TextMenu.dbgdt 8KB
Edit+CN_EN_Input.cspy.bat 3KB
Edit+CN_EN_Input.dni 1KB
TextMenu.dni 1KB
Init.c 11KB
main.h 3KB
Debug
List
Exe
Edit+CN_EN_Input.d43 181KB
TextMenu.d43 110KB
Obj
Edit.r43 202KB
Menu.r43 31KB
Menu.pbi 712B
Init.r43 27KB
main.r43 74KB
TextMenu.pbd 359B
Edit+CN_EN_Input.pbd 507B
INPUT_CN.r43 153KB
TFTDRV430.r43 427KB
共 31 条
- 1
资源评论
局外狗
- 粉丝: 66
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功