新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機控制LCD1602顯示字符(測試通過)

單片機控制LCD1602顯示字符(測試通過)

作者: 時間:2016-11-28 來源:網絡 收藏
本次測試的是常用LCD1602顯示屏,操作流程很簡單,但有些小問題要注意,如該LCD處理速度有些慢,單片機在發(fā)送控制指令時需要適當延時,否則可能操作失敗。

一、硬件簡介

本文引用地址:http://butianyuan.cn/article/201611/322667.htm

1>引腳介紹

具體引腳如下:

單片機需要操作的引腳有:RS、RW、E及DB0~7

2>指令介紹

在這里,僅僅介紹下什么是CGRAM、什么是DDRAM?

CGRAM:是用戶自定義字符存放存儲器,可以自己在指定地址定義字符

DDRAM:是對應屏幕位置的存儲器,設定了該地址,就確定了從屏幕什么位置開始顯示字符

二、軟件部分

#include
#include
#define DATA P0
sbit RS=P2^6;
sbit RW=P2^5;
sbit EN=P2^7;
unsigned char zifu[]={"Hello,World!0"};
unsigned char wangzhi[]={"http://shop108408772.taobao.com/"};
void delayms(unsigned char m) //適當延時
{unsigned char i;
while(m--)
{
for(i=0;i<=250;i++)
{_nop_();
}
}
}
void WRITE_BYTE(unsigned char canshu) //寫1個字節(jié)
{
RW=0;
_nop_();
_nop_();
EN=1;
_nop_();
DATA=canshu;
EN=0;
_nop_();
_nop_();
}


void main()
{
unsigned char *point;
RS=0;
WRITE_BYTE(1);//清屏
delayms(10);//約延時23ms
WRITE_BYTE(2);//光標歸位
delayms(10);
WRITE_BYTE(6);// AC自動增1,屏幕不動
delayms(10);
WRITE_BYTE(0x0F);//光標顯示閃爍
delayms(10);
WRITE_BYTE(0x14);//光標右移
delayms(10);
WRITE_BYTE(0x38);//兩行顯示,5X7字符
delayms(10);
WRITE_BYTE(0x80);//設定DDRAM地址
delayms(10);
_nop_();
point=wangzhi;
while(*point!=