?? 12864code.c
字號:
//帶中文字庫的12864LCD顯示程序
#include <reg52.H>
#include <intrins.H>
#define uchar unsigned char
#define uint unsigned int
//SCM12864-05端口定義
#define LCD_DATA P2 //數據口
sbit RS = P0^5; //并行的指令/數據選擇信號, H數據, L命令
sbit RW = P0^6; //并行讀寫選擇信號, H讀, L寫
sbit E = P0^7; //并行使能端, H有效, L無效
//sbit PSB = P3^7; //并/串接口選擇, H并,L串
//sbit RET = P3^3; //復位, L有效
uchar code datas1[] = {"廣州大學"};
uchar code datas2[] = {"物理與電子工程學院"};
uchar code datas3[] = {"電子(3)班"};
uchar code datas4[] = {"565839485@qq.com"};
//延時約2us
void delayUs()
{
_nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_(); _nop_();_nop_();
}
//延時 a * 1ms
void delayMs(uint a)
{
uint i, j;
for(i = a; i > 0; i--)
for(j = 100; j > 0; j--);
}
//檢測LCD是否處于忙狀態, 若忙返回1, 空閑返回0
bit checkBusy()
{
bit busy;
RS = 0;
RW = 1;
E = 1;
delayUs();
busy = (bit)(LCD_DATA&0x80);
E = 0;
return busy;
}
//等待LCD到空閑
void wait()
{
while(checkBusy());
}
//寫命令
void writeCmd(uchar cmd)
{
wait();
RS = 0;
RW = 0;
E = 0;
delayUs();
LCD_DATA = cmd;
delayUs();
E = 1;
delayUs();
E = 0;
}
//寫數據
void writeData(uchar dat)
{
wait();
RS = 1;
RW = 0;
E = 0;
delayUs();
LCD_DATA = dat;
delayUs();
E = 1;
delayUs();
E = 0;
}
//初始化LCD
void init()
{
// PSB = 1; //并口方式
delayMs(50);
writeCmd(0x30); //基本指令, 擴充指令為34H
delayMs(50);
writeCmd(0x0c); //顯示開, 關光標
delayMs(50);
writeCmd(0x01); //清屏
delayMs(50);
delayMs(50);
}
void setPosition(uchar x, uchar y)
{
uchar p;
switch(x%4)
{
case 0: p = 0x80; break; //第一行開始地址
case 1: p = 0x90; break; //第二行
case 2: p = 0x88; break; //第三行
case 3: p = 0x98; break; //第四行
}
p += y;
writeCmd(p);
}
void writeString(uchar * str)
{
uchar i = 0;
while(str[i] != '\0')
{
writeData(str[i++]);
}
}
/**//***************************LCD12864***************************************/
void main()
{
//先關閉數碼管, 使兩個鎖存器鎖存, 因開了數碼管, USB電壓驅動不夠, 將無法使LCD正常工作
//dula = wela = 0;
init();
setPosition(0, 0);
writeString(datas1);
setPosition(1, 0);
writeString(datas2);
setPosition(2, 0);
writeString(datas3);
setPosition(3, 0);
writeString(datas4);
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -