stc單片機范文
時間:2023-04-09 23:37:47
導語:如何才能寫好一篇stc單片機,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
【關(guān)鍵詞】液體點滴速度;單片機
1.引言
隨著醫(yī)院管理系統(tǒng)趨向于電子化、網(wǎng)絡(luò)化,如何利用計算機與現(xiàn)代控制技術(shù)提高醫(yī)療器械的自動化成為目前主要應(yīng)用方向之一。靜脈輸液是臨床醫(yī)學中一個重要的治療手段,傳統(tǒng)的輸液過程都是由監(jiān)護人員手動控制液體點滴速度,造成了監(jiān)護人員和病人的諸多不方便,也不利于病區(qū)的綜合管理。本系統(tǒng)應(yīng)用自動化控制技術(shù)實現(xiàn)了對液體點滴速度的監(jiān)控,該智能液體點滴監(jiān)控儀可以對多床位進行遠程、集中、分床監(jiān)測,并針對不同病人需不同的輸液速度而自動控制點滴數(shù)。護士可在護士室監(jiān)控若干病房的輸液情況,而自動調(diào)整滴數(shù),減輕護士的工作量,實現(xiàn)醫(yī)院護理自動化。而且在緊急情況下,可以向總控制臺發(fā)出報警。監(jiān)護人員也可以通過遠程通信,監(jiān)控病人輸液的整個過程,并對液滴速度進行設(shè)置等。
2.系統(tǒng)總體框圖
本系統(tǒng)以stc89C52單片機為核心,由光電傳感器組成數(shù)據(jù)采集部分,由步進電機作為驅(qū)動部分,采用鍵盤輸入,利用LCD作為顯示器。利用串口,實現(xiàn)了主單片機和多個從單片機之間的多機通信,一個主站控制多個從站的有線液體點滴速度監(jiān)控系統(tǒng)(見圖1)。
3.系統(tǒng)硬件設(shè)計
1)數(shù)據(jù)采集
發(fā)光二極管發(fā)射的平行光束穿過茂菲氏滴管投射到光敏三極管的感光面上,在沒有液滴滴落時,光敏三極管接收到的光照度最大,產(chǎn)生的光電流也最大,當有液滴滴落時,由于液滴的形狀特性,使平行光束發(fā)散,投射到光敏三極管上的光照度將減弱,從而使光敏三極管產(chǎn)生的光電流減小,形成脈沖(見圖2)。
2)驅(qū)動部分
采用NMOS管IF530構(gòu)成如圖所示的驅(qū)動電路。該電路的特點是無反向電流泄放電路,最大驅(qū)動電流達1安培。為了避免開機瞬間由于NMOS管全部導通對步進電機造成損壞,在單片機I/O口和MOS管之間加74HC04構(gòu)成的反相器,以改變驅(qū)動邏輯(見圖3)。
4.系統(tǒng)軟件設(shè)計(見圖4)
5.系統(tǒng)算法的選擇
步進電機采用模糊控制與PI控制結(jié)合的算法。當點滴速度設(shè)定值與實際值的差值較大時,使用模糊控制,按照差值的符號決定電機運行方向,電機速度固定。當差值較小時,使用PI控制,電機速度均勻變化而無上下震蕩現(xiàn)象,能準確定位。參數(shù)整定采用試湊法。
6.總結(jié)
本系統(tǒng)可方便地實現(xiàn)對單點和多點輸液注射過程進行監(jiān)控與管理,從而改善了工作條件,極大地減少了監(jiān)護人員的工作量和由于監(jiān)護不當造成的醫(yī)療事故,具有工作穩(wěn)定、響應(yīng)速度快、操作簡便等優(yōu)點,在醫(yī)療衛(wèi)生領(lǐng)域中具有廣泛的應(yīng)用前景。
參考文獻:
[1]宋雪麗.基于單片機系統(tǒng)的液體點滴速度監(jiān)控裝置設(shè)計[J].電腦開發(fā)與應(yīng)用,2007/05.
[2]王紫婷.智能液體點滴速度監(jiān)控儀[J].自動化與儀器儀表,2004/05.
篇2
【關(guān)鍵詞】STC89C52;舵機控制;串行通訊;PWM波
一、小型自控飛艇舵控系統(tǒng)簡介
舵機是小型自控飛艇執(zhí)行機構(gòu)中最主要的執(zhí)行部件,能否快速、準確地完成對舵機的控制直接關(guān)系到飛艇的自主控制效果。因此,舵控系統(tǒng)成為小型飛艇自主飛行控制系統(tǒng)中最重要的組成部分之一,它的主要功能是接收艇載計算機發(fā)出的控制指令,實現(xiàn)對控制指令的采集、分析和處理,并根據(jù)控制指令向舵機輸出連續(xù)可調(diào)的舵控信號,操縱艇上各舵機完成預定動作。
二、舵控系統(tǒng)硬件設(shè)計
本飛艇舵控系統(tǒng)以多片STC89C52單片機為核心,配合電源模塊、驅(qū)動芯片及多路轉(zhuǎn)換開關(guān)等在一塊印制電路板上實現(xiàn)預定功能。
舵控系統(tǒng)主控芯片選擇STC89C52單片機,它具有8KB的并行可編程非易失性FLASH程序存儲器,并可對器件串行在系統(tǒng)編程(ISP)和在應(yīng)用中編程(IAP)。數(shù)據(jù)保留時間:10年,全靜態(tài)工作:0Hz-24MHz,三級程序存儲器鎖定,128×8位內(nèi)部RAM,32可編程I/O線,4組8位I/O口,兩個16位定時器/計數(shù)器,5個中斷源,可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時鐘電路。
電源模塊采用78xx系列端穩(wěn)壓集成電路,它是線性三端穩(wěn)壓器件。利用該器件只需極少的器件便可構(gòu)成高效穩(wěn)壓電路,為MCU穩(wěn)定可靠的工作提供強有力的保證。
此外,為增強信號的驅(qū)動能力,在輸出之前采用74LS245作為信號驅(qū)動芯片;串口電平轉(zhuǎn)換采用Max232芯片。
三、舵控系統(tǒng)軟件設(shè)計
1.軟件總體結(jié)構(gòu)
舵控系統(tǒng)各單片機程序均在Keil C51環(huán)境下采用C語言編寫。為了保證系統(tǒng)的實時性及快速性,軟件編寫采用了主程序+任務(wù)+中斷的結(jié)構(gòu)。
在三部分程序中,以主單片機1的外部中斷最多,包括串口中斷、與主單片機2的握手中斷以及艇載計算機看門狗的外部中斷,這幾個中斷的優(yōu)先級排列順序是:艇載計算機看門狗中斷>串口中斷>握手中斷。主單片機1接收到艇載計算機通過RS232串口發(fā)來的信息幀后,首先進行幀識別,提取出前m個字節(jié)的數(shù)據(jù),加上幀頭幀尾后由P1口發(fā)送給主單片機2;并將第m+1個字節(jié)數(shù)據(jù)作為開關(guān)量通道控制信號由P2口輸出,用作系統(tǒng)控制備用。
主單片機2程序的主要任務(wù)是通過其P1口接收上位機傳來的數(shù)據(jù),提取各控制信息,在相應(yīng)控制指令的前面加上地址,依次由串口發(fā)送給下位舵控單片機。
舵控單片機的主要任務(wù)是識別控制指令和地址指令,并根據(jù)收到的控制指令(舵機占空比信號)產(chǎn)生PWM波控制艇上舵機。
該系統(tǒng)軟件設(shè)計中的關(guān)鍵問題包括以下幾個方面:
(1)控制信號流程中數(shù)據(jù)幀的接收識別;
(2)舵控系統(tǒng)中主從單片機之間的多機通信;
(3)PWM波舵控信號的軟件產(chǎn)生方法。
2.軟件設(shè)計中的關(guān)鍵問題
(1)數(shù)據(jù)幀的串口接收及識別技術(shù)
采用了中斷服務(wù)程序就地幀識別技術(shù),其優(yōu)點在于數(shù)據(jù)接收后立即進行幀識別,省去了對緩沖區(qū)的管理工作,減少了存取次數(shù),因而節(jié)省了大量的時間,極大地提高了接收程序的實時性。同時錯幀和斷幀被自動丟棄,不再占用資源。
(2)單片機多機通訊
在舵控系統(tǒng)設(shè)計中,各部分間的通訊是設(shè)計的重要內(nèi)容,其中主要包括單片機與上位PC機間的通訊和單片機與單片機之間的通訊。在舵控系統(tǒng)中,主單片機1與上位PC機通訊是通過單片機自帶的一路異步串行通訊接口完成的;而主單片機1通過其P1口向主單片機2傳輸數(shù)據(jù),
此系統(tǒng)中,主單片機2作為主機,m個舵控單片機作為從機,在主機與從機的通訊過程中,串口控制寄存器中SCON中的SM2位發(fā)揮了重要作用。當其中一個舵控單片機的SM2位為1時,該單片機只接收地址幀,對數(shù)據(jù)幀不理睬;而當SM2位為0時,該單片機接收所有發(fā)來的消息。具體通信過程如下:①首先將主、從單片機工作方式選為模式3,所有從機的SM2位開始置1,處于只接收地址幀狀態(tài)。②主機接收主單片機1發(fā)來的數(shù)據(jù)幀,從中提出數(shù)據(jù)部分(m個字節(jié)的指令對應(yīng)m個舵控單片機),根據(jù)序號在控制指令字節(jié)前加上一個字節(jié)的地址信息。然后主機依次通過串口向下發(fā)送各舵控單片機的地址字節(jié)和數(shù)據(jù)字節(jié)。發(fā)送一幀地址信息,包含8位地址,第9位為1,表示發(fā)送的幀為地址幀。③從機接收地址幀后,進入中斷,將發(fā)來的地址與自身比較;地址一致的從機就是被尋址的從機,它清除SM2位,接收主機發(fā)來的所有后續(xù)幀信息(數(shù)據(jù)信息)。未尋址的所有其他從機仍維持SM2=1,對主機發(fā)來的數(shù)據(jù)幀不理睬,直到發(fā)來新地址幀;之后在下一次中斷時被尋址的從機接收主機發(fā)來的數(shù)據(jù)信息(第9位為0)。
需要注意的是,如果對已經(jīng)尋址的從機再發(fā)送地址幀,則該從機SM2=1,恢復初始狀態(tài),和其他從機競爭。
(3)舵控信號PWM波的產(chǎn)生
對飛艇舵機的控制最終是通過舵控單片機產(chǎn)生PWM波來實現(xiàn)的。通常,產(chǎn)生PWM波不外乎硬件和軟件兩種方法??紤]到舵控單片機計算任務(wù)不大,本系統(tǒng)中采用軟件產(chǎn)生PWM波的方法。下面以定時器0產(chǎn)生PWM波為例,說明通過軟件產(chǎn)生PWM波舵控信號的實現(xiàn)方法。
在程序中,由串口中斷接收上位機發(fā)s送的脈寬指令,繼而通過改變?nèi)肟趨?shù)a來調(diào)整PWM波的脈寬,并確保脈寬輸出在正常范圍之內(nèi)。通過該方法產(chǎn)生PWM波切實可行,簡單有效,可以廣泛應(yīng)用于舵機控制信號的產(chǎn)生中。
參考文獻
[1]張晴,袁曉梅,羅凱.基于PWM信號遙控機器人的設(shè)計與制作[J].數(shù)字技術(shù)與應(yīng)用,2010(10).
[2]馮曉偉,王雷陽,李正生.多路舵機控制PWM發(fā)生器的設(shè)計與Proteus仿真[J].現(xiàn)代電子技術(shù),2011(11).
篇3
關(guān)鍵詞:機械手;STC單片機;Modbus;單片機控制
一、引言
本題目是我校2015大學生大創(chuàng)新項目“單片機機電控制及工控網(wǎng)絡(luò)應(yīng)用”的一個組成部分,其設(shè)計內(nèi)容是:用STC單片機控制一臺4軸機械手的運動,且單片機的串口與PC電腦通過Modbus網(wǎng)絡(luò)協(xié)議進行通信,PC端則通過運行組態(tài)畫面對單片機進行實時監(jiān)控,詳見圖1機械手實物圖。
在圖1中,機械手的水平移動由直流電機經(jīng)齒輪組減速驅(qū)動雙螺線螺桿,在直流電機軸的另一端安裝有光電碼盤,以檢測電機的角位移。螺桿的轉(zhuǎn)動帶動其上的滑塊作X軸水平運動。在滑塊上安裝有一臺三坐標機械手,其底盤旋轉(zhuǎn)(A軸),手臂擺動(B軸),夾爪開合(C軸)分別由三只數(shù)字舵機S1501驅(qū)動。整個機械手由一片STC12C5A32S2單片機控制。該單片機的串口經(jīng)MAX485與PC進行通信,以Modbus RTU協(xié)議實現(xiàn)主從聯(lián)網(wǎng)。
二、控制電路設(shè)計
4軸機械手的控制電路如圖2所示。
在圖2中,STC12的P1.3/CCP0引腳用于接收與直流電機同軸安裝的碼盤的光電脈沖信號,并把PCA0設(shè)置為對該引腳上升/下降雙邊沿觸發(fā)中斷的工作方式,每當PCA0中斷發(fā)生,就根據(jù)電機轉(zhuǎn)向?qū)Υa盤脈沖數(shù)加1或減1操作,由此確定出滑塊(即X軸)的當前位置。P1.4/PWM1引腳的作用是向直流電機驅(qū)動電路發(fā)出PWM脈沖,實現(xiàn)直流電機的PWM調(diào)速。該PWM脈沖是通過把STC12的PCA1通道設(shè)置為8位PWM輸出方式來實現(xiàn)的。此外,在X軸兩端的極限位置,各安裝有一個光電開關(guān),其信號分別接入P3.2/1NT0和P3.3/1NT1引腳。兩引腳的下降沿脈沖輸入能夠觸發(fā)STC12的1NT0、1NT1中斷。P0.0、P0.1、P0.2引腳用于向機械手底盤舵機、手臂舵機和夾爪舵機發(fā)出控制信號。STC12的P3.0、P3.1引腳通過MAX485芯片實現(xiàn)TTL/RS485轉(zhuǎn)換,轉(zhuǎn)換后的信號再接到FT232模塊的A、B端,經(jīng)FT232模塊把RS485信號轉(zhuǎn)為PC電腦的USB信號。STC12的P3.7引腳用于MAX485的收/發(fā)控制。
三、PC組態(tài)監(jiān)控設(shè)計
PC端采用uscada組態(tài)軟件進行上位機監(jiān)控設(shè)計。在用uscada設(shè)計監(jiān)控畫面前,要配置串口設(shè)備(即從機)的參數(shù)和數(shù)據(jù)區(qū),并進行模擬量和狀態(tài)量管理。首先,應(yīng)把串口通信協(xié)議設(shè)置為Modbus RTU,設(shè)置從站地址,該地址應(yīng)與STC單片機自設(shè)的Modbus站址一致。然后再對串口設(shè)備數(shù)據(jù)區(qū)進行設(shè)置。uscada為從站設(shè)備配備了4種類型的數(shù)據(jù)區(qū):Discrete Input,即DI,離散量輸入;Input Registers,即AI,輸入寄存器 ;Coil,即DO,線圈輸出;Holding Registers,即AO,保持寄存器。在uscada這4個區(qū)設(shè)置的變量應(yīng)與在單片機XRAM中DI、AI、DO、AO型變量區(qū)設(shè)置的變量相對應(yīng),但名稱可以不同。主從機通信時,單片機的Modbus RTU函數(shù)將按照這種 對應(yīng)關(guān)系處理變量。設(shè)置好從站的數(shù)據(jù)區(qū)后,就可以 定義模擬量和狀態(tài)量,并進行監(jiān)控畫面設(shè)計。圖4為4軸機械手組態(tài)監(jiān)控畫面圖。
在圖4的畫面中,分別對機械手的X、A、B、C軸設(shè)置了數(shù)字框圖元,用以顯示各軸坐標值,各軸數(shù)字框圖元右側(cè)的閥門圖元用于設(shè)定該軸的坐標值。機械手有手動/自動兩種工作方式,由圖中的檔位開關(guān)圖元進行轉(zhuǎn)換。手動方式下,機械手按圖4中左側(cè)各軸坐標設(shè)定值進行動作。自動方式下,機械手以手動方式的設(shè)定值為起點,以圖4中右側(cè)的設(shè)定值為終點,進行自動往復循環(huán)動作。畫面中,滑塊起點和終點是DI型變量,手動/自動檔位開關(guān)是DO型變量,X軸當前位置為AI型變量,其它為AO型變量。當主機與從機通信后,畫面即顯示出各變量的當前值。
uscada具有串口通道通信數(shù)據(jù)實時監(jiān)視功能,圖5為主從機通信數(shù)據(jù)實時監(jiān)視窗口圖。本系統(tǒng)的Modbus RTU從站函數(shù)能夠處理Modbus 01,02,03,04,05,06,15,16功能碼。
四、結(jié)語
本文所設(shè)計的4軸機械手,首先,具有一個由直流電機驅(qū)動的水平移動軸,與全部采用舵機驅(qū)動的機械手相比,增加了運動方式和控制方式的多樣性,并用到了STC增強型單片機的多種片內(nèi)資源,是更好的單片機教學與實踐模型。其次,本機械手能夠通過Modbus工控網(wǎng)絡(luò)與PC機聯(lián)網(wǎng),在PC端通過設(shè)計組態(tài)畫面實現(xiàn)對機械手的實時監(jiān)控,這就把單片機的學習與實踐提升到了網(wǎng)絡(luò)應(yīng)用的層面。再次,由于利用了STC單片機豐富的片內(nèi)資源,并通過上位機監(jiān)控實現(xiàn)人機交互,這就使得系統(tǒng)的控制電路簡單,且uscada為永久免費的組態(tài)軟件,所以使用本設(shè)計方案,能夠經(jīng)濟的組建具有工控網(wǎng)絡(luò)應(yīng)用的單片機實踐教學系統(tǒng)。
參考文獻
篇4
>> 基于STC89C58RD+的拼車計價系統(tǒng)的設(shè)計 基于單片機的MP3播放器設(shè)計 基于單片機的MP3播放器 基于STC89C51單片機的籃球計時計分器設(shè)計 試論STC89C52單片機 基于STC89C52單片機的微波自動節(jié)能報警器 基于STC89C54單片機投珠機的設(shè)計 基于STC89C52單片機的紅外遙控燈設(shè)計 基與STC89C52單片機智能印章機的設(shè)計 基于STC89C52RC單片機的智能小車設(shè)計 基于STC89C52單片機的舵機控制系統(tǒng)設(shè)計 基于單片機STC89C52的電阻測量系統(tǒng)設(shè)計 基于STC89C52單片機與LabVIEW控制的智能小車設(shè)計 基于STC89C52單片機的數(shù)控電流源設(shè)計 基于STC89C52單片機的ATM系統(tǒng)設(shè)計與實現(xiàn) 基于STC89C52單片機的智能窗設(shè)計 基于STC89C52單片機控制的智能滅火系統(tǒng)設(shè)計 基于STC89C52單片機的智能循跡小車設(shè)計 基于STC89C52單片機的防火卷閘門控制器設(shè)計 基于STC89C51單片機全自動洗衣機控制器設(shè)計 常見問題解答 當前所在位置:
關(guān)鍵詞:STC89C58RD+單片機;MP3;CH375芯片;VS1011E芯片
DOI: 10.3969/j.issn.1005-5517.2013.6.015
隨著人們對便攜式音樂播放器要求的提高,MP3播放器以其較小的體積和較好的音質(zhì)受到廣大音樂愛好者的青睞。起初,MP3文件由電腦來播放,后來互聯(lián)網(wǎng)的發(fā)展促進了MP3播放器的產(chǎn)生,同時MP3播放器也發(fā)生了一系列的變化,其更加小巧精致,更人機化和情趣化?,F(xiàn)在市場上MP3的款式越來越多,功能越來越豐富,但現(xiàn)有MP3播放器大多是將解碼器
與存儲器一體化的。這種設(shè)計使MP3播放器方便攜帶,但也帶來了問題:一是存儲容量不易擴展;二是不利于MP3播放器在其他領(lǐng)域的應(yīng)用。將播放器與存儲器分離是MP3播放器目前發(fā)展的一個方向[1-3]。本系統(tǒng)采用STC89C58RD+單片機,結(jié)合USB接口芯片CH375、解碼芯片VS1011E、Nokia5110液晶等設(shè)備設(shè)計并實現(xiàn)MP3播放器,該系統(tǒng)以USB-HOST方式讀取U盤的MP3文件并將其解碼播放,同時具備讀取音樂標簽,U盤電子書和貪吃蛇游戲等功能。
系統(tǒng)總體設(shè)計
數(shù)據(jù)讀取模塊
單片機讀取MP3數(shù)據(jù)模塊包括STC89C58RD+單片機、USB接口芯片CH375和MP3格式數(shù)據(jù)存儲U盤三部分。
STC89C58RD+單片機
系統(tǒng)采用STC89C58RD+單片機,該單片機是美國STC公司設(shè)計,國內(nèi)宏晶公司生產(chǎn)的新一代51增強型單片機,引腳和指令系統(tǒng)均與51單片機兼容。它具有加密性強、超強抗干擾、超低功耗、在系統(tǒng)可編程、內(nèi)含MAX810專用復位電路等特點[4]。
該單片機采用MCS51內(nèi)核,其內(nèi)含32KB的FLASH和1 6 K B的EEPROM,同時內(nèi)含1KB的內(nèi)部SRAM存儲空間。因而可用于音頻數(shù)據(jù)處理和顯示數(shù)據(jù)處理需要進行較大數(shù)據(jù)緩沖的情況下。該單片機最高可工作于33MHz時鐘,本系統(tǒng)中,它工作在30MHz時鐘下,能滿足系統(tǒng)對數(shù)據(jù)帶寬的要求。
CH375接口芯片
CH375是一種通用USB總線接口芯片,其內(nèi)部集成PLL倍頻器、數(shù)據(jù)緩沖區(qū)、主從USB接口SIE、被動并行接口、異步串行接口、命令解釋器、控制傳輸?shù)膮f(xié)議處理器和通用的固件程序等[5]。它有USB-HOST和USB- SLAVE兩種方式,其中USB-HOST方式支持各種常用的USB全速設(shè)備,外部單片機、MCU、DSP可以通過CH375按照相應(yīng)的USB協(xié)議與USB設(shè)備通信,這是由于在本地端,CH375具有讀、寫、片選控制線以及中斷輸出四條控制總線和八位數(shù)據(jù)總線,可以方便地掛接到單片機等控制器的系統(tǒng)總線上。CH375芯片內(nèi)部各部分的功用如下:①PLL倍頻器用于將外部輸入的12MHz時鐘倍頻到48MHz,作為USB接口SIE時鐘。②數(shù)據(jù)緩沖區(qū)用于緩沖USB接口SIE收發(fā)的數(shù)據(jù)。③主從USB接口SIE用于完成物理的USB數(shù)據(jù)接收和發(fā)送。④被動并行接口與異步串行接口用于與外部單片機交換數(shù)據(jù)。⑤URT串行接口用于代替并行接口與外部單片機交換數(shù)據(jù)。⑥命令解釋器用于分析并執(zhí)行外部單片機提交的各種命令。⑦控制傳輸?shù)膮f(xié)議處理器用于自動處理常用的控制傳輸?shù)亩鄠€階段,簡化外部固件的編程,降低了開發(fā)難度。⑧通用的固件程序?qū)崿F(xiàn)USB傳輸?shù)南嚓P(guān)協(xié)議。
系統(tǒng)采用VS1011E芯片對MP3音頻進行解碼。VS1011E音頻解碼芯片為VS10XX系列的第三代產(chǎn)品,是芬蘭VLSI Solution Oy公司生產(chǎn)的單片MP3/WMA/MIDI音頻解碼芯片,其內(nèi)部結(jié)構(gòu)如圖3所示。它包含一個高性能、低功耗的DSP處理核(VSDSP),5KB的指令RAM,0.5KB的數(shù)據(jù)RAM,串行的控制和數(shù)據(jù)輸入接口,四個通用I/O口,一個UART口,一個可變采樣率的ADC,一個立體聲DAC以及音頻耳機放大器。芯片可工作于12.288~14MHz或24.576~28MHz時鐘下??捎糜诮獯aMPEG1&2Layer1,2,3以及MPEG2.5Layer3格式、和WAV等格式文件[6]。
VS1011E芯片工作流程
VS1011E芯片工作時,首先將M P 3或WAV格式音頻文件通過SDI總線送入芯片內(nèi)部并解碼。解碼后,如果SCL_ AIADDR!=0,則執(zhí)行應(yīng)用區(qū)代碼(代碼地址由相應(yīng)的地址寄存器提供),然后再按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的設(shè)置,將數(shù)據(jù)送到低音和高音優(yōu)化器進行音效處理,之后再將數(shù)據(jù)通過音量控制單元備份到音頻FIFO中。音頻FIFO用于保持數(shù)據(jù),并將數(shù)據(jù)作為采樣率轉(zhuǎn)換器和DAC的輸入。采樣率轉(zhuǎn)換器可將所有不同采樣率轉(zhuǎn)換成CLKI/512信號送給DAC,再由DAC按位依次產(chǎn)生立體聲模擬信號,然后由系統(tǒng)將這些信號送到耳機功放。VS1011E的工作流程如圖4所示。
實現(xiàn)VS1011E芯片控制協(xié)議
VS1011E芯片與主機進行數(shù)據(jù)和控制信息的通信需要利用工作于從模式的SPI串行總線,通過串行數(shù)據(jù)接口(SDI)傳送音頻數(shù)據(jù),通過串行控制接口(SCI)傳送控制數(shù)據(jù)。VS1011E的SPI接口具有VS1002新模式(SM_ SDINEW=1)和VS1001兼容模式(SM_ SDINEW=0)兩種工作模式。當SM_ SDISHARED=1時,數(shù)據(jù)信號和控制信號的傳送共用xCS作同步信號;SM_SDISHARED=0時,則分別采用 xDCS和xCS為同步信號。作為從機工作模式,VS1011E可通過一個信號線DREQ指示是否允許主機傳送數(shù)據(jù)。當DREQ為高時,VS1011E至少可以接收32KB的SDI數(shù)據(jù)或SCI控制命令。下面以VS1002模式簡單分析SPI協(xié)議:
(1)SDI數(shù)據(jù)協(xié)議線
xDCS為同步控制線,低電平時激活,可輸入數(shù)據(jù),高電平時結(jié)束當前操作,以使串行接口處于等待狀態(tài),當SM_SDISHARED=1時,由xCS替換該引腳。SCK為時鐘線,由主控芯片提供時鐘。SI為數(shù)據(jù)輸入線,可在SCK上升沿采樣輸入SI數(shù)據(jù)。
(2)SCI控制命令線
xCS為同步控制線,低電平時激活,高電平結(jié)束當前操作,以使串口處于等待狀態(tài),同時使SO輸出線為高阻態(tài)。SCK(復用)為時鐘線。SI(復用)為控制命令輸入,可在SCK上升沿采樣輸入SI數(shù)據(jù),若xCS被拉低,則在SCK的第一個上升沿寫入數(shù)據(jù)線的第一個數(shù)據(jù)位。SO為數(shù)據(jù)輸出線,當主控制器讀VS1011E內(nèi)部控制寄存器狀態(tài)時,可在SCK下降沿輸出數(shù)據(jù),如果當前為寫操作,MJH SO為高阻態(tài)。
VS1011E芯片與單片機的接口電路
系統(tǒng)軟件設(shè)計
圖7為MP3播放器的軟件流程。采用C51語言對本系統(tǒng)單片機的軟件設(shè)計進行編寫,源程序共分單片機驅(qū)動CH375程序、單片機控制VS1011E實現(xiàn)音頻解碼程序及按鍵與顯示驅(qū)動程序三個部分。為了簡化程序設(shè)計,采用從官方網(wǎng)站下載CH375的API函數(shù)庫“CH375HF4.LIB”文件對CH375模塊部分程序進行編寫。由于單片機的硬件資源比較有限,在硬件調(diào)試過程中,當出現(xiàn)傳送頻率較高的MP3文件時可能會造成聲音失真,因此為了保證MP3文件播放流暢,在系統(tǒng)開發(fā)過程中應(yīng)優(yōu)化程序。
系統(tǒng)啟動后,先進行初始化,然后等待U盤插入,再通過CH375芯片將U盤中的MP3文件傳送至單片機內(nèi)部RAM緩沖。單片機是通過SPI總線方式讀出音頻信息的,并將MP3的碼流信息送入到VS1011E芯片中,通過 VS1011E芯片及其內(nèi)含的高質(zhì)量立體聲DAC和耳機驅(qū)動電路,實現(xiàn)MP3文件的播放功能。在按鍵的控制下,通過Nokia5110中菜單選項的選擇,實現(xiàn)對MP3文件選擇及音量控制等功能;播放時,顯示在Nokia5110上的信息包括MP3文件名稱、播放進度和音量等。經(jīng)過運行測試,該系統(tǒng)可正常流暢地播放出320kb/s的高音質(zhì)MP3文件,而且其功耗比較低,使用500mA鋰電池可連續(xù)正常播放十小時。
參考文獻:
[1] 王道乾,劉定智,等.基于ARM處理器的MP3播放器分析與實現(xiàn)[J].計算機工程與設(shè)計,2007,(07)
[2] 徐英欣.基于ARM的多通道專業(yè)MP3播放器設(shè)計[J].微計算機信息,2008,(14)
[3] 宋艷紅,孫涌.基于FS7821的磁帶式mp3播放器設(shè)計[J].電腦知識與技術(shù),2008,(S2)
[4] 王海濤,蔣德云,等.一種基于單片機STC89C58RD+的稱重顯示控制器[J].機電工程,2008,(06)
篇5
Abstract: This article introduces ZIGBEE data transmission under the control of STC microcontroller, points out the ZIGBEE data transmission error problem caused by mismatching of data transmission mode and SCM rate, and provides a reliable solution.
關(guān)鍵詞: ZIGBEE;數(shù)據(jù)傳輸;STC單片機
Key words: ZIGBEE;data transmission;STC microcontroller
中圖分類號:TP274 文獻標識碼:A 文章編號:1006-4311(2013)32-0205-02
基金項目:四川省科技支撐計劃項目;項目編號:2012SZ0158。
作者簡介:韓貴杰(1973-),男,甘肅平?jīng)鋈?,教研室主任,技術(shù)八級,研究方向為天線、自動控制。
0 引言
隨著電子技術(shù)的高速發(fā)展,人們對數(shù)據(jù)的獲取和過程的控制需求逐漸提升,無線傳感網(wǎng)絡(luò)因為其自身的優(yōu)勢備受關(guān)注。ZIGBEE技術(shù)作為無線傳感網(wǎng)絡(luò)中的一員,以其超低功耗、抗干擾等優(yōu)點在無線傳感網(wǎng)絡(luò)領(lǐng)域發(fā)揮著巨大的作用。本文采用順舟SZ05系列嵌入式無線通信模塊,此模塊具有通訊距離遠、抗干擾能力強、組網(wǎng)靈活、性能可靠等優(yōu)點;可以實現(xiàn)點對點、一點對多點、多點對多點的設(shè)備間的數(shù)據(jù)透明傳輸;可以組成星型、樹型、蜂窩型網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)。
1 順舟SZ05-ZIGBEE概述
SZ05系列無線通信模塊分為中心協(xié)調(diào)器、路由器和終端節(jié)點,這三類設(shè)備均有其特殊的網(wǎng)絡(luò)功能。SZ05-ZIGBEE無線通信模塊接口標準規(guī)范、采用標準2.54雙排插針,標準的RS-232和TTL兩種收發(fā)接口,配置方式有超級終端配置模式和計算機網(wǎng)關(guān)配置模式。
2 SZ05-ZIGBEE和STC單片機的硬件連接
SZ05-ZIGBEE接口規(guī)范,與STC單片機連接線路簡單,如圖1。
由圖1可以看出,SZ05-ZIGBEE和STC單片機只需通過串口相連即可,連接線少,不受單片機型號限制。
3 SZ05-ZIGBEE和STC單片機數(shù)據(jù)傳輸問題及解決辦法
SZ05-ZIGBEE和STC單片機硬件連接如圖1所示,并且不因型號而改變。SZ05作為收發(fā)模塊,數(shù)據(jù)傳輸時常見問題為數(shù)據(jù)傳輸錯誤,當數(shù)據(jù)接收端和發(fā)射端的波特率一致時(單片機和SZ05的波特率設(shè)置一致),那么數(shù)據(jù)傳輸錯誤的癥結(jié)就在于數(shù)據(jù)發(fā)送的方式和單片機的速率匹配問題了。當需要發(fā)送多個字節(jié)時,常見的收發(fā)模式有以下兩種:①逐個字節(jié)連續(xù)發(fā)送,接收端逐個接收逐個處理。②多個字節(jié)打包發(fā)送,接收端一起接收一起處理。兩種收發(fā)模式的流程圖如圖2、圖3所示。
STC單片機有1T、6T、12T 時鐘,不同的時鐘在上述的兩種收發(fā)模式下傳輸數(shù)據(jù)的方式各不相同,例如STC12C5A60S2(1T)以模式A或者模式B傳輸數(shù)據(jù)均無誤,可是STC89C51(12T)以模式A傳送數(shù)據(jù)時就會傳輸錯誤,這是因為模式A中發(fā)送數(shù)據(jù)和模式B發(fā)送數(shù)據(jù)沒有本質(zhì)上的區(qū)別,均是逐個字節(jié)發(fā)送,而接收數(shù)據(jù)時模式A是在接收到一個字節(jié)之后,會去處理已經(jīng)接收的數(shù)據(jù),12T時鐘的單片機由于處理數(shù)據(jù)的速度有限,這樣就會丟掉后面若干個數(shù)據(jù),繼而導致傳輸數(shù)據(jù)錯誤。12T時鐘的單片機傳輸數(shù)據(jù)時,收發(fā)兩側(cè)的數(shù)據(jù)接口波形圖如圖4所示。
從圖4中可以看出,收發(fā)兩側(cè)的波形圖明顯不一致,數(shù)據(jù)傳輸必然錯誤。對于這類因為發(fā)送方式和單片機速率而導致的數(shù)據(jù)傳輸錯誤問題,解決的辦法是根據(jù)單片機速率選擇合適的發(fā)送方式。通常如果發(fā)送的數(shù)據(jù)為一個字節(jié),那么利用模式A均可發(fā)送成功,不必考慮單片機的速率;如果發(fā)送的數(shù)據(jù)較多(若干個數(shù)據(jù)),那么就要根據(jù)單片機的速率來選擇了,1T時鐘下選擇模式A或者B均可,12T時鐘下選擇模式B。
4 結(jié)論
對于STC單片機控制下的SZ05-ZIGBEE數(shù)據(jù)傳輸錯誤這一問題,本文給出了詳細的分析和解決辦法。不同時鐘的單片機在傳輸數(shù)據(jù)時要根據(jù)傳輸數(shù)據(jù)的大小和單片機的速率選擇合適的數(shù)據(jù)收發(fā)方式,這樣可以減少系統(tǒng)中ZIGBEE的調(diào)試難度和時間。
參考文獻:
[1]上海順舟網(wǎng)絡(luò)科技有限公司.SZ05-ZIGBEE產(chǎn)品使用手冊.
[2]孫茂,陳利學.Zigbee技術(shù)在無線傳感網(wǎng)絡(luò)中的應(yīng)用[J].傳感器技術(shù),2008(2):192-194.
篇6
【關(guān)鍵詞】射頻識別;單片機;讀寫器
射頻識別系統(tǒng)通常由電子標簽和讀寫器兩部分組成,通常被識別物品的具體信息被存儲在電子標簽當中,而電子標簽一般情況下被放在被識別物品上,通過非接觸的方式,射頻讀寫器可以很容易的獲取到所存儲的信息[1]。讀寫器可以對接收的電子標簽的信息進行調(diào)制解碼,然后通過計算機和網(wǎng)絡(luò),將讀出的標簽信息進行信息傳輸和管理[2-3]。STC12C5A60S2系列的單片機具有超強抗干擾能力、可用低頻晶振、低功耗、可遠程升級、可送STC-ISP下載編程器、內(nèi)部集成高可靠復位電路等優(yōu)點[4],基于上述優(yōu)點,本文選用STC12C5A60S2系列的STC12LE5A32S2作為射頻讀寫器的主控制器。
1 射頻讀寫器總體設(shè)計
射頻讀寫器的硬件組成框圖如圖1所示。
為了增加讀寫模塊的通用性和可擴展性,在硬件設(shè)計時遵循模塊化的設(shè)計思想。整個讀寫模塊主要由四大部分組成。
1.1 主控MCU
主控單片機主要用于射頻讀寫芯片和RF收發(fā)芯片的控制操作。本文選用STC12C5A60S2系列的STC12LE5A32S2做為主控制器。
1.2 射頻讀卡模塊芯片
射頻讀寫芯片,一方面該模塊負責接收主控單片機的控制信息,另一方面主要完成與電子標簽的通信操作。本文選用 TX125系列非接觸IC卡射頻讀卡模塊。
1.3 RF收發(fā)模塊
RF收發(fā)模塊的作用是為數(shù)據(jù)包處理、數(shù)據(jù)換沖、突發(fā)數(shù)據(jù)傳書、清洗信道評估、連接質(zhì)量指示和電磁波技法等一系列工作提供廣泛的硬件支持。本文選用CC1100做為RF收發(fā)模塊的主控芯片。
1.4 RS232接口模塊
本設(shè)計選用RS232異步通訊接口。臺式電腦上一般都有這種接口配置,這種配置做為臺式電腦的基本配置而存在。綜上所述,射頻讀寫器的總體結(jié)構(gòu)框圖如圖1所示。
圖1 射頻讀寫器硬件組成框圖
2 射頻讀卡器各個模塊設(shè)計
2.1 STC12LE5A32S2應(yīng)用線路圖
晶振電路:如果是外部時鐘頻率在33MHz以上的情況,這時就直接可以使用外部有源晶振,反之則使用R/C振蕩器時鐘(室溫情況下5V單片機為:11MHz~15.5MHz,3V單片機為8MHz~12MHz),XTAL1和XTAL2腳浮空;在外部時鐘頻率在27MHz以上的情況下,使用標稱頻率就是基本頻率的晶體,但不要使用三泛音的晶體,否則如參數(shù)搭配不當,就有有可能會出現(xiàn)振在基頻的情況發(fā)生,在此狀態(tài)下實際頻率就只有標稱頻率的1/3了,也可以直接使用外部有源晶振(時鐘從XTAL1腳輸入,XTAL2腳必須浮空)。
2.2 射頻讀卡模塊TX125
非接觸IC卡射頻讀卡模塊TX125系列采用的是125K的射頻基站。當有射頻卡靠近模塊的情況發(fā)生時,模塊會以韋根或UART方式輸出ID卡卡號,用戶僅需簡單的讀取即可,如果是在在串口方式下,該模塊可工作在主動與被動的模式兩種模式之下[5]。該讀卡模塊完全支持EM、TEMIC、TK及其兼容卡片的操作,TX125系列非接觸IC卡射頻讀卡模塊實物圖如圖2所示。
圖2 TX125系列非接觸IC卡射頻讀卡模塊實物圖
TX125支持韋根接口和串口兩種協(xié)議,本設(shè)計選用韋根接口。TX125韋根接實物圖如圖3所示。
圖3 韋根接口實物圖
2.3 RF收發(fā)模塊CC1100
論文里選擇射頻收發(fā)器CC1100芯片作為RF收發(fā)模塊,這是ChiPCon公司生產(chǎn)的一種收發(fā)器CC1100芯片。該芯片優(yōu)點有:不需要大量的外部器件,所以集成度很高;選SPI接口作為其數(shù)據(jù)接口,擁有高達500kbps的傳輸速率;CRC(循環(huán)冗余碼校驗)和自動處理數(shù)據(jù)頭;功耗特別低,其工作電壓僅為1.9-3.6V;工作的頻道依次是4335MHz、8685MHz和915MHz,每個頻道之間的轉(zhuǎn)換時間低于650s;點對點傳輸模式和廣播傳輸模式均可以[6]。
2.4 射頻讀寫器工作流程
射頻讀卡器作為一個系統(tǒng),不僅包括硬件部分,還包括有軟件部分。對于本設(shè)計,有許多接口需要軟件的支持,軟件程序應(yīng)用Keil C語言進行編寫。主控MCU工作流程如下:
1)初始化接收緩沖區(qū);
2)檢查TX125連接超時次數(shù)不得大于10次,否則重新發(fā)送電子標簽數(shù)據(jù);
3)當電子標簽經(jīng)過后,將電子標簽內(nèi)的數(shù)據(jù)發(fā)送到接收緩沖區(qū)并啟動定時器;
4)檢查CC1100連接超時次數(shù)不得大于10次,否則重新發(fā)送電子標簽數(shù)據(jù);
5)對接收到的數(shù)據(jù)進行檢查,若收到的數(shù)據(jù)為10字節(jié)則檢查它的正確性,反之則重新發(fā)送數(shù)據(jù);
6)檢查讀寫器是否存在故障;
7)清空接收緩沖區(qū)。
3 射頻讀寫器調(diào)試結(jié)果
圖4 調(diào)試參數(shù)設(shè)置
調(diào)試軟件AccessPort是一款集端口調(diào)試、攔截數(shù)據(jù)等多功能為一體的串口調(diào)試工具,他具有簡單、易用、功能強大等優(yōu)點。實驗中的硬件配置:CPU 3.0GHz,2G的內(nèi)存,160G的硬盤。
調(diào)試參數(shù)設(shè)置如圖4所示。
當標簽經(jīng)過時,讀卡器能很迅速的讀出電子標簽的信息,并且顯示正確,表明了讀卡器良好的閱讀性和可用性。調(diào)試結(jié)果如圖5所示。
圖5 調(diào)試結(jié)果
調(diào)試結(jié)果表明:該讀卡器讀卡距離穩(wěn)定、穿透性較強、具有嚴格的方向性和穩(wěn)定性、適用于露天環(huán)境、維護方便。用STC12LE5A32S2作為主控MCU的讀卡器讀寫速度快,讀寫信息正確,具有一定的抗干擾性,能在惡劣的環(huán)境下對電子標簽信息進行閱讀,并且操作方便,可以直接下載程序,在調(diào)試工作中該性能給予了很大的便利性。
【參考文獻】
[1]王圣禮.超高頻射頻識別(RFID)閱讀器的設(shè)計與實現(xiàn)[D].杭州:浙江大學,2008:15-19.
[2]John R. Tuttle.Traditional and emerging technologies and applications in the radio frequency identification industry[J].IEEE Radio Frequency Integrated Circuits Sysmposium,2004,32(5):9-15.
[3]Matthew M, Radmanesh. Radio frequency and microwave electronics illustrate[J].Publishing House of Electronics Industry,2002(3):467-470.
[4]左安友,劉延平,黃勇.基于STC12C5A60S2單片機的樓宇平面結(jié)構(gòu)顯示系統(tǒng)設(shè)計[J].湖北民族學報:自然科學版,2011,12(04):13-19.
篇7
【關(guān)鍵詞】rtx51tiny 實時操作系統(tǒng) 單片機 stc12c5a60s2
rtx51tiny實時操作系統(tǒng)是keil c51單片機集成開發(fā)環(huán)境自帶的一個實時操作系統(tǒng),它功能強大、簡單易用。它可以應(yīng)用在所有的8051衍生的單片機系列中。stc12c5a60s2單片機是深圳宏晶科技有限公司旗下的功能強大的1t單片機。此單片機是新一代增強型8051單片機,運行的速度是傳統(tǒng)8051單片機的8~12倍,這是相當快的速度。它內(nèi)部資源豐富,兼容性強,并且內(nèi)部rom可達60kb,對于一般的應(yīng)用已經(jīng)足夠。
在一些比較復雜的應(yīng)用中,如果使用超級循環(huán)進行編程,則在實時性,邏輯性,資源的共享等方面存在較為復雜的關(guān)聯(lián)性,這對編程來說是不利的。另外在增加與刪除功能上也會增加編程的復雜性。能不能把rtx51tiny操作系統(tǒng)移植到stc12c5a60s2單片機上呢?如果可以則在保證實時性的基礎(chǔ)上,編程的復雜性會大幅降低,程序可維護性也會大幅提升。增加或者刪除功能會變得相當容易。
答案是肯定的。rtx51tiny操作系統(tǒng)完全可以移植到stc12c5a60s2單片機上。
先來看看rtx51tiny操作系統(tǒng)介紹。
一、rtx51tiny操作系統(tǒng)的特性
rtx51tiny操作系統(tǒng)是集成在keil c51開發(fā)環(huán)境中的實時系統(tǒng)。它的主要特點如下:
(一)采用時間片輪轉(zhuǎn)調(diào)度策略進行任務(wù)切換,不支持搶占式任務(wù)調(diào)度策略。
(二)允許最大16個任務(wù)循環(huán)切換。
(三)支持信號傳遞,不支持消息處理、隊列處理、郵箱等功能。
(四)內(nèi)核很小,最大僅占用900字節(jié)。
(五)系統(tǒng)函數(shù)僅有13個,非常容易使用。
(六)支持硬件中斷功能。
根據(jù)它的特點,我們可以得到這樣的結(jié)論:rtx51tiny操作系統(tǒng)非常適合應(yīng)用于8051系列單片機,可以實現(xiàn)多任務(wù)協(xié)同工作。在實時性上,可以采用硬件中斷響應(yīng),速度與沒有使用操作系統(tǒng)一樣快捷。
二、rtx51tiny工作原理
rtx51 tiny 用標準8051的定時器0(模式1)生產(chǎn)周期性的中斷。該中斷就是rtx51 tiny的定時節(jié)拍(timer tick)。庫函數(shù)中的超時和時間間隔就是基于該定時節(jié)拍來測量。
rtx51tiny通過時間片輪詢的辦法對任務(wù)進行切換。時間片通常設(shè)置很短只有幾個到幾十個毫秒。每一個任務(wù)都有自己的時間片,當自己的時間片用完或者調(diào)用了os_wait()函數(shù)與os_switch_task()函數(shù)則任務(wù)進行切換。只要這個時間片足夠短,則多個任務(wù)之間在宏觀上可以看成“并行”執(zhí)行,而微觀上則是輪流執(zhí)行。
多個任務(wù)可以“并行”執(zhí)行,這在單片機處理多個事件時,有很多的好處,因為我們在使用單片機時經(jīng)常會遇到需要同時處理的事件。
三、stc12c5a60s2單片機介紹
stc12c5a60s2功能強大,它的主要特點如下:
(一)具有較大的rom,可以達到60kb。
(二)不僅與傳統(tǒng)8051單片機一樣擁有256字節(jié)的內(nèi)部ram,而且還在內(nèi)部擴展了1024字節(jié)的ram。
(三)通過串口下載程序,程序下載次數(shù)可以達10萬次以上。省去了仿真器,程序調(diào)試相當方便。
(四)兼容傳統(tǒng)8051指令集。
(五)運行速度是傳統(tǒng)8051的8~12倍。
(六)片內(nèi)擁有1k字節(jié)的eeprom,可以在程序運行時讀寫,如須保存一些永久數(shù)據(jù)則可以使用它。
(七)具有兩個串口。
以上是此單片機的主要特點。這些特點顯示它是一款功能十分強大的單片機,在較為復雜的應(yīng)用中也能夠勝任。
四、rtx51tiny針對單片機stc12c5a60s2的設(shè)置
在keil c51這個軟件的安裝目錄:keil/c51/rtxtiny2/sourcecode/下有一個文件conf_tny.a51,此文件是 rtx51tiny操作系統(tǒng)的設(shè)置文件。可以通過記事本打開它,也可以通過keil c51軟件打開它。它里面的設(shè)置是用匯編指令編寫的。
rtx51tiny需要設(shè)置的內(nèi)容如下:
(一)指定定時節(jié)拍中斷寄存器組
默認狀態(tài):int_regbank equ 1
寄存器組默認設(shè)置為0。對stc12c5a60s2單片機來說,它有四組通用寄存器,在沒有特殊要求的情況下,使用哪一組都行,使用默認值即可。
(二)指定定時節(jié)拍長度
默認狀態(tài):int_clock equ 10000
rtx51tiny為了產(chǎn)生系統(tǒng)需要的定時節(jié)拍,固定使用傳統(tǒng)8051單片機的定時中斷t0,用它產(chǎn)生定時節(jié)拍。默認狀態(tài)下,一個定時節(jié)拍的長度為10000個機器周期。對于傳統(tǒng)8051單片機來說,如果采用12mhz晶振,則一個機器周期是1μs,10000個機器周期則是10ms,所以定時節(jié)拍時長為10ms。stc12c5a60s2單片機它比傳統(tǒng)的8051單片機快8~12倍。在定時時長方面則是12倍(auxr特殊功能寄存器的 t0x12位置1)。由此它的機器周期是1/12μs,則定時節(jié)拍為833.3μs。為了得到整數(shù),我們可以設(shè)定int_clock為12000、 24000、36000、48000、60000等,對應(yīng)的定時節(jié)拍時長為:1ms、2ms、3ms、4ms、5ms。這里的定時節(jié)拍可以作為 os_wait()函數(shù)等待的一種事件。如定時節(jié)拍數(shù)是整數(shù),則使用os_wait()函數(shù)來延時更方便計算。 ?。ㄈ┲付ㄈ蝿?wù)運行時間片長短
默認狀態(tài):timesharing equ 5
時間片是任務(wù)不間斷運行的最長時間,默認為5,即為5個定時節(jié)拍。如果設(shè)定定時節(jié)拍為1ms,則時間片為5ms,以些類推。此默認值可不改變。為了使任務(wù)“并行”執(zhí)行,時間片不能太短,太短會使單片機花費在任務(wù)切換上的時間變多,而實際任務(wù)執(zhí)行的時間變短。時間片不能太長,太長則會使任務(wù)切換不夠快,并行執(zhí)行的效果差,嚴重時會使快速的信號得不到處理。這時我們應(yīng)該根據(jù)任務(wù)的數(shù)量來確定此值,比如任務(wù)的數(shù)量比較少,可以把此值設(shè)得大一些,任務(wù)數(shù)量多,可以把此值設(shè)定得小一些??傊箷r間片處在幾個到幾十個毫秒之間即可。
(四)是否執(zhí)行長中斷
默認狀態(tài):long_usr_intr equ 0
不執(zhí)行長中斷。如果為1則執(zhí)行長中斷。執(zhí)行長中斷是什么意思呢?
rtx51tiny,在系統(tǒng)執(zhí)行過程中,有兩種中斷:一種是單片機的硬件中斷。一種是任務(wù)切換造成的中斷。此處指硬件中斷。在 rtx51tiny運行時,希望硬件中斷發(fā)生時,執(zhí)行中斷服務(wù)函數(shù)非???,不影響到任務(wù)切換,一旦影響到任務(wù)切換就會影響到程序的實時性。但有時,中斷服務(wù)函數(shù)要處理的件事需花費較長的時間,此時就會影響到任務(wù)的切換。為了讓系統(tǒng)支持長中斷,可以設(shè)置此參數(shù)為1。一般情況下,不使用長中斷,即使有件事要花較長的時間處理,也不使用長中斷??梢园阎袛喾?wù)作為一個任務(wù)來處理。發(fā)生中斷時,可以發(fā)信號給此任務(wù),讓它變成就緒態(tài),然后運行。這樣就可以保證其他任務(wù)的實時性。
(五)在定時節(jié)拍中斷中,加入自己的代碼
默認狀態(tài):hw_timer_code macro
; empty macro by default
reti
endm
默認狀態(tài)是不加任何代碼。一般情況下,我們可以不加代碼,如果我們想得到一個與定時節(jié)拍相關(guān)的信號則可以在空處加入如下代碼:
cpl p10 ;此指令功能是對p1.0取反。
此時可以從p1.0引腳輸出一個頻率是定時節(jié)拍頻率兩倍的信號。
為了實現(xiàn)這個功能,我們還得在conf_tny.a51文件中,加入p10的定義。可以在地址定義處加入以下兩行匯編代碼:
p1 data 0b0h
p10 bit 0b7h
(六)是否支持代碼分頁
默認狀態(tài):code_banking equ 0
不支持代碼分頁。如果為1,則支持代碼分頁。什么是代碼分頁呢?
對于8位的單片機,它的尋址范圍只有64kb(216),如果單片機的程序編譯以后得到的16進制文件超過了64kb,則需要通過分頁的方式進行訪問,否則超過的部分無法訪問。這就是代碼分頁。而我們使用的stc12c5a60s2單片機的rom只有60kb,沒有達到8位單片機尋址的極限,不需要代碼分頁。這個參數(shù)保持默認值。
(七)設(shè)置內(nèi)部ram的最大值
默認狀態(tài):ramtop equ 0ffh
默認ram的最大值為255。這與傳統(tǒng)的單片機內(nèi)部的ram結(jié)構(gòu)一致。而stc12c5a60s2單片機內(nèi)部擴展了1024字節(jié)的內(nèi)部擴展ram。它的實際內(nèi)部ram地址為0x000~0x3ff。那么在這里我們應(yīng)該把這個參數(shù)設(shè)置為什么值呢?
在stc12c5a60s2單片機的使用手冊中,有這樣的表達:
當把寄存器auxr中的extram設(shè)置為0時,就可以通過movx @dptr和movx @ri兩條語句來訪問內(nèi)部擴展的ram。movx @dptr可以訪問0x00~0x3ff地址的內(nèi)部擴展ram,而超過這個范圍的則都是訪問外部ram。movx @ri語句只能訪問0x00~0xff的地址。與傳統(tǒng)8051單片機一樣。
根據(jù)這樣的表述我們是不是就可以把這個參數(shù)設(shè)置為3ffh呢?
我們再
來看看rtx51tiny中的設(shè)置文件conf_tny.a51中對ramtop這個參數(shù)的操作,實際上都是把ramtop當成一個字節(jié)來操作,如果我們把ramtop設(shè)置為3ffh,超出了一個字節(jié)的范圍,在操作時,還是當成一個字節(jié)。由此我們得出結(jié)論,ramtop這個參數(shù)還是使用默認值。那么stc12c5a60s2單片機內(nèi)部擴展的1024字節(jié)內(nèi)部ram如何使用呢?在使用手冊中,有明確的表示:在變量前加上xdata關(guān)鍵字即可。
(八)設(shè)置發(fā)生任務(wù)切換時,最小的堆棧需求
默認狀態(tài):free_stack equ 20
在默認狀態(tài)下,這個參數(shù)設(shè)置為20,即最小需要20個字節(jié)的ram存儲空間。在這里設(shè)置為默認值。
(九)在發(fā)生堆棧錯誤時運行的宏
在任務(wù)切換時,單片機內(nèi)部ram沒有達到最小20字節(jié)的要求,則發(fā)生堆棧錯誤。這是一個循環(huán)。代碼如下:
stack_error macro
clr ea ; disable interrupts
sjmp $ ; endless loop if stack space is exhausted
endm
首先把總中斷允許位清零,不再允許任務(wù)切換,然后進入一個死循環(huán),不再執(zhí)行任務(wù)操作。
10.設(shè)置是否允許單片機進入空閑模式
cpu_idle_code equ 0 ; 0 cpu_idle macro is not inserted
; 1 cpu_idle macro is executed
默認狀態(tài):不插入cpu進入空閑模式的宏。
有很多的單片機有這個功能,stc12c5a60s2也有這個功能,我們可以使能這段代碼。這樣在沒有其他任務(wù)運行時,單片機會進入到空閑模式。在空閑模式下,只有cpu不工作,其他部分仍然在工作。這主要是從節(jié)能方面考慮,如沒有這項考慮可以不插入這段宏。
cpu_idle macro
orl pcon,#1; set 8051 cpu to idle
endm
以上是可以插入的宏。
到此,針對stc12c5a60s2單片機的設(shè)置已經(jīng)完成。
五、使用rtx51tiny的步驟
(一)在c語言文件的開頭,包含頭文件“rtx51tny.h”。如下:#include
(二)把conf_tny.a51文件拷貝到自己的工程中來,并添加到工程中。然后進行相應(yīng)的設(shè)置。
(三)編寫自己的程序。
六、使用rtx51tiny注意的事項
(一)確認把頭文件rtx51tny.h包含到文件中來。
(二)不需要編寫main函數(shù),rtx51tiny有自己的main函數(shù)。
(三)至少建立一個任務(wù)函數(shù)。這個任務(wù)就是任務(wù)0。
(四)至少調(diào)用一個rtx51tiny系統(tǒng)函數(shù)。否則,連接器不會包含rtx51tiny庫。
(五)在任務(wù)0 中建立其他任務(wù)。
(六)任務(wù)函數(shù)不能有形參與返回值。并且任務(wù)內(nèi)要采用死循環(huán)的方法把要執(zhí)行的程序包起來。
經(jīng)過以上的設(shè)置后,rtx51tiny可以很方便的移植到stc12c5a60s2上。
七、結(jié)束語
本文論述了把rtx51tiny操作系統(tǒng)移植到單片機stc12c5a60s2上的方法。這種方法具有廣泛的應(yīng)用性。但限于作者的水平,文中難免有錯誤的地方,希望得到諒解。
參考文獻:
篇8
關(guān)鍵詞:恒溫箱單片機數(shù)字溫度傳感器
中圖分類號:TP273.5 文獻標識碼:A文章編號:1007-9416(2012)03-0000-00
1、引言
隨著恒溫箱在醫(yī)療衛(wèi)生、科研、工業(yè)等領(lǐng)域的廣泛應(yīng)用,已越發(fā)突出其重要性。研究并設(shè)計一種先進實用的恒溫箱已成為工業(yè)生產(chǎn),商業(yè)運營的一個重要研究課題,而設(shè)計其關(guān)鍵技術(shù)在于如何保持箱內(nèi)溫度恒定。本系統(tǒng)以52系列單片機為控制核心,采用數(shù)字溫度傳感器進行溫度檢測,從而實現(xiàn)溫度箱的溫度檢測與控制功能。
2、系統(tǒng)方案設(shè)計
本系統(tǒng)是基于STC89C52單片機的應(yīng)用開發(fā),集溫度信號采集、數(shù)據(jù)處理及溫度保持等一體的數(shù)字控制系統(tǒng)。系統(tǒng)由下列模塊組成:顯示模塊、單片機、按鍵輸入模塊、溫度采集模塊、輸出電路模塊,如圖1所示。
3、溫度測量
系統(tǒng)采用DS18B20數(shù)字溫度傳感器進行溫度采集。DS18B20是由美國DALLAS半導體公司生產(chǎn)的,具有精度更高、體積更小、使用電壓更寬、采用一線總線、可組網(wǎng)等優(yōu)點,并且抗干擾能力強[1]。由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念。因此系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20(發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)[2]。
溫度檢測系統(tǒng)采用寄生電源供電方式。無論是單點還是多點溫度檢測,在系統(tǒng)安裝及工作之前,應(yīng)將主機逐個與DS18B20掛接,讀出其序列號。其工作過程為:主機Tx發(fā)一個脈沖,待“0”電平大于480us后,復位DS18B20,待DS18B20所發(fā)響應(yīng)脈沖由主機Rx接收后,主機Tx再發(fā)讀ROM命令代碼33H(低位在前),然后發(fā)一個脈沖(15us) 并接著讀取DS18B20序列號的一位。用同樣方法讀取序列號的56位。它分三步完成:(1)系統(tǒng)通過反復操作,搜索DS18B20序列號;(2)啟動所有在線DS18B20做溫度A/D變換;(3)逐個讀出在線DS18B20變換后的溫度數(shù)據(jù)。
4、輸出控制電路
本系統(tǒng)裝置了加熱電阻絲溫度調(diào)節(jié)裝置以便于調(diào)節(jié)恒溫箱的溫度恒定。輸出控制電路如圖2所示,其工作原理是單片機通過P3.1的輸出信號經(jīng)光電耦合器控制雙向可控硅的門極,當輸出高電平時,使雙向可控硅導通,電阻絲導通;輸出低電平時,雙向可控硅截止,電阻絲斷電。
5、按鍵輸入和顯示電路
本系統(tǒng)設(shè)置了5個按鍵分別實現(xiàn)不同功能:復位鍵、顯示切換鍵、功能設(shè)定鍵、溫度加1℃鍵、溫度減1℃鍵,同時采用共陽極數(shù)碼管LG5641A進行動態(tài)顯示。
6、軟件流程
主程序采用中斷嵌套方式設(shè)計,各功能模塊可直接調(diào)用。主程序完成系統(tǒng)的初始化,中斷設(shè)置,溫度預設(shè),預設(shè)溫度的顯示。中斷程序通過調(diào)用溫度檢測子程序、溫度顯示子程序、溫度比較子程序、溫度控制子程序完成系統(tǒng)全部功能。
7、結(jié)語
本文采用單片機和數(shù)字溫度傳感器采集恒溫箱的溫度,應(yīng)通過溫度比較程序,由此結(jié)果來控制加熱電阻絲和風扇的開斷從而控制溫度箱的溫度,具有結(jié)構(gòu)簡單,操作方便,成本低廉等優(yōu)勢,具有很好的應(yīng)用背景。
參考文獻
[1] 郁有文,程繼紅.傳感器原理及工程應(yīng)用[M].西安:西安電子科技大學出版社,2003.
篇9
【關(guān)鍵詞】51單片機 語音播放系統(tǒng)
1 各種語音播放系統(tǒng)的對比和分析
如表1所示。從表1不難看出,采用ST C12+FLASH存貯芯片的方案在無論在成本及靈活性方面都具備很好的優(yōu)勢。
2 STC12系列增強型51單片機播放系統(tǒng)的硬件構(gòu)成
如圖1。本系統(tǒng)的MCU采用了宏晶公司的STC125404芯片,它的P3.7具有PWM功能,因此連接到功放電路LM4890上。語音的存貯芯片采用了旺宏(MXIC)公司的MX25xxx08系列串行NOR Flash芯片,如果采用一片16Mbyte容量的芯片,存放8KHZ、8bit采樣頻率的語音文件(即8000字節(jié)/秒),按以下計算公式:
16*1024K/8K=2097(秒)
也就是可以播放時長大約為2097秒的語音文件。
語音數(shù)據(jù)是將音頻wav文件的頭信息去掉之后提取出來的,然后按應(yīng)用的需要,分段燒錄到Flash的固定位置,將語音的存放位置和長度記錄下來,以供播放程序調(diào)用。
3 STC12系列增強型51單片機播放系統(tǒng)的軟件構(gòu)成
PWM產(chǎn)生聲音的原理是:調(diào)節(jié)PWM的輸出脈沖的占空比來產(chǎn)生不同幅度的電壓,這個幅值就接近于語音的聲波。如圖2所示聲音的波形圖。
而PWM輸出頻率越高,產(chǎn)生的音波幅值就越精確。STC12系列增強型51單片機因為具有1T的機器周期,它的時鐘頻率是傳統(tǒng)的12T 的51單片機的12倍,因此它的PWM輸出頻率最高(以11.0592M的晶振頻率計算)可以達到11059200/256=43200HZ。這個頻率已經(jīng)接近44.1kHz 的CD音質(zhì)了,因此用它來播放語音文件,聲音效果也十分理想。
軟件設(shè)計工具采用Keil C51,語音播放主要用到單片機的兩個定時器。一個定時器用來產(chǎn)生8KHz的采樣頻率,本設(shè)計中采用T1定時器的8位定時器中斷功能,定時125us;另一個定時器用來產(chǎn)生PWM波形,本設(shè)計中采用T0定時器8位定時/計數(shù)器功能。設(shè)置好這兩個定時器的功能是程序開發(fā)的關(guān)鍵所在。
下面給出設(shè)置PWM寄存器的關(guān)鍵代碼:
/*設(shè)置STC12單片機的PWM功能*/
void Pca_Initialize(void)
{
CMOD = 0x04; //Setup PCA timer
CL = 0x00;
CH = 0x00;
CCAP0L = 0x7F; //Set the initial value same as CCAP0H
CCAP0H = 0x7F;
CCAPM0 = 0x42; //0100,0010 Setup PCA module 0 in PMW mode
PCA_PWM0=0x00;
}
/*兩個關(guān)鍵定時器的功能設(shè)置*/
void Soundinit()
{
Pca_Initialize();
AUXR =(AUXR|0xbf);
TR0=0;
TR1=0;
TMOD = 0x22;
TH1=0x8c;
TL1=0x8c; //1/8000hz=125us,就是125US一個采樣點,以11.0592M的晶振計算
TH0=0xff; //TL0=0xff; 定時器0的溢出率是PWM的時鐘源。
TR0 = 1;
TR1 = 1;
ET1 = 1;
CR = 1;
PT1=1;
PT0=0;
EA = 1;
}
/*每隔125us送一個新的采樣數(shù)據(jù)給PWM的寄存器*/
void timer1() interrupt 3
{
CCAP0H =SoundData[jx];
CCAP0L =SoundData[jx];
}
4 總結(jié)
現(xiàn)在越來越多的消費電子產(chǎn)品中需要增加語音報話功能,利用STC12系統(tǒng)單片機的PWM功能,可以以極低成本實現(xiàn)上述功能,電路設(shè)計簡單,語音更改靈活。并且這種語音播放技術(shù)可以很容易的推廣到其它具有PWM功能的單片機或者ARM芯片上,具有很長久和廣泛的應(yīng)用前景,因此是一項值得學習推廣的技術(shù)。
作者簡介
姜燕頻(1977-),女,上海市人。大學本科學歷,中級工程師。主要研究方向為嵌入式開發(fā),單片機C51、ARM開發(fā)、linux驅(qū)動開發(fā)、linux系統(tǒng)移植。
篇10
在談到解決TD-SCDMA手機技術(shù)問題的時候,ADI公司射頻及無線通訊系統(tǒng)部TD-SCDMA平臺產(chǎn)品經(jīng)理范紅顯得自信滿滿:“ADI的TD-SCDMA手機芯片,在技術(shù)成熟度、性能、穩(wěn)定性和靈活性方面都是業(yè)界首屈一指的。”的確,ADI在TD-SCDMA上投入所取得的成功幾乎是眾所周知的,而且從目前的情況來看,該公司也是唯――個能夠提供符合TD-SCDMA標準的完整且較為成熟方案的廠商。繼能夠支持384kbps數(shù)據(jù)帶寬的SoftFone-LCR+芯片組之后,該公司又推出了最新的Othello-3T單芯片直接變頻射頻收發(fā)器AD6552。它采用全CMOS工藝制造,將射頻發(fā)射和接收功能集成在了單一芯片上,從而可將SoftFone-LCR+芯片組中的5個芯片減少為4個(原來采用的是Othello-W射頻芯片,其接收器和發(fā)射器是分立的)。
AD6552的最大特點就是可支持雙頻帶,即標準的2.1GHz頻段,以及為將來做準備的1900MHz頻段。該收發(fā)器還省去了發(fā)送路徑通常需要的表面聲波(SAW)濾波器,簡化了手機射頻部分的設(shè)計。此外,其接收部分提供的誤差矢量幅度(EVM)性能滿足HSDPA的要求,并且包括全自動直流偏移控制。而且,該芯片還集成了壓控振蕩器、儲能電路、環(huán)路濾波器和電源管理等電路。與雙芯片Othelo-W單頻帶射頻收發(fā)器相比,該雙頻帶射頻收發(fā)器的元件數(shù)量幾乎減少了40%。
AD6552的接收部分包含一個覆蓋1900MHzN2000MHz頻帶的高性能單端低噪聲放大器。一個由內(nèi)置小數(shù)N分頻鎖相環(huán)(PLL)頻率合成器驅(qū)動的直接下變頻正交混頻器,它向可變增益放大器(VGA)提供基帶I(同相)與Q(正交)信號,以及帶直流偏移修正的可編程低通濾波器。AD6552的發(fā)射部分包含一個小數(shù)N分頻PLL頻率合成器、高性能VGA和驅(qū)動公共寬帶輸出級的正交調(diào)制器,還包括用于功率放大器控制的真實RMS射頻功率檢測器和內(nèi)置DAC。