找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2714|回復(fù): 0
收起左側(cè)

51單片機(jī)入門之六:1602液晶顯示

[復(fù)制鏈接]
ID:117358 發(fā)表于 2016-4-30 05:15 | 顯示全部樓層 |閱讀模式
本文旨在介紹單片機(jī)入門的基礎(chǔ)知識,為初接觸或即將接觸單片的新手提供一個(gè)入門指導(dǎo)。本文章會陸續(xù)推出,隔幾天一個(gè)章節(jié)。希望對廣大即將接觸單片機(jī)的人有所幫助,如果有錯(cuò)誤歡迎回帖指出與本人交流或加入QQ143586739.
本部分主要介紹1602液晶顯示,顯示內(nèi)容為“Hello,Welcome to my site,my friends.”。
原理圖如下:


程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS=P3^0; //數(shù)據(jù)/命令選擇端(H/L)
sbit EN=P3^2; //使能端
sbit RW=P3^1; //讀/寫選擇端(H/L),本文章只寫,所以該端口供低電平
sbit wela=P3^3;//鎖存器位選信號
uchar table1[]="Hello,Welcome to my ";//字符表1
uchar table2[]="site,my friends.";//字符表2
void delay(uint x) //延時(shí)函數(shù)
{
uint a,b;
for(a=x;a>0;a--)
   for(b=10;b>0;b--);
}
void delay1(uint x) //延時(shí)函數(shù)
{
uint a,b;
for(a=x;a>0;a--)
   for(b=100;b>0;b--);
}
void write_com(uchar com) //寫命令函數(shù)
{
wela=1; //鎖存器位選打開
P2=com; //向P2口寫命令
wela=0; //鎖存器位選關(guān)閉

RS=0;   //以下部分跟據(jù)1602手冊的時(shí)序圖寫出
EN=0;
RW=0;
delay(10);
EN=1;
delay(10);
    EN=0;

}
void write_date(uchar date) //寫數(shù)據(jù)函數(shù)
{
wela=1;
P2=date;
wela=0;
RS=1;
EN=0;
RW=0;
delay(10);
EN=1;
delay(10);
EN=0;

}
void init() //初始化函數(shù)
{

write_com(0x38); //顯示模式設(shè)置
delay(20);
write_com(0x0f);//顯示開/關(guān)及光標(biāo)設(shè)置
delay(20);
write_com(0x06);//當(dāng)寫一個(gè)字符后地址指針加一,光標(biāo)加一
delay(20);

}
void main() //主函數(shù)
{
uchar a;
init();
write_com(0x80); //第一行起始地址
delay(20);
for(a=0;a<25;a++)  
{
   write_date(table1[a]);//讀取字符表
   delay(20);
}

write_com(0xc0); //第二行起始地址
delay(20);
for(a=0;a<17;a++)
{
   write_date(table2[a]);//讀取字符表
   delay(20);
}
  
while(1); //保持顯示
}
試驗(yàn)結(jié)果如下:


1602手冊相關(guān)內(nèi)容:




回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表