史靜 李煜
【摘 要】本文充分利用LCD1602的相關(guān)特性和指令集,通過(guò)數(shù)學(xué)化的編程思想使用線(xiàn)性函數(shù)和對(duì)比判斷的方法,利用LCD1602所提供的讀取忙指令,實(shí)現(xiàn)了自動(dòng)換行換頁(yè)延時(shí)順序顯示,從而解決了在較小的LCD1602液晶顯示屏上顯示大段文本的問(wèn)題。
【關(guān)鍵詞】單片機(jī);液晶顯示;LCD1602
中圖分類(lèi)號(hào): TP274 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2017)20-0061-002
A Multi-line Text Display Method Based on Single Chip Microcomputer and LCD1602
SHI Jing LI Yu
(Xian University of Technology,Xian Shanxi 710048,China)
【Abstract】This paper makes full use of the related characteristics and instruction set of LCD1602,and uses the linear function and the contrast judgment method through the mathematical programming idea.By using the read busy command provided by LCD1602,In a small LCD1602 LCD display a large section of the text of the problem.
【Key words】Single ChipMicrocomputer;Liquid crystal Display;LCD1602
0 引言
液晶顯示器的尺寸也是越做越大,價(jià)格也是越來(lái)越低,但是并不是所有的場(chǎng)合都可以使用大尺寸的液晶屏幕,例如智能水電表,可穿戴智能設(shè)備等需要在有限的屏幕尺寸上顯示大量的信息。對(duì)于超長(zhǎng)的文本采用定義多個(gè)數(shù)組手工分組定位來(lái)顯示,沒(méi)充分利用LCD1602提供的硬件特性,算法較為簡(jiǎn)陋,多個(gè)循環(huán)執(zhí)行效率較低。本文通過(guò)對(duì)現(xiàn)有LCD1602液晶顯示器軟件顯示算法的改進(jìn),來(lái)實(shí)現(xiàn)對(duì)于超長(zhǎng)文本的自動(dòng)換行換頁(yè)顯示,充分利用LCD1602硬件本身所提供的功能,來(lái)實(shí)在較小的液晶屏幕上顯示較多的文字信息。
1 設(shè)計(jì)方案
本文軟件采用結(jié)構(gòu)化的開(kāi)發(fā)方法,并在開(kāi)發(fā)算法過(guò)程中引入數(shù)學(xué)思想,逐個(gè)函數(shù)編寫(xiě)并測(cè)試寄存器變量變化后進(jìn)行集成,最后進(jìn)行了總體測(cè)試。編寫(xiě)過(guò)程中函數(shù)和變量的命名嚴(yán)格按照命名方法命名,符合良好的編程規(guī)范。
硬件測(cè)試電路使用AT89C51單片機(jī)和LCD1602設(shè)計(jì)。軟件采用Keil uVision5編程,功能仿真使用Proteus8完成。
2 方案實(shí)現(xiàn)
2.1 硬件系統(tǒng)設(shè)計(jì)
本系統(tǒng)硬件以2AT89C51單片機(jī)為核心,其內(nèi)部結(jié)構(gòu)包括中央處理器(CPU)、內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)、內(nèi)部程序存儲(chǔ)器(ROM)、定時(shí)器/計(jì)數(shù)器、并行I/o口、全雙工串行口、中斷控制系統(tǒng)、時(shí)鐘電路等。
2.2 液晶顯示器
LCD1602是目前使用較為廣泛的一種字符型液晶顯示模塊。本文測(cè)試使用該顯示器。LCD1602通常有14個(gè)引腳或16個(gè)引腳,16個(gè)引腳的是多出了2條背光電源線(xiàn)和地線(xiàn)的型號(hào)。每行可以顯示16個(gè)字符,共有兩行。
2.3 硬件電路的設(shè)計(jì)
本文硬件電路的組成:AT89C51單片機(jī),時(shí)鐘電路,電源電路和LCD1602顯示電路。本文測(cè)試電路的系統(tǒng)框圖,如圖1所示,硬件系統(tǒng)電路圖如圖2所示。
2.4 軟件系統(tǒng)設(shè)計(jì)
本文通過(guò)充分利用LCD1602的相關(guān)特性和指令集,通過(guò)數(shù)學(xué)化的編程思想使用一次函數(shù)來(lái)表明顯示屏中行列像素的位置關(guān)系,再利用對(duì)比判斷的方法,從而實(shí)現(xiàn)了自動(dòng)換行換頁(yè)延時(shí)順序顯示,繼而解決了在較小的LCD1602液晶顯示屏上顯示大段文本的問(wèn)題。
3 調(diào)試與仿真
3.1 調(diào)試仿真
本文使用KeiluVision5作為編譯和調(diào)試的軟件,沒(méi)有使用內(nèi)置的文本編輯器,而使用了其自定義工具功能調(diào)用了外部文本編輯器Notepad++作為編輯環(huán)境,Notepad++相對(duì)于自帶的編輯工具而言,具有了語(yǔ)法和系統(tǒng)關(guān)鍵詞高亮,語(yǔ)法錯(cuò)誤提醒和多種快捷操作方式,不光提升了編程效率,還可以避免在一些小錯(cuò)誤上浪費(fèi)大量的調(diào)試時(shí)間。
仿真測(cè)試采用Proteus 8 Professional軟件,該軟件對(duì)于Proteus7來(lái)說(shuō)有了重大的改進(jìn),界面更加友好,并且可以通過(guò)VSM和Keil Monitor 51實(shí)現(xiàn)程序和硬件的聯(lián)合仿真,彌補(bǔ)了Proteus無(wú)法實(shí)施查看寄存器變量、對(duì)應(yīng)程序的缺點(diǎn)和Keil無(wú)法直觀查看程序結(jié)果的不足。
3.2 測(cè)試結(jié)果
運(yùn)行仿真測(cè)試程序后,完成所提算法的功能,實(shí)現(xiàn)了多行文本的自動(dòng)換行換頁(yè)延時(shí)顯示的效果。效果如圖3,圖4所示。
4 結(jié)論
本文對(duì)于單片機(jī)和LCD1602顯示方法改進(jìn)的設(shè)計(jì),從研究背景,現(xiàn)實(shí)需求到單片機(jī)和LCD1602編程所需的硬件原理,硬件設(shè)計(jì),功能指令,再到通過(guò)數(shù)學(xué)的思想和方法來(lái)改進(jìn)算法,到最后編程、仿真、測(cè)試都進(jìn)行了全面詳細(xì)的闡述。本所提供的方法可進(jìn)一步拓展至其他尺寸的LCD屏幕中,還可進(jìn)一步的通過(guò)匯編語(yǔ)言實(shí)現(xiàn)本算法,從而節(jié)約單片機(jī)系統(tǒng)資源。
【參考文獻(xiàn)】
[1]Atmel,AT89C51元件手冊(cè).
[2]彭芬.單片機(jī)C語(yǔ)言應(yīng)用技術(shù),2012,西安電子科技大學(xué)出版社:109,111-116.
[3]楊宏麗.單片機(jī)應(yīng)用技術(shù)(第三版),2013,西安電子科技大學(xué)出版社:161.
[4]楊欣.實(shí)例解讀51單片機(jī)完全學(xué)習(xí)與應(yīng)用,2011,電子工業(yè)出版社:349.
[5]LCD1602元件手冊(cè).
[6]KeiuVision5軟件幫助.
[7]K.N.King,C語(yǔ)言程序設(shè)計(jì)現(xiàn)代方法(第二版),2010,人民郵電出版社:295.
[8]Proteus8軟件幫助.endprint