?? lcd.c
字號:
/*****************************************************************************
程序說明
名稱: MCS8051-III學習板演示程序(LCD演示內容)
功能: 在LCD1602上顯示內容
版本:
*****************************************************************************/
/*****************************************************************************
硬件說明
單片機: 兼容MCS-51單片機/STC89C51
晶振頻率: 12MHz
*****************************************************************************/
#include "regx52.h"
/****************************************************************************
說明: 程序預定義
*****************************************************************************/
#define LCD_DELAY 255/*LCD延時參數*/
#define LCD_DATA P0/*LCD八位數據引腳*/
#define LCD_RW P3_5/*LCD讀寫引腳*/
#define LCD_E P3_6/*LCD使能引腳*/
#define LCD_A0 P3_4/*LCD數據/指令引腳*/
/****************************************************************************
名稱: LCDWriteOrder()
說明: LCD寫指令
參數: unsigned char ucOrder 指令值
返回: 無
****************************************************************************/
void LcdWriteOrder(unsigned char ucOrder);
/****************************************************************************
名稱: LCDWriteData()
說明: LCD寫數據
參數: unsigned char ucData 數據值
返回: 無
****************************************************************************/
void LcdWriteData(unsigned char ucData);
/****************************************************************************
名稱: LCDDelay()
說明: LCD延時
參數: 無
返回: 無
****************************************************************************/
void LcdDelay();
/****************************************************************************
待顯示的文本
*****************************************************************************/
unsigned char m_ucText1[]=
{"WELLCOME"
};
unsigned char m_ucText2[]=
{"LCD TESTING"
};
/*****************************************************************************
程序開始
*****************************************************************************/
void main()
{
unsigned char a;
LcdDelay();
/*LCD參數初始化*/
LcdWriteOrder(0x01); //清屏
LcdWriteOrder(0x02); //游標歸位
LcdWriteOrder(0x06); //進入模式,關屏
LcdWriteOrder(0x0F); //關閉顯示器開顯示器、游標、閃爍
LcdWriteOrder(0x38); //8位,2行
LcdWriteOrder(0x18); //
LcdWriteOrder(0x00);/*光標定位到第一行左邊第一個字節*/
for(a=0;a<16;a++)/*寫數據*/
LcdWriteData(m_ucText1[a]);
LcdWriteOrder(0x40);/*光標定位到第二行左邊第一個字節*/
for(a=0;a<16;a++)/*寫數據*/
LcdWriteData(m_ucText2[a]);
while(1);
}
/****************************************************************************
名稱: LCDWriteOrder()
說明: LCD寫指令
參數: unsigned char ucOrder 指令值
返回: 無
****************************************************************************/
void LcdWriteOrder(unsigned char ucOrder)
{
LCD_E=1;
LCD_A0=0;
LCD_RW=0;
LCD_DATA=ucOrder;
LCD_E=0;
LcdDelay();
}
/****************************************************************************
名稱: LCDWriteData()
說明: LCD寫數據
參數: unsigned char ucData 數據值
返回: 無
****************************************************************************/
void LcdWriteData(unsigned char ucData)
{
LCD_E=1;
LCD_A0=1;
LCD_RW=0;
LCD_DATA=ucData;
LCD_E=0;
LcdDelay();
}
/****************************************************************************
名稱: LCDDelay()
說明: LCD延時
參數: 無
返回: 無
****************************************************************************/
void LcdDelay()
{
unsigned char a;
for(a=0;a<LCD_DELAY;a++);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -