51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器
前言
本節(jié)我們開(kāi)始學(xué)習(xí)LCD1602,LCD1602是字符型液晶顯示屏,在實(shí)際項(xiàng)目中應(yīng)用非常廣泛,學(xué)完本節(jié)就可以逐步開(kāi)發(fā)一些好玩的應(yīng)用了。
一、基礎(chǔ)知識(shí)
1.LCD1602簡(jiǎn)介
LCD1602是字符型液晶顯示模塊,專(zhuān)門(mén)用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,顧名思義,LCD1602一共可以顯示兩行,每一行能夠顯示16個(gè)字符數(shù)據(jù),采用5V供電,具有低功耗、長(zhǎng)壽面、搞可靠性等特性,實(shí)物圖如下:
(1) 引腳說(shuō)明
在 LCD1602 內(nèi)部含有 80 個(gè)字節(jié)的 DDRAM,它是用來(lái)寄存顯示字符的。其地址
和屏幕的對(duì)應(yīng)關(guān)系如下
從上圖可知,LCD1602中80個(gè)字節(jié)并不是所有的都用來(lái)顯示數(shù)據(jù),只有第一行的00~0F,第二行的40~4F用來(lái)顯示,其他地址只能用來(lái)存儲(chǔ)
(2) 指令表
(3) 常用指令說(shuō)明
- 清屏指令
功能:清楚屏幕,置AC為0
- 模式設(shè)置指令
功能:光標(biāo)和顯示模式設(shè)置
設(shè)定每次輸入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫(xiě)入后的字符是否移動(dòng)。
I/D(光標(biāo)移動(dòng)方向): 1:右移 0:左移
S(顯示屏整體是否移動(dòng)): 1 :有效右移 0:無(wú)效
- 顯示開(kāi)關(guān)控制指令
功能:控制顯示器開(kāi)/關(guān),光標(biāo)開(kāi)/關(guān),光標(biāo)是否閃爍
D:1,開(kāi)啟顯示功能; 0,關(guān)閉顯示功能
C:1,有光標(biāo);0,無(wú)光標(biāo)
B:1,光標(biāo)閃爍;0,光標(biāo)不閃爍
- 功能設(shè)定指令
功能:設(shè)置數(shù)據(jù)總線位數(shù)、顯示行數(shù)、字型
DL:1,數(shù)據(jù)總線為8位; 0,數(shù)據(jù)總線為4位
N:1,顯示2行;0,顯示1行
F:1,5X7點(diǎn)陣;0,5X10點(diǎn)陣
2.硬件設(shè)計(jì)
打開(kāi)硬件設(shè)計(jì)電路,LCD相關(guān)電路如下
注意:R7控制LCD1602驅(qū)動(dòng)電壓,可調(diào),一般設(shè)計(jì)需要10K可調(diào)電阻,也可以字型調(diào)試OK后,焊接固定電阻。
二、實(shí)例
1.創(chuàng)建工程
將上一節(jié)工程復(fù)制出來(lái),并修改名字為05-lcd1602
2.修改程序
/*------------------------------------------------------ *店鋪網(wǎng)址:https://shop321633213.taobao.com/?spm=a1z10.3-c.0.0.33816af5iLgN2F *適用于A08開(kāi)發(fā)板 *實(shí)驗(yàn)現(xiàn)象:驅(qū)動(dòng)LCD1602 *QQ群:906015840 * ------------------------------------------------------*/ #include<reg51.h> //頭文件 #include <intrins.h> #define uchar unsigned char #define uint unsigned int uchar code table_xiaoyi[]="XIAOYI IOT"; // uchar code table_xiaoyi_welcome[]="Welcome!"; sbit LCD_EN=P3^7; //液晶使能信號(hào) sbit LCD_RS=P3^5; //數(shù)據(jù)/命令選擇端 sbit LCD_WR=P3^6;void delay_ms(uint ms) {uint x,y;for(x=ms;x>0;x--)for(y=110;y>0;y--); }void write_com(uchar com) //命令 {LCD_RS=0; //選擇寫(xiě)命令P0=com;delay_ms(5);LCD_EN=1; //使能信號(hào)LCD_EN=0; //關(guān)閉使能 }void write_data(uchar date) //數(shù)據(jù) {LCD_RS=1; //選擇寫(xiě)數(shù)據(jù)P0=date;delay_ms(5);LCD_EN=1;LCD_EN=0; }void init() {LCD_EN=0;write_com(0x38); //00111000 設(shè)置16*2顯示,5*7點(diǎn)陣 8為數(shù)據(jù)接口write_com(0x0c); //00001100 設(shè)置開(kāi)顯示,不顯示光標(biāo)write_com(0x06); // 00000110 寫(xiě)一個(gè)字符后地址指針加 1write_com(0x01); //00000001 顯示清0,數(shù)據(jù)指針清零 }void main(void) //主函數(shù) {uchar i;LCD_WR=0;init();// 寫(xiě)第一行數(shù)據(jù)write_com(0x80); for(i=0;i<10;i++){write_data(table_xiaoyi[i]);delay_ms(5);}// 寫(xiě)第二行數(shù)據(jù)write_com(0x80+0x40); for(i=0;i<8;i++){write_data(table_xiaoyi_welcome[i]);delay_ms(5);}while(1); }程序中將字符串"XIAOYI IOT"顯示在第一行,"Welcome"顯示在第二行。
三、運(yùn)行
將上述程序生成的hex文件燒錄到板子中,板子顯示如下:
硬件獲取:
51單片機(jī)物聯(lián)網(wǎng)開(kāi)發(fā)板 STC89C52RC實(shí)驗(yàn)板支持連云?item.taobao.com一葉孤沙出品:一沙一世界,一葉一菩提
總結(jié)
以上是生活随笔為你收集整理的51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: enter sleep mode黑屏怎么
- 下一篇: hbase 伪分布安装 java_HBa