日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]引言液晶顯示器(LCD)具有工作電壓低、微功耗、顯示信息量大和接口方便等優(yōu)點,現(xiàn)在已被廣泛應用于計算機和數(shù)字式儀表等領域,成為測量結果顯示和人機對話的重要工具。液晶顯示器按其功能可分為三類:筆段式液晶顯示器

引言

液晶顯示器(LCD)具有工作電壓低、微功耗、顯示信息量大和接口方便等優(yōu)點,現(xiàn)在已被廣泛應用于計算機和數(shù)字式儀表等領域,成為測量結果顯示和人機對話的重要工具。液晶顯示器按其功能可分為三類:筆段式液晶顯示器、字符點陣式液晶顯示器和圖形點陣式液晶顯示器。前兩種可顯示數(shù)字、字符和符號等,而圖形點陣式液晶顯示器還可以顯示漢字和任意圖形,達到圖文并茂的效果,其應用越來越廣泛。

GTG240128液晶顯示模塊:

1 模塊特點

GTG240128圖形點陣式液晶顯示器的點陣的大小為240×128,帶背光功能。內置1片T6963C液晶顯示控制器和5片KS0086驅動器。該液晶顯示模塊具有如下特點。

● 8位并行總線接口,能直接與80系列的微處理器相連;

● 可以顯示數(shù)字、字母、漢字和圖形等;

● 具有128種5×8點陣的ASCI字符字模庫CGROM;

● 具有64kb的顯示存儲器(可被劃分為文本顯示區(qū)、圖形顯示區(qū)、文本屬性區(qū)和自定義字符庫區(qū)),并允許MCU隨時訪問;

● 可用圖形方式、文本方式以及圖形和文本合成方式顯示。

2 模塊接口引腳功能

GTG240128液晶顯示模塊與微處理器的接口共有21個引腳,各引腳功能如表1所示。

3 模塊指令集簡介

GTG240128液晶顯示模塊使用了硬件初始化設置,使得其指令功能集中于顯示功能的設置上,從而加強了顯示能力。該模塊的指令可帶一個或兩個參數(shù),也可不帶參數(shù)。若指令中含有參數(shù),則參數(shù)必須在指令之前輸入。在每次數(shù)據(jù)或指令的寫入操作和數(shù)據(jù)的讀取操作之前都要進行狀態(tài)字檢測,只有在不“忙”的狀態(tài)下,MCU對模塊的操作才有效。其狀態(tài)位由低位到高位的含義如表2所示。

在MCU寫指令或一次讀/寫數(shù)據(jù)時,S0和S1要同時有效;當MCU使用自動讀/寫功能時,S2和S3將取代S0和S1作為忙標志位,此時MCU就要判別它是否有效;S6是考察T6963C屏讀或屏拷貝指令執(zhí)行情況的標志位;S5和S7表示模塊內部的運行狀態(tài),一般不用。

與AT89C55的接口電路

GTG240128與AT89C55的接口有直接訪問和間接訪問兩種方式。直接訪問方式就是把顯示器模塊作為存儲器或I/O設備直接掛在單片機總線上;間接訪問方式就是把顯示器模塊與單片機的某個I/O接口連接,單片機通過對該I/O口的操作間接實現(xiàn)對模塊的控制。本文采用直接訪問方式,硬件連接電路如圖1所示。

液晶顯示器模塊的數(shù)據(jù)線接在AT89C55的數(shù)據(jù)總線上,片選信號由地址線A7和A0提供,寄存器選擇信號由地址線A7和A1提供(指令通道地址為0xf1,數(shù)據(jù)通道地址為0xf3),讀和寫操作由AT89C55的讀寫操作信號控制;模塊Vo端所接的電位器用來調節(jié)液晶顯示器的對比度。

軟件設計

軟件采用Keil C51語言開發(fā),主要包括三個部分:第一部分是寫指令和寫數(shù)據(jù)等面向液晶顯示模塊硬件的驅動程序;第二部分包括液晶顯示模塊初始化和清屏等通用子程序;第三部分是漢字、字符和圖形的顯示程序。

1 寫指令、寫數(shù)據(jù)子程序

這部分是液晶顯示模塊的驅動程序,所有對液晶顯示模塊的操作都是通過調用這部分程序實現(xiàn)的。液晶顯示模塊的指令通道地址為0xf1,數(shù)據(jù)通道的地址為0xf3,具體驅動程序如下。

#define LCD_Cmd 0xf1 //模塊指令通道地址

#define LCD_Data 0xf3 //模塊數(shù)據(jù)通道地址

//寫指令子程序

void Write_LCD_Cmd(unsigned char cmd)

{

while ((PBYTE[LCD_Cmd]&3)!=3);

PBYTE[LCD_Cmd]=cmd;

//寫數(shù)據(jù)子程序

void Write_LCD_Data(unsigned char dat)

{

while ((PBYTE[LCD_Cmd]&3)!=3);

PBYTE[LCD_Data]=dat;

2 初始化子程序

這部分程序是液晶顯示模塊進行顯示之前的必要工作,包括設置文本頁首地址、圖形頁首地址、文本頁地址、圖形頁地址、初始化和清屏等子程序。本文中把液晶顯示模塊的顯示存儲器分為16個文本頁和6個圖形頁。文本頁的起止地址為0x0000~0x1fff;圖形頁的起止地址為0x2000~0x7fff。

//設定文本頁首地址子程序

void Text_Home_Address(unsigned char tpage)

{

Write_LCD_Data(0);

Write_LCD_Data(tpage*0x02);

Write_LCD_Cmd(0x40);?。?/p>

//設定圖形頁首地址子程序

void Graph_Home_Address(unsigned char gpage)

{

gpage+= 2;

Write_LCD_Data(0);

Write_LCD_Data(gpage*0x10);

Write_LCD_Cmd(0x42); }

//設定文本頁地址子程序

void Text_Address(unsigned char x, unsigned char y)

{

extern unsigned char textpage;

unsigned int xy;

xy=y*32+x+textpage*0x0200;

Write_LCD_Data(xy&0xff);

Write_LCD_Data(xy/256);

Write_LCD_Cmd(0x24);


 

//設定圖形頁地址子程序

void Graph_Address(unsigned char x,

unsigned char y)

{

extern unsigned char graphpage; unsigned int xy;

graphpage+=2;

xy=y*32+x+graphpage*0x1000;

Write_LCD_Data(xy&0xff);

Write_LCD_Data(xy/256);

Write_LCD_Cmd(0x24);

//初始化子程序

void Init_LCD(void)

{

Write_LCD_Cmd(0x90);

Write_LCD_Data(0x20);

Write_LCD_Data(0x00);

Write_LCD_Cmd(0x41);

Write_LCD_Data(0x20);

Write_LCD_Data(0x00);

Write_LCD_Cmd(0x43);

Write_LCD_Cmd(0x89);

Write_LCD_Cmd(0xa1);

Write_LCD_Data(0x0F);

Write_LCD_Data(0x00);

Write_LCD_Cmd(0x22);

Write_LCD_Cmd(0x9c);

3 漢字、字符和圖形的顯示程序

通過調用前面編寫的驅動、初始化和清屏程序就可以方便的實現(xiàn)漢字、字符和圖形的顯示。本文以漢字顯示為例介紹顯示程序的編制。漢字既可以以文本方式顯示也可以以圖形方式顯示。以文本方式顯示時,每次開機都要先把漢字字模寫進液晶顯示模塊的CGRAM,浪費了時間,而且由于CGRAM的容量只有2kb,顯示的漢字有限,所以一般用圖形方式顯示漢字。以圖形方式顯示時先把漢字字模寫在Flash存儲器中,顯示時再從Flash存儲器中取出來,這樣不用每次開機時都寫漢字字模,節(jié)約時間,而且顯示的漢字數(shù)量多。下面給出以圖形方式顯示漢字的通用子程序。漢字字模存儲在Flash存儲器中。

void put_hanzi (char c)

{

unsigned char kk=c;

unsigned int order;

unsigned int aaa;

static unsigned char previous=0x00;

if(previous==0) previous=c;

else

{

order=((unsigned int)

(previous-0xa1)*94+kk-0xa1);

previous=order%8;

aaa=32*previous;

order=order/8;

SCON=0;

SBUF=concode[0x52];
 

kk=order/128;

while(!TI);

SCON=0;

SBUF=concode[kk]; kk=order%128;

kk<<=1;

while(!TI);

SCON=0;

SBUF=concode[kk]; kk=aaa%256;

while(!TI);

SCON=0;

SBUF=concode[kk]; for(kk=0;kk<4;kk++)

{

while(!TI);

SCON=0;

SBUF=concode[0xff]; }

while(!TI);

SCON=0x10;

for (kk=0;kk<16;kk++)

{

Graph_Address(x,y*8+kk);

while(!RI);

previous=SBUF;

SCON=0x10;

write_lcd(concode[previous]);

ctrl(0xc0);

while(!RI);

previous=SBUF;

SCON=0x10;

write_lcd(concode[previous]);

ctrl(0xc0);

previous=0x00;

結束語

本文介紹的液晶顯示模塊已成功應用在便攜式軌頭斷面激光檢測儀中,由于其具有與MCU接口方便、顯示功能強和編程簡單等優(yōu)點,具有廣泛的應用價值。

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

8位單片機在嵌入式設計領域已經成為半個多世紀以來的主流選擇。盡管嵌入式系統(tǒng)市場日益復雜,8位單片機依然不斷發(fā)展,積極應對新的挑戰(zhàn)和系統(tǒng)需求。如今,Microchip推出的8位PIC?和AVR?單片機系列,配備了先進的獨立...

關鍵字: 單片機 嵌入式 CPU

在嵌入式系統(tǒng)開發(fā)中,程序燒錄是連接軟件設計與硬件實現(xiàn)的關鍵環(huán)節(jié)。當前主流的單片機燒錄技術已形成ICP(在電路編程)、ISP(在系統(tǒng)編程)、IAP(在應用編程)三大技術體系,分別對應開發(fā)調試、量產燒錄、遠程升級等不同場景。...

關鍵字: 單片機 ISP ICP IAP 嵌入式系統(tǒng)開發(fā)

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關鍵字: 單片機 看門狗 嵌入式系統(tǒng)

本文中,小編將對單片機予以介紹,如果你想對它的詳細情況有所認識,或者想要增進對它的了解程度,不妨請看以下內容哦。

關鍵字: 單片機 開發(fā)板 Keil

隨著單片機系統(tǒng)越來越廣泛地應用于消費類電子、醫(yī)療、工業(yè)自動化、智能化儀器儀表、航空航天等各領域,單片機系統(tǒng)面臨著電磁干擾(EMI)日益嚴重的威脅。電磁兼容性(EMC)包含系統(tǒng)的發(fā)射和敏感度兩方面的問題。

關鍵字: 單片機 電磁兼容

以下內容中,小編將對單片機的相關內容進行著重介紹和闡述,希望本文能幫您增進對單片機的了解,和小編一起來看看吧。

關鍵字: 單片機 復位電路

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關報道。如果你對本文即將要講解的內容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關鍵字: 單片機 異常復位

今天,小編將在這篇文章中為大家?guī)韱纹瑱C的有關報道,通過閱讀這篇文章,大家可以對它具備清晰的認識,主要內容如下。

關鍵字: 單片機 仿真器

單片機將是下述內容的主要介紹對象,通過這篇文章,小編希望大家可以對它的相關情況以及信息有所認識和了解,詳細內容如下。

關鍵字: 單片機 中斷 boot

一直以來,單片機都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)韱纹瑱C的相關介紹,詳細內容請看下文。

關鍵字: 單片機 數(shù)字信號 模擬信號
關閉