題目:
想在LCD1602上顯示兩行如下字樣
++++++++++++++++++++
+ huaianxinxi +
+ wantin +
++++++++++++++++++++
想完成上面的顯示必須掌握LCD1602芯片的基本知識(shí),將在程序下面附上LCD1602芯片的基本知識(shí),供大家參考,我實(shí)現(xiàn)的比較簡(jiǎn)單,沒有什么花哨的顯示,大家首先要學(xué)會(huì)操作該硬件,其他的功能完全可以根據(jù)其功能說明進(jìn)行逐項(xiàng)實(shí)現(xiàn)。
代碼如下:
/* 想在LCD1602上顯示兩行如下字樣
++++++++++++++++++++
+ huaianxinxi +
+ wantin +
++++++++++++++++++++
*/
#include #include sbit RS=P2^0; sbit RW=P2^1; sbit EN=P2^2; unsigned char info_1[]=" huaianxinxi"; // LCD1602第一行所要顯示的信息 unsigned char info_2[]=" wantin"; // LCD1602第二行所要顯示的信息 /* 延時(shí) */ void delay(int n) { int i,j; for(i=0;i for(j=0;j<200;j++); } } /* LCD1602寫操作指令 根據(jù)時(shí)序圖實(shí)現(xiàn)代碼 */ void LCD1602_WriteCMD(unsigned char cmd) { P0=cmd; // 指令數(shù)據(jù)傳到P0口待發(fā)送給LCD1602 RS=0; // 指令 RW=0; // 寫 EN=1; // LCD1602使能口 EN=0; // 產(chǎn)生下降沿 delay(10); // 延時(shí),等待數(shù)據(jù)傳輸完成 } /* LCD1602寫數(shù)據(jù) 根據(jù)時(shí)序圖實(shí)現(xiàn)代碼 */ void LCD1602_WriteDATA(unsigned char Data) { P0=Data; RS=1; RW=0; EN=1; EN=0; delay(10); } /* LCD1602顯示屏初始化 */ void LCD1602_Initi() { LCD1602_WriteCMD(0x38); // 置功能,4位總線,雙行顯示,顯示5X7的點(diǎn)陣字符 LCD1602_WriteCMD(0x0F); // 顯示開關(guān)控制,開顯示, 有光標(biāo),閃爍 LCD1602_WriteCMD(0x06); // 光標(biāo)和顯示位置設(shè)置, 光標(biāo)移動(dòng)方向右移,屏幕上所有文字不動(dòng) LCD1602_WriteCMD(0x01); // 清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置 } void main() { int i; LCD1602_Initi(); LCD1602_WriteCMD(0x80); // 選擇第一行首地址 for(i=0;i LCD1602_WriteDATA(info_1[i]); // 寫入字符 } LCD1602_WriteCMD(0xC0); // 選擇第二行首地址 for(i=0;i LCD1602_WriteDATA(info_2[i]); // 寫入字符 } while(1); } 結(jié)果如下: 基本知識(shí)如下: LCD1602資料 一:液晶顯示器各種圖形的顯示原理 線段的顯示:點(diǎn)陣圖形式液晶由M×N個(gè)顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對(duì)應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個(gè)點(diǎn)組成,屏上64×16個(gè)顯示單元與顯示RAM區(qū)1024字節(jié)相對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H——00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時(shí),則屏幕的左上角顯示一條短亮線,長度為8個(gè)點(diǎn);當(dāng)(3FFH)=FFH時(shí),則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H時(shí),則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。 字符的顯示:用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋€(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對(duì)應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡(jiǎn)單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對(duì)應(yīng)的代碼即可。 漢字的顯示:漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個(gè)漢字占32B,分左右兩半,各占16B,左邊為1、3、5……右邊為2、4、6……根據(jù)在LCD上開始顯示的行列號(hào)及每行的列數(shù)可找出顯示RAM對(duì)應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個(gè)字節(jié),換行按列對(duì)齊,送第三個(gè)字節(jié)……直到32B顯示完就可以LCD上得到一個(gè)完整漢字 二:1602字符型LCD簡(jiǎn)介 1.字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖 2.1602LCD的基本參數(shù)及引腳功能 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖 3.LCD1602主要技術(shù)參數(shù): 顯示容量:16×2個(gè)字符 芯片工作電壓:4.5—5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm 4.引腳功能說明 1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表 第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度。 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 第15腳:背光源正極。 第16腳:背光源負(fù)極。 5.其與單片機(jī)的連接如下圖所示 6.1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下表所示 1602液晶模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明1為高電平,0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H 指令3:光標(biāo)和顯示位置設(shè)置I/D,光標(biāo)移動(dòng)方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或右移,高電平表示有效,低電平表示無效。 指令4:顯示開關(guān)控制。D:控制整體的顯示開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位 S/C :高電平時(shí)顯示移動(dòng)的文字,低電平時(shí)移動(dòng)光標(biāo) 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)為雙行顯示,F(xiàn):低電平時(shí)顯示5X7的點(diǎn)陣字符,高電平時(shí)顯示5X10的顯示字符。 指令7:字符發(fā)生器RAM地址設(shè)置。 指令8:DDRAM地址設(shè)置。 指令9:讀忙信號(hào)和光標(biāo)地址 BF:忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或數(shù)據(jù),如果為低電平表示不忙。 與HD44780相兼容的芯片時(shí)序表如下: 讀寫操作時(shí)序如圖所示 7.1602LCD的RAM地址映射及標(biāo)準(zhǔn)字庫表 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在,哪里顯示字符,圖是1602的內(nèi)部顯示地址。 圖五:LCD1602內(nèi)部顯示地址 例如第二行第一個(gè)字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光標(biāo)是自動(dòng)右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。 1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。
上一篇:紅外通信模塊、NEC紅外收發(fā)模塊(1)——紅外模塊調(diào)試
下一篇:51單片機(jī)完成時(shí)鐘形式顯示
推薦閱讀
史海拾趣
近年來,隨著數(shù)字化技術(shù)的快速發(fā)展和應(yīng)用普及,電子行業(yè)也迎來了數(shù)字化轉(zhuǎn)型的浪潮。ELEKTRO-PLAST NASIELSK公司緊跟時(shí)代步伐,積極推進(jìn)數(shù)字化轉(zhuǎn)型工作。公司引入先進(jìn)的數(shù)字化設(shè)備和系統(tǒng)提升生產(chǎn)效率和質(zhì)量水平;同時(shí)加強(qiáng)信息化建設(shè),實(shí)現(xiàn)數(shù)據(jù)共享和協(xié)同辦公;此外還通過電子商務(wù)平臺(tái)拓展銷售渠道和服務(wù)范圍。數(shù)字化轉(zhuǎn)型不僅提升了公司的競(jìng)爭(zhēng)力還為客戶提供了更加便捷高效的服務(wù)體驗(yàn)。
進(jìn)入新世紀(jì)后,電子行業(yè)發(fā)展迅速,對(duì)電子元器件的性能要求也越來越高。ELEKTRO-PLAST NASIELSK公司緊跟行業(yè)趨勢(shì),投入大量資源進(jìn)行技術(shù)創(chuàng)新。公司研發(fā)團(tuán)隊(duì)成功開發(fā)出一種新型塑料材料,不僅具有優(yōu)異的絕緣性能和耐高溫性能,還具有良好的可加工性。這一技術(shù)突破使得公司的產(chǎn)品在市場(chǎng)上脫穎而出,贏得了眾多客戶的青睞。
除了支付業(yè)務(wù)外,Block USA Inc.還積極投身于軟件SAAS服務(wù)的研發(fā)與創(chuàng)新。公司推出了一系列針對(duì)餐廳、薪資發(fā)放和預(yù)約等領(lǐng)域的軟件解決方案,幫助商家提升運(yùn)營效率和管理水平。這些軟件服務(wù)的推出,不僅進(jìn)一步豐富了Block的產(chǎn)品線,也為其在電子行業(yè)中樹立了創(chuàng)新者的形象。
CLC非常重視客戶服務(wù)。他們?cè)O(shè)立了專門的客戶服務(wù)部門,為客戶提供咨詢、售后支持和定制服務(wù)。無論客戶遇到什么問題或需求,CLC都會(huì)盡全力解決和滿足。這種貼心的服務(wù)贏得了客戶的信任和忠誠,也促進(jìn)了品牌的持續(xù)發(fā)展。
CLC非常重視客戶服務(wù)。他們?cè)O(shè)立了專門的客戶服務(wù)部門,為客戶提供咨詢、售后支持和定制服務(wù)。無論客戶遇到什么問題或需求,CLC都會(huì)盡全力解決和滿足。這種貼心的服務(wù)贏得了客戶的信任和忠誠,也促進(jìn)了品牌的持續(xù)發(fā)展。
CLC非常重視客戶服務(wù)。他們?cè)O(shè)立了專門的客戶服務(wù)部門,為客戶提供咨詢、售后支持和定制服務(wù)。無論客戶遇到什么問題或需求,CLC都會(huì)盡全力解決和滿足。這種貼心的服務(wù)贏得了客戶的信任和忠誠,也促進(jìn)了品牌的持續(xù)發(fā)展。
我成功編譯了bulkusb.sys,安裝這個(gè)驅(qū)動(dòng)的時(shí)候出現(xiàn)了錯(cuò)誤,都是因?yàn)閎ulkusb.inf造成的,直接用例子里提供的bullkusb.inf好像安裝不上,我是修改了ClassGUID,又加上了ClassInstall32以后才安裝上的,可是安裝完了以后提示“Windows 無法加載這個(gè)硬件 ...… 查看全部問答∨ |
VMProcessPageFault Error: Page fault occurred while in power handler! Address = 0x000313d4 看過ben.shan老兄的post說是解決了,我依照他說的意思做了問題依舊,請(qǐng)指點(diǎn)! 我的方法就是在platform.bib中將user mode driver也就是由udevicde.e ...… 查看全部問答∨ |
想找個(gè)mk120s的讀取數(shù)據(jù)的代碼,希望大俠們支持 小弟最近要做一個(gè)上位機(jī)與mk120s基本單元通信的程序,LG的,型號(hào)是k7m-dr40u,但是看了好長時(shí)間使用手冊(cè)都不得其門而入,希望大俠們能給個(gè)讀取數(shù)據(jù)的代碼,不管是什么語言都行,我用的是C,VB還有調(diào)試工具,都沒有返回值,用的是plc的編程口,接線方法是:2-7, ...… 查看全部問答∨ |
ActiveDeviceEx()動(dòng)態(tài)加載驅(qū)動(dòng)問題 ActiveDeviceEx()動(dòng)態(tài)加載驅(qū)動(dòng),需要我在調(diào)用該函數(shù)之前在注冊(cè)表HKEY_LOCAL_MACHINE\\Drivers\\Builtin\\中添家驅(qū)動(dòng)的配置項(xiàng)。 為了避免自己寫程序去寫注冊(cè)表,能否在progect.reg中添家對(duì)注冊(cè)表的驅(qū)動(dòng)項(xiàng)?這樣每回CE啟動(dòng)時(shí)就在注冊(cè)表中包含了該驅(qū) ...… 查看全部問答∨ |
大家好,下面是我設(shè)計(jì)的應(yīng)急燈,包括機(jī)械3D設(shè)計(jì),和PCB設(shè)計(jì),大家先看看圖吧,整理好了陸續(xù)上傳,文件比較大該如何解決? 機(jī)械設(shè)計(jì)軟件:SolidWorks2010 PCB設(shè)計(jì)軟件:AltiumDesinger summer 09 [ 本帖最后由 solidwants 于 2010-9-26 2 ...… 查看全部問答∨ |
我在看ST的例子的時(shí)候發(fā)現(xiàn)都有/* Flash 2 wait state */FLASH_SetLatency(FLASH_Latency_2);/* Enable Prefetch Buffer */FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);這兩句代碼, ...… 查看全部問答∨ |
假設(shè)有一顆 RGB LED燈想用51 利用PWM 來控制讓她可以顯示多種顏色請(qǐng)問有什麼方法嘛??? [ 本帖最后由 tony20187 于 2011-7-21 00:50 編輯 ]… 查看全部問答∨ |
|
Hercules 器件系列產(chǎn)品執(zhí)行兩個(gè)帶有共享通道的用于快速轉(zhuǎn)換的模塊(乒乓操作方法)。 使用雙ADC 轉(zhuǎn)換器來執(zhí)行兩個(gè)通道的系統(tǒng)也許能夠在應(yīng)用中請(qǐng)求故障容錯(cuò)。 Hercules 系列的ADC 不同于我們 ...… 查看全部問答∨ |
我的chronos為什么老是死機(jī)重啟?有人遇到相同的問題嗎 RT EZ430-chronos 手表,每隔兩三天就出問題,按了之后時(shí)間就變味開始的4:30,有人遇到相同的問題嗎?怎么解決?謝謝… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 新思科技:通過EDA和IP助力中國RISC-V發(fā)展
- 英飛凌:引領(lǐng)RISC-V成為汽車行業(yè)開放標(biāo)準(zhǔn)
- 東芝推出輸出耐壓1800V的車載光繼電器
- 中國制定的全球首項(xiàng)鋰離子電池硅基負(fù)極材料國際標(biāo)準(zhǔn)發(fā)布
- 智能汽車合成數(shù)據(jù)架構(gòu)與應(yīng)用實(shí)踐分享
- 15家車企的固態(tài)電池汽車及供應(yīng)商一覽!
- 8月交付!鋰電巨頭全固態(tài)電池商業(yè)化“快進(jìn)”
- 白皮書點(diǎn)破汽車智駕營銷現(xiàn)象:六個(gè)“不等于”揭示真實(shí)的輔助駕駛
- Unity引擎在智能座艙項(xiàng)目流程之深入優(yōu)化與未來技術(shù)
- Unity引擎在智能座艙項(xiàng)目流程之未來技術(shù)趨勢(shì)與高級(jí)整合
- TI C2000精品課暑期伴你行 學(xué)習(xí)好禮送不停
- 剁手不如玩板,這個(gè)雙11免費(fèi)好板等你來玩!
- 詳述項(xiàng)目申請(qǐng),可獲 TI Stellaris開發(fā)板!
- Maxim 利用nanoPower創(chuàng)新技術(shù),致力于降低系統(tǒng)的靜態(tài)功耗 看視頻答題贏好禮! 還有免費(fèi)開發(fā)板等你拿
- 泰克完整LED驅(qū)動(dòng)測(cè)試方案 領(lǐng)跑節(jié)能亮化新時(shí)代
- 有獎(jiǎng)學(xué)習(xí) | 探索泰克 4 系列 BMSO 強(qiáng)大功能,還能參與“疊疊樂”省錢大作戰(zhàn)!
- 分享你的國賽經(jīng)驗(yàn),還有好禮相送!
- 泡泡智能機(jī)器人,孩子最好的伙伴
- 貿(mào)澤電子2018智能制造機(jī)器人創(chuàng)新技術(shù)研討會(huì)
- 開森用機(jī)器人為賣甜品
- 力恩教育機(jī)器人培訓(xùn)班介紹
- 隨著機(jī)器人的崛起,人們的飯碗會(huì)被搶,我們應(yīng)當(dāng)怎么做
- Qualcomm超低功耗藍(lán)牙音頻SoC為消費(fèi)者帶來隨處可享的卓越音質(zhì)
- 變革機(jī)器人產(chǎn)業(yè) Qualcomm?機(jī)器人RB3平臺(tái)問市
- 世強(qiáng)簽約兆易創(chuàng)新,新增NOR Flash、NAND Flash產(chǎn)品
- 專訪華為PC高管:體驗(yàn)為先 未來跟手機(jī)結(jié)合更緊密
- 從核心到邊緣,基于云的網(wǎng)絡(luò)轉(zhuǎn)型推動(dòng)5G革命