stc單片機范文

時間:2023-04-09 23:37:47

導語:如何才能寫好一篇stc單片機,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

篇1

【關鍵詞】液體點滴速度;單片機

1.引言

隨著醫院管理系統趨向于電子化、網絡化,如何利用計算機與現代控制技術提高醫療器械的自動化成為目前主要應用方向之一。靜脈輸液是臨床醫學中一個重要的治療手段,傳統的輸液過程都是由監護人員手動控制液體點滴速度,造成了監護人員和病人的諸多不方便,也不利于病區的綜合管理。本系統應用自動化控制技術實現了對液體點滴速度的監控,該智能液體點滴監控儀可以對多床位進行遠程、集中、分床監測,并針對不同病人需不同的輸液速度而自動控制點滴數。護士可在護士室監控若干病房的輸液情況,而自動調整滴數,減輕護士的工作量,實現醫院護理自動化。而且在緊急情況下,可以向總控制臺發出報警。監護人員也可以通過遠程通信,監控病人輸液的整個過程,并對液滴速度進行設置等。

2.系統總體框圖

本系統以stc89C52單片機為核心,由光電傳感器組成數據采集部分,由步進電機作為驅動部分,采用鍵盤輸入,利用LCD作為顯示器。利用串口,實現了主單片機和多個從單片機之間的多機通信,一個主站控制多個從站的有線液體點滴速度監控系統(見圖1)。

3.系統硬件設計

1)數據采集

發光二極管發射的平行光束穿過茂菲氏滴管投射到光敏三極管的感光面上,在沒有液滴滴落時,光敏三極管接收到的光照度最大,產生的光電流也最大,當有液滴滴落時,由于液滴的形狀特性,使平行光束發散,投射到光敏三極管上的光照度將減弱,從而使光敏三極管產生的光電流減小,形成脈沖(見圖2)。

2)驅動部分

采用NMOS管IF530構成如圖所示的驅動電路。該電路的特點是無反向電流泄放電路,最大驅動電流達1安培。為了避免開機瞬間由于NMOS管全部導通對步進電機造成損壞,在單片機I/O口和MOS管之間加74HC04構成的反相器,以改變驅動邏輯(見圖3)。

4.系統軟件設計(見圖4)

5.系統算法的選擇

步進電機采用模糊控制與PI控制結合的算法。當點滴速度設定值與實際值的差值較大時,使用模糊控制,按照差值的符號決定電機運行方向,電機速度固定。當差值較小時,使用PI控制,電機速度均勻變化而無上下震蕩現象,能準確定位。參數整定采用試湊法。

6.總結

本系統可方便地實現對單點和多點輸液注射過程進行監控與管理,從而改善了工作條件,極大地減少了監護人員的工作量和由于監護不當造成的醫療事故,具有工作穩定、響應速度快、操作簡便等優點,在醫療衛生領域中具有廣泛的應用前景。

參考文獻:

[1]宋雪麗.基于單片機系統的液體點滴速度監控裝置設計[J].電腦開發與應用,2007/05.

[2]王紫婷.智能液體點滴速度監控儀[J].自動化與儀器儀表,2004/05.

篇2

【關鍵詞】STC89C52;舵機控制;串行通訊;PWM波

一、小型自控飛艇舵控系統簡介

舵機是小型自控飛艇執行機構中最主要的執行部件,能否快速、準確地完成對舵機的控制直接關系到飛艇的自主控制效果。因此,舵控系統成為小型飛艇自主飛行控制系統中最重要的組成部分之一,它的主要功能是接收艇載計算機發出的控制指令,實現對控制指令的采集、分析和處理,并根據控制指令向舵機輸出連續可調的舵控信號,操縱艇上各舵機完成預定動作。

二、舵控系統硬件設計

本飛艇舵控系統以多片STC89C52單片機為核心,配合電源模塊、驅動芯片及多路轉換開關等在一塊印制電路板上實現預定功能。

舵控系統主控芯片選擇STC89C52單片機,它具有8KB的并行可編程非易失性FLASH程序存儲器,并可對器件串行在系統編程(ISP)和在應用中編程(IAP)。數據保留時間:10年,全靜態工作:0Hz-24MHz,三級程序存儲器鎖定,128×8位內部RAM,32可編程I/O線,4組8位I/O口,兩個16位定時器/計數器,5個中斷源,可編程串行通道,低功耗的閑置和掉電模式,片內振蕩器和時鐘電路。

電源模塊采用78xx系列端穩壓集成電路,它是線性三端穩壓器件。利用該器件只需極少的器件便可構成高效穩壓電路,為MCU穩定可靠的工作提供強有力的保證。

此外,為增強信號的驅動能力,在輸出之前采用74LS245作為信號驅動芯片;串口電平轉換采用Max232芯片。

三、舵控系統軟件設計

1.軟件總體結構

舵控系統各單片機程序均在Keil C51環境下采用C語言編寫。為了保證系統的實時性及快速性,軟件編寫采用了主程序+任務+中斷的結構。

在三部分程序中,以主單片機1的外部中斷最多,包括串口中斷、與主單片機2的握手中斷以及艇載計算機看門狗的外部中斷,這幾個中斷的優先級排列順序是:艇載計算機看門狗中斷>串口中斷>握手中斷。主單片機1接收到艇載計算機通過RS232串口發來的信息幀后,首先進行幀識別,提取出前m個字節的數據,加上幀頭幀尾后由P1口發送給主單片機2;并將第m+1個字節數據作為開關量通道控制信號由P2口輸出,用作系統控制備用。

主單片機2程序的主要任務是通過其P1口接收上位機傳來的數據,提取各控制信息,在相應控制指令的前面加上地址,依次由串口發送給下位舵控單片機。

舵控單片機的主要任務是識別控制指令和地址指令,并根據收到的控制指令(舵機占空比信號)產生PWM波控制艇上舵機。

該系統軟件設計中的關鍵問題包括以下幾個方面:

(1)控制信號流程中數據幀的接收識別;

(2)舵控系統中主從單片機之間的多機通信;

(3)PWM波舵控信號的軟件產生方法。

2.軟件設計中的關鍵問題

(1)數據幀的串口接收及識別技術

采用了中斷服務程序就地幀識別技術,其優點在于數據接收后立即進行幀識別,省去了對緩沖區的管理工作,減少了存取次數,因而節省了大量的時間,極大地提高了接收程序的實時性。同時錯幀和斷幀被自動丟棄,不再占用資源。

(2)單片機多機通訊

在舵控系統設計中,各部分間的通訊是設計的重要內容,其中主要包括單片機與上位PC機間的通訊和單片機與單片機之間的通訊。在舵控系統中,主單片機1與上位PC機通訊是通過單片機自帶的一路異步串行通訊接口完成的;而主單片機1通過其P1口向主單片機2傳輸數據,

此系統中,主單片機2作為主機,m個舵控單片機作為從機,在主機與從機的通訊過程中,串口控制寄存器中SCON中的SM2位發揮了重要作用。當其中一個舵控單片機的SM2位為1時,該單片機只接收地址幀,對數據幀不理睬;而當SM2位為0時,該單片機接收所有發來的消息。具體通信過程如下:①首先將主、從單片機工作方式選為模式3,所有從機的SM2位開始置1,處于只接收地址幀狀態。②主機接收主單片機1發來的數據幀,從中提出數據部分(m個字節的指令對應m個舵控單片機),根據序號在控制指令字節前加上一個字節的地址信息。然后主機依次通過串口向下發送各舵控單片機的地址字節和數據字節。發送一幀地址信息,包含8位地址,第9位為1,表示發送的幀為地址幀。③從機接收地址幀后,進入中斷,將發來的地址與自身比較;地址一致的從機就是被尋址的從機,它清除SM2位,接收主機發來的所有后續幀信息(數據信息)。未尋址的所有其他從機仍維持SM2=1,對主機發來的數據幀不理睬,直到發來新地址幀;之后在下一次中斷時被尋址的從機接收主機發來的數據信息(第9位為0)。

需要注意的是,如果對已經尋址的從機再發送地址幀,則該從機SM2=1,恢復初始狀態,和其他從機競爭。

(3)舵控信號PWM波的產生

對飛艇舵機的控制最終是通過舵控單片機產生PWM波來實現的。通常,產生PWM波不外乎硬件和軟件兩種方法??紤]到舵控單片機計算任務不大,本系統中采用軟件產生PWM波的方法。下面以定時器0產生PWM波為例,說明通過軟件產生PWM波舵控信號的實現方法。

在程序中,由串口中斷接收上位機發s送的脈寬指令,繼而通過改變入口參數a來調整PWM波的脈寬,并確保脈寬輸出在正常范圍之內。通過該方法產生PWM波切實可行,簡單有效,可以廣泛應用于舵機控制信號的產生中。

參考文獻

[1]張晴,袁曉梅,羅凱.基于PWM信號遙控機器人的設計與制作[J].數字技術與應用,2010(10).

[2]馮曉偉,王雷陽,李正生.多路舵機控制PWM發生器的設計與Proteus仿真[J].現代電子技術,2011(11).

篇3

關鍵詞:機械手;STC單片機;Modbus;單片機控制

一、引言

本題目是我校2015大學生大創新項目“單片機機電控制及工控網絡應用”的一個組成部分,其設計內容是:用STC單片機控制一臺4軸機械手的運動,且單片機的串口與PC電腦通過Modbus網絡協議進行通信,PC端則通過運行組態畫面對單片機進行實時監控,詳見圖1機械手實物圖。

在圖1中,機械手的水平移動由直流電機經齒輪組減速驅動雙螺線螺桿,在直流電機軸的另一端安裝有光電碼盤,以檢測電機的角位移。螺桿的轉動帶動其上的滑塊作X軸水平運動。在滑塊上安裝有一臺三坐標機械手,其底盤旋轉(A軸),手臂擺動(B軸),夾爪開合(C軸)分別由三只數字舵機S1501驅動。整個機械手由一片STC12C5A32S2單片機控制。該單片機的串口經MAX485與PC進行通信,以Modbus RTU協議實現主從聯網。

二、控制電路設計

4軸機械手的控制電路如圖2所示。

在圖2中,STC12的P1.3/CCP0引腳用于接收與直流電機同軸安裝的碼盤的光電脈沖信號,并把PCA0設置為對該引腳上升/下降雙邊沿觸發中斷的工作方式,每當PCA0中斷發生,就根據電機轉向對碼盤脈沖數加1或減1操作,由此確定出滑塊(即X軸)的當前位置。P1.4/PWM1引腳的作用是向直流電機驅動電路發出PWM脈沖,實現直流電機的PWM調速。該PWM脈沖是通過把STC12的PCA1通道設置為8位PWM輸出方式來實現的。此外,在X軸兩端的極限位置,各安裝有一個光電開關,其信號分別接入P3.2/1NT0和P3.3/1NT1引腳。兩引腳的下降沿脈沖輸入能夠觸發STC12的1NT0、1NT1中斷。P0.0、P0.1、P0.2引腳用于向機械手底盤舵機、手臂舵機和夾爪舵機發出控制信號。STC12的P3.0、P3.1引腳通過MAX485芯片實現TTL/RS485轉換,轉換后的信號再接到FT232模塊的A、B端,經FT232模塊把RS485信號轉為PC電腦的USB信號。STC12的P3.7引腳用于MAX485的收/發控制。

三、PC組態監控設計

PC端采用uscada組態軟件進行上位機監控設計。在用uscada設計監控畫面前,要配置串口設備(即從機)的參數和數據區,并進行模擬量和狀態量管理。首先,應把串口通信協議設置為Modbus RTU,設置從站地址,該地址應與STC單片機自設的Modbus站址一致。然后再對串口設備數據區進行設置。uscada為從站設備配備了4種類型的數據區:Discrete Input,即DI,離散量輸入;Input Registers,即AI,輸入寄存器 ;Coil,即DO,線圈輸出;Holding Registers,即AO,保持寄存器。在uscada這4個區設置的變量應與在單片機XRAM中DI、AI、DO、AO型變量區設置的變量相對應,但名稱可以不同。主從機通信時,單片機的Modbus RTU函數將按照這種 對應關系處理變量。設置好從站的數據區后,就可以 定義模擬量和狀態量,并進行監控畫面設計。圖4為4軸機械手組態監控畫面圖。

在圖4的畫面中,分別對機械手的X、A、B、C軸設置了數字框圖元,用以顯示各軸坐標值,各軸數字框圖元右側的閥門圖元用于設定該軸的坐標值。機械手有手動/自動兩種工作方式,由圖中的檔位開關圖元進行轉換。手動方式下,機械手按圖4中左側各軸坐標設定值進行動作。自動方式下,機械手以手動方式的設定值為起點,以圖4中右側的設定值為終點,進行自動往復循環動作。畫面中,滑塊起點和終點是DI型變量,手動/自動檔位開關是DO型變量,X軸當前位置為AI型變量,其它為AO型變量。當主機與從機通信后,畫面即顯示出各變量的當前值。

uscada具有串口通道通信數據實時監視功能,圖5為主從機通信數據實時監視窗口圖。本系統的Modbus RTU從站函數能夠處理Modbus 01,02,03,04,05,06,15,16功能碼。

四、結語

本文所設計的4軸機械手,首先,具有一個由直流電機驅動的水平移動軸,與全部采用舵機驅動的機械手相比,增加了運動方式和控制方式的多樣性,并用到了STC增強型單片機的多種片內資源,是更好的單片機教學與實踐模型。其次,本機械手能夠通過Modbus工控網絡與PC機聯網,在PC端通過設計組態畫面實現對機械手的實時監控,這就把單片機的學習與實踐提升到了網絡應用的層面。再次,由于利用了STC單片機豐富的片內資源,并通過上位機監控實現人機交互,這就使得系統的控制電路簡單,且uscada為永久免費的組態軟件,所以使用本設計方案,能夠經濟的組建具有工控網絡應用的單片機實踐教學系統。

參考文獻

篇4

>> 基于STC89C58RD+的拼車計價系統的設計 基于單片機的MP3播放器設計 基于單片機的MP3播放器 基于STC89C51單片機的籃球計時計分器設計 試論STC89C52單片機 基于STC89C52單片機的微波自動節能報警器 基于STC89C54單片機投珠機的設計 基于STC89C52單片機的紅外遙控燈設計 基與STC89C52單片機智能印章機的設計 基于STC89C52RC單片機的智能小車設計 基于STC89C52單片機的舵機控制系統設計 基于單片機STC89C52的電阻測量系統設計 基于STC89C52單片機與LabVIEW控制的智能小車設計 基于STC89C52單片機的數控電流源設計 基于STC89C52單片機的ATM系統設計與實現 基于STC89C52單片機的智能窗設計 基于STC89C52單片機控制的智能滅火系統設計 基于STC89C52單片機的智能循跡小車設計 基于STC89C52單片機的防火卷閘門控制器設計 基于STC89C51單片機全自動洗衣機控制器設計 常見問題解答 當前所在位置:

關鍵詞:STC89C58RD+單片機;MP3;CH375芯片;VS1011E芯片

DOI: 10.3969/j.issn.1005-5517.2013.6.015

隨著人們對便攜式音樂播放器要求的提高,MP3播放器以其較小的體積和較好的音質受到廣大音樂愛好者的青睞。起初,MP3文件由電腦來播放,后來互聯網的發展促進了MP3播放器的產生,同時MP3播放器也發生了一系列的變化,其更加小巧精致,更人機化和情趣化。現在市場上MP3的款式越來越多,功能越來越豐富,但現有MP3播放器大多是將解碼器

與存儲器一體化的。這種設計使MP3播放器方便攜帶,但也帶來了問題:一是存儲容量不易擴展;二是不利于MP3播放器在其他領域的應用。將播放器與存儲器分離是MP3播放器目前發展的一個方向[1-3]。本系統采用STC89C58RD+單片機,結合USB接口芯片CH375、解碼芯片VS1011E、Nokia5110液晶等設備設計并實現MP3播放器,該系統以USB-HOST方式讀取U盤的MP3文件并將其解碼播放,同時具備讀取音樂標簽,U盤電子書和貪吃蛇游戲等功能。

系統總體設計

數據讀取模塊

單片機讀取MP3數據模塊包括STC89C58RD+單片機、USB接口芯片CH375和MP3格式數據存儲U盤三部分。

STC89C58RD+單片機

系統采用STC89C58RD+單片機,該單片機是美國STC公司設計,國內宏晶公司生產的新一代51增強型單片機,引腳和指令系統均與51單片機兼容。它具有加密性強、超強抗干擾、超低功耗、在系統可編程、內含MAX810專用復位電路等特點[4]。

該單片機采用MCS51內核,其內含32KB的FLASH和1 6 K B的EEPROM,同時內含1KB的內部SRAM存儲空間。因而可用于音頻數據處理和顯示數據處理需要進行較大數據緩沖的情況下。該單片機最高可工作于33MHz時鐘,本系統中,它工作在30MHz時鐘下,能滿足系統對數據帶寬的要求。

CH375接口芯片

CH375是一種通用USB總線接口芯片,其內部集成PLL倍頻器、數據緩沖區、主從USB接口SIE、被動并行接口、異步串行接口、命令解釋器、控制傳輸的協議處理器和通用的固件程序等[5]。它有USB-HOST和USB- SLAVE兩種方式,其中USB-HOST方式支持各種常用的USB全速設備,外部單片機、MCU、DSP可以通過CH375按照相應的USB協議與USB設備通信,這是由于在本地端,CH375具有讀、寫、片選控制線以及中斷輸出四條控制總線和八位數據總線,可以方便地掛接到單片機等控制器的系統總線上。CH375芯片內部各部分的功用如下:①PLL倍頻器用于將外部輸入的12MHz時鐘倍頻到48MHz,作為USB接口SIE時鐘。②數據緩沖區用于緩沖USB接口SIE收發的數據。③主從USB接口SIE用于完成物理的USB數據接收和發送。④被動并行接口與異步串行接口用于與外部單片機交換數據。⑤URT串行接口用于代替并行接口與外部單片機交換數據。⑥命令解釋器用于分析并執行外部單片機提交的各種命令。⑦控制傳輸的協議處理器用于自動處理常用的控制傳輸的多個階段,簡化外部固件的編程,降低了開發難度。⑧通用的固件程序實現USB傳輸的相關協議。

系統采用VS1011E芯片對MP3音頻進行解碼。VS1011E音頻解碼芯片為VS10XX系列的第三代產品,是芬蘭VLSI Solution Oy公司生產的單片MP3/WMA/MIDI音頻解碼芯片,其內部結構如圖3所示。它包含一個高性能、低功耗的DSP處理核(VSDSP),5KB的指令RAM,0.5KB的數據RAM,串行的控制和數據輸入接口,四個通用I/O口,一個UART口,一個可變采樣率的ADC,一個立體聲DAC以及音頻耳機放大器。芯片可工作于12.288~14MHz或24.576~28MHz時鐘下。可用于解碼MPEG1&2Layer1,2,3以及MPEG2.5Layer3格式、和WAV等格式文件[6]。

VS1011E芯片工作流程

VS1011E芯片工作時,首先將M P 3或WAV格式音頻文件通過SDI總線送入芯片內部并解碼。解碼后,如果SCL_ AIADDR!=0,則執行應用區代碼(代碼地址由相應的地址寄存器提供),然后再按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的設置,將數據送到低音和高音優化器進行音效處理,之后再將數據通過音量控制單元備份到音頻FIFO中。音頻FIFO用于保持數據,并將數據作為采樣率轉換器和DAC的輸入。采樣率轉換器可將所有不同采樣率轉換成CLKI/512信號送給DAC,再由DAC按位依次產生立體聲模擬信號,然后由系統將這些信號送到耳機功放。VS1011E的工作流程如圖4所示。

實現VS1011E芯片控制協議

VS1011E芯片與主機進行數據和控制信息的通信需要利用工作于從模式的SPI串行總線,通過串行數據接口(SDI)傳送音頻數據,通過串行控制接口(SCI)傳送控制數據。VS1011E的SPI接口具有VS1002新模式(SM_ SDINEW=1)和VS1001兼容模式(SM_ SDINEW=0)兩種工作模式。當SM_ SDISHARED=1時,數據信號和控制信號的傳送共用xCS作同步信號;SM_SDISHARED=0時,則分別采用 xDCS和xCS為同步信號。作為從機工作模式,VS1011E可通過一個信號線DREQ指示是否允許主機傳送數據。當DREQ為高時,VS1011E至少可以接收32KB的SDI數據或SCI控制命令。下面以VS1002模式簡單分析SPI協議:

(1)SDI數據協議線

xDCS為同步控制線,低電平時激活,可輸入數據,高電平時結束當前操作,以使串行接口處于等待狀態,當SM_SDISHARED=1時,由xCS替換該引腳。SCK為時鐘線,由主控芯片提供時鐘。SI為數據輸入線,可在SCK上升沿采樣輸入SI數據。

(2)SCI控制命令線

xCS為同步控制線,低電平時激活,高電平結束當前操作,以使串口處于等待狀態,同時使SO輸出線為高阻態。SCK(復用)為時鐘線。SI(復用)為控制命令輸入,可在SCK上升沿采樣輸入SI數據,若xCS被拉低,則在SCK的第一個上升沿寫入數據線的第一個數據位。SO為數據輸出線,當主控制器讀VS1011E內部控制寄存器狀態時,可在SCK下降沿輸出數據,如果當前為寫操作,MJH SO為高阻態。

VS1011E芯片與單片機的接口電路

系統軟件設計

圖7為MP3播放器的軟件流程。采用C51語言對本系統單片機的軟件設計進行編寫,源程序共分單片機驅動CH375程序、單片機控制VS1011E實現音頻解碼程序及按鍵與顯示驅動程序三個部分。為了簡化程序設計,采用從官方網站下載CH375的API函數庫“CH375HF4.LIB”文件對CH375模塊部分程序進行編寫。由于單片機的硬件資源比較有限,在硬件調試過程中,當出現傳送頻率較高的MP3文件時可能會造成聲音失真,因此為了保證MP3文件播放流暢,在系統開發過程中應優化程序。

系統啟動后,先進行初始化,然后等待U盤插入,再通過CH375芯片將U盤中的MP3文件傳送至單片機內部RAM緩沖。單片機是通過SPI總線方式讀出音頻信息的,并將MP3的碼流信息送入到VS1011E芯片中,通過 VS1011E芯片及其內含的高質量立體聲DAC和耳機驅動電路,實現MP3文件的播放功能。在按鍵的控制下,通過Nokia5110中菜單選項的選擇,實現對MP3文件選擇及音量控制等功能;播放時,顯示在Nokia5110上的信息包括MP3文件名稱、播放進度和音量等。經過運行測試,該系統可正常流暢地播放出320kb/s的高音質MP3文件,而且其功耗比較低,使用500mA鋰電池可連續正常播放十小時。

參考文獻:

[1] 王道乾,劉定智,等.基于ARM處理器的MP3播放器分析與實現[J].計算機工程與設計,2007,(07)

[2] 徐英欣.基于ARM的多通道專業MP3播放器設計[J].微計算機信息,2008,(14)

[3] 宋艷紅,孫涌.基于FS7821的磁帶式mp3播放器設計[J].電腦知識與技術,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.

關鍵詞: ZIGBEE;數據傳輸;STC單片機

Key words: ZIGBEE;data transmission;STC microcontroller

中圖分類號:TP274 文獻標識碼:A 文章編號:1006-4311(2013)32-0205-02

基金項目:四川省科技支撐計劃項目;項目編號:2012SZ0158。

作者簡介:韓貴杰(1973-),男,甘肅平涼人,教研室主任,技術八級,研究方向為天線、自動控制。

0 引言

隨著電子技術的高速發展,人們對數據的獲取和過程的控制需求逐漸提升,無線傳感網絡因為其自身的優勢備受關注。ZIGBEE技術作為無線傳感網絡中的一員,以其超低功耗、抗干擾等優點在無線傳感網絡領域發揮著巨大的作用。本文采用順舟SZ05系列嵌入式無線通信模塊,此模塊具有通訊距離遠、抗干擾能力強、組網靈活、性能可靠等優點;可以實現點對點、一點對多點、多點對多點的設備間的數據透明傳輸;可以組成星型、樹型、蜂窩型網狀網絡結構。

1 順舟SZ05-ZIGBEE概述

SZ05系列無線通信模塊分為中心協調器、路由器和終端節點,這三類設備均有其特殊的網絡功能。SZ05-ZIGBEE無線通信模塊接口標準規范、采用標準2.54雙排插針,標準的RS-232和TTL兩種收發接口,配置方式有超級終端配置模式和計算機網關配置模式。

2 SZ05-ZIGBEE和STC單片機的硬件連接

SZ05-ZIGBEE接口規范,與STC單片機連接線路簡單,如圖1。

由圖1可以看出,SZ05-ZIGBEE和STC單片機只需通過串口相連即可,連接線少,不受單片機型號限制。

3 SZ05-ZIGBEE和STC單片機數據傳輸問題及解決辦法

SZ05-ZIGBEE和STC單片機硬件連接如圖1所示,并且不因型號而改變。SZ05作為收發模塊,數據傳輸時常見問題為數據傳輸錯誤,當數據接收端和發射端的波特率一致時(單片機和SZ05的波特率設置一致),那么數據傳輸錯誤的癥結就在于數據發送的方式和單片機的速率匹配問題了。當需要發送多個字節時,常見的收發模式有以下兩種:①逐個字節連續發送,接收端逐個接收逐個處理。②多個字節打包發送,接收端一起接收一起處理。兩種收發模式的流程圖如圖2、圖3所示。

STC單片機有1T、6T、12T 時鐘,不同的時鐘在上述的兩種收發模式下傳輸數據的方式各不相同,例如STC12C5A60S2(1T)以模式A或者模式B傳輸數據均無誤,可是STC89C51(12T)以模式A傳送數據時就會傳輸錯誤,這是因為模式A中發送數據和模式B發送數據沒有本質上的區別,均是逐個字節發送,而接收數據時模式A是在接收到一個字節之后,會去處理已經接收的數據,12T時鐘的單片機由于處理數據的速度有限,這樣就會丟掉后面若干個數據,繼而導致傳輸數據錯誤。12T時鐘的單片機傳輸數據時,收發兩側的數據接口波形圖如圖4所示。

從圖4中可以看出,收發兩側的波形圖明顯不一致,數據傳輸必然錯誤。對于這類因為發送方式和單片機速率而導致的數據傳輸錯誤問題,解決的辦法是根據單片機速率選擇合適的發送方式。通常如果發送的數據為一個字節,那么利用模式A均可發送成功,不必考慮單片機的速率;如果發送的數據較多(若干個數據),那么就要根據單片機的速率來選擇了,1T時鐘下選擇模式A或者B均可,12T時鐘下選擇模式B。

4 結論

對于STC單片機控制下的SZ05-ZIGBEE數據傳輸錯誤這一問題,本文給出了詳細的分析和解決辦法。不同時鐘的單片機在傳輸數據時要根據傳輸數據的大小和單片機的速率選擇合適的數據收發方式,這樣可以減少系統中ZIGBEE的調試難度和時間。

參考文獻:

[1]上海順舟網絡科技有限公司.SZ05-ZIGBEE產品使用手冊.

[2]孫茂,陳利學.Zigbee技術在無線傳感網絡中的應用[J].傳感器技術,2008(2):192-194.

篇6

【關鍵詞】射頻識別;單片機;讀寫器

射頻識別系統通常由電子標簽和讀寫器兩部分組成,通常被識別物品的具體信息被存儲在電子標簽當中,而電子標簽一般情況下被放在被識別物品上,通過非接觸的方式,射頻讀寫器可以很容易的獲取到所存儲的信息[1]。讀寫器可以對接收的電子標簽的信息進行調制解碼,然后通過計算機和網絡,將讀出的標簽信息進行信息傳輸和管理[2-3]。STC12C5A60S2系列的單片機具有超強抗干擾能力、可用低頻晶振、低功耗、可遠程升級、可送STC-ISP下載編程器、內部集成高可靠復位電路等優點[4],基于上述優點,本文選用STC12C5A60S2系列的STC12LE5A32S2作為射頻讀寫器的主控制器。

1 射頻讀寫器總體設計

射頻讀寫器的硬件組成框圖如圖1所示。

為了增加讀寫模塊的通用性和可擴展性,在硬件設計時遵循模塊化的設計思想。整個讀寫模塊主要由四大部分組成。

1.1 主控MCU

主控單片機主要用于射頻讀寫芯片和RF收發芯片的控制操作。本文選用STC12C5A60S2系列的STC12LE5A32S2做為主控制器。

1.2 射頻讀卡模塊芯片

射頻讀寫芯片,一方面該模塊負責接收主控單片機的控制信息,另一方面主要完成與電子標簽的通信操作。本文選用 TX125系列非接觸IC卡射頻讀卡模塊。

1.3 RF收發模塊

RF收發模塊的作用是為數據包處理、數據換沖、突發數據傳書、清洗信道評估、連接質量指示和電磁波技法等一系列工作提供廣泛的硬件支持。本文選用CC1100做為RF收發模塊的主控芯片。

1.4 RS232接口模塊

本設計選用RS232異步通訊接口。臺式電腦上一般都有這種接口配置,這種配置做為臺式電腦的基本配置而存在。綜上所述,射頻讀寫器的總體結構框圖如圖1所示。

圖1 射頻讀寫器硬件組成框圖

2 射頻讀卡器各個模塊設計

2.1 STC12LE5A32S2應用線路圖

晶振電路:如果是外部時鐘頻率在33MHz以上的情況,這時就直接可以使用外部有源晶振,反之則使用R/C振蕩器時鐘(室溫情況下5V單片機為:11MHz~15.5MHz,3V單片機為8MHz~12MHz),XTAL1和XTAL2腳浮空;在外部時鐘頻率在27MHz以上的情況下,使用標稱頻率就是基本頻率的晶體,但不要使用三泛音的晶體,否則如參數搭配不當,就有有可能會出現振在基頻的情況發生,在此狀態下實際頻率就只有標稱頻率的1/3了,也可以直接使用外部有源晶振(時鐘從XTAL1腳輸入,XTAL2腳必須浮空)。

2.2 射頻讀卡模塊TX125

非接觸IC卡射頻讀卡模塊TX125系列采用的是125K的射頻基站。當有射頻卡靠近模塊的情況發生時,模塊會以韋根或UART方式輸出ID卡卡號,用戶僅需簡單的讀取即可,如果是在在串口方式下,該模塊可工作在主動與被動的模式兩種模式之下[5]。該讀卡模塊完全支持EM、TEMIC、TK及其兼容卡片的操作,TX125系列非接觸IC卡射頻讀卡模塊實物圖如圖2所示。

圖2 TX125系列非接觸IC卡射頻讀卡模塊實物圖

TX125支持韋根接口和串口兩種協議,本設計選用韋根接口。TX125韋根接實物圖如圖3所示。

圖3 韋根接口實物圖

2.3 RF收發模塊CC1100

論文里選擇射頻收發器CC1100芯片作為RF收發模塊,這是ChiPCon公司生產的一種收發器CC1100芯片。該芯片優點有:不需要大量的外部器件,所以集成度很高;選SPI接口作為其數據接口,擁有高達500kbps的傳輸速率;CRC(循環冗余碼校驗)和自動處理數據頭;功耗特別低,其工作電壓僅為1.9-3.6V;工作的頻道依次是4335MHz、8685MHz和915MHz,每個頻道之間的轉換時間低于650s;點對點傳輸模式和廣播傳輸模式均可以[6]。

2.4 射頻讀寫器工作流程

射頻讀卡器作為一個系統,不僅包括硬件部分,還包括有軟件部分。對于本設計,有許多接口需要軟件的支持,軟件程序應用Keil C語言進行編寫。主控MCU工作流程如下:

1)初始化接收緩沖區;

2)檢查TX125連接超時次數不得大于10次,否則重新發送電子標簽數據;

3)當電子標簽經過后,將電子標簽內的數據發送到接收緩沖區并啟動定時器;

4)檢查CC1100連接超時次數不得大于10次,否則重新發送電子標簽數據;

5)對接收到的數據進行檢查,若收到的數據為10字節則檢查它的正確性,反之則重新發送數據;

6)檢查讀寫器是否存在故障;

7)清空接收緩沖區。

3 射頻讀寫器調試結果

圖4 調試參數設置

調試軟件AccessPort是一款集端口調試、攔截數據等多功能為一體的串口調試工具,他具有簡單、易用、功能強大等優點。實驗中的硬件配置:CPU 3.0GHz,2G的內存,160G的硬盤。

調試參數設置如圖4所示。

當標簽經過時,讀卡器能很迅速的讀出電子標簽的信息,并且顯示正確,表明了讀卡器良好的閱讀性和可用性。調試結果如圖5所示。

圖5 調試結果

調試結果表明:該讀卡器讀卡距離穩定、穿透性較強、具有嚴格的方向性和穩定性、適用于露天環境、維護方便。用STC12LE5A32S2作為主控MCU的讀卡器讀寫速度快,讀寫信息正確,具有一定的抗干擾性,能在惡劣的環境下對電子標簽信息進行閱讀,并且操作方便,可以直接下載程序,在調試工作中該性能給予了很大的便利性。

【參考文獻】

[1]王圣禮.超高頻射頻識別(RFID)閱讀器的設計與實現[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單片機的樓宇平面結構顯示系統設計[J].湖北民族學報:自然科學版,2011,12(04):13-19.

篇7

【關鍵詞】rtx51tiny 實時操作系統 單片機 stc12c5a60s2

rtx51tiny實時操作系統是keil c51單片機集成開發環境自帶的一個實時操作系統,它功能強大、簡單易用。它可以應用在所有的8051衍生的單片機系列中。stc12c5a60s2單片機是深圳宏晶科技有限公司旗下的功能強大的1t單片機。此單片機是新一代增強型8051單片機,運行的速度是傳統8051單片機的8~12倍,這是相當快的速度。它內部資源豐富,兼容性強,并且內部rom可達60kb,對于一般的應用已經足夠。

在一些比較復雜的應用中,如果使用超級循環進行編程,則在實時性,邏輯性,資源的共享等方面存在較為復雜的關聯性,這對編程來說是不利的。另外在增加與刪除功能上也會增加編程的復雜性。能不能把rtx51tiny操作系統移植到stc12c5a60s2單片機上呢?如果可以則在保證實時性的基礎上,編程的復雜性會大幅降低,程序可維護性也會大幅提升。增加或者刪除功能會變得相當容易。

答案是肯定的。rtx51tiny操作系統完全可以移植到stc12c5a60s2單片機上。

先來看看rtx51tiny操作系統介紹。

一、rtx51tiny操作系統的特性

rtx51tiny操作系統是集成在keil c51開發環境中的實時系統。它的主要特點如下:

(一)采用時間片輪轉調度策略進行任務切換,不支持搶占式任務調度策略。

(二)允許最大16個任務循環切換。

(三)支持信號傳遞,不支持消息處理、隊列處理、郵箱等功能。

(四)內核很小,最大僅占用900字節。

(五)系統函數僅有13個,非常容易使用。

(六)支持硬件中斷功能。

根據它的特點,我們可以得到這樣的結論:rtx51tiny操作系統非常適合應用于8051系列單片機,可以實現多任務協同工作。在實時性上,可以采用硬件中斷響應,速度與沒有使用操作系統一樣快捷。

二、rtx51tiny工作原理

rtx51 tiny 用標準8051的定時器0(模式1)生產周期性的中斷。該中斷就是rtx51 tiny的定時節拍(timer tick)。庫函數中的超時和時間間隔就是基于該定時節拍來測量。

rtx51tiny通過時間片輪詢的辦法對任務進行切換。時間片通常設置很短只有幾個到幾十個毫秒。每一個任務都有自己的時間片,當自己的時間片用完或者調用了os_wait()函數與os_switch_task()函數則任務進行切換。只要這個時間片足夠短,則多個任務之間在宏觀上可以看成“并行”執行,而微觀上則是輪流執行。

多個任務可以“并行”執行,這在單片機處理多個事件時,有很多的好處,因為我們在使用單片機時經常會遇到需要同時處理的事件。

三、stc12c5a60s2單片機介紹

stc12c5a60s2功能強大,它的主要特點如下:

(一)具有較大的rom,可以達到60kb。

(二)不僅與傳統8051單片機一樣擁有256字節的內部ram,而且還在內部擴展了1024字節的ram。

(三)通過串口下載程序,程序下載次數可以達10萬次以上。省去了仿真器,程序調試相當方便。

(四)兼容傳統8051指令集。

(五)運行速度是傳統8051的8~12倍。

(六)片內擁有1k字節的eeprom,可以在程序運行時讀寫,如須保存一些永久數據則可以使用它。

(七)具有兩個串口。

以上是此單片機的主要特點。這些特點顯示它是一款功能十分強大的單片機,在較為復雜的應用中也能夠勝任。

四、rtx51tiny針對單片機stc12c5a60s2的設置

在keil c51這個軟件的安裝目錄:keil/c51/rtxtiny2/sourcecode/下有一個文件conf_tny.a51,此文件是 rtx51tiny操作系統的設置文件??梢酝ㄟ^記事本打開它,也可以通過keil c51軟件打開它。它里面的設置是用匯編指令編寫的。

rtx51tiny需要設置的內容如下:

(一)指定定時節拍中斷寄存器組

默認狀態:int_regbank equ 1

寄存器組默認設置為0。對stc12c5a60s2單片機來說,它有四組通用寄存器,在沒有特殊要求的情況下,使用哪一組都行,使用默認值即可。

(二)指定定時節拍長度

默認狀態:int_clock equ 10000

rtx51tiny為了產生系統需要的定時節拍,固定使用傳統8051單片機的定時中斷t0,用它產生定時節拍。默認狀態下,一個定時節拍的長度為10000個機器周期。對于傳統8051單片機來說,如果采用12mhz晶振,則一個機器周期是1μs,10000個機器周期則是10ms,所以定時節拍時長為10ms。stc12c5a60s2單片機它比傳統的8051單片機快8~12倍。在定時時長方面則是12倍(auxr特殊功能寄存器的 t0x12位置1)。由此它的機器周期是1/12μs,則定時節拍為833.3μs。為了得到整數,我們可以設定int_clock為12000、 24000、36000、48000、60000等,對應的定時節拍時長為:1ms、2ms、3ms、4ms、5ms。這里的定時節拍可以作為 os_wait()函數等待的一種事件。如定時節拍數是整數,則使用os_wait()函數來延時更方便計算。 ?。ㄈ┲付ㄈ蝿者\行時間片長短

默認狀態:timesharing equ 5

時間片是任務不間斷運行的最長時間,默認為5,即為5個定時節拍。如果設定定時節拍為1ms,則時間片為5ms,以些類推。此默認值可不改變。為了使任務“并行”執行,時間片不能太短,太短會使單片機花費在任務切換上的時間變多,而實際任務執行的時間變短。時間片不能太長,太長則會使任務切換不夠快,并行執行的效果差,嚴重時會使快速的信號得不到處理。這時我們應該根據任務的數量來確定此值,比如任務的數量比較少,可以把此值設得大一些,任務數量多,可以把此值設定得小一些??傊箷r間片處在幾個到幾十個毫秒之間即可。

(四)是否執行長中斷

默認狀態:long_usr_intr equ 0

不執行長中斷。如果為1則執行長中斷。執行長中斷是什么意思呢?

rtx51tiny,在系統執行過程中,有兩種中斷:一種是單片機的硬件中斷。一種是任務切換造成的中斷。此處指硬件中斷。在 rtx51tiny運行時,希望硬件中斷發生時,執行中斷服務函數非???,不影響到任務切換,一旦影響到任務切換就會影響到程序的實時性。但有時,中斷服務函數要處理的件事需花費較長的時間,此時就會影響到任務的切換。為了讓系統支持長中斷,可以設置此參數為1。一般情況下,不使用長中斷,即使有件事要花較長的時間處理,也不使用長中斷。可以把中斷服務作為一個任務來處理。發生中斷時,可以發信號給此任務,讓它變成就緒態,然后運行。這樣就可以保證其他任務的實時性。

(五)在定時節拍中斷中,加入自己的代碼

默認狀態:hw_timer_code macro

; empty macro by default

reti

endm

默認狀態是不加任何代碼。一般情況下,我們可以不加代碼,如果我們想得到一個與定時節拍相關的信號則可以在空處加入如下代碼:

cpl p10 ;此指令功能是對p1.0取反。

此時可以從p1.0引腳輸出一個頻率是定時節拍頻率兩倍的信號。

為了實現這個功能,我們還得在conf_tny.a51文件中,加入p10的定義??梢栽诘刂范x處加入以下兩行匯編代碼:

p1 data 0b0h

p10 bit 0b7h

(六)是否支持代碼分頁

默認狀態:code_banking equ 0

不支持代碼分頁。如果為1,則支持代碼分頁。什么是代碼分頁呢?

對于8位的單片機,它的尋址范圍只有64kb(216),如果單片機的程序編譯以后得到的16進制文件超過了64kb,則需要通過分頁的方式進行訪問,否則超過的部分無法訪問。這就是代碼分頁。而我們使用的stc12c5a60s2單片機的rom只有60kb,沒有達到8位單片機尋址的極限,不需要代碼分頁。這個參數保持默認值。

(七)設置內部ram的最大值

默認狀態:ramtop equ 0ffh

默認ram的最大值為255。這與傳統的單片機內部的ram結構一致。而stc12c5a60s2單片機內部擴展了1024字節的內部擴展ram。它的實際內部ram地址為0x000~0x3ff。那么在這里我們應該把這個參數設置為什么值呢?

在stc12c5a60s2單片機的使用手冊中,有這樣的表達:

當把寄存器auxr中的extram設置為0時,就可以通過movx @dptr和movx @ri兩條語句來訪問內部擴展的ram。movx @dptr可以訪問0x00~0x3ff地址的內部擴展ram,而超過這個范圍的則都是訪問外部ram。movx @ri語句只能訪問0x00~0xff的地址。與傳統8051單片機一樣。

根據這樣的表述我們是不是就可以把這個參數設置為3ffh呢?

我們再

來看看rtx51tiny中的設置文件conf_tny.a51中對ramtop這個參數的操作,實際上都是把ramtop當成一個字節來操作,如果我們把ramtop設置為3ffh,超出了一個字節的范圍,在操作時,還是當成一個字節。由此我們得出結論,ramtop這個參數還是使用默認值。那么stc12c5a60s2單片機內部擴展的1024字節內部ram如何使用呢?在使用手冊中,有明確的表示:在變量前加上xdata關鍵字即可。

(八)設置發生任務切換時,最小的堆棧需求

默認狀態:free_stack equ 20

在默認狀態下,這個參數設置為20,即最小需要20個字節的ram存儲空間。在這里設置為默認值。

(九)在發生堆棧錯誤時運行的宏

在任務切換時,單片機內部ram沒有達到最小20字節的要求,則發生堆棧錯誤。這是一個循環。代碼如下:

stack_error macro

clr ea ; disable interrupts

sjmp $ ; endless loop if stack space is exhausted

endm

首先把總中斷允許位清零,不再允許任務切換,然后進入一個死循環,不再執行任務操作。

10.設置是否允許單片機進入空閑模式

cpu_idle_code equ 0 ; 0 cpu_idle macro is not inserted

; 1 cpu_idle macro is executed

默認狀態:不插入cpu進入空閑模式的宏。

有很多的單片機有這個功能,stc12c5a60s2也有這個功能,我們可以使能這段代碼。這樣在沒有其他任務運行時,單片機會進入到空閑模式。在空閑模式下,只有cpu不工作,其他部分仍然在工作。這主要是從節能方面考慮,如沒有這項考慮可以不插入這段宏。

cpu_idle macro

orl pcon,#1; set 8051 cpu to idle

endm

以上是可以插入的宏。

到此,針對stc12c5a60s2單片機的設置已經完成。

五、使用rtx51tiny的步驟

(一)在c語言文件的開頭,包含頭文件“rtx51tny.h”。如下:#include

(二)把conf_tny.a51文件拷貝到自己的工程中來,并添加到工程中。然后進行相應的設置。

(三)編寫自己的程序。

六、使用rtx51tiny注意的事項

(一)確認把頭文件rtx51tny.h包含到文件中來。

(二)不需要編寫main函數,rtx51tiny有自己的main函數。

(三)至少建立一個任務函數。這個任務就是任務0。

(四)至少調用一個rtx51tiny系統函數。否則,連接器不會包含rtx51tiny庫。

(五)在任務0 中建立其他任務。

(六)任務函數不能有形參與返回值。并且任務內要采用死循環的方法把要執行的程序包起來。

經過以上的設置后,rtx51tiny可以很方便的移植到stc12c5a60s2上。

七、結束語

本文論述了把rtx51tiny操作系統移植到單片機stc12c5a60s2上的方法。這種方法具有廣泛的應用性。但限于作者的水平,文中難免有錯誤的地方,希望得到諒解。

參考文獻:

篇8

關鍵詞:恒溫箱單片機數字溫度傳感器

中圖分類號:TP273.5 文獻標識碼:A文章編號:1007-9416(2012)03-0000-00

1、引言

隨著恒溫箱在醫療衛生、科研、工業等領域的廣泛應用,已越發突出其重要性。研究并設計一種先進實用的恒溫箱已成為工業生產,商業運營的一個重要研究課題,而設計其關鍵技術在于如何保持箱內溫度恒定。本系統以52系列單片機為控制核心,采用數字溫度傳感器進行溫度檢測,從而實現溫度箱的溫度檢測與控制功能。

2、系統方案設計

本系統是基于STC89C52單片機的應用開發,集溫度信號采集、數據處理及溫度保持等一體的數字控制系統。系統由下列模塊組成:顯示模塊、單片機、按鍵輸入模塊、溫度采集模塊、輸出電路模塊,如圖1所示。

3、溫度測量

系統采用DS18B20數字溫度傳感器進行溫度采集。DS18B20是由美國DALLAS半導體公司生產的,具有精度更高、體積更小、使用電壓更寬、采用一線總線、可組網等優點,并且抗干擾能力強[1]。由于DS18B20單線通信功能是分時完成的,它有嚴格的時隙概念。因此系統對DS18B20的各種操作必須按協議進行。操作協議為:初始化DS18B20(發復位脈沖)發ROM功能命令發存儲器操作命令處理數據[2]。

溫度檢測系統采用寄生電源供電方式。無論是單點還是多點溫度檢測,在系統安裝及工作之前,應將主機逐個與DS18B20掛接,讀出其序列號。其工作過程為:主機Tx發一個脈沖,待“0”電平大于480us后,復位DS18B20,待DS18B20所發響應脈沖由主機Rx接收后,主機Tx再發讀ROM命令代碼33H(低位在前),然后發一個脈沖(15us) 并接著讀取DS18B20序列號的一位。用同樣方法讀取序列號的56位。它分三步完成:(1)系統通過反復操作,搜索DS18B20序列號;(2)啟動所有在線DS18B20做溫度A/D變換;(3)逐個讀出在線DS18B20變換后的溫度數據。

4、輸出控制電路

本系統裝置了加熱電阻絲溫度調節裝置以便于調節恒溫箱的溫度恒定。輸出控制電路如圖2所示,其工作原理是單片機通過P3.1的輸出信號經光電耦合器控制雙向可控硅的門極,當輸出高電平時,使雙向可控硅導通,電阻絲導通;輸出低電平時,雙向可控硅截止,電阻絲斷電。

5、按鍵輸入和顯示電路

本系統設置了5個按鍵分別實現不同功能:復位鍵、顯示切換鍵、功能設定鍵、溫度加1℃鍵、溫度減1℃鍵,同時采用共陽極數碼管LG5641A進行動態顯示。

6、軟件流程

主程序采用中斷嵌套方式設計,各功能模塊可直接調用。主程序完成系統的初始化,中斷設置,溫度預設,預設溫度的顯示。中斷程序通過調用溫度檢測子程序、溫度顯示子程序、溫度比較子程序、溫度控制子程序完成系統全部功能。

7、結語

本文采用單片機和數字溫度傳感器采集恒溫箱的溫度,應通過溫度比較程序,由此結果來控制加熱電阻絲和風扇的開斷從而控制溫度箱的溫度,具有結構簡單,操作方便,成本低廉等優勢,具有很好的應用背景。

參考文獻

[1] 郁有文,程繼紅.傳感器原理及工程應用[M].西安:西安電子科技大學出版社,2003.

篇9

【關鍵詞】51單片機 語音播放系統

1 各種語音播放系統的對比和分析

如表1所示。從表1不難看出,采用ST C12+FLASH存貯芯片的方案在無論在成本及靈活性方面都具備很好的優勢。

2 STC12系列增強型51單片機播放系統的硬件構成

如圖1。本系統的MCU采用了宏晶公司的STC125404芯片,它的P3.7具有PWM功能,因此連接到功放電路LM4890上。語音的存貯芯片采用了旺宏(MXIC)公司的MX25xxx08系列串行NOR Flash芯片,如果采用一片16Mbyte容量的芯片,存放8KHZ、8bit采樣頻率的語音文件(即8000字節/秒),按以下計算公式:

16*1024K/8K=2097(秒)

也就是可以播放時長大約為2097秒的語音文件。

語音數據是將音頻wav文件的頭信息去掉之后提取出來的,然后按應用的需要,分段燒錄到Flash的固定位置,將語音的存放位置和長度記錄下來,以供播放程序調用。

3 STC12系列增強型51單片機播放系統的軟件構成

PWM產生聲音的原理是:調節PWM的輸出脈沖的占空比來產生不同幅度的電壓,這個幅值就接近于語音的聲波。如圖2所示聲音的波形圖。

而PWM輸出頻率越高,產生的音波幅值就越精確。STC12系列增強型51單片機因為具有1T的機器周期,它的時鐘頻率是傳統的12T 的51單片機的12倍,因此它的PWM輸出頻率最高(以11.0592M的晶振頻率計算)可以達到11059200/256=43200HZ。這個頻率已經接近44.1kHz 的CD音質了,因此用它來播放語音文件,聲音效果也十分理想。

軟件設計工具采用Keil C51,語音播放主要用到單片機的兩個定時器。一個定時器用來產生8KHz的采樣頻率,本設計中采用T1定時器的8位定時器中斷功能,定時125us;另一個定時器用來產生PWM波形,本設計中采用T0定時器8位定時/計數器功能。設置好這兩個定時器的功能是程序開發的關鍵所在。

下面給出設置PWM寄存器的關鍵代碼:

/*設置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;

}

/*兩個關鍵定時器的功能設置*/

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送一個新的采樣數據給PWM的寄存器*/

void timer1() interrupt 3

{

CCAP0H =SoundData[jx];

CCAP0L =SoundData[jx];

}

4 總結

現在越來越多的消費電子產品中需要增加語音報話功能,利用STC12系統單片機的PWM功能,可以以極低成本實現上述功能,電路設計簡單,語音更改靈活。并且這種語音播放技術可以很容易的推廣到其它具有PWM功能的單片機或者ARM芯片上,具有很長久和廣泛的應用前景,因此是一項值得學習推廣的技術。

作者簡介

姜燕頻(1977-),女,上海市人。大學本科學歷,中級工程師。主要研究方向為嵌入式開發,單片機C51、ARM開發、linux驅動開發、linux系統移植。

篇10

在談到解決TD-SCDMA手機技術問題的時候,ADI公司射頻及無線通訊系統部TD-SCDMA平臺產品經理范紅顯得自信滿滿:“ADI的TD-SCDMA手機芯片,在技術成熟度、性能、穩定性和靈活性方面都是業界首屈一指的?!钡拇_,ADI在TD-SCDMA上投入所取得的成功幾乎是眾所周知的,而且從目前的情況來看,該公司也是唯――個能夠提供符合TD-SCDMA標準的完整且較為成熟方案的廠商。繼能夠支持384kbps數據帶寬的SoftFone-LCR+芯片組之后,該公司又推出了最新的Othello-3T單芯片直接變頻射頻收發器AD6552。它采用全CMOS工藝制造,將射頻發射和接收功能集成在了單一芯片上,從而可將SoftFone-LCR+芯片組中的5個芯片減少為4個(原來采用的是Othello-W射頻芯片,其接收器和發射器是分立的)。

AD6552的最大特點就是可支持雙頻帶,即標準的2.1GHz頻段,以及為將來做準備的1900MHz頻段。該收發器還省去了發送路徑通常需要的表面聲波(SAW)濾波器,簡化了手機射頻部分的設計。此外,其接收部分提供的誤差矢量幅度(EVM)性能滿足HSDPA的要求,并且包括全自動直流偏移控制。而且,該芯片還集成了壓控振蕩器、儲能電路、環路濾波器和電源管理等電路。與雙芯片Othelo-W單頻帶射頻收發器相比,該雙頻帶射頻收發器的元件數量幾乎減少了40%。

AD6552的接收部分包含一個覆蓋1900MHzN2000MHz頻帶的高性能單端低噪聲放大器。一個由內置小數N分頻鎖相環(PLL)頻率合成器驅動的直接下變頻正交混頻器,它向可變增益放大器(VGA)提供基帶I(同相)與Q(正交)信號,以及帶直流偏移修正的可編程低通濾波器。AD6552的發射部分包含一個小數N分頻PLL頻率合成器、高性能VGA和驅動公共寬帶輸出級的正交調制器,還包括用于功率放大器控制的真實RMS射頻功率檢測器和內置DAC。