王虹 龐姣 梁曉琳
(河北大學電子信息工程學院,河北保定 071002)
單片機技術在工業控制、儀器儀表、嵌入式系統等領域應用廣泛,各高校都將單片機教學納入到教學計劃中,設置了多門相關課程[1]。《單片機原理》課程實踐性強,需要通過實驗課上的實踐環節才能加深學生對課程內容的理解和掌握[2]。為了讓學生掌握文獻檢索、硬件電路設計、程序設計、焊接和系統調試的單片機系統設計流程與方法,以及Proteus、Keil uVision、Altium Designer等軟件的使用,設計了基于“點陣顯示屏”的單片機綜合型實驗,該實驗項目包括點陣顯示屏的Proteus仿真設計和實物設計兩部分。
本實驗要求設計基于51系列單片機和8×8 LED點陣的模塊化顯示電路,各模塊之間可級聯,可顯示漢字、字符和數字等常規信息。學生首先根據題目要求設計實驗方案。在考慮實驗室條件和成本的前提下完成芯片選型。確定總體方案后在Proteus軟件中設計仿真電路,在Keil uVision軟件中完成基于C51語言的程序編寫和調試。參考仿真電路完成實際電路的設計和制作,將程序下載到實物中調試功能。在實現預定功能的基礎上進行總結,撰寫設計報告。下面以單片機控制4級級聯的16×16LED點陣屏為例介紹具體的實驗過程。
Proteus軟件是Lab Center Electronics公司推出的一款實用單片機仿真設計電子設計自動化(Electronic Design Automation,EDA)工具軟件,可以在該軟件中繪制原理圖,進行仿真實驗[3]。為了達到較好的漢字顯示效果,將4塊共陰極8×8LED點陣拼接成1塊16×16的LED點陣模塊,針對16×16的LED點陣模塊設計相應的行列驅動電路和單片機控制電路。
采用STC89C52單片機作為核心器件設計點陣顯示模塊的控制電路,用來發送指令、控制顯示內容,單片機最小系統由單片機、時鐘電路、復位電路以及電源電路構成[4]。
74HC154型4/16譯碼器是一款高速CMOS器件,可以接收4位高電平有效的二進制地址輸入,并提供16個互斥的低電平有效輸出[5]。選用74HC154作為LED顯示模塊的行驅動芯片,其16位譯碼輸出用來選通LED顯示模塊的16個行。
74HC595是8位串行輸入、并行輸出的移位緩存器[6]。選用2片74HC595級聯作為點陣顯示模塊的列驅動芯片。在SHCP引腳的上升沿,串行數據由DS輸入到內部移位緩存器,同時緩存器最高位的數據由引腳輸出。74HC595的并行輸出控制點陣的8個列,作為級聯引腳。
顯示驅動程序主要包括74HC595寫函數、中斷服務函數和主程序。將要顯示的字符輸入取模軟件得到相應的16進制編碼,保存在數組中。主程序首先進行初始化,然后進入while循環等待中斷。在中斷服務函數中調用595寫函數寫入一行數據。為了保證動態掃描顯示時可以看到穩定的圖像,設置每2ms發生一次中斷。中斷使用定時/計數器T0,工作方式1(16位計數器)。單片機外部晶振為12MHz,定時2ms需要向TH0送入0xF8,向TL0送入0x30。74HC595寫函數中,單片機通過for循環將要寫入的8位數據按位輸出到74HC595的DS端,并在其SHCP(第11引腳)引腳上產生符合時序要求的移位時鐘信號,驅動74HC595將數據讀入緩存。74HC595寫函數參考代碼如下:


在Keil uVision平臺下編寫C51程序生成.HEX目標文件,雙擊Proteus電路圖中的單片機,將該可執行文件加載到編程文件屬性,程序運行后可以看到顯示結果[4]。4級16×16LED級聯的顯示屏仿真電路和顯示“河北大學”四個漢字的仿真結果如圖1所示。
圖2為16×16點陣顯示模塊電路原理圖,模塊間通過74HC595的Q7"和DS引腳級聯。單片機控制電路設計可根據學時靈活掌握,學時不足時可以直接使用單片機開發板。單片機控制電路設計應注意:(1)設計5V電源供電電路。(2)設計串口通信電路或引出串口使用USB-TTL程序下載器寫入程序。(3)單片機P0口作為通用I/O口(漏極開路)需外接上拉電阻;P1、P2和P3口為內部弱上拉(內部約30kΩ的上拉電阻),可根據實際驅動電流大小判斷是否外接上拉電阻[4]。(4)用單排針引出單片機I/O,便于后期功能擴展。

圖1 仿真電路及顯示結果

圖2 點陣顯示模塊原理圖

圖3 點陣顯示屏實物
用杜邦線連接4級16×16LED點陣顯示屏及單片機控制板,搭建硬件電路。使用ISP軟件將程序下載到單片機,調試程序。圖3所示為實際電路顯示“河北大學”四個漢字時的實驗結果。學生在實現基本功能的基礎上可以完成擴展項目。如增加屏幕滾動顯示功能;增加時鐘芯片設計電子時鐘;增加傳感器實現參數測量與顯示等。
該實驗項目綜合性強,實驗內容可靈活擴展。實驗中使用了Proteus軟件的仿真設計和調試功能,減少了反復制作和修改硬件電路的時間,降低成本,提高效率。在仿真實驗的基礎上,要求學生進一步完成實際“點陣顯示屏”的設計與制作,可以讓學生體會到仿真與實際間的差距,增加實踐經驗。在完成該實驗項目的過程中,學生對專業知識的掌握程度和具備的專業素質可以得到更全面的檢查和鍛煉。該實驗以項目開發為驅動力,有利于激發學生的學習興趣,培養學生的探究思維和創新意識,教學效果良好。