<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 430驅(qū)動的12864圖形點陣LCD

          430驅(qū)動的12864圖形點陣LCD

          作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
          #include "msp430x16x.h"
          #include "INCLUDES.H"
          #include "CONSTANTS.H"
          #include "FUNCTIONS.H"
          #include "GLOBALS.H"

          /************************************************
          函 數(shù) 名: CheckLcdBusy()
          功 能:檢查是否LCD忙碌
          說 明:
          調(diào) 用:
          全局變量
          入口參數(shù):無
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          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;
          }
          /************************************************
          函 數(shù) 名: LcdWriteCommand()
          功 能:寫入控制命令到LCD
          說 明:
          調(diào) 用:
          全局變量:
          入口參數(shù):command: LCD控制指令
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          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
          }
          /************************************************
          函 數(shù) 名: LcdWriteData()
          功 能:寫入顯示數(shù)據(jù)到LCD
          說 明:
          調(diào) 用:
          全局變量:
          入口參數(shù):data: 顯示數(shù)據(jù)
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          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
          }
          /************************************************
          函 數(shù) 名: ClearLCD()
          功 能:清除LCD文本屏幕
          說 明:
          調(diào) 用:
          全局變量:
          入口參數(shù):無
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          void ClearLcd( void ){
          LcdWriteCommand( 0x01 );
          }
          /************************************************
          函 數(shù) 名: LcdInit()
          功 能:初始化LCD
          說 明:
          調(diào) 用:
          全局變量:
          入口參數(shù):無
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          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 );
          }
          /************************************************
          函 數(shù) 名: DispString()
          功 能:顯示字符串
          說 明:
          調(diào) 用:
          全局變量:
          入口參數(shù):X: 行(0-3)
          Y: 列(0-7)
          speed: 顯示速度(毫秒)
          *msg: 字符數(shù)據(jù)
          出口參數(shù):無
          返 回 值:無
          ************************************************/
          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 );
          }
          }


          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();