久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

新唐M051驅動LCD1602液晶屏程序

作者:佚名   來源:Keil4   點擊數:  更新時間:2014年09月01日   【字體:

共享一個 新唐M051驅動LCd1602液晶屏顯示的程序:

 
#include "LCD1602.h"
/***************************************************
 *          大量宏定義,便于代碼移植和閱讀
 ***************************************************/
#define LCD1602_LINE1        0
#define LCD1602_LINE2        1
#define LCD1602_LINE1_HEAD   0x80
#define LCD1602_LINE2_HEAD   0xC0
#define LCD1602_DATA_MODE    0x38
#define LCD1602_OPEN_SCREEN  0x0C
#define LCD1602_DISP_ADDRESS 0x80
#define LCD1602_RS_PIN   0
#define LCD1602_RW_PIN   1
#define LCD1602_EN_PIN   2
#define LCD1602_RS(x)      {if((x))P0_DOUT|=  1UL<<LCD1602_RS_PIN;else   P0_DOUT&=~(1UL<<LCD1602_RS_PIN);}//RS引腳控制
#define LCD1602_RW(x)      {if((x))P0_DOUT|=  1UL<<LCD1602_RW_PIN;else   P0_DOUT&=~(1UL<<LCD1602_RW_PIN);}//RW引腳控制
#define LCD1602_EN(x)      {if((x))P0_DOUT|=  1UL<<LCD1602_EN_PIN;else   P0_DOUT&=~(1UL<<LCD1602_EN_PIN);}//EN引腳控制
#define LCD1602_PORT(x)     LS164Send((x))                       //發送數據
/********************************************
*函數名稱:LCD1602WriteByte
*輸    入:ucByte 要寫入的字節
*輸    出:無
*說    明:LCD1602 寫字節
********************************************/
VOID LCD1602WriteByte(UINT8 ucByte)
{
     LCD1602_PORT(ucByte);
     LCD1602_RS(HIGH);
     LCD1602_RW(LOW);
     LCD1602_EN(LOW);
     Delayus(5000);
     LCD1602_EN(HIGH);
}
/********************************************
*函數名稱:LCD1602WriteCommand
*輸    入:ucCmd 要寫入的命令
*輸    出:無
*說    明:LCD1602 寫命令
********************************************/
VOID LCD1602WriteCommand(UINT8 ucCmd)
{
     LCD1602_PORT(ucCmd);
     LCD1602_RS(LOW);
     LCD1602_RW(LOW);
     LCD1602_EN(LOW);
     Delayus(5000);
     LCD1602_EN(HIGH);
}
/********************************************
*函數名稱:LCD1602SetXY
*輸    入:x 橫坐標 y 縱坐標
*輸    出:無
*說    明:LCD1602 設置坐標
********************************************/
VOID LCD1602SetXY(UINT8 x,UINT8 y)
{
  UINT8 address;
     if(y == LCD1602_LINE1)
     {
        address=LCD1602_LINE1_HEAD+x;
     }
     else
     {
        address=LCD1602_LINE2_HEAD+x;
     }
  LCD1602WriteCommand(address);
}
/********************************************
*函數名稱:LCD1602PrintfString
*輸    入:x 橫坐標 y 縱坐標 s字符串
*輸    出:無
*說    明:LCD1602 打印字符串
********************************************/
VOID LCD1602PrintfString(UINT8 x,
                         UINT8 y,
                         UINT8 *s)
{
  LCD1602SetXY(x,y);       //設置顯示坐標
 
     while(s && *s)
     {
        LCD1602WriteByte(*s);     //顯示逐個字符
        s++;
       
     }
}
/********************************************
*函數名稱:LCD1602ClearScreen
*輸    入:無
*輸    出:無
*說    明:LCD1602 清屏
********************************************/
VOID LCD1602ClearScreen(VOID)
{
  LCD1602WriteCommand(0x01);
     Delayus(5000);
}
/********************************************
*函數名稱:LCD1602Init
*輸    入:無
*輸    出:無
*說    明:LCD1602 初始化
********************************************/
VOID LCD1602Init(VOID)
{
     P0_PMD &= ~(3UL<<(LCD1602_RS_PIN<<1));
     P0_PMD &= ~(3UL<<(LCD1602_RW_PIN <<1));
     P0_PMD &= ~(3UL<<(LCD1602_EN_PIN <<1));
  P0_PMD |= 1UL<<(LCD1602_RS_PIN<<1);
  P0_PMD |= 1UL<<(LCD1602_RW_PIN <<1);
  P0_PMD |= 1UL<<(LCD1602_EN_PIN <<1);
  LCD1602ClearScreen();
     LCD1602WriteCommand(LCD1602_DATA_MODE);   //顯示模式設置,設置16x2顯示,5x7點陣,
                                               //8位數據接口
     LCD1602WriteCommand(LCD1602_OPEN_SCREEN); //開顯示
     LCD1602WriteCommand(LCD1602_DISP_ADDRESS);//起始顯示地址   
     LCD1602ClearScreen();
}
/****************************************
*函數名稱:main
*輸    入:無
*輸    出:無
*功    能:函數主體
******************************************/
INT32 main(VOID)
{
//     Un_Lock_Reg();        //ISP下載時保護FLASH存儲器
 PROTECT_REG
 (
   PWRCON |= XTL12M_EN;      //默認時鐘源為外部晶振
   while((CLKSTATUS & XTL12M_STB) == 0);   //等待12MHz時鐘穩定  
   CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M; //設置外部晶振為系統時鐘
   LS164Init();           //74LS164初始化
   LCD1602Init();           //LCD1602初始化
  )
     LCD1602PrintfString(0,LCD1602_LINE1,"Hello World!");  //打印第一行
  LCD1602PrintfString(0,LCD1602_LINE2,"I Love You!");  //打印第二行
 
  while(1);
}
 
關閉窗口
主站蜘蛛池模板: av影片在线 | 欧美一区二区在线视频 | 日本一二三区电影 | 国产精品久久久久一区二区三区 | a中文在线视频 | 久久久久亚洲精品中文字幕 | 不卡一区| 最新日韩在线视频 | 成人免费在线 | 久久99精品国产麻豆婷婷 | 日韩综合 | 九九伊人sl水蜜桃色推荐 | 欧美天堂在线观看 | 国产一区二区不卡 | 国产欧美日韩精品一区二区三区 | 国产精品久久久久久二区 | 国产成人精品一区二区三区 | 免费观看的av毛片的网站 | 欧洲亚洲精品久久久久 | 日韩欧美一区在线 | 国外成人在线视频网站 | 国精日本亚洲欧州国产中文久久 | 国产露脸对白88av | 亚洲一区二区在线播放 | 国产精品69毛片高清亚洲 | 天天操天天操 | 欧美久久国产精品 | 国产综合网址 | 亚洲欧美日韩在线不卡 | 狠狠撸在线视频 | 欧美精品1区 | 欧美三级电影在线播放 | 密色视频 | 自拍偷拍中文字幕 | 国产精品永久 | 亚洲综合视频 | 亚洲毛片 | 欧美日韩三级在线观看 | 99久久99热这里只有精品 | www.欧美| 三级黄视频在线观看 |