www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]   我們知道字符發(fā)生器CGRAM中可存儲自行設(shè)計的8個5x7點(diǎn)陣圖形。以設(shè)計一個漢字“中”為例.5×7“中”的點(diǎn)陣組成如下圖所示。  點(diǎn)陣中1代表點(diǎn)亮該點(diǎn)元素,0代表熄滅該點(diǎn)元素。其中*為無效位,可任意

  我們知道字符發(fā)生器CGRAM中可存儲自行設(shè)計的8個5x7點(diǎn)陣圖形。以設(shè)計一個漢字“中”為例.5×7“中”的點(diǎn)陣組成如下圖所示。

  點(diǎn)陣中1代表點(diǎn)亮該點(diǎn)元素,0代表熄滅該點(diǎn)元素。其中*為無效位,可任意取O或1,一般取0。
  
  使用時,先自行編制出圖形數(shù)據(jù),然后將圖形數(shù)據(jù)存入CGRAM中,再向DDRAM寫入就可在屏幕上顯出您設(shè)計的圖形。如您存入了一個圖形造形,則只要向DDRAM寫入OOH(表示第O號圖形)即可。如您共存入了八個圖形造形,則只要依序向DDRAM寫入OOH~07H(表示第O號~第7號圖形)八個數(shù)字即可。
  
  下面我們將這個“中”字顯示于屏幕的第二行第O列。
  
  在我的文檔中建立一個文件目錄(LCD8),然后建立一個LCD8.uv2的工程項目,最后建立源程序文件(LCD8.a(chǎn)sm)。
  
  輸入下面的程序:
  
  序號:

  編譯通過后,將LCD8文件夾中的hex文件通過TOP851編程器燒錄到89C51芯片中,將芯片插入到S2型數(shù)碼管試驗(yàn)板上,試驗(yàn)板上標(biāo)示LCD1的排針通過14芯排線與液晶顯示模組(LCM)正確連接,將TOP851編程器的9V直流電源插到S2型試驗(yàn)板上通電運(yùn)行。屏幕的第二行第0列顯示漢字“中”。
  
  我們對程序進(jìn)行解釋。
  
  序號1(程序解釋,以下同):程序分隔及說明。
  
  序號2:定義LCM的RS引腳由89C51的P3.3腳控制。
  
  序號3:定義LCM的R_W引腳由89C51的P3.4腳控制。
  
  序號4:定義LCM的E引腳由89C51的P3.5腳控制。
  
  序號5:定義LCM的數(shù)據(jù)口DBO_DB7由89C51的P1口控制。
  
  序號6:程序分隔及說明。
  
  序號7:程序從地址OOOOH開始。
  
  序號8:跳轉(zhuǎn)到MAIN主程序處。
  
  序號9:主程序MAIN從地址0030H開始。
  
  序號10:堆棧指針指向60H。
  
  序號11:調(diào)用啟動LCM子程序進(jìn)行初始化。
  
  序號12:調(diào)用清除LCM子程序。
  
  序號13:寄存器R4置立即數(shù)8(此為圖形數(shù)據(jù)的長度,一個5*7點(diǎn)陣圖形需8個字節(jié))。
  
  序號14:調(diào)用寫入CGRAM子程序。
  
  序號15:指向顯示屏第二行第O列。
  
  序號16:調(diào)用寫指令到LCM子程序。
  
  序號17:累加器置立即數(shù)O(CGRAM內(nèi)的第0號圖形)。
  
  序號18:調(diào)用寫數(shù)據(jù)到LCM子程序(將CGRAM內(nèi)的第0號圖形顯示于屏幕上)。
  
  序號19:動態(tài)停機(jī)。
  
  序號20:程序分隔及說明。
  
  序號21—27:啟動LCM子程序。
  
  序號20:程序分隔及說明。
  
  序號29~39:查詢忙碌標(biāo)志信號子程序。
  
  序號40:程序分隔及說明。
  
  序號41~48:寫指令到LCM子程序。
  
  序號49:程序分隔及說明。
  
  序號50~57:寫數(shù)據(jù)到LCM子程序。
  
  序號58:程序分隔及說明。
  
  序號59~61:清除LCM子程序。
  
  序號62:程序分隔及說明。
  
  序號67~67:延時2.7mS子程序。
  
  序號68:程序分隔及說明。
  
  序號69~77:自定義圖形寫入CGRAM子程序。
  
  序號69:指向CGRAM首地址。
  
  序號70:調(diào)用寫指令到LCM子程序。
  
  序號71:將圖形數(shù)據(jù)表格首地址送DPTR。
  
  序號72:清除累加器。
  
  序號73:查表。
  
  序號74:調(diào)用寫數(shù)據(jù)到LCM子程序。
  
  序號75:DPTR加1。
  
  序號76:圖形數(shù)據(jù)的長度減1后若不為0轉(zhuǎn)標(biāo)號CGRAM_LOOP繼續(xù)寫入。
  
  序號77:子程序返回。
  
  序號78:程序分隔及說明。
  
  序號79:圖形數(shù)據(jù)表。
  
  序號80:程序結(jié)束。
  
  再設(shè)計一個復(fù)雜一點(diǎn)的圖形:一個敞開大門的房屋,右側(cè)顯示W(wǎng)elcometo LCD Monitor(歡迎來到液晶顯示器)。按照上一個例子介紹的方法,先作出房屋的5*7圖形數(shù)據(jù)(十六進(jìn)制數(shù))。
  
  圖形數(shù)據(jù)(十六進(jìn)制數(shù))以下為第一行第0~3列圖形數(shù)據(jù)

  在我的文檔中建立一個文件目錄(LCD9).然后建立一個LCD9.uv2的工程項目,最后建立源程序文件(LCD9.asm)。
  
  輸入下面的程序:
  
  序號:1:**89C51引腳定義“

  編譯通過后,將LCD8文件夾中的hex文件通過TOP851編程器燒錄到89C51芯片中,將芯片插入到S2型數(shù)碼管試驗(yàn)板上,試驗(yàn)板上標(biāo)示LCD1的排針通過14芯排線與液晶顯示模組(LCM)正確連接,將TOP851編程器的9V直流電源插到S2型試驗(yàn)板上通電運(yùn)行。屏幕的左半部分顯示出一個敞開大門的房屋,右側(cè)第一行顯示W(wǎng)elcometo.第二行顯示LCDMonitor。
  
  我們對程序進(jìn)行解釋。
  
  序號1(程序解釋,以下同):程序分隔及說明。
  
  序號2:定義LCM的RS引腳由89C51的P3.3腳控制。
  
  序號3:定義LCM的R_W引腳由89C51的P3.4腳控制。
  
  序號4:定義LCM的E引腳由89C51的P3.5腳控制。
  
  序號5:定義LCM的數(shù)據(jù)口DBO_DB7由89C51的P1口控制。
  
  序號6:程序分隔及說明。
  
  序號7:程序從地址OOOOH開始。
  
  序號8:跳轉(zhuǎn)到MAIN主程序處。
  
  序號9:主程序MAIN從地址0030H開始。
  
  序號10:堆棧指針指向60H。
  
  序號11:調(diào)用啟動LCM子程序進(jìn)行初始化。
  
  序號12:調(diào)用清除LCM子程序。
  
  序號13:寄存器R4置立即數(shù)64(此為圖形數(shù)據(jù)的長度,一個5*7點(diǎn)陣圖形需8個字節(jié),共有八個點(diǎn)陣圖形,故需64個字節(jié))。
  
  序號14:調(diào)用寫入CGRAM子程序。
  
  序號15:指向顯示屏第一行第0列。
  
  序號16:調(diào)用寫指令到LCM子程序。
  
  序號17:寄存器R1置立即數(shù)4(此為第一行需顯示的四個點(diǎn)陣圖形長度)。
  
  序號18:累加器置立即數(shù)O(CGRAM內(nèi)的第0號圖形)。
  
  序號19:調(diào)用寫數(shù)據(jù)到LCM子程序(將CGRAM內(nèi)的第O~4號圖形顯示于屏幕上)。
  
  序號20:指向顯示屏第二行第0列。
  
  序號21:調(diào)用寫指令到LCM子程序。
  
  序號22:寄存器R1置立即數(shù)4(此為第二行需顯示的四個點(diǎn)陣圖形長度)。
  
  序號23:累加器置立即數(shù)4(CGRAM內(nèi)的第4號圖形)。
  
  序號24:調(diào)用寫數(shù)據(jù)到LCM子程序(將CGRAM內(nèi)的第4—7號圖形顯示于屏幕上)。
  
  序號25:指向顯示屏第一行第4列。
  
  序號26:調(diào)用寫指令到LCM子程序。
  
  序號27:將標(biāo)號LINEO處字符串的首地址裝入DPTR。
  
  序號28:調(diào)用顯示子程序。
  
  序號29:指向顯示屏第二行第4列。
  
  序號30:調(diào)用寫指令到LCM子程序。
  
  序號31:將標(biāo)號LINE1處字符串的首地址裝入DPTR。
  
  序號32:調(diào)用顯示子程序。
  
  序號33:動態(tài)停機(jī)。
  
  序號33:程序分隔及說明。
  
  序號34~43:顯示字符串到LCM子程序。
  
  序號44:程序分隔及說明。
  
  序號45~48:顯示圖形子程序序號49:程序分隔及說明。
  
  序號50~56:啟動LCM子程序。
  
  序號57:程序分隔及說明。
  
  序號58~68:查詢忙碌標(biāo)志信號子程序。
  
  序號69:程序分隔及說明。
  
  序號70~77:寫指令到LCM子程序。
  
  序號78:程序分隔及說明。
  
  序號79~86:寫數(shù)據(jù)到LCM子程序。
  
  序號87:程序分隔及說明。
  
  序號88~90:清除LCM子程序。
  
  序號91:程序分隔及說明。
  
  序號92~96:延時2.7mS子程序。
  
  序號97:程序分隔及說明。
  
  序號98~106:自定義圖形寫入CGRAM子程序序號107:程序分隔及說明。
  
  序號108~115:圖形數(shù)據(jù)表。
  
  序號116~117:需顯示字符型。
  
  序號118:程序結(jié)束。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在現(xiàn)代電子制作和嵌入式系統(tǒng)開發(fā)中,四位數(shù)碼管數(shù)字秒表是一個經(jīng)典且實(shí)用的項目。它不僅能夠展示時間計數(shù)的功能,還能作為學(xué)習(xí)數(shù)碼管顯示、微控制器編程以及中斷處理等知識的良好實(shí)踐。本文將詳細(xì)介紹一個基于STM32微控制器的四位數(shù)...

關(guān)鍵字: 四位數(shù)碼管 數(shù)字秒表 源程序

數(shù)據(jù)可視化是一種將數(shù)據(jù)轉(zhuǎn)化為圖形、圖表或其他視覺元素的技術(shù),目的是幫助人們更好地理解和解讀數(shù)據(jù)。在當(dāng)今大數(shù)據(jù)時代,數(shù)據(jù)可視化成為了數(shù)據(jù)分析與決策的重要工具。本文將介紹一些常見的數(shù)據(jù)可視化應(yīng)用工具,幫助讀者更好地選擇合適的...

關(guān)鍵字: 數(shù)據(jù)可視化 大數(shù)據(jù) 圖形

液晶顯示屏是我們最常見的一種東西。但是,隨著技術(shù)的進(jìn)步,液晶顯示屏也在不斷升級,出現(xiàn)了OLED和TFT兩種不同的技術(shù)。那么,OLED和TFT有什么不一樣呢?本文將為大家詳細(xì)介紹。

關(guān)鍵字: OLED TFT 液晶顯示屏

希式囍宴·唯愛不渝 重慶2022年7月8日 /美通社/ -- 希爾頓集團(tuán)重慶區(qū)域五家酒店首次聯(lián)合婚禮秀將在重慶兩江新區(qū)高科希爾頓酒店二樓兩江廳...

關(guān)鍵字: 多功能廳 LCD 嵌入式 液晶顯示屏

點(diǎn)陣LCD的顯示原理 在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進(jìn)行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上...

關(guān)鍵字: lcd12864 液晶顯示屏

LCD1602液晶顯示器是廣泛使用的一種字符型液晶顯示模塊,通常跟單片機(jī)一起使用,由單片機(jī)控制顯示的內(nèi)容,那么當(dāng)遇到lcd1602只亮不顯示怎么辦?下面教大家?guī)讉€檢查方法。

關(guān)鍵字: lcd12864 液晶顯示屏

關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容整理:李肖遙Qt許可證Qt有兩個許可證:LGPL和商業(yè)協(xié)議。這兩個協(xié)議在現(xiàn)在的Qt版本中的代碼是完全一致的(潛在含義是,Qt的早期版本,商業(yè)版的Qt通常包含有一些開源版本所沒有的庫,比如Qt...

關(guān)鍵字: 開源 源程序

8月1日消息 面對不同芯片、OS 組合開發(fā)的嵌入式產(chǎn)品,圖形軟件跨平臺的開發(fā)需求迫切。目前在全球范圍內(nèi)普遍應(yīng)用的 X-windows、GTK、APPLE,Qt 等產(chǎn)品均為國外企業(yè)開發(fā)。龍芯官方表示,針

關(guān)鍵字: 圖形 龍芯

曾經(jīng)參與過公司的bpp項目,就是bluetooth print profile。 由于使用了hpijs的開源包,但是是C++的。 由于C++解釋器比C語言解釋器占用的存儲空間要大500k左右。 為了節(jié)省有限的存儲空間,降...

關(guān)鍵字: C語言 源程序

C++解釋器比C語言解釋器占用的存儲空間要大,想要在某些特定場合兼容C++代碼,同時為了節(jié)省有限的存儲空間,降低成本,也為了提高效率,將用C++語言寫的源程序用C語言改寫是很有必要的。 C++與C區(qū)別最大的就是C++中的...

關(guān)鍵字: C語言 源程序 C++
關(guān)閉