點陣液晶顯示器具有可顯示復雜的文字及圖形,顯示屏面積大小多樣等優點,在智能儀器儀表、電子設備等工業、民用方面有著廣泛的應用前景。 ST 公司的mPSD系列單片機以其接口功能強大、存儲容量大和系統開發方便等優點,逐漸被應用到對功能要求較高的控制領域。其可編程邏輯的豐富外圍接口和大容量存儲器的使用必須通過PSDsoft? Express軟件配置,與傳統51系列單片機開發不同。本文通過在實際項目中對mPSD3334D的應用,重點介紹了其特點及其與內置SED1520液晶控制器的液晶模塊GXM12232-1的接口,并給出了mPSD3334D的引腳配置和GXM12232-1顯示控制流程圖。 mPSD3334D及SED1520簡介 mPSD3334D單片機 mPSD33xx 系列單片機是高性能嵌入式控制器,整合了8051微控制器、靈活的存儲器結構、可編程邏輯和豐富的外圍接口。芯片由MCU和PSD兩大模塊組成。該系列不同種類單片機的區別主要體現在存儲器空間大小和MCU模塊、PSD模塊供電電壓的不同。mPSD3334D存儲空間為256KB Flash、8KB SRAM,MCU模塊采用3.3V供電,PSD模塊采用5.5V供電。 圖1 采用主從式SED 1520進行行擴展 與傳統8032單片機比較,除時鐘特性和可控制指令預取、跳轉緩存特性不同外,其余不同主要表現在如下方面: 1. 靈活的擴展外圍接口功能。PA、PB、PC、PD口為多功能復用口,通過相應寄存器的設置可根據系統需要靈活進行功能切換。端口供電電壓與MCU模塊電壓的不同,可方便與外圍不同供電電壓器件接口,減少系統電壓轉換的設計。 2. 高性能JTAG調試、下載功能,方便產品開發和生產。 SED1520驅動器 SED1520是一種點陣圖形式液晶驅動器,可直接與8位CPU相連,使用方便。SED1520通常集列驅動器和控制器于一體,作為內藏式控制器,廣泛應用于小規模液晶模塊的顯示。 圖2 控制命令流程圖 SED1520驅動器的主要特點為: 1. 內部顯示RAM容量為2560b。其每一位數據控制液晶屏上一點的亮滅狀態。“1”表示亮,“0”表示暗。 2. 具有16個行驅動和61個列驅動,可方便與SED1521配合,進行單一列的擴展。 3. 總線速度可達10M,顯示占空比為1/16或1/32。 采用SED1520作為驅動器的液晶模塊,根據液晶屏的大小不同,SED1520、SED1521對行、列的組合有所不同。如屏大小為141×16、占空比為1/16的液晶模塊采用SED1521進行了列的擴展。當液晶屏行數超出單片SED1520的行驅動能力時,可采用主從式SED1520進行行擴展。如圖1所示。 本文介紹的GXM12232-1液晶模塊采用的SED1520驅動器的內部系統框圖即為圖1所示。采用主從結構的兩片SED1520分別控制顯示屏幕左、右半屏顯示。 SED1520指令與顯示RAM結構 SED1520指令系統比較簡單,共13條,除讀狀態指令、讀顯示RAM數據指令外,其他指令均為寫操作,并且讀寫指令均為單字節指令。在送出每條指令時,必須進行控制器狀態檢測,狀態字節的含義如下: D7:1/0,模塊忙/準備就緒; D5:1/0,模塊顯示關/開; D4:1/0,模塊復位/正常; D3-D0:未用 在指令使用中,關鍵要分清顯示行、列設置和顯示頁面設置的關系。單片SED1520可驅動61×16液晶屏,其內部顯示RAM相對于COM0每8行為一個顯示頁面,故本文使用的模塊可顯示4頁。 圖3 字符、圖形顯示流程圖 液晶模塊與mPSD3334D的硬件接口與配置 SED1520 驅動器設計有80-CPU和68-CPU兩種接口時序。GXM12232-1模塊在采用不同控制時序時,引腳連接功能不同。本設計在使用該模塊時采用了 68-CPU的控制時序。PA口與液晶模塊數據線連接,PB4、PB3分別連接液晶模塊引腳E1、E2,PB2連接模塊RW,PB1連接模塊數據命令控制引腳A0。 PSD模塊PA、PB口引腳定義 mPSD3334D單片機的PA是多功能復用口,PB口具有可編程邏輯輸出功能。在本文中為便于程序移植和接口時序要求,PA口設置成外圍設備模式;PB4、PB3設置成CPLD輸出外部片選、高電平有效模式,命名為LCD_E2、LCD_E1;PB2、PB1設置成CPLD輸出Combinatorial模式,命名為LCD_RW、 LCD_A0。PA口的外圍設備模式的引腳定義必須使用PSDsoft_Express軟件才能完成,在程序運行時引腳工作模式不能更改。 PSD模塊邏輯功能設置 根據接口時序的要求,對PA、PB口進行相應邏輯功能的設置。與本文涉及密切的邏輯功能主要有PSEL和PB[4:1]引腳信號。PSEL、PB4和PB3 是片選邏輯設置,PB2和PB1是I/O邏輯功能設置。片選邏輯功能設置時必須保證與mPSD3334D中Flash和SRAM存儲區的地址分布不相沖突。以上邏輯功能的設置必須在PSDsoft Express軟件的設計輔助窗口中完成。 當PA口工作在外圍設備I/O模式時,PSEL片選邏輯地址即為PA口的外圍設備I/O地址空間。在PA口外圍設備I/O模式中,可以設置其中任意一項。主程序必須初始化VM寄存器使能PA口外圍設備I/O模式。 設置PB4、PB3邏輯,使能LCD_E1、LCD_E2信號用于選中LCD模塊的Master、Slave控制器。當I/O地址范圍在Hex Start和Hex End之間,且讀或寫信號有效時,LCD_E1和LCD_E2引腳信號被選中。 LCD_RW用于區別命令或數據的讀、寫,LCD_A0用于區別命令或數據。在I/O邏輯功能設置中,根據片選信號的設置,LCD_RW與地址信號a0相連,LCD_A0與地址信號a1相連,LCD_A0=0表示命令,LCD_A0=1表示數據。 根據上述設置情況可以看出,地址信號a2用于區分Master、Slave驅動器的選擇,a1a0組合實現對命令、數據的讀寫控制。GXM12232-1模塊Master、Slave驅動器相應命令、數據控制地址如表1所示。 液晶模塊顯示軟件設計流程 SED1520控制器的控制命令是單字節指令。在GXM12232-1模塊中進行控制時,根據Master、Slave模塊的數據、命令地址送出相應數據、命令字節。但是在每次讀寫數據或命令時,必須進行忙狀態檢測。有關命令字在前面和相關數據手冊中有具體介紹。圖2給出了控制命令字流程圖。 SED1520控制器正常工作必須進行一定配置,其中包括顯示開關、靜態或動態顯示、占空比等,該過程主要是寫命令控制過程,通過多次調用OutMasterCom (unsigned char i)、OutSlaveCom(unsigned char i)完成。以GXM12232-1模塊的Master控制器為例,其命令控制代碼如下。對于Slave控制器,更改相應地址即可。 void OutMasterCom( unsigned char i ) // write master command { while ((rm_status & 0x80));//rm_status the command read address of master wm_command = i;//wm_command the command write address of master } 以GXM12232-1模塊的Master控制器為例,其寫數據代碼如下。 void OutMasterDat( unsigned char i ) //write master data { while ((rm_status & 0x80)); wm_data = i; //wm_data the data write address of master } 液晶屏的數據顯示過程主要分為顯示地址命令設置和送出顯示數據兩步。GXM12232-1模塊由Master、Slave兩個控制器構成。當設置顯示列地址大于60時,顯示窗口切換為Slave,即屏幕顯示的右半屏。在應用中顯示數據采用縱向取模方式。在GXM12232-1模塊進行字符、圖形顯示時必須注意顯示窗口和PAGE的范圍。程序流程如圖3所示。因對于不同的顯示對象頁占據的大小不同,在頁范圍檢測時需根據對象大小確定檢測范圍。 結語 本文介紹了mPSD系列單片機PA口在外圍設備I/O模式下與GXM12232-1模塊的連接與相應顯示程序設計。GXM12232-1模塊的程序設計采用了C51硬件語言,可移植性較強,同時有助于其他內置SED1520液晶控制器的模塊應用。 |