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