历史上的今天
今天是:2025年01月30日(星期四)
2018年01月30日 | MSP430控制6963c驱动液晶
2018-01-30 来源:eefocus
/******************************************************************
读液晶状态字到STA
功能:用于往液晶写数据或命令之前判断忙闲
*******************************************************************/
void read_sta(void)
{
P4DIR = 0x00; //P4数据输入
P3OUT = P3_2_DATAIO; //4245(x1)数据传送方向选择为:由液晶到430
P3OUT = P3_1_CD; //命令方式
P3OUT &= ~P3_0_RD; //read
STA = P4IN; //读回状态
P3OUT = P3_0_RD; //CANcel read
P4DIR = 0xff; //P4口置为数据输出方式
P3OUT &= ~P3_2_DATAIO; //4245(x1)数据传送方向选择为:由430到液晶
}
/*****************************************************************************
判状态位S1,S0 函数(读写指令和读写数据状态)
******************************************************************************/
void ST1( void )
{
do
{
read_sta();
}
while( (STA & 0x03) != 0x03 );
}
/**********************************************************
判状态位S2函数(数据自动读状态)
**********************************************************/
void ST2( void )
{
do
{
read_sta();
}
while( (STA & 0x04) != 0x04);
}
/***************************************************************
-判状态位S3函数(数据自动写状态)-
****************************************************************/
void ST3( void )
{
do
{
read_sta();
}
while( (STA & 0x08) != 0x08 );
}
/*****************************************************************************
写入数据字节
******************************************************************************/
void write_data(unsigned char Byte )
{
ST1();
P4OUT = Byte;
P3OUT &= ~P3_1_CD; //数据方式
P2OUT &= ~P2_7_WR ; // write
P2OUT = P2_7_WR ;
}
/*****************************************************************************
自动写入数据字节
******************************************************************************/
void autowrite_data(unsigned char Byte )
{
P4OUT = Byte;
P3OUT &= ~P3_1_CD; //数据方式
P2OUT &= ~P2_7_WR ; // write
P2OUT = P2_7_WR ;
}
/*****************************************************************************
写入命令字
******************************************************************************/
void write_cmd(unsigned char cmd )
{
ST1();
P4OUT = cmd ;
P3OUT = P3_1_CD ; //命令方式
P2OUT &= ~P2_7_WR ; // write
P2OUT = P2_7_WR ;
}
/*****************************************************************************
写只有一个参数的命令
******************************************************************************/
void write_onepara(unsigned char dat1,unsigned char command )
{
write_data( dat1 );
write_cmd( command );
}
/*****************************************************************************
写含有双参数的命令
******************************************************************************/
void write_doublepara(unsigned char dat1,unsigned char dat2,unsigned char command )
{
write_data( dat1 );
write_data( dat2 );
write_cmd( command );
}
/*****************************************************************************
清显示缓冲的函数
******************************************************************************/
void CLEAR_RAM( void )
{
int i;
write_doublepara( 0x00,0x00,0x24 ); /* 设置显示RAM 首地址 */
write_cmd( 0xb0 ); /* 设置自动写方式 */
for(i=0;i<8200;i++) /* 清8K存储器 */
{
ST3(); /* 判状态位S3 */
write_data(0x00); /* 写入数据 */
}
write_cmd( 0xb2 ); /* 设置自动写结束指令 */
}
/*****************************************************************************
对液晶屏的一些初始设置函数
******************************************************************************/
void LCDIni( void )
{
write_doublepara(0x00,0x00,0x40); /*设文本显示区域首地址*/
write_doublepara(0x28,0x00,0x41); /*设文本显示区域宽度*/
write_doublepara(0x03,0x00,0x22); /* 设置CGRAM偏置地址 */
write_doublepara(0x00,0x08,0x42); /*设图形显示区域首地址*/
write_doublepara(0x1e,0x00,0x43); /*设图形显示区域宽度*/
// write_cmd(0xa2); /*光标形状设置*/
// write_doublepara(0x08,0x08,0x21); /* 设置光标 位置*/
write_cmd(0x80); /*显示方式设置逻辑"或"合成, 内部字符发生器有效*/
write_cmd(0x98); /*显示开关设置 关文本和开图形显示*/
CLEAR_RAM();
}
上一篇:三星单片机AD转换程序
下一篇:MSP430 IIC总线程序
史海拾趣
|
此电路结构简单,取材容易,性能可靠,操作方便。工作原理:假设水箱内没有水,需要进水预热,只要将K1合上(见下图),则绿色指示灯亮,电磁阀经J1-2常闭触点得电而开阀进水,待水箱内水升至平面S1时,BG1、BG2组成的复合管得正向偏压而驱动继电 ...… 查看全部问答> |
|
fopen打开的文件,如何实现当文件达到一定大小后,重头进行覆盖写入 我的那个文件要求记录5000条记录,超过5000条时,重头开始写入,用新的记录覆盖掉旧的记录。fopen就那几种打开方式,我试了下,好像都不支持。如果以“a+“的方式打开,然后用seek去定位,然后再写入也不行,仍然会加到文件尾。各位有没有什么好的 ...… 查看全部问答> |
|
usb驱动问题!!!dispatch_level在callusbdi下不可用!!急急急!! callusbdi windows wdm设备驱动程序开发指南(chris cant) 在dispatch_level调用出现死等,但是在passive_level正常 书上也说只能在Passive_level调用,是什么原因呢,怎样才能在dispatch_level调用呢? 高手快来啊 NTSTATUS CallUSBDI(IN PDEV ...… 查看全部问答> |
|
设计了一种基于Ms P 4 3 0处理器的温控系统, 介绍了系统主要硬件, 重点介绍了温度控制系统及其算法的实现, 这里采用的是史密斯一 模糊自调整 P I D控制系统, 该系统通过对传统的史密斯预估器进行改良, 将该模糊自调整P I D控制器引入史密斯控 ...… 查看全部问答> |
|
YM12864R读函数为什么读不出正确的数据,总是0xff,调了好久都没弄好,网上也有人有同样的问题,但是好像都没有解决,急求帮助uchar LcdRdata(void){ uchar getdata; RS=1; WRD=1; P0=0xff; E=0; E=1; delay(100); getdata=P0; E=0; return getdata ...… 查看全部问答> |
|
我在早上9点半玩易电源拼图游戏,发现电容电感问题,明显是错误的,而且后来更正过来了,那么在之前得100分的朋友们,你们难道没有发现这个简单的错误吗?如果发现了,为什么还跟着错?难道就为了那100分?为了奖品机会? 作为技术人员,发现问题 ...… 查看全部问答> |
|
基于安卓/苹果的物品防盗管家,用于对随身箱包和贵重物品进行管理 利用手机作为监控终端,既简便又易用,同时如果手机被人拿走的话,通讯断开,手机和开发模块都会报警。 1. 通过蓝牙与手机进行数据互联,若发送报警信息或是“心跳同步”时,通讯没有相应,则发送方进行报警 2. 检测光线有强烈变化时,进行报警 ...… 查看全部问答> |
|
晒WEBENCH设计的过程+DC8-16V转5V/1A车载充电器的设计过程 本帖最后由 a736015 于 2014-5-29 17:14 编辑 一、设计要求:输入DC8-16V,输出5V/1A二、应用:车载手机平板电脑充电器三、设计过程根据论坛窗口或进入TI在线设计工具页面 点击后进入到登陆(注册)界面 注册TI账号后进入WEBENCH在线设计工具在 ...… 查看全部问答> |




