VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 6277|回复: 2

[转帖] [开源]430驱动的12864图形点阵LCD

[复制链接]
 楼主| 发表于 2008-12-31 22:42:04 | 显示全部楼层 |阅读模式
#include "msp430x16x.h"
#include "INCLUDES.H"
#include "CONSTANTS.H"
#include "FUNCTIONS.H"
#include "GLOBALS.H"

/************************************************
函 数 名: CheckLcdBusy()
功    能:检查是否LCD忙碌
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
void CheckLcdBusy(void){
LCD_DATA_DIR = 0x00;
LCD_DATA_OUT = 0xFF;
LCD_CON_OUT &= ~LCD_E;        //E=0
LCD_CON_OUT |= LCD_RW;        //RW=1
LCD_CON_OUT &= ~LCD_RS;       //RS=0
while(LCD_DATA_IN & LCD_BF)
  {
  LCD_CON_OUT |= LCD_E;         //E=1
  Delay_ms( 1 );
  LCD_CON_OUT &= ~LCD_E;        //E=0
  }
LCD_DATA_DIR = 0xFF;
}
/************************************************
函 数 名: LcdWriteCommand()
功    能:写入控制命令到LCD
说    明:
调    用:
全局变量:
入口参数:command: LCD控制指令
出口参数:无
返 回 值:无
************************************************/
void LcdWriteCommand(uchar command){
CheckLcdBusy();
LCD_CON_OUT &= ~LCD_E;      //E=0
LCD_CON_OUT &= ~LCD_RW;     //RW=0
LCD_CON_OUT &= ~LCD_RS;     //RS=0
LCD_CON_OUT |= LCD_E;       //E=1
LCD_DATA_OUT = command;
LCD_CON_OUT &= ~LCD_E;      //E=0
}
/************************************************
函 数 名: LcdWriteData()
功    能:写入显示数据到LCD
说    明:
调    用:
全局变量:
入口参数:data: 显示数据
出口参数:无
返 回 值:无
************************************************/
void LcdWriteData(uchar data){
CheckLcdBusy();
LCD_CON_OUT &= ~LCD_E;      //E=0
LCD_CON_OUT &= ~LCD_RW;     //RW=0
LCD_CON_OUT |= LCD_RS;      //RS=1
LCD_CON_OUT |= LCD_E;       //E=1
LCD_DATA_OUT = data;
LCD_CON_OUT &= ~LCD_E;      //E=0
}
/************************************************
函 数 名: ClearLCD()
功    能:清除LCD文本屏幕
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
void ClearLcd( void ){
LcdWriteCommand( 0x01 );
}
/************************************************
函 数 名: LcdInit()
功    能:初始化LCD
说    明:
调    用:
全局变量:
入口参数:无
出口参数:无
返 回 值:无
************************************************/
void LcdInit(void){
LCD_RST0;                         //RST=0
Delay_ms( 5 );
LCD_PSB;                          //PSB=1  
LCD_RST1;                         //RST=1

LcdWriteCommand( 0x30 );          //基本指令操作
Delay_ms( 5 );
LcdWriteCommand( 0x06 );
Delay_ms( 5 );
ClearLcd();
Delay_ms( 5 );
LcdWriteCommand( 0x0C );          //开显示,关光标,不闪烁
Delay_ms( 5 );
LcdWriteCommand( 0x02 );                                 
}
/************************************************
函 数 名: DispString()
功    能:显示字符串
说    明:
调    用:
全局变量:
入口参数:X: 行(0-3)
          Y: 列(0-7)
          speed: 显示速度(毫秒)
          *msg: 字符数据
出口参数:无
返 回 值:无
************************************************/
void DispString(uchar X,uchar Y,uchar speed,uchar *msg) {
if(X == 0)
  {
  X = 0x80;
  }
else if(X == 1)
  {
  X = 0x90;
  }
else if(X == 2)
  {
  X = 0x88;
  }
else if(X == 3)
  {
  X = 0x98;
  }
Y += X;
LcdWriteCommand( Y );
Delay_ms( 5 );
while(*msg)
  {
  LcdWriteData( *msg++ );
  Delay_ms( speed );
  }
}

[ 本帖最后由 DreamonII 于 2009-1-1 00:39 编辑 ]

评分

参与人数 1威望 +8 金钱 +10 人气 +3 收起 理由
DreamonII + 8 + 10 + 3 又缓出点分,强!顶!

查看全部评分

发表于 2009-1-1 00:32:20 | 显示全部楼层
沙发!
强贴留名!
强烈支持严重加分收藏学习顶!!
回复 支持 反对

使用道具 举报

发表于 2009-4-12 17:09:18 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-1-20 20:16

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表