S3F9454
S3F9454,在S3F9454可用于專用控制功能于一身的多種應用,而且對于應用設計的FRS或等該S3F9454單芯片8位微控制器是制作中,采用先進的CMOS工藝。它是建立在強大的SAM88RCRI CPU核心。
停止和空閑掉電模式進行實施,以減少電力消耗。為了提高芯片寄存器空間,內部寄存器文件大小在邏輯上擴大。該S3F9454有4K的程序ROM字節和208字節的RAM(包括16和16的工作寄存器字節液晶顯示RAM字節)。
3f9454 是一種高性能低價位單片機。但因其引腳少,給系統設計尤其是led 顯示接口電路的設計帶來一定難度,采用串入并出移位寄存器741S164 圓滿地解決了這一問題。介紹了接口電路的構成原理與軟件實現。實際運行表明,控制電路可成功地應用到3f9454 單片機為核心的智能儀表中。
三星S3F9454單片機是一款單片8位CMOS型微控制器,它向用戶提供高效快速的CPU處理,豐富的外圍接口,以及各種類型的可編程ROM。它的數據/地址總線結構和為編程I/O口提供了一個靈活的編程環境,能夠滿足不同用戶對存儲器和I/O口的要求。但它的引腳只有20個,即并行I/O端口較少。如何利用這較少的幾根口線,連接成穩定可靠的LED數碼管顯示電路,就是以S3F9454單片機為核心的應用電路所要解決的瓶頸問題。
我們采用74LS164這個串入并出的移位寄存器,很好地解決了S3F9454與LED數碼管的顯示接口電路及按鈕控制電路問題。
一、硬件實現
1.單片機完全雙向的I/O引腳
一個I/O口可以被看作是單片機最小的一個外圍功能模塊。通過它可使單片機檢測各種信號或控制其他電路和器件。S3F9454單片機的一個典型的I/O端口既可以設置為數字信號輸出,又可以作為數字信號輸入,是一個標準的雙向端口。作為輸出時,可以提供很強的負載驅動能力,高電平輸出時的拉出電流和低電平輸出時的灌入電流都可以達到25mA;作為輸入時,端口呈現極高的輸入阻抗,由端口引入的輸入漏電流不超過1μA,對輸入的信號來說此端口基本可視為開路或浮空狀態。這種輸入/輸出的狀態選擇完全是由用戶軟件自由設定的,且每一個引腳都可以各自獨立設定,互不影響。
2.74LS164工作原理
74LS164為TTL單向8位移位寄存器,可實現串行輸入,并行輸出,如圖1所示。其中A、B(第1、2腳)為串行數據輸入端,2個引腳按邏輯與運算規律輸入信號,共一個輸入信號時可并接。CP(第8腳)為時鐘輸入端,可連接到單片機時鐘控制端。每一個時鐘信號的上升沿加到CP端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進制數全部移入74LS164中。MR(第9腳)為復位端,當R=0時,移位寄存器各位復0,只有當R=1時,時鐘脈沖才起作用。Q1…Q8(第3-6和10-13引腳)并行輸出端分別接到LED顯示器的各段對應的引腳上。
3.硬件電路
電路中包含8位待顯示的LED數碼管,8個LED指示燈及6個按鈕,S3F9454在完成其他功能之余,余下的并行I/O口線不足8根,數據的并行輸出已不可能,但可以考慮串行輸出方法。該電路利用兩片74LS164實現以上功能的需要,其中一片74LS164實現8位LED數碼管的片選,另外一片74LS164實現8位LED數碼管段位顯示,利用單片機的完全雙向I/O端口,實現幾個按鈕的功能。其工作過程如下:
(1)顯示部分。S3F9454利用2個單獨端口分別接74LS164的數據及時鐘控制端口,在移位時鐘的作用下,74LS164數據控制端口發送緩沖器的數據一位一位地移入74LS164中,在軟件的控制下作為數碼管位選信號;利用另外2個單獨端口分別接74LS164的數據及時鐘那個控制端口,作為數碼管的段選信號,實現動態數據的顯示。本文電路的獨特之處在于利用單片機的完全雙向I/O端口,改變以往串接鎖存器或三態門的做法。
(2)按鈕控制部分。如圖2所示為節省I/O管腳開支,利用單片機管腳輸入輸出分時復用功能實現按鈕與顯示功能。平時單片機段位顯示管腳處于輸出狀態,通過74LS164控制數碼管的顯示內容,當需要按鍵檢測時,把P0.2管腳改成輸入模式。經電阻限流后,LED中幾乎沒有電流流過,這就保證了圖2中A點電壓在按鍵沒有按下時為高電平。一旦按鍵按下,經過R1與R3電阻的分壓,A點上的電壓值降為0.5V左右,端口上讀到的結果為低電平。檢測按鍵只需要幾條指令,利用人眼的視覺暫留,在整個按鍵檢測過程中,LED的狀態看起來“不變”。檢測完后端口馬上恢復成輸出狀態,LED照原樣顯示。
二、軟件編程
1.單片機定時器
當CPU用軟件給定時器設置了工作方式之后,定時器就會按設定的工作方式獨立運行,不再占用CPU的操作時間,除非定時器計滿溢出,才可能中斷CPU當前操作。CPU也可以重新設置定時器工作方式,以改變定時器的操作。由此可見,定時器是單片機中效率高而且工作靈活的部件。
利用S3F9454單片機T0定時器中斷功能實現數碼管位選及按鈕讀鍵功能。時鐘中斷無需過于頻繁,在周期定時模式下,當T0計數器的值與事先寫入T0DATA中的數據相等時產生中斷信號,同時清除T0定時器的計數值。寫入T0DATA中的數據值便是所謂的“初值”。
其中:T是單片機中計數脈沖的基本周期,即單片機每隔T時間記一次數(計數器的值增加1),Fosc是單片機內部RC振蕩頻率,式(2)中,T0DATA表示S3F9454單片機定時中斷初值,M表示指令系統預分頻值,S表示需要定時的中斷時間值。根據式(1)與式(2)可以計算出合適的中斷定時初值。計算中斷初值時用到了預分頻器,計數采樣將在分頻器的輸出端進行。此外脈沖的頻率可以相對提高,理論上計數脈沖輸入頻率可以是指令執行的頻率乘以預分頻系數。
在硬件電路中已分析表明,移位寄存器74LS164僅有串入并出作用沒有譯碼功能。因此,在編寫顯示驅動程序之前,首先需要計算列寫出與本電路對應的LED段選碼,然后由S3F9454單片機端口送入74LS164的串行輸入端。再并行輸出到LED的段選端。需要指出的是,本電路采用的是共陽極LED顯示器,根據PCB印制線路板的連線方便,其LED的8個段選端與74LS164的并行輸出口即8根段選線的連接沒有遵照通常的規律,而是如圖3所示的段排列,相應的段選碼也根據實際需要重新計算。
電路中設計了8位LED顯示器,以其中三個LED顯示一個帶秒的時間顯示子程序為例,功能為:左首位為分鐘顯示位,左二位為秒十位數顯示位,左三位為秒個位數顯示位。據此,給出如圖3所示的顯示子程序框圖。圖4是實現讀取按鍵功能的程序設計流程圖。
本串行口擴展的LED數碼管顯示接口電路已被筆者成功地應用到以S3F9454單片機為核心的智能儀表中,如單片機智能跑步器、單片機溫度測量儀等?,F場運行表明,在多個按鍵作用下,LED顯示清晰穩定不閃爍,特別是在現場環境如光照強弱不同的情況下,可以在線調整LED發光的亮度,獲得視覺與功耗的最佳效果。
評論