?? 29驅(qū)動1602液晶模塊顯示英文c.c
字號:
/*程序說明: 五一電子STC編程實驗學習仿真開發(fā)板配套例子演示程序-1602液晶模塊lcd顯示
關(guān)于1602lcd的指令,請參閱本目錄下的lcd-162指令表
相關(guān)連接定義: */
#include <reg51.h>
#include <intrins.h> //包含_nop_()函數(shù)
sbit rs=P2^0; //rs為寄存器選擇,1=數(shù)據(jù)寄存器、0=指令寄存器。
sbit rw=P2^1; //rw為讀寫信號線,1=讀操作,0=寫操作。
//當rs=rw=0可以寫入指令或者顯示地址,
//當rs=0,rw=1可以讀忙信號,
//當rs=1,rw=0可以寫入數(shù)據(jù)。
sbit en=P2^2; //當en端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
sbit busy=P1^7; //忙指示
#define comdat P1 //P1為命令或數(shù)據(jù)線,請用8根的數(shù)據(jù)線將單片機的P1口和液晶模塊的d0-d7連接,其中P1.7(d7)為忙指示
unsigned char code str1[]={" www.51dz.com "}; //第一行16個字符
unsigned char code str2[]={" 2007-12-25"}; //第二行16個字符
//---判斷液晶顯示器是否忙------------
delay()
{
do
{
comdat=0xff; //判斷液晶顯示器是否忙的子程序
rs=0;
rw=1;
en=0;
_nop_();
en=1;
}
while(busy); //busy為高電平表示忙,循環(huán)等待
}
//---寫命令--------------------------
wricomm()
{
rs=0; //寫入控制命令的子程序
rw=0;
en=0;
delay(); //等待
en=1;
}
//---寫數(shù)據(jù)------------------------------
wridata()
{
rs=1;
rw=0; //準備寫入數(shù)據(jù)
en=0; //執(zhí)行顯示命令
delay(); //判斷液晶模塊是否忙
en=1;
}
//****************************************
main()
{
unsigned char i=200;
//---初始化
while(--i);
comdat=0x01; //清屏并光標復位
wricomm(); //寫入命令
comdat=0x38; //設(shè)置顯示模式:8位2行5x7點陣
wricomm();
comdat=0x0f; //顯示器開、光標關(guān)、光標禁止閃爍
wricomm();
comdat=0x06; //文字不動,光標自動右移
wricomm();
//選擇1行
comdat=0x00; //寫入顯示起始地址(第1行第2個位置)
comdat=comdat|0x80;
//按模塊要求寫入的地址最高位必需為1
wricomm(); //寫入命令
//送字符
for(i=0;i<16;i++)
{
comdat=str1[i]; //提取字符
wridata(); //送出
}
//選擇2行
comdat=0x40; //寫入顯示起始地址(第1行第1個位置)
comdat=comdat|0x80;
//按模塊要求寫入的地址最高位必需為1
wricomm(); //寫入命令
//送字符
for(i=0;i<16;i++)
{
comdat=str2[i]; //提取字符
wridata(); //送出
}
while(1); //停止到這里
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -