摘要:給出了一種基于51單片機及可編程并行接口芯片82C55A的液晶/語音控制電路的設計,從硬件和軟件兩方面對這種設計作了詳細的介紹和分析。通過對單片機編程,控制82C55A的工作方式,從而達到對液晶顯示器及語音電路的使用。
關鍵詞:單片機;可編程;82C55A;液晶顯示器
中圖分類號:TP271文獻標識碼:A文章編號:1009-3044(2008)25-1563-03
Design of LCD/Voice Control Circuits Based on 51 Single-Chip Microcomputer
YU Xiao-long1,ZHANG Zhen1,2
(1. Information Engineering Institue, Information Engineering University, Zhengzhou 450002, China;2. Zhengzhou University, Zhengzhou 450001, China)
Abstract: This paper introduces a control circuits's design of LCD/Voice based on 51-SCM and programmable peripheral interface 82C55A. It detailed analyse the design of hardware and software. Throughing the programme of SCM, it control the working of 82C55A ,accordingly arrive at the use ofLCD/Voice circuits.
Key words: SCM; Programmable; 82C55A; LCD
當前,有很多商業場所及嵌入式產品中都用到了顯示輸出模塊,在這些電路中,有很大一部分是通過單片機進行控制的。本文提出了一種典型控制液晶顯示及語音的電路,通過51單片機AT89C55和并行接口芯片82C55A實現了對圖形液晶顯示模塊NYG12864及語音的控制。
1 硬件電路設計
1.1 主控制電路設計
在主控制電路中,選用Atmel公司的AT89C55芯片。AT89C55是一款低功耗、高性能8位CMOS微控制器,內含20KB可循環1000次寫入/擦除的閃速存儲器(Flash),具有256*8位內部隨機數據存儲器(RAM),32條可編程I/O口線,8個中斷源和2個優先級的中斷結構,器件兼容標準MCS-51指令系統,引腳兼容工業標準89C51和89C52芯片,采用全雙工串行通道及通用編程方式,適用于程序容量大、控制較為復雜的嵌入式應用系統中。電路工作方式控制芯片選用82C55A,它是一款可編程并行接口芯片,其工作方式有三種,三種工作方式是由其控制命令字來設定的。控制命令字有兩種,一種是方式選擇控制字,另一種是C口按位置位/復位控制字,通過寫入不同命令控制字可分別實現對其內部A口、B口和C口的單獨控制操作。
在電路設計上,考慮到所編寫程序的容量,增加了一片AT28C64,它是一款低功耗,最快讀訪問時間可達120ns的64K CMOS型的 E2PROM,這樣整個電路足以滿足通常編程時對程序空間的要求。完整的電路圖如圖1所示。其中,AT89C55選用12M的晶振,其引腳P27直接控制LCD的使能信號E,P25、P26分別連接AT28C64及82C55A的片選引腳。引腳PSEN和RD相與后連接到AT28C64的OE端,這樣AT28C64既可以作為程序存儲器也可作為數據存儲器使用了。
■
圖1 主控制電路
1.2 液晶顯示及語音控制電路的設計
本設計中液晶顯示模塊選用圖形液晶顯示模塊NYG12864,它的所有控制器、掃描電路和顯示RAM集成于液晶屏背面,并可選用LED背光,采用單電源供電。該模塊由大規模點陣式顯示控制器KS0107、液晶屏陣列驅動電路KS0108B、顯示存儲器和液晶屏等4部分組成。其中控制器是整個顯示系統核心,它提供了一套完整的指令系統,與單片機連接后,能較方便的實現對數據的讀寫等控制作用。NYG12864引腳定義如表1所示。
表1 液晶模塊NYG12864引腳定義
■
在控制液晶電路中,將82C55A的PC3、PC2、PC1和PC0分別和液晶的D/I、R/W、CS2和CS1相連,以達到通過82C55A對液晶的控制。單片機的8位端口P0和液晶的8位數據線DB0~DB7相連,用于讀寫時傳送的數據。電路中還有諸如電位器R2其作用是調節液晶顯示的對比度,完整的電路圖如圖2所示。
■
圖2 液晶顯示電路
對于語音電路,選用API8108芯片,它能夠存儲10秒的語音信息,當然根據實際需要,可以選用其他的芯片以滿足要求。因受輸出功率影響,在API8108的輸出端接有為低電壓應用設計的音頻功率放大器LM386,其輸入帶寬可達300KHz,通過合理連接,能得到的電壓增益最大可達200dB,輸出音頻功率0.5W。它們和82C55A之間具體連接圖如圖3所示。
■
圖3 語音控制電路
2 軟件設計
軟件設計中難點在于如何控制液晶顯示器的顯示,對于語音芯片的控制可通過單片機中斷方式進行判斷調用。在液晶顯示模塊NYG12864中,只有驅動電路KS0108B和單片機打交道。它有7種指令:顯示開/關指令、顯示起始行設置命令、頁設置指令、列地址設置指令、讀狀態指令、寫數據指令以及讀數據指令。其中,CS1、CS2決定進行左右顯示區的選擇,R/W、D/I及數據內容決定指令的類型。首先要對液晶清屏和初始化操作,設置起始行及為顯示狀態;其次讀取液晶狀態,此時R/W=1,D/I=0,若液晶準備好接收數據則使R/W=0,讀取液晶頁號(0~7),列顯示地址(0~63)值,這樣就唯一確定了顯示RAM中的一個單元,接下來就可以用讀、寫指令向該單元寫進一個字節數據或者讀出該單元中的內容。在主程序中可以調用液晶的初始化、讀/寫子函數,主程序流程圖如圖4所示。
■
圖4 主程序流程
3 結束語
本文介紹了一種基于51單片機控制液晶顯示及語音的電路,設計思想和方法具有一定的典型性和代表性,對電路稍加修改就能應用于其他場合,如在主控電路中再加入幾片82C55A就能實現更加復雜的電路控制,這些都是筆者在實踐過程中得來的,相信能對單片機系統的開發人員有一定的啟發。
參考文獻:
[1] 戴佳,戴衛恒. 51單片機C語言應用程序設計[M]. 北京:電子工業出版社,2006.
[2] 何立民. MCS-51系列單片機應用系統設計[M]. 北京:航空航天大學出版社,1996.
[3] 孫德文. 微型計算機技術[M]. 北京:高等教育出版社,2001.