新聞中心

EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 采用C8051F020設(shè)計(jì)的嵌入式測試儀

采用C8051F020設(shè)計(jì)的嵌入式測試儀

作者:杜婷婷,蔣存波,孫朝華,陳銘 時(shí)間:2008-07-14 來源:電子元器件應(yīng)用 收藏

  0 引言

本文引用地址:http://2s4d.com/article/85660.htm

  隨著技術(shù)的不斷發(fā)展,將操作系統(tǒng)應(yīng)用到領(lǐng)域,從而實(shí)現(xiàn)在線實(shí)時(shí)已經(jīng)成為一種發(fā)展趨勢,而且越來越多的工業(yè)現(xiàn)場對各種儀器的需求不斷增高,希望儀器能夠向在線實(shí)時(shí)測試方向發(fā)展。基于這些需求,本文給出了基于C8051F020控制的測試儀鍵盤顯示部分的設(shè)計(jì)方案。在整個(gè)測試系統(tǒng)中,本部分只是作為下位機(jī),并通過RS485總線接口與上位機(jī)進(jìn)行通信,從而將接收到的測試數(shù)據(jù)根據(jù)控制命令的要求在顯示器中予以顯示,同時(shí)將測試人員發(fā)送的各類請求信號回送給上位機(jī)以對測試數(shù)據(jù)進(jìn)行一定的處理。

  1 系統(tǒng)硬件設(shè)計(jì)

  本系統(tǒng)的硬件由模塊(C8051F020)、電源模塊、顯示模塊(OCM320240K)、矩陣鍵盤模塊等四部分構(gòu)成,其系統(tǒng)總體硬件設(shè)計(jì)框圖如圖1所示。其中,本設(shè)計(jì)中外擴(kuò)的緩沖存儲器和FLASH存儲器。解決了高速數(shù)據(jù)接收與處理不匹配、字符庫容量小的問題。

  1.1 模塊C8051F020

  C8051F020是美國Cygnal公司推出的高性能單片機(jī),是完全集成的混合信號系統(tǒng)級芯片,它的出現(xiàn)徹底改變了人們對8051單片機(jī)速度慢、性能低的印象。C8051F020使用了Cygnal專利的高速、流水線結(jié)構(gòu)以及與MCS-51指令集完全兼容的CIP-51微處理器內(nèi)核。CIP-51在提升8051速度上采取了新的途徑,該芯片在保持CISC結(jié)構(gòu)及指令系統(tǒng)不變的情況下,可對指令運(yùn)行實(shí)行流水作業(yè),從而廢除了機(jī)器周期的概念。它的指令以時(shí)鐘周期為運(yùn)行單位,平均每個(gè)時(shí)鐘周期可執(zhí)行1條單周期指令,從而大大提高了指令運(yùn)行速度,是一種功能比較齊全的高速、高性能單片機(jī)。

  本系統(tǒng)設(shè)計(jì)選用此款單片機(jī)作為測試儀的的最主要原因,一方面是由于CIP-51與MCS-51指令完全兼容,可使用標(biāo)準(zhǔn)的8051的匯編器、編譯器及軟件包進(jìn)行軟件開發(fā),同時(shí)也很方便使用人員進(jìn)行軟件移植;另一方面可充分利用其豐富的通用數(shù)字端口資源,而不用地址/數(shù)據(jù)線復(fù)用,其外圍電路的設(shè)計(jì)也可以大大簡化。由于該芯片的低端口(P0、P1、P2、P3)既可按位尋址,也可按字節(jié)尋址,所以系統(tǒng)所需的控制信號都設(shè)計(jì)在低端口部分;而高端口(P4、P5、P6、P7)只能按字節(jié)尋址,故MCU與顯示模塊、存儲器等模塊的數(shù)據(jù)、地址總線均設(shè)計(jì)在高端口部分;C8051F020豐富的端口資源及其分配的靈活性是通過使用優(yōu)先權(quán)交叉開關(guān)譯碼器實(shí)現(xiàn)的;而且所有引腳都采用5V電壓.并都可以配置為漏極開路或推挽輸出方式和弱上拉。

  1.2 液晶顯示模塊OCM320240K

  人類獲取信息有80%來自視覺,且各種信息最終都通過信息顯示來實(shí)現(xiàn)人機(jī)交換。由于液晶顯示器件()具有低工作電壓,微功耗,使用CMOS電路直接驅(qū)動(dòng),而且輕便易攜帶,因此,一經(jīng)出現(xiàn)就倍受青睞,自然成為智能儀表等產(chǎn)品的首選顯示器件。

  本系統(tǒng)中的單片機(jī)對液晶模塊的控制采用間接控制方式。即不使用單片機(jī)的數(shù)據(jù)系統(tǒng),而利用它的I/O口來實(shí)現(xiàn)與液晶模塊的聯(lián)系。設(shè)計(jì)時(shí)可將液晶模塊的數(shù)據(jù)總線與單片機(jī)的P1口進(jìn)行連接作為數(shù)據(jù)總線,另外三根時(shí)序控制信號線通常利用8051的P3口中未被使用的I/O口來控制。該訪問方式不占用CPU的存儲器空間,它的接口電路與時(shí)序無關(guān),其時(shí)序完全靠軟件編程來實(shí)現(xiàn)。

  圖形點(diǎn)陣式液晶顯模塊OCM320240K的PCB板上含有完整的驅(qū)動(dòng)器系統(tǒng)(內(nèi)置SED1335液晶顯示控制器),其接口系統(tǒng)則包含了驅(qū)動(dòng)系統(tǒng)所需的控制信號和電源。它的行、列驅(qū)動(dòng)器均采用KS0086,并由4個(gè)運(yùn)算放大器組成液晶顯示偏壓電路。點(diǎn)陣液晶顯示控制器SED1335通過其與單片機(jī)的接口及編程可實(shí)現(xiàn)對液晶顯示器的文字、圖形、菜單、翻頁和內(nèi)容的左右移動(dòng)等功能。對輸出到液晶顯示器件電極上的電位信號進(jìn)行相位、峰值、頻率等參數(shù)的調(diào)制可以建立交流驅(qū)動(dòng)電場,從而實(shí)現(xiàn)液晶顯示。

  1.3 電源模塊

  針對工業(yè)現(xiàn)場使用的便攜式測試儀,可考慮采用直流電源供電。本系統(tǒng)所需的三個(gè)電源分別為+5 V、+3.3 V、-23 V。其中+3.3 V是給C8051F020芯片供電。-23 V是液晶顯示器所需的大負(fù)電壓驅(qū)動(dòng)電源,+5 V是驅(qū)動(dòng)器和其它芯片的邏輯電源。電源模塊的設(shè)計(jì)采用外部雙電源供電,+8 V和-33 V直流電源經(jīng)過穩(wěn)壓電路后可分別提供上述三種電壓。具體電路設(shè)計(jì)如圖2所示,其中在+5 V和+3.3 V的電源接口中連接的LED燈可作為電源指示燈,燈亮表示電源接通。電路中的電容則用于電源的濾波。

  1.4 矩陣鍵盤模塊

  鍵盤模塊的設(shè)計(jì)采用中斷方式非編碼8×8矩陣鍵盤,為了節(jié)省功耗,設(shè)計(jì)中選用了上拉電阻。按鈕的行、列線分別接到MCU的P2、P3端口,INT0作為外部中斷連接到MCU的P0.2端口。按鍵包含有0~9數(shù)字鍵、菜單顯示的“確定”、“取消”、“上翻”、“下翻”等控制鍵及測試系統(tǒng)所需的其它基本功能鍵。

  1.5 外部擴(kuò)展電路

  本設(shè)計(jì)中的外擴(kuò)電路有兩部分:其一是外擴(kuò)了高速緩沖存儲器,由于該測試儀通過RS485總線從上位機(jī)接收的數(shù)據(jù)可能是高速數(shù)據(jù),而高速的總線數(shù)據(jù)和顯示模塊的處理速度可能不匹配,因而必須考慮采用外部擴(kuò)展高速緩存來滿足顯示模塊中64 KB顯示RAM的要求也可將測試數(shù)據(jù)分屏顯示。本文選用128 KB的SRAM芯片STC62WV1024;其二是外擴(kuò)了一片F(xiàn)LASH存儲器來為測試儀增加掉電保護(hù)功能,以便在突然斷電情況下不丟失測試數(shù)據(jù)。更主要的目的是,由于顯示模塊中自帶的用戶自定義字符庫CGRAM容量小,所以考慮將所建的國標(biāo)基本字庫存放在外擴(kuò)的FLASH中,由MCU根據(jù)用戶需要對其進(jìn)行動(dòng)態(tài)管理,同時(shí)不斷完成所需顯示字庫的調(diào)入調(diào)出操作。這樣既可滿足大容量字庫的要求,又能達(dá)到實(shí)時(shí)調(diào)度。本設(shè)計(jì)選用的是K9F2G08U芯片。

  2 顯示模塊的軟件設(shè)計(jì)

  2.1 初始化

  液晶顯示器的顯示功能之所以強(qiáng)大,除了其本身具備一定的硬件顯示功能外,更重要的是通過軟件設(shè)計(jì)來實(shí)現(xiàn)各種顯示功能,包括基本顯示和由基本顯示組合而成的擴(kuò)展功能顯示。但在使用之前,一般都必須根據(jù)液晶顯示模塊的特性選擇初始化參數(shù),以對其進(jìn)行初始化,初始化流程如圖3所示,其具體的初始化代碼如下:

  2.2 漢字顯示

  SED1335通過字符代碼來確定字符庫中字符首地址,并將相應(yīng)的字模數(shù)據(jù)送到液晶顯示模塊。在液晶屏上出現(xiàn)該字符的16×16點(diǎn)陣塊實(shí)際上就是文本顯示RAM中的一個(gè)字節(jié)所對應(yīng)的顯示屏上的16×16點(diǎn)陣。通過SED1335顯示存儲器內(nèi)用戶自定義的字符庫CGRAM。用戶可在相應(yīng)的單元寫入相應(yīng)的字符代碼,然后通過對子程序的調(diào)用即可實(shí)現(xiàn)漢字顯示,下面是顯示漢字“歡迎使用”的部分程序代碼:

  由于CGRAM容量有限,故可考慮將用戶自定義的國標(biāo)基本字符庫放在外擴(kuò)的FLASH中,然后由MCU根據(jù)測試數(shù)據(jù)類型和用戶需求不停地從FLASH字庫中動(dòng)態(tài)調(diào)入所需字庫并暫存在CGRAM中。通過顯示模塊自定義字庫的擴(kuò)展,可使OCM320240K的顯示功能更加完善和強(qiáng)大。從而更適合于各種領(lǐng)域的顯示。

  2.3 菜單顯示

  液晶模塊的菜單顯示設(shè)計(jì)應(yīng)盡量與普通微機(jī)上的菜單結(jié)構(gòu)保持一致(即呈樹形拓?fù)浣Y(jié)構(gòu)),以適應(yīng)操作人員的操作習(xí)慣。本設(shè)計(jì)中的菜單顯示是在鍵盤的配合下實(shí)現(xiàn)的。為了簡化操作,鍵盤中與菜單顯示有關(guān)的控制鍵一般只設(shè)置“確定”、“取消”、“上翻”、“下翻”等基本功能,通過這幾個(gè)按鍵即可操作菜單顯示程序和命令執(zhí)行程序,其鍵盤響應(yīng)及菜單顯示流程如圖4所示。操作時(shí),按下“確定”鍵,屏幕將顯示下一級菜單;而按下“上翻”、“下翻”鍵,閃爍光標(biāo)將在同一級菜單的各個(gè)菜單項(xiàng)間移動(dòng),以表示當(dāng)前選中的菜單。對各級菜單進(jìn)行編號時(shí),可以設(shè)置兩個(gè)變量mn、ln來分別表示當(dāng)前的菜單號和光標(biāo)所在的行(第一行為0,以此類推)。在程序初始化時(shí),mn=0、ln=0;用“確定”鍵可則可改變菜單編號(mn=mn×2+ln),“取消”鍵改變菜單編號(mn=[mn/2]),“上翻”、“下翻”鍵可改變光標(biāo)位置(ln=ln±1)。如12號菜單就是5號菜單光標(biāo)位置處于第三行(ln=2)時(shí)按“確定”鍵得到的,其編號為5×2+2=12。確定菜單編號和光標(biāo)位置后,再調(diào)用顯示程序(或函數(shù)執(zhí)行程序)即可顯示新一級菜單并重新設(shè)置光標(biāo)位置。其例程代碼如下:

  3 結(jié)束語

  在完成了軟硬件設(shè)計(jì)之后,即可對于本設(shè)計(jì)的電路板進(jìn)行調(diào)試,以實(shí)現(xiàn)其顯示功能。目前,本系統(tǒng)與上位機(jī)的級聯(lián)調(diào)試還在進(jìn)行之中。此外,考慮到觸摸屏使用的日益廣泛,本系統(tǒng)在電路設(shè)計(jì)中還考慮了與帶觸摸屏控制器(ADS7843)的顯示模塊DV320240F的接口,以便于今后根據(jù)需要增加觸摸功能。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 嵌入式 測試 MCU 測控 LCD

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉