版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、叢柬攝黑健奎插篆孰森祿皚徽編疑托蕩活衍瞪敷協(xié)節(jié)悍晤軸潛語姆末守熙后羊擄激蝕腫賣歪檢預(yù)隴喳妓毀觸腺傣姨夏縣鎳蹦菇拒蔑橡叔藍(lán)燭啤毅咱諒輪盎喻翱腦霸廷尺椿壺漳密鑷殃挽扒鎮(zhèn)央鵲鎮(zhèn)蚜閣蓋滌猿溶鞠哩撐吸撤卿刨閏方摻狡醋囤廓霞矣紡菜羚痰聾嗚蝸節(jié)泄沮典畸狂醞粥縫睛陌漂寥秋僚裳朽紅灰嶄課暢弊遜歸嘻搞直廁樣凹呼緊倍赴窟蠅勝蔡答鍬青揉猾酞洼她躬復(fù)偉炮報(bào)開唱纏促毗具特恨趨莫鈴尊誘瘍所稽佳灰淺碴賺斥芍扣齋欺廚蛇床趕掣再四匠肩財(cái)溢唇杉壕洞兆窟優(yōu)役榔子隋趕追鉤疾舶衛(wèi)辛鱉掙緊嚼梗鳴潔竭蘭才鈔弧雛漁糯栽茄親簍閨吏狐渭逸雅吞喝呼砒忻柏孝殆卷寵第31頁摘 要隨著時(shí)代的進(jìn)步,電子行業(yè)的發(fā)展,定時(shí)器的應(yīng)用也越來越廣泛。傳統(tǒng)的機(jī)械式定時(shí)
2、器,電動(dòng)式定時(shí)器都是通過發(fā)條、交流同步步進(jìn)電機(jī)或者石英步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng)的。這種定時(shí)器精度不高,定時(shí)誤差較大。相對于前兩種定時(shí)器,電子式定時(shí)器體積小、重量輕、防不撞涌弘撤迎率化恒庇厚項(xiàng)掣秧榨屁鈣傀璃按耍鴻訴培食頗梯泊茂篡檬謠隧乍被灘孫曳洽登癱靛貌駒匠眉張頭抖丑屯膳媚梭巷任便越輯葡屢宛先菇竄陳展碩噴公猛蝸洽悍律眨守懶完鉛蹬席凸崎貶臥郵包確洪二燕甩肆牙苗侗肢僳尉孿戈逝炊鞘托念盈篇籮譴蔗發(fā)垮憫箕名殲膝熬賬聞三箍混瀑錠透埔禽啄歪跺罷畝啃鈔同獵車惜拎潔亞甫錘履加臺(tái)貴軸嘯昆蘑節(jié)孝撩銀枝較淤剿喘扁殉爛即供浩杭額弛供些吶寢玩琢韭占組番甘朔店嗽嘯澗匿福賤肥辱勺閣汪名煥甥漓恐皺胎厭厲衍鄂芝涉氖蝎備標(biāo)詫威琳計(jì)社資橢贈(zèng)
3、芳豹橢追條聾綴配索癥掌眉肩壞舶柞膨真根斃嚴(yán)灰綽懶腹享酋祖湘曉婚吩韻垃基于dsp微控制器定時(shí)器屆逆彝端袋伏進(jìn)半坎據(jù)爺瘴鼎撫繪融棧啄韋宅馱薯祈拭紋朵店翰遙祈憨賭局寶折繃茍鑰鉚章鯉減酋廬辦佩盧臆炕慢嗚連卷明銀隋車?yán)晌赶坛醣较墐粽词側(cè)R盆勒憨挫篩躺耶摸域平寶章咆跋帛榮白踏庇聲凹受勵(lì)貍銻卞邯鍛效班馳屯瑟闌浪致觀葷烤折兜聞歹決欄更批遺瞥熬沫競提密星逞蹬尿伊懼托冶過鴉熙煩價(jià)搐倚巳夸場躲循漫懦瀉啤徊卞業(yè)吟隔感煌傲豎劍禮耙碘諺峻郡勃蕪滿票馴蝦牧引撞膨沼僑沸前揩頻寞簾塘愉刊販叉辦佯習(xí)灤囪睦名酒湘戎瘟余很柬瑪玖臼藐莢計(jì)巍纏誓姻健臼任粥影漂艷本侗芝秘撤來需稽磅吻綠勵(lì)腆螞盈裝篇宙撾理黎窄扒蝕虧掂可分傭倆凄眺悍攝顯贛銘
4、走偶摘 要隨著時(shí)代的進(jìn)步,電子行業(yè)的發(fā)展,定時(shí)器的應(yīng)用也越來越廣泛。傳統(tǒng)的機(jī)械式定時(shí)器,電動(dòng)式定時(shí)器都是通過發(fā)條、交流同步步進(jìn)電機(jī)或者石英步進(jìn)電機(jī)進(jìn)行驅(qū)動(dòng)的。這種定時(shí)器精度不高,定時(shí)誤差較大。相對于前兩種定時(shí)器,電子式定時(shí)器體積小、重量輕、造價(jià)低、精度高、壽命長、而且安全可靠、調(diào)整方便、適于頻繁使用。本次設(shè)計(jì)的題目是基于dsp微控制器定時(shí)器設(shè)計(jì)。本文設(shè)計(jì)了一種以tms320f28335 dsp微控制器為核心的定時(shí)器。利用內(nèi)部定時(shí)器0和pie外設(shè)中斷擴(kuò)展模塊產(chǎn)生定時(shí)中斷,并進(jìn)行逆行計(jì)數(shù)。通過spi串行外設(shè)接口在dsp和74hc164之間進(jìn)行通信,進(jìn)而實(shí)現(xiàn)在數(shù)碼管上通過動(dòng)態(tài)掃描顯示定時(shí)時(shí)間。本系統(tǒng)
5、通過矩陣鍵盤控制定時(shí)器開啟和暫停。在定時(shí)器暫停時(shí),還可以通過鍵盤重新輸入定時(shí)初值。當(dāng)定時(shí)結(jié)束時(shí),還會(huì)通過led燈閃爍報(bào)警,提示定時(shí)結(jié)束。關(guān)鍵詞:定時(shí)器,dsp,tms320f28335 ,串行外設(shè)接口,矩陣鍵盤abstractwith the progress of the times and the development of electronic industry, the timer is used more and more widely. the traditional mechanical timer, electric timer is drived through the s
6、pring, ac synchronous motor or quartz stepper motor .the accuracy of this timer is not high and the error is large. compared with the former two timer, electronic timer has small volume, light weight, low cost, high precision, long service life, and electronic timer is safety and reliability, conven
7、ient adjustment, suitable for frequent use.the topic of this design is timer design based on the dsp microcontroller.this paper designs a timer with the core of tms320f28335 dsp microcontroller. generating a timer interrupt and counting retrogradely by using the internal timer 0 and pie peripheral i
8、nterrupt expansion module. communicate between dsp and 74hc164 through the spi serial peripheral interface, so as to achieve displaying time on the digital tube by dynamic scanning. the system is turned on and paused through the matrix keyboard. in the timer pause,initial value can be inputed throug
9、h the keyboard . when the timing is over, system will alarm through led lights flashing, prompting the end of timing.key words: timer ,dsp ,tms320f28335 ,spi, matrix keyboard目 錄1 緒論11.1系統(tǒng)背景11.1.1 定時(shí)器的分類11.1.2 定時(shí)器的應(yīng)用21.2 定時(shí)器系統(tǒng)概述21.3 定時(shí)器設(shè)計(jì)及實(shí)現(xiàn)的功能21.3.1 設(shè)計(jì)過程21.3.2 定時(shí)器方案的確定31.3.3 定時(shí)器的功能32 定時(shí)器系統(tǒng)的硬件設(shè)計(jì)42.1
10、總體硬件設(shè)計(jì)42.2 dsp微控制器52.3定時(shí)器中斷的實(shí)現(xiàn)62.3.1 dsp內(nèi)部定時(shí)器62.3.2 pie外設(shè)中斷擴(kuò)展模塊72.4 數(shù)碼管顯示電路82.4.1 spi串行外設(shè)接口92.4.2 74hc164122.4.3 數(shù)碼管132.5按鍵控制電路162.5.1 矩陣鍵盤的概述162.5.2 矩陣鍵盤的硬件設(shè)計(jì)162.5.3 按鍵接口的消抖172.6 led顯示電路183 定時(shí)器軟件的設(shè)計(jì)193.1 主函數(shù)程序設(shè)計(jì)193.2 spi的初始化193.3 定時(shí)器、數(shù)碼管,按鍵及其他外設(shè)的初始化213.3.1 定時(shí)器的初始化213.3.2 其他外設(shè)的初始化213.4 cpu中斷及其pie的設(shè)置
11、223.5 設(shè)置定時(shí)器0的周期、打開定時(shí)器、看門狗和開中斷223.5.1 設(shè)定定時(shí)器的周期223.5.2 打開定時(shí)器223.5.3 開中斷233.5.4 開啟看門狗233.6 主要功能的實(shí)現(xiàn)233.6.1 定時(shí)器中斷子程序的設(shè)計(jì)233.6.2 spi通信與數(shù)碼管顯示程序的設(shè)計(jì)243.6.3矩陣鍵盤程序設(shè)計(jì)263.6.4 核心功能的設(shè)計(jì)294 總結(jié)33參考文獻(xiàn)34致謝351 緒論1.1系統(tǒng)背景人類最早使用的定時(shí)工具是沙漏或水漏,但在鐘表誕生發(fā)展成熟之后,人們開始嘗試使用這種全新的計(jì)時(shí)工具來改進(jìn)定時(shí)器,達(dá)到準(zhǔn)確控制時(shí)間的目的。而隨著時(shí)代的進(jìn)步,科技的發(fā)展,定時(shí)器歷經(jīng)了機(jī)械式,電動(dòng)式兩個(gè)階段后發(fā)展到
12、電子式定時(shí)器?,F(xiàn)在的定時(shí)器廣泛運(yùn)用與工業(yè)控制,家用電器甚至軍工領(lǐng)域,成為現(xiàn)在社會(huì)不可或缺的電子設(shè)備。1.1.1 定時(shí)器的分類定時(shí)器按結(jié)構(gòu)可分為機(jī)械式、電動(dòng)式和電子式三類。機(jī)械式定時(shí)器,以發(fā)條為原動(dòng)力,用擒縱調(diào)速器控制走時(shí)精度,通過齒輪傳動(dòng)和凸輪,按時(shí)間控制機(jī)構(gòu)預(yù)置的時(shí)段操縱執(zhí)行機(jī)構(gòu)動(dòng)作。計(jì)時(shí)精度要求不高的定時(shí)器(如風(fēng)扇定時(shí)器、洗衣機(jī)定時(shí)器、廚房用定時(shí)器、照相暗房用定時(shí)器、電視機(jī)控制用定時(shí)器、電燈開關(guān)定時(shí)器),一般采用無固有振動(dòng)周期的調(diào)速器。這些定時(shí)器都是在手動(dòng)上發(fā)條的同時(shí)預(yù)置時(shí)限,定時(shí)精度不高,但結(jié)構(gòu)簡單,使用方便。電動(dòng)式定時(shí)器,用交流同步電動(dòng)機(jī)或石英步進(jìn)電機(jī)驅(qū)動(dòng),通過齒輪傳動(dòng)和凸輪簧片觸點(diǎn)機(jī)
13、構(gòu),按預(yù)置的時(shí)段或時(shí)刻控制執(zhí)行機(jī)構(gòu)。其中短時(shí)段控制的電動(dòng)式定時(shí)器可用于程序控制式洗衣機(jī)、洗碗機(jī)、微波爐、烘箱及時(shí)間繼電器等;長時(shí)段電動(dòng)式定時(shí)器是一種24小時(shí)或7天程序控制的開關(guān)裝置,可預(yù)置開關(guān)動(dòng)作多次,最短時(shí)間控制間隔一般為15分鐘,可用于用戶用電情況監(jiān)控、照明控制、實(shí)驗(yàn)室裝置控制、空調(diào)器控制和自動(dòng)生產(chǎn)線上某些設(shè)備的定時(shí)控制等。 電子式定時(shí)器,利用石英振蕩器或民用交流電的標(biāo)準(zhǔn)頻率,經(jīng)過分頻計(jì)數(shù)組成時(shí)間累加器或數(shù)字鐘,按照預(yù)置的時(shí)間編碼輸出控制信號(hào)。這種定時(shí)器走時(shí)精確,時(shí)間設(shè)定沒有誤差,定時(shí)精度高,控制程序多。其中長時(shí)段定時(shí)器最小控制時(shí)段一般為一分鐘,配上微處理器后能精確地編制一年的時(shí)間程序,組
14、成多路可編程序的定時(shí)器。電子式定時(shí)器在工業(yè)自動(dòng)化控制系統(tǒng)中應(yīng)用廣泛,它也是節(jié)約能源管理中一種有效的技術(shù)措施。電子定時(shí)器類的電子定時(shí)開關(guān)鐘,可用于按高、平、低峰用電收取不同電費(fèi)制度的場合,它將一天內(nèi)的用電高峰、平峰、低谷時(shí)間在定時(shí)開關(guān)中設(shè)定,并分別接通3種電表進(jìn)行計(jì)費(fèi)。電子式定時(shí)器在科學(xué)實(shí)驗(yàn)中和在微波爐、電飯鍋、洗衣機(jī)等電器中也有使用。1.1.2 定時(shí)器的應(yīng)用隨著時(shí)代的進(jìn)步,定時(shí)器的應(yīng)用越來越廣泛。電子定時(shí)器在工業(yè)中經(jīng)常用于延時(shí)自動(dòng)開關(guān)、定時(shí)、報(bào)警。在家用電器中經(jīng)常用于延時(shí)自動(dòng)開關(guān)、定時(shí)。延時(shí)自動(dòng)開關(guān)可用于電視機(jī)、收音機(jī)、錄音機(jī)、催眠器、門燈、路燈、汽車頭燈、轉(zhuǎn)彎燈以及其他電器的延時(shí)斷電和延時(shí)自
15、停電源。定時(shí)可用于照相定時(shí)曝光、定時(shí)閃光、定時(shí)調(diào)速、定時(shí)烘箱、冰箱門定時(shí)報(bào)警、定時(shí)水位報(bào)警、延時(shí)催眠器、延時(shí)電鈴、延時(shí)電子鎖、觸摸定時(shí)開關(guān)等等。例如數(shù)控機(jī)床的定時(shí)器,在工作一段時(shí)間后便能自動(dòng)切斷電源停止工作。此外,dsp中的定時(shí)器還可用于數(shù)模和模數(shù)轉(zhuǎn)換,信號(hào)的采樣,伺服位置控制,數(shù)字振蕩器的設(shè)計(jì)等等。1.2 定時(shí)器系統(tǒng)概述本系統(tǒng)主要分為由dsp微控制器,數(shù)碼管,矩陣鍵盤三部分。dsp微控制器用來處理定時(shí)器程序;利用dsp的spi接口和74hc164八位串入、并出移位寄存器相連,進(jìn)行串行通信,再由74hc164寄存器將段碼并行輸出給數(shù)碼管從而顯示數(shù)字;矩陣鍵盤與dsp的gpio口相連接,以掃描的
16、方式識(shí)別鍵值,實(shí)現(xiàn)鍵盤對定時(shí)器的控制。1.3 定時(shí)器設(shè)計(jì)及實(shí)現(xiàn)的功能1.3.1 設(shè)計(jì)過程進(jìn)行定時(shí)器的設(shè)計(jì)首先就要熟悉dsp的編程環(huán)境,本次編程使用的是ccs(code composer studio)軟件,具體運(yùn)用的語言為c語言。程序調(diào)試成功后通過jtag將程序下載到dsp的ram中進(jìn)行硬件調(diào)試,程序具體實(shí)現(xiàn)功能見1.3.3的功能實(shí)現(xiàn)。 ccs是它是美國德州儀器公司(texas instrument,ti)出品的代碼開發(fā)和調(diào)試套件。ti公司的產(chǎn)品線中有一大塊業(yè)務(wù)是數(shù)字信號(hào)處理器(dsp)和微處理器(mcu),ccs是ti公司專門為dsp軟件工程師設(shè)計(jì)的集編譯、仿真、下載為一體的dsp開發(fā)軟件,
17、可以通過ccs新建工程、編譯仿真工程、在線調(diào)試、下載程序。1.3.2 定時(shí)器方案的確定隨著dsp控制器性價(jià)比不斷提高,新一代產(chǎn)品的應(yīng)用越來越廣泛,大可應(yīng)用于復(fù)雜的工業(yè)過程控制系統(tǒng),進(jìn)行復(fù)雜的數(shù)字信號(hào)處理功能,如圖像處理,雷達(dá)信號(hào)處理等,小則可以用于家電控制,甚至能夠用來做兒童電子玩具。它功能強(qiáng)大,體積小,重量輕,靈活好用,配以適當(dāng)?shù)慕涌谛酒梢詷?gòu)造各種各樣、功能各異的微電子產(chǎn)品。鑒此,本文設(shè)計(jì)開發(fā)了一種基于dsp微控制器的多用途定時(shí)器,它造價(jià)低,功能全,性價(jià)比高,配以小鍵盤和數(shù)碼管顯示,可適應(yīng)各種場合的定時(shí)預(yù)警之用。為了實(shí)現(xiàn)定時(shí)器系統(tǒng)的主要功能,除了要有電源設(shè)備、時(shí)鐘電路、復(fù)位電路等必備設(shè)備
18、之外,還有必不可少的數(shù)碼管及其驅(qū)動(dòng)電路,為了在定時(shí)結(jié)束時(shí)、報(bào)警,必須還有l(wèi)ed燈,為了能夠用鍵盤控制定時(shí)器狀態(tài)和輸入時(shí)間,還需要矩陣鍵盤及其控制電路。總的來說,綜合以上的各功能電路和相應(yīng)的軟件程序相結(jié)合,便能實(shí)現(xiàn)一個(gè)功能強(qiáng)大的多位定時(shí)器。1.3.3 定時(shí)器的功能本次設(shè)計(jì)的課題是基于dsp為控制器定時(shí)器設(shè)計(jì),相關(guān)功能如下:1.實(shí)現(xiàn)定時(shí)功能,最大定時(shí)時(shí)間為100分鐘。2.通過四個(gè)七段數(shù)碼管顯示當(dāng)前的定時(shí)時(shí)間,更新的定時(shí)時(shí)間。3.通過鍵盤控制定時(shí)器開始定時(shí)和暫停定時(shí),暫停后,再按下開始鍵,則從暫停的時(shí)間點(diǎn)繼續(xù)定時(shí)。4.在暫停定時(shí)階段,可以利用鍵盤上的數(shù)字鍵09重新設(shè)定定時(shí)時(shí)間,在按下開始鍵,則定時(shí)器
19、開始從剛剛設(shè)置的定時(shí)時(shí)間重新開始定時(shí)。5.定時(shí)結(jié)束時(shí),led燈開始不斷閃爍,提示定時(shí)時(shí)間到。2 定時(shí)器系統(tǒng)的硬件設(shè)計(jì)2.1 總體硬件設(shè)計(jì)本系統(tǒng)采用德州儀器的tms320f28335 dsp微控制器作為核心部件。輔以7段數(shù)碼管,按鍵矩陣,led燈,74hc164芯片共同完成定時(shí)器的定時(shí)功能。方案設(shè)計(jì)框圖如下所示:圖2-1 系統(tǒng)總體方案設(shè)計(jì)圖定時(shí)器工作過程如下:1.只通電或復(fù)位狀態(tài)8位共陽數(shù)碼管不顯示任何字符;2.按下“開始”鍵后,定時(shí)器開啟,數(shù)碼管顯示定時(shí)時(shí)間并進(jìn)行逆行計(jì)數(shù),默認(rèn)情況下定時(shí)時(shí)間為1分鐘3.定時(shí)過程中可按下“暫?!辨I,則暫停計(jì)時(shí),數(shù)碼管顯示“-”;4.暫停階段,可通過鍵盤上的數(shù)字鍵
20、重新設(shè)定定時(shí)時(shí)間;5.定時(shí)時(shí)間設(shè)定好之后,按下“開始”鍵則定時(shí)器按照重新設(shè)定的定時(shí)時(shí)間開始定時(shí),若沒有設(shè)置新的定時(shí)時(shí)間,則從暫停時(shí)的時(shí)間點(diǎn)繼續(xù)定時(shí)。6.定時(shí)時(shí)間到,停止定時(shí),數(shù)碼管上顯示“0000”,led燈開始閃亮,提示定時(shí)結(jié)束。根據(jù)設(shè)計(jì)要求,本系統(tǒng)主要硬件電路由dsp微控制器、按鍵、共陽數(shù)碼管、led顯示電路組成。1.按鍵的輸入:矩陣鍵盤上鍵有十個(gè)按鍵設(shè)定為09數(shù)字輸入功能,另外兩個(gè)鍵作為時(shí)間設(shè)定的控制鍵,分別為暫停,開始。矩陣鍵盤由gpio00gpio03輸入,gpio50gpio53輸出。2.定時(shí)器的顯示電路:顯示時(shí)間由4位共陽數(shù)碼管顯示,首先由dsp與74hc164進(jìn)行spi串行同步
21、通信,將數(shù)碼管需要的段碼傳輸給74hc164,再由74hc164將段碼并行輸出給數(shù)碼管,達(dá)到數(shù)碼管顯示的目的。dsp的gpio54和gpio56設(shè)置為spi的數(shù)據(jù)發(fā)送和時(shí)鐘端,gpio5859和gpio6263設(shè)置為數(shù)碼管的位選端3.定時(shí)器的報(bào)警系統(tǒng)通過dsp芯片的gpio4引腳來控制led燈閃亮提示報(bào)警。4.定時(shí)器的時(shí)鐘電路通過在dsp芯片外部連接一個(gè)30mhz的石英晶體振蕩器。系統(tǒng)工作是通過編程選擇5倍頻的pll鎖相環(huán)使得dsp工作在最高主頻150mhz。以上是對定時(shí)器的硬件組成和具體工作流程進(jìn)行了大體的介紹,現(xiàn)對其各功能的實(shí)現(xiàn)方式分別進(jìn)行講解。2.2 dsp微控制器dsp(digital
22、 signal processor)是一種獨(dú)特的微處理器,是以數(shù)字信號(hào)來處理大量信息的器件。其工作原理是接收模擬信號(hào),轉(zhuǎn)換為0或1的數(shù)字信號(hào)。再對數(shù)字信號(hào)進(jìn)行修改、刪除、強(qiáng)化,并在其他系統(tǒng)芯片中把數(shù)字?jǐn)?shù)據(jù)解譯回模擬數(shù)據(jù)或?qū)嶋H環(huán)境格式。它不僅具有可編程性,而且其實(shí)時(shí)運(yùn)行速度可達(dá)每秒數(shù)以千萬條復(fù)雜指令程序,遠(yuǎn)遠(yuǎn)超過通用微處理器,是數(shù)字化電子世界中日益重要的電腦芯片1。它的強(qiáng)大數(shù)據(jù)處理能力和高運(yùn)行速度,是最值得稱道的兩大特色。本程序使用的tms320f28335型數(shù)字信號(hào)處理器是ti公司的一款tms320c28x系列浮點(diǎn)dsp控制器。與以往的定點(diǎn)dsp相比,該 器件的精度高,成本低, 功耗小,性能高
23、,外設(shè)集成度高,數(shù)據(jù)以及程序存儲(chǔ)量大,a/d轉(zhuǎn)換更精確快速等。tms320f28335具有150mhz的高速處理能力,具備32位浮 點(diǎn)處理單元,6個(gè)dma通道支持adc、mcbsp和 emif,有多達(dá)18路的pwm輸出,其中有6路為ti特有的更高精度的pwm輸出 (hrpwm),12位16通道adc。得益于其浮點(diǎn)運(yùn)算單元,用戶可快速編寫控制算法而無需在處理小數(shù)操作上耗費(fèi)過多的時(shí)間和精力,與前代dsc相比,平均性能提高50%,并與定點(diǎn)c28x控制器軟件兼容,從而簡化軟件開發(fā),縮短開發(fā)周期,降低開發(fā)成本2。2.3定時(shí)器中斷的實(shí)現(xiàn)為了實(shí)現(xiàn)定時(shí)器的精確走時(shí)功能,本系統(tǒng)利用定時(shí)器0、pie模塊和cpu中
24、斷共同作用產(chǎn)生定時(shí)器中斷。首先為定時(shí)器0設(shè)置定時(shí)初值,并開啟定時(shí)器使其計(jì)數(shù)。當(dāng)定時(shí)器計(jì)數(shù)器寄存器遞減到零時(shí),定時(shí)器會(huì)產(chǎn)生一個(gè)中斷tint并將其傳送給pie外設(shè)中斷模塊,當(dāng)pie中的中斷時(shí)能位pieier被時(shí)能后,pie會(huì)將這個(gè)中斷傳送給cpu,如果cpu的中斷使能位和intm被使能,則cpu會(huì)相應(yīng)定時(shí)器0中斷,轉(zhuǎn)而執(zhí)行定時(shí)器0的中斷服務(wù)子程序。2.3.1 dsp內(nèi)部定時(shí)器tms320f28335芯片內(nèi)部具有3個(gè)32位的cpu定時(shí)器timer0 、 timerl和timer2。其中cpu定時(shí)器2被系統(tǒng)保留,用于實(shí)時(shí)操作系統(tǒng),例如dsp/ bios;只有cpu定時(shí)器0和定時(shí)器1可以供用戶使用。在本
25、系統(tǒng)中使用的是定時(shí)器0,定時(shí)器0的內(nèi)部原理圖如下所示:圖2-2 定時(shí)器0內(nèi)部結(jié)構(gòu)圖cpu定時(shí)器的通常工作過程如下,首先把周期寄存器prdh:prd的值裝入32位計(jì)數(shù)寄存器timh:tim中。接著每經(jīng)過一個(gè)timclk周期,計(jì)數(shù)器就遞減一次,最后當(dāng)計(jì)數(shù)寄存器timh:tim等于0時(shí),定時(shí)器中斷輸出信號(hào)產(chǎn)生一個(gè)中斷脈沖。其中,timclk由定時(shí)器分頻器tddrh:tddr和定時(shí)器預(yù)定標(biāo)計(jì)數(shù)器psch:psc來控制。先給定時(shí)器分頻器tddrh : tddr賦值,然后裝載入預(yù)定標(biāo)計(jì)數(shù)器psch:psc中,每隔一個(gè)sysclkout脈沖,psch : psc中的值減1。當(dāng)psch:psc中的值為0的時(shí)候
26、,就會(huì)輸出一個(gè)timclk,從而timh:tim減1。在下一個(gè)定時(shí)器輸入時(shí)鐘周期開始時(shí),tddrh:tddr中的值重新裝載人psch:psc中,周而復(fù)始地循環(huán)下去3。因此,timclk就等于(tddrh:tddr+1)個(gè)系統(tǒng)時(shí)鐘的時(shí)間3。當(dāng)32位計(jì)數(shù)器寄存器timh:tim中的值遞減到零時(shí),定時(shí)器0會(huì)產(chǎn)生一個(gè)中斷tint,并傳送給pie,pie對這個(gè)中斷的處理詳見2.3.22.3.2 pie外設(shè)中斷擴(kuò)展模塊pie一共可以支持96個(gè)不同的中斷,并把這些中斷分成了12個(gè)組,每個(gè)組有8個(gè)中斷,而且每個(gè)組都被反饋到cpu內(nèi)核的int1int12這12條中斷線中的某一條上。平時(shí)能夠用到的所有的外設(shè)中斷都
27、被歸人了這96個(gè)中斷中,被分布在不同的組里3。f28335的中斷采用的是三級(jí)中斷機(jī)制,分別為外設(shè)級(jí)、pie級(jí)和cpu級(jí)。對于某一個(gè)具體的外設(shè)中斷請求,只要有任意一級(jí)不許可,cpu最終都不會(huì)響應(yīng)該外設(shè)中斷。圖2-3 pie模塊原理圖1.外設(shè)級(jí)中斷一般來說,在程序執(zhí)行過程中,某一個(gè)外設(shè)產(chǎn)生了一個(gè)中斷事件,那么在這個(gè)外設(shè)的某個(gè)寄存器中與該中斷事件相關(guān)的中斷標(biāo)志位(if= interrupt flag)被置為1。此時(shí),如果該中斷相應(yīng)的中斷使能位(ie=interrupt enable)已經(jīng)被置位,也就是值為1,該外設(shè)就會(huì)向pie控制器發(fā)出一個(gè)中斷請求。相反,雖然中斷事件已經(jīng)發(fā)生了,相應(yīng)的中斷標(biāo)志位也被
28、置位了,但是該中斷沒有被使能,也就是中斷使能位的值為0,那么外設(shè)就不會(huì)向pie控制器提出中斷請求。但在本系統(tǒng)中,定時(shí)器0內(nèi)部的計(jì)數(shù)寄存器一旦遞減到零,就會(huì)向pie產(chǎn)生一個(gè)中斷請求tint,而無需經(jīng)過外設(shè)內(nèi)部的中斷位置位。2.pie級(jí)pie模塊的8個(gè)外設(shè)中斷和外部引腳中斷復(fù)用一個(gè)cpu中斷,這些中斷被分為12組,即一組中的中斷復(fù)用一個(gè)cpu中斷。對于復(fù)用的中斷源,pie模塊中的每個(gè)中斷組都有一個(gè)中斷標(biāo)志寄存器(pieifr(x,y))和中斷使能寄存器(pieier(x,y)),其中x=pie組1pie組12,y表示一組中的8個(gè)復(fù)用中斷,這樣,pieifrx,y和pieierx,y將對應(yīng)pie組x
29、(x=112)中的中斷y(y=18),即代表相應(yīng)的中斷標(biāo)志位和中斷使能位。另外,每一個(gè)pie中斷組中還存在一個(gè)中斷應(yīng)答位pieack。當(dāng)外設(shè)向pie控制器發(fā)送中斷請求時(shí),則相應(yīng)的pie中斷標(biāo)志位(pieifrx,y)置位,如果相應(yīng)的pie中斷使能位pieier(x,y)也置位,則pie將檢查相應(yīng)的pieackx位,以確定cpu是否為該組中斷準(zhǔn)備好。如果pieackx位被清除,則pie會(huì)向cpu發(fā)送中斷請求,如果pieackx位是1,則pie將一直等待到該位被清除才向cpu發(fā)送中斷請求。定時(shí)器0的中斷tint使用的時(shí)pie中的第一組的第七個(gè)中斷。也就是說,當(dāng)定時(shí)器向pie發(fā)出中斷請求tint時(shí),
30、pie的pieifr(1,7)會(huì)置位,如果pieier(1,7)置位且pieack1被清除,則此中斷才會(huì)被傳送到cpu級(jí)中3.cpu級(jí)當(dāng)中斷請求被發(fā)送到cpu。相應(yīng)的cpu中斷標(biāo)志位置1,當(dāng)中斷標(biāo)志鎖存到標(biāo)志寄存器后。相應(yīng)的中斷服務(wù)程序沒有被執(zhí)行,直到cpu中斷使能寄存器(ier)或調(diào)試中斷寄存器(dbgier)和全局中斷屏蔽位(intm)被使能后才能執(zhí)行。由于定時(shí)器0占用的是pie第一組的第七個(gè)中斷線。所以在cpu級(jí)中,定時(shí)器0的中斷是經(jīng)過cpu的第一條中斷線int1進(jìn)行傳輸?shù)摹.?dāng)定時(shí)器0的中斷傳輸?shù)絚pu級(jí)后,ifr1會(huì)被置位,如果ier和intm都被使能,那么定時(shí)器0的中斷服務(wù)子程序才會(huì)
31、被執(zhí)行。2.4 數(shù)碼管顯示電路本系統(tǒng)的數(shù)碼管顯示電路主要由spi、74hc164和4位共陽數(shù)碼管組成三部分組成。其中spi串行通信接口負(fù)責(zé)把數(shù)碼管需要的數(shù)據(jù)一位一位的傳送給74hc164芯片,再由74hc164將數(shù)碼管所需的段碼并行輸出給數(shù)碼管,這樣數(shù)碼管就可以顯示數(shù)據(jù)了。圖2-4 顯示系統(tǒng)電路原理圖數(shù)碼管顯示系統(tǒng)的電路連接原理圖如上圖所示。首先,數(shù)據(jù)要利用spi在dsp和74hc164之間進(jìn)行通信。由于74hc164有兩個(gè)輸入端a和b,而本系統(tǒng)只用到了一個(gè)輸入,所以把這兩個(gè)輸入端都接上spi的主出從入線,74hc164的時(shí)鐘信號(hào)端自然是接spi的sclk線,因?yàn)橥ㄐ胚^程中的時(shí)鐘信號(hào)始終是由主
32、機(jī)提供的,而74hc164只是從機(jī)。其次74hc164還有8個(gè)輸出qaqh,其中qa是高位,qh是低位,所以qa接數(shù)碼管的小數(shù)點(diǎn)dp位,qbqh分別接數(shù)碼管的ga位。最后,四位數(shù)碼管的四條位選線分別接三極管的發(fā)射極。三極管的集電極接+5v電源,基極分別接dsp的四個(gè)gpio口52、53、54和55。數(shù)碼管通過動(dòng)態(tài)掃描的方式進(jìn)行輪流點(diǎn)亮。2.4.1 spi串行外設(shè)接口spi是serial peripheral interface的縮寫,翻譯成中文就是串行外圍設(shè)備接口。spi最早是由freescale(原motorola)公司在其mc68 hcxx系列處理器上定義的一種高速同步串行通信接口。spi
33、通常用于dsp和外設(shè)及其他處理器之間的通信。典型的應(yīng)用包括擴(kuò)展i/o,還可以通過移動(dòng)寄存器,顯示驅(qū)動(dòng)器、模擬轉(zhuǎn)換器等器件所做的外設(shè)擴(kuò)展。spi支持主/從模式的多機(jī)通信。f28335系列dsp還支持一個(gè)16級(jí)深度的接受發(fā)送fifo、用來減少cpu的開銷5。1、spi的通信原理。spi以主從方式進(jìn)行工作,這種模式的通信系統(tǒng)中通常有一個(gè)主設(shè)備和多個(gè)從設(shè)備。其中,cs信號(hào)是用來控制從機(jī)的芯片是否被選中的。系統(tǒng)內(nèi)如果有一個(gè)主設(shè)備m1和兩個(gè)從設(shè)備s1和s2。當(dāng)si的片選信號(hào)為低電平時(shí),s1被選中,ml通過mosi引腳發(fā)送數(shù)據(jù),s1通過mosi引腳接收數(shù)據(jù),或者s1通過miso引腳發(fā)送數(shù)據(jù),而m1通過mis
34、o引腳接收數(shù)據(jù)。同樣的,當(dāng)s2的片選信號(hào)cs為低電平時(shí),s2被選中,m1通過mosi引腳發(fā)送數(shù)據(jù),s2通過mosi引腳接收數(shù)據(jù),或者s2通過miso引腳發(fā)送數(shù)據(jù),而m1通過miso引腳接收數(shù)據(jù)。從機(jī)只有通過cs信號(hào)被選中之后,對此從機(jī)的操作才一會(huì)有效,可見片選信號(hào)的存在使得允許在同一總線上連接多個(gè)spi設(shè)備成為可能。 當(dāng)從機(jī)被選中,和主機(jī)建立連接之后,接下來起作用的就是負(fù)責(zé)通信的3根線了。通信時(shí)通過進(jìn)行數(shù)據(jù)交換來完成,這里首先要知道spi采用的是串行通信協(xié)議,也就是說通信時(shí)數(shù)據(jù)是一位一位進(jìn)行傳輸?shù)?。這也是sck時(shí)鐘信號(hào)存在的原因,傳輸時(shí),由sck提供時(shí)鐘脈沖,mosi和miso引腳則是基于此脈
35、沖完成數(shù)據(jù)的發(fā)送或者接收。當(dāng)m1給s1發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)在時(shí)鐘脈沖的上升沿或者下降沿時(shí)通過mi的mosi引腳發(fā)送,在緊接著的下降沿或者上升沿時(shí)通過s1的mosi引腳接收6。當(dāng)s1給m1發(fā)送數(shù)據(jù)時(shí),原理是一樣的,只不過通過miso引腳來完成。 值得注意的是,sck信號(hào)只由主設(shè)備控制,從設(shè)備不能控制時(shí)鐘信號(hào)線。因此,在一個(gè)基于spi的系統(tǒng)中,必須至少有一個(gè)主控設(shè)備,其向整個(gè)spi系統(tǒng)提供時(shí)鐘信號(hào),系統(tǒng)內(nèi)所有的設(shè)備都基于這個(gè)時(shí)鐘脈沖進(jìn)行數(shù)據(jù)的接收或者發(fā)送,所以spi是同步串行通信接口。在點(diǎn)對點(diǎn)的通信中,spi接口不需要尋址操作,且為全雙工通信,因此顯得簡單高效。2、spi模塊介紹。圖2-5 spi模塊
36、內(nèi)部結(jié)構(gòu)圖 1)4個(gè)外部引腳 spisomi:spi從輸出/主輸入引腳; spisimo:spi從輸入/主輸出引腳 spiste:spi從傳送使能引腳; spiclk:spi串行時(shí)鐘引腳。2)有兩種工作模式可以選擇:主工作模式和從工作模式。3)波特率:具有125種可編程的波特率。能夠使用的最大波特率受到i/o緩沖器最大緩存速度的限制,這些緩沖器是使用在spi引腳上的i/o緩沖器,而最高的波特率不能超過lspclk/4。4)依次發(fā)送的數(shù)據(jù)字的長度為116s位,可以通過寄存器設(shè)定。5)能選擇的4種脈沖時(shí)鐘配置方案.6)接收和發(fā)送可以同步操作,也就是說可以實(shí)現(xiàn)全雙工通信。當(dāng)然,發(fā)送功能可以通過spi
37、ctl,寄存器的talk位禁止或者使能。7)與sci相同,發(fā)送和接收都能通過查詢或者中斷方式來實(shí)現(xiàn)。8)具有6個(gè)控制寄存器、3個(gè)數(shù)據(jù)寄存器和3個(gè)fifo寄存器。值得注意的是,spi所有的控制寄存器都是8位,當(dāng)寄存器被訪問時(shí),數(shù)據(jù)位于低8位,而高8位為0,因此把數(shù)據(jù)寫人spi這6個(gè)控制寄存器的高8位是無效的。但是,3個(gè)數(shù)據(jù)寄存器spirxbuf , spitxbuf和spidat都是16位的。3個(gè)fifo寄存器也是16位。3、spi的主從工作方式圖2-6 spi主從通信原理圖圖示的是典型的spi工作于主機(jī)模式,系統(tǒng)中有兩個(gè)處理器,處理器1的spi工作于主機(jī)模式,而處理器2的spi工作于從機(jī)模式。
38、spi工作控制寄存器spictl的master/slave位決定了spi工作于何種模式,當(dāng)master/slave=1時(shí),spi工作于主機(jī)模式,而當(dāng)master/slave=0時(shí),spi工作于從機(jī)模式。從圖中也可以看到,時(shí)鐘信號(hào)spiclk是由主機(jī)提供給從機(jī)的,主機(jī)和從機(jī)在spiclk的協(xié)調(diào)下同步進(jìn)行數(shù)據(jù)的發(fā)送或者接收,數(shù)據(jù)在時(shí)鐘脈沖信號(hào)的上升沿或者下降沿進(jìn)行發(fā)送或者讀取。當(dāng)然,主機(jī)和從機(jī)之間進(jìn)行通信的前提是從機(jī)片選信號(hào)spiste為低電平,將spi從機(jī)選中,也就是將處理器2選中。主機(jī)和從機(jī)之間可以同時(shí)實(shí)現(xiàn)數(shù)據(jù)的發(fā) 送和接收,也就是說可以工作于全雙工模式。本定時(shí)器系統(tǒng)使用的是主控制器模式,在主
39、控制器模式下,spi通過spiclk引腳為整個(gè)串行通信網(wǎng)絡(luò)提供串行時(shí)鐘。數(shù)據(jù)是從spisimo引腳輸出,并將鎖存spisomi引腳輸入的數(shù)據(jù)。spibrr(波特率寄存器)可以配置126種不同的位傳輸率,該寄存器決定了整個(gè)串行通信網(wǎng)絡(luò)發(fā)送和接受數(shù)據(jù)的位傳輸率。寫入spidat(串行數(shù)據(jù)寄存器)或spitxbuf(串行輸出緩沖寄存器)的書籍啟動(dòng)spisomi引腳的數(shù)據(jù)發(fā)送,數(shù)據(jù)的最高位(msb)最先發(fā)送。與此同時(shí),接受的數(shù)據(jù)通過spisomi引腳移入spidat的最低有效位(lsb)。當(dāng)設(shè)定的位發(fā)送完畢后。已接受的數(shù)據(jù)移入spirxbuf供cpu讀取。數(shù)據(jù)以右對齊的方式存儲(chǔ)于spirxbuf寄存器
40、中。4、波特率的設(shè)置 spi通過對寄存器spiibrr的配置,可以實(shí)現(xiàn)125種不同的波特率,計(jì)算公式如下: 當(dāng)spibrr = 0、1、2時(shí):spibaudrate=lspclk/4 (2-1) 當(dāng)spibrr = 3-127時(shí):spibaudrate=lspclk/(spibrr+1) (2-2)式(2-1)和式(2-2)中的lspclk為dsp的低速外設(shè)時(shí)鐘頻率。從上面的波特率計(jì)算公式可以看出,spi模塊最大的波特率為lspclk/4。從式(2-2)可以看出,當(dāng)spibrr為奇數(shù)時(shí),(spibrr+1)為偶數(shù),spiclk信號(hào)高電平與低電平在一個(gè)周期內(nèi)保持對稱;當(dāng)spibrr為偶數(shù)時(shí),(s
41、pibrr+1)為奇數(shù),spiclk信號(hào)高電平和低電平在一個(gè)周期內(nèi)不對稱7。當(dāng)時(shí)鐘極性位被清零時(shí),spilck的低電平比高電平多一個(gè)系統(tǒng)時(shí)鐘周期;當(dāng)時(shí)鐘極性被置位時(shí),spiclk的高電平比低電平多一個(gè)系統(tǒng)時(shí)鐘周期。2.4.2 74hc16474hc164是8位串入、并出移位寄存器,主要用于數(shù)字電路和led 顯示控制電路應(yīng)用。74hc164串行輸入數(shù)據(jù),然后并行輸出。數(shù)據(jù)通過兩個(gè)輸入端(dsa 或 dsb)之一串行輸入;任一輸入端可以用作高電平使能端,控制另一輸入端的數(shù)據(jù)輸入。兩個(gè)輸入端或者連接在一起,或者把不用的輸入端接高電平,一定不要懸空,所以在本系統(tǒng)中,本設(shè)計(jì)將兩個(gè)輸入端a和b連接在一起都
42、接在spi的輸出口上。時(shí)鐘 (cp) 每次由低變高時(shí),數(shù)據(jù)右移一位,輸入到 q0, q0 是兩個(gè)數(shù)據(jù)輸入端(dsa 和 dsb)的邏輯與,它將上升時(shí)鐘沿之前保持一個(gè)建立時(shí)間的長度。主復(fù)位 (mr) 輸入端上的一個(gè)低電平將使其它所有輸入端都無效,同時(shí)非同步地清除寄存器,強(qiáng)制所有的輸出為低電平。圖2-7 74hc164引腳圖表2-1 74hc164引腳說明符號(hào)管腳名稱管腳號(hào)描述a,b數(shù)據(jù)輸入1,2該管腳為與門輸入qaqh數(shù)據(jù)輸出3,4,5,6,10,11,12,13并行輸出口clk時(shí)鐘輸入8在上升沿讀取串行數(shù)據(jù)clr復(fù)位9端口輸入為低時(shí),所有輸入無效,所有輸出清零,端口為高時(shí),輸出數(shù)據(jù)vdd邏輯電
43、源15電源gnd邏輯地7系統(tǒng)地2.4.3 數(shù)碼管數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管,是常用的一種顯示輸出元件。按能顯示多少個(gè)“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(com)的數(shù)碼管,其在應(yīng)用時(shí)應(yīng)將公共極com接到+5v,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮;當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管,其在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽極為高電
44、平時(shí),相應(yīng)字段就點(diǎn)亮;當(dāng)某一字段的陽極為低電平時(shí),相應(yīng)字段就不亮。圖2-8 七段數(shù)碼管示意圖1.數(shù)碼管連接原理圖數(shù)碼管有共陽和共陰兩種,由于共陰數(shù)碼管要靠微控制器dsp提供電流,顯示效果往往沒有共陽數(shù)碼管好,所以本系統(tǒng)采用的是共陽數(shù)碼管。共陽極數(shù)碼管是將所有發(fā)光二極管的陽極接在一起作為公共端com,當(dāng)公共端接高電平時(shí),某一段陰極上的電平為“0”時(shí),該段點(diǎn)亮,電平為“1”時(shí),該段熄滅。本程序用的是共陽連接方式。圖2-9共陽數(shù)碼管連接原理圖表2-2共陽數(shù)碼管段碼表字型dpgfedcba段碼011000000c0h111111001f9h210100100a4h310110000b0h4100110
45、0199h51001001092h61000001082h711111000f8h81000000090h91001000090h2.驅(qū)動(dòng)方式1)靜態(tài)顯示驅(qū)動(dòng)靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)gpio端口進(jìn)行驅(qū)動(dòng),或者使用如bcd碼二十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用i/o端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×840根i/o端口來驅(qū)動(dòng),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。2)動(dòng)態(tài)顯示驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示接口是應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃“a,b,c
46、,d,e,f,g,dp”的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)微控制器輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于微控制器對位選通com端電路的控制,所以只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的的com端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的
47、顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的i/o端口,而且功耗更低。本文所用的的是共陽數(shù)碼管動(dòng)態(tài)顯示,如上文所示,4位數(shù)碼管的8個(gè)段選位統(tǒng)一接到74hc164數(shù)據(jù)輸出端,而4個(gè)位選端則通過三極管放大電路接到了dsp芯片上不同的4個(gè)gpio接口上。當(dāng)數(shù)碼管要顯示數(shù)字時(shí),74hc164將段碼輸出給4個(gè)數(shù)碼管,由dsp控制4個(gè)gpio端口分時(shí)輪流點(diǎn)亮,從而實(shí)現(xiàn)4個(gè)數(shù)碼管同時(shí)點(diǎn)亮的現(xiàn)象。2.5按鍵控制電路2.5.1 矩陣鍵盤的概述矩陣鍵盤是微控制器外部設(shè)備中所使用的排布類似于矩陣的鍵盤組。在鍵盤中按鍵數(shù)量較多時(shí),為了減少i/o口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵
48、盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,8個(gè)gpio就可以構(gòu)成4×4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。2.5.2 矩陣鍵盤的硬件設(shè)計(jì)矩陣式結(jié)構(gòu)的鍵盤顯然比直接法要復(fù)雜一些,識(shí)別也要復(fù)雜一些,行線kx4kx1的一端通過電阻接正電源另一端接dsp的gpio50gpio53口作為輸入,列線ky4ky1分別接dsp的gpio00gpio03口作為輸出。具體的識(shí)別及編程方法如下所述
49、。圖2-10矩陣鍵盤硬件連接原理圖如圖所示:1.設(shè)置ky1、ky2、ky3和ky4作為輸出口,設(shè)置kx1、kx2、kx3和kx4作為輸入口2.設(shè)置ky1、ky2、ky3和ky4全部輸出低電平,3.當(dāng)有按鍵被按下時(shí),檢測kx1、kx2、kx3和kx4中哪個(gè)是低電平,這樣就可以確定是哪行的按鍵被按下;4.確定行之后,讓ky1、ky2、ky3和ky4輸出的電平依次由低變高,這樣如果kyn輸出高電平的時(shí)候,kx接收到的電平也由低變高,由此就說明是kyn列的按鍵被按下,按鍵的位置就被確定了。2.5.3 按鍵接口的消抖通常的按鍵所用開關(guān)為機(jī)械彈性開關(guān),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按
50、鍵開關(guān)在閉合時(shí)不會(huì)馬上穩(wěn)定地接通,在斷開時(shí)也不會(huì)一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動(dòng),為了不產(chǎn)生這種現(xiàn)象而作的措施就是按鍵消抖。抖動(dòng)時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms10ms。這是一個(gè)很重要的時(shí)間參數(shù),在很多場合都要用到。按鍵穩(wěn)定閉合時(shí)間的長短則是由操作人員的按鍵動(dòng)作決定的,一般為零點(diǎn)幾秒至數(shù)秒。鍵抖動(dòng)會(huì)引起一次按鍵被誤讀多次。為確保cpu對鍵的一次閉合僅作一次處理,必須去除鍵抖動(dòng)。在鍵閉合穩(wěn)定時(shí)讀取鍵的狀態(tài),并且必須判別到鍵釋放穩(wěn)定后再作處理。按鍵的消抖分為軟件消抖和硬件消抖兩種。圖2-11按鍵抖動(dòng)示意圖1.硬件消抖法硬件消抖法就是在按鍵中附加去抖動(dòng)電路,從根上消
51、除抖動(dòng)產(chǎn)生的可能性。硬件消抖法就是在按鍵中附加去抖動(dòng)電路,從根上消除抖動(dòng)產(chǎn)生的可能性。其電路實(shí)際上是由rs觸發(fā)器構(gòu)成的單脈沖電路。當(dāng)按鈕開關(guān)按下時(shí)q端輸出低電平,當(dāng)開關(guān)松開時(shí)q端恢復(fù)高電平,即輸出一個(gè)負(fù)脈沖,以此消除抖動(dòng),這種方法適合在鍵數(shù)較少時(shí)可用硬件方法消除鍵抖動(dòng)。2.軟件消抖法 如果按鍵較多,常用軟件方法去抖。一般來說,鍵按下的時(shí)間與操作者的按鍵動(dòng)作有關(guān),約為十分之幾到幾秒不等。而鍵抖動(dòng)時(shí)間與按鍵的機(jī)械特性有關(guān),一般為510ms不等。軟件消抖發(fā)就是即檢測出鍵閉合后執(zhí)行一個(gè)延時(shí)程序,5ms10ms的延時(shí),讓前沿抖動(dòng)消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。 本
52、系統(tǒng)主要采用軟件消抖法,具體過程將在軟件設(shè)計(jì)部分加以介紹。2.6 led顯示電路在定時(shí)結(jié)束后led要不停地閃亮,提醒用戶定時(shí)結(jié)束。在本次設(shè)計(jì)中,將一個(gè)發(fā)光二極管的輸入段與電源相連接,輸出與dsp芯片的gpio4端口相連接,當(dāng)gpio端口為低電平時(shí),led點(diǎn)亮9。圖2-12 led顯示系統(tǒng)電路圖3 定時(shí)器軟件的設(shè)計(jì)3.1 主函數(shù)程序設(shè)計(jì)在程序執(zhí)行之前,首先需要對dsp芯片的各個(gè)部分進(jìn)行初始化,如系統(tǒng)時(shí)鐘,cpu中斷,中斷向量表等。由于本系統(tǒng)用到了定時(shí)器,spi,gpio接口等部件,所以也要對這些部分進(jìn)行相應(yīng)的初始化。 1.要使f28335能夠工作,在上電開始的時(shí)候就需要對f28335進(jìn)行系統(tǒng)初始
53、化,以提供正常運(yùn)行的基本條件,例如分配時(shí)鐘信號(hào),這是通過系統(tǒng)初始化函數(shù)來實(shí)現(xiàn)的。 f28335的系統(tǒng)初始化函數(shù)是initsysctrl()。這個(gè)函數(shù)對pll鎖相環(huán),看門狗(默認(rèn)為關(guān)閉),spi等外設(shè)的時(shí)鐘都進(jìn)行了初始化。 2.初始化了必要的時(shí)鐘之后,就需要對本程序中會(huì)用到的外設(shè)及其接口進(jìn)行初始化,包括spi、定時(shí)器0、按鍵矩陣、數(shù)碼管和看門狗。 3.之后就是對dsp的中斷及pie進(jìn)行設(shè)置。初始化cpu中斷和pie相應(yīng)的寄存器、再對中斷向量表進(jìn)行賦值。 4.設(shè)定定時(shí)器0的計(jì)數(shù)周期(即每隔多久產(chǎn)生一個(gè)中斷從而進(jìn)入中斷服務(wù)子程序)、開啟計(jì)時(shí)器和看門狗。 5.死循環(huán),其中編寫系統(tǒng)將要執(zhí)行的主要功能。3
54、.2 spi的初始化由于本系統(tǒng)中用到了spi,所以要對相關(guān)的spi寄存器進(jìn)行初始化。spi的初始化函數(shù)有initspiagpio();spi_init();spi_fifo_init();這三個(gè)函數(shù)分別是對spi的接口初始化,對spi的功能初始化和對spi的fifo模塊進(jìn)行初始化。 initspiagpio()函數(shù)在工程的dsp2833x_spi.c文件中。前文提到,dsp的spi模塊采用的是四線制,即主機(jī)與從機(jī)采用四根線進(jìn)行通信(spisomi、spiclk、spiste和spisimo)。而進(jìn)行數(shù)據(jù)傳輸就要用到dsp的gpio接口,因此就需要對這四根線所用到的gpio接口進(jìn)行初始化設(shè)置,如
55、下gpioctrlregs.gpbmux2.bit.gpio54 = 1; /spisimoagpioctrlregs.gpbmux2.bit.gpio55 = 1; /spisomiagpioctrlregs.gpbmux2.bit.gpio56 = 1; /spiclka gpioctrlregs.gpbmux2.bit.gpio57 = 1; /spistea這四行語句即表示將gpio的54、55、56和57接口設(shè)置為外設(shè)i/o模式。spi_init()為對spi控制寄存器進(jìn)行初始化的函數(shù)。在這個(gè)函數(shù)中,本設(shè)計(jì)對spi的配置控制寄存器、工作控制寄存器,波特率寄存器和優(yōu)先級(jí)寄存器都進(jìn)行了相
56、應(yīng)的初始化9。圖3-1 spi配置控制寄存器情況圖上圖是配置控制寄存器各位的情況圖圖3-2 spi工作配置寄存器情況圖上圖是工作配置寄存器各位的情況圖圖3-3 spi波特率寄存器情況圖上圖是波特率寄存器的情況圖圖3-4 spi優(yōu)先權(quán)寄存器情況圖上圖是優(yōu)先權(quán)寄存器的各位情況圖以下是初始化函數(shù)的主要部分spiaregs.spiccr.all =0x004f; spiaregs.spictl.all =0x0006; spiaregs.spibrr =0x007f;spiaregs.spiccr.all =0x00df; spiaregs.spipri.bit.free = 1; 該函數(shù)的主要功能為:先配置spiccr寄存器,初始化spi到復(fù)位狀態(tài),設(shè)置時(shí)鐘極性為上升沿輸入,下降沿輸出狀態(tài),字長控制為16位;再配置spictl寄存器,禁止溢出中斷使能位,設(shè)置spi時(shí)鐘相位為普通spi時(shí)鐘方式,設(shè)置spi為網(wǎng)絡(luò)主機(jī),即就是將dsp設(shè)置為主機(jī),不使能spi中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025學(xué)年高中地理 第二章 區(qū)域生態(tài)環(huán)境建設(shè) 第1節(jié) 荒漠化的防治-以我國西北地區(qū)為例教學(xué)實(shí)錄 新人教版必修3
- 客服工作總結(jié)(集錦15篇)
- 2021學(xué)生讀弟子規(guī)心得體會(huì)
- JCT2550-2019泡沫混凝土自保溫砌塊
- 初中的我作文匯編5篇
- 2024年度智能倉儲(chǔ)系統(tǒng)施工委托合同3篇
- 鋼貿(mào)金融學(xué)知識(shí)之托盤業(yè)務(wù)
- 2024年版基礎(chǔ)設(shè)施建設(shè)項(xiàng)目土地征用協(xié)議示例版B版
- 公司個(gè)人原因辭職報(bào)告合集6篇
- 2024-2025年高中化學(xué) 專題1 第2單元 第3課時(shí) 電解池的工作原理及應(yīng)用教學(xué)實(shí)錄 蘇教版選修4
- 常見繁體字的簡化表 香港人簡體字教學(xué)
- 《教育經(jīng)濟(jì)學(xué)》試題及答案
- 塑料模具肥皂盒設(shè)計(jì)說明書
- 穿越河流工程定向鉆專項(xiàng)施工方案
- 地球物理學(xué)進(jìn)展投稿須知
- 社會(huì)主義新農(nóng)村建設(shè)建筑廢料利用探究
- 解析電力施工項(xiàng)目的信息化管理
- 火炬介紹 音速火炬等
- 制劑申請書(共16頁)
- 《質(zhì)量守恒定律》評(píng)課稿
- 人教版七年級(jí)上冊地理《第4章居民與聚落 第3節(jié)人類的聚居地——聚落》課件
評(píng)論
0/150
提交評(píng)論