要想實(shí)現(xiàn)人機(jī)交互,顯示裝置是不可缺少的。這篇文章主要關(guān)于如何控制液晶顯示,并在此基礎(chǔ)上加上定時(shí)器的功能,把原來(lái)已用數(shù)碼管顯示" />

日韩av偷拍-无码人妻丰满熟妇区五十路-怡红院av亚洲一区二区三区h-中文字幕久久一区二区三区-黄色午夜网站-69视频网站-久久无码中文字幕久久无码app-诱惑网综合-xxx69-久久综合加勒比-久久综合网欧美色妞网-自拍偷拍精品视频-色综合天天-国产一区二区色-欧美日日夜夜-天堂在线视频观看-一级黄色片看看

TDA2030功放電路圖 電動(dòng)車(chē)充電器電路圖 電子電路 功放電路 電子制作 集成塊資料 電子報(bào) pcb 變壓器 元器件知識(shí) 逆變器電路圖 電路圖 開(kāi)關(guān)電源電路圖 傳感器技術(shù) led 電磁兼容
電子電路圖
當(dāng)前位置: 首頁(yè) > 電子電路 > 設(shè)計(jì)編程

51單片機(jī)對(duì)LCD1602液晶顯示器的控制

時(shí)間:2018-12-26 14:43:12來(lái)源:網(wǎng)絡(luò) 作者:電子愛(ài)好者 點(diǎn)擊:
51單片機(jī)對(duì)LCD1602液晶顯示器的控制

要想實(shí)現(xiàn)人機(jī)交互,顯示裝置是不可缺少的。這篇文章主要關(guān)于如何控制液晶顯示,并在此基礎(chǔ)上加上定時(shí)器的功能,把原來(lái)已用數(shù)碼管顯示

51單片機(jī)對(duì)LCD1602液晶顯示器的控制

要想實(shí)現(xiàn)人機(jī)交互,顯示裝置是不可缺少的。這篇文章主要關(guān)于如何控制液晶顯示,并在此基礎(chǔ)上加上定時(shí)器的功能,把原來(lái)已用數(shù)碼管顯示的定時(shí)器搬到液晶屏上來(lái)。

這里用到的液晶為L(zhǎng)CD1602,能夠同時(shí)顯示16x02即32個(gè)字符(16列2行)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)等,直接向其寫(xiě)入ASCII碼即可顯示相應(yīng)字符。1602共16個(gè) 管腳,管腳功能如下:

<a href=http://http://m.zhongyiwenxian.com.cn/tags-etagid56-0.html target=_blank class=infotextkey>51單片機(jī)</a>對(duì)LCD液晶顯示器的控制

實(shí)際應(yīng)用時(shí),所用液晶模塊與單片機(jī)的連接圖如下:

其中7~14管腳為IO,與單片機(jī)的P0口相接,單片機(jī)可通過(guò)向P0口發(fā)送數(shù)據(jù)被液晶模塊并行接收。

4管腳為數(shù)據(jù)命令選擇端,與單片機(jī)P3^5口相連。故可通過(guò)控制P3^5口的電平高低,向液晶模塊寫(xiě)入命令或數(shù)據(jù)。由數(shù)據(jù)手冊(cè)得知,

寫(xiě)指令時(shí),RS=L,RW=L,D0~D7為指令碼,E管腳為一高電平脈沖;

寫(xiě)數(shù)據(jù)時(shí),RS=H,RW=L,D0~D7為數(shù)據(jù),E管腳也為一高電平脈沖。

P3^4與液晶模塊6管腳相連,控制液晶模塊使能。

首先介紹液晶模塊的指令。

初始化指令0x38:設(shè)置液晶為16x2顯示。

顯示開(kāi)關(guān)及光標(biāo)設(shè)置:

00001DCB D=1,開(kāi)顯示;

C=1。顯示光標(biāo);

B=1,光標(biāo)閃爍。

000001NS N=1,讀寫(xiě)一個(gè)字符后地址指針加1,光標(biāo)加1;

N=0,讀寫(xiě)一個(gè)字符后地址指針減1,光標(biāo)減1

S=1,寫(xiě)一個(gè)字符時(shí),整屏顯示向左移動(dòng)(N=1)或右移(N=0)

S=0,不移動(dòng)

數(shù)據(jù)寫(xiě)入控制指令:

LCD模塊中的RAM地址映射如下

51單片機(jī)對(duì)LCD液晶顯示器的控制

要想把數(shù)據(jù)寫(xiě)入X地址,則先要輸入指令0x80+X;

例如想讓字符顯示在第二行的第一個(gè),則在將字符傳入前,要寫(xiě)入指令write_command(0x80+0x40)

此外,0x01H表示顯示清屏,數(shù)據(jù)指針清零,所有顯示清零;

0x02H表示顯示回車(chē),數(shù)據(jù)指針清零。

了解了這些之后,可以知道如果我們想要控制液晶的顯示,就要先學(xué)會(huì)怎樣向液晶寫(xiě)指令和寫(xiě)數(shù)據(jù)。

寫(xiě)指令函數(shù)

//向LCD1602寫(xiě)指令

voidwrite_com(ucharcom)

{

lcdrs=0;//RS=L

P0=com;//P0口輸出

delay(5);//延時(shí)

lcden=1;//E=H

delay(5);

lcden=0;//延時(shí)后,E變?yōu)長(zhǎng),造成了一個(gè)高電平脈沖,P0口高低電平被寫(xiě)入

}

寫(xiě)數(shù)據(jù)的方法與此類(lèi)似,照葫蘆畫(huà)瓢即可:

//向LCD1602寫(xiě)數(shù)據(jù)

/*

只需要將RS置高即可,

其他語(yǔ)句與寫(xiě)指令函數(shù)相同

*/

voidwrite_date(uchardate)

{

lcdrs=1;//RS=H

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

有了這兩個(gè)函數(shù),我們就可以向液晶模塊里面寫(xiě)入指令和數(shù)據(jù),從而實(shí)現(xiàn)對(duì)其的控制了。

為了實(shí)現(xiàn)一個(gè)完整的對(duì)LCD1602功能的封裝體現(xiàn),我們還要再寫(xiě)一個(gè)初始化的函數(shù),用于對(duì)LS1602的初始化工作

voidInital()

{

lcden=0;//先不使能

write_com(0x38);//寫(xiě)入初始化指令

write_com(0x0e);//顯示開(kāi),光標(biāo)顯示但不閃爍

write_com(0x06);//讀寫(xiě)后指針加1,光標(biāo)加1

write_com(0x01);//顯示清屏,指針清零

}

至此,就完成了對(duì)LCD1602的功能封裝,在其他的程序中,就可以使用這些函數(shù)用于液晶顯示,例如下面實(shí)現(xiàn)的用1602顯示計(jì)時(shí)器。

計(jì)時(shí)器量程為1小時(shí),顯示格式為XX:XX(前面為分,后面為秒)

用到了單片機(jī)中的計(jì)時(shí)器0,工作方式1,。50ms發(fā)生一次中斷,使一個(gè)用于計(jì)數(shù)的number自增一次。number初值設(shè)為1,故number自增至20時(shí),說(shuō)明計(jì)時(shí)1s已到,可以Do Something,也就是把處理函數(shù)加進(jìn)來(lái)了。

C文件如下:

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitlcden=P3^4;

sbitlcdrs=P3^5;

ucharnum=1;

ucharmiao=0;

ucharfen=0;

voidInital();

voidInital_Time();

voidwrite_com(ucharcom);

voidwrite_date(uchardate);

voiddelay(ucharTIme);

voidClock();

voidDisplay(ucharx,uchary);

voidmain()容-源-電-子-網(wǎng)-為你提供技術(shù)支持

本文地址:http://m.zhongyiwenxian.com.cn/dz/22/15458067412848.shtml


本文標(biāo)簽:


.
12下一頁(yè)尾頁(yè)
頂一下
0%
返回首頁(yè)
0
0%

------分隔線(xiàn)----------------------------
發(fā)表評(píng)論
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
表情:
名稱(chēng): E-mail: 驗(yàn)證碼: 匿名發(fā)表
發(fā)布文章,推廣自己產(chǎn)品。
兴隆县| 苏州市| 宜丰县| 天镇县| 册亨县| 城市| 富源县| 亳州市| 太康县| 浦东新区| 达日县| 富民县| 兴宁市| 绍兴市| 莱阳市| 金沙县| 瑞金市| 民和| 红原县| 郓城县| 桃园县| 天祝| 湾仔区| 九台市| 清新县| 定安县| 皋兰县| 芜湖县| 舞钢市| 威远县| 临泽县| 克拉玛依市| 土默特左旗| 凤翔县| 宜川县| 庄浪县| 荥阳市| 蒙山县| 郴州市| 光山县| 略阳县|