導航:首頁 > 操作系統 > 凌陽單片機的畢業設計

凌陽單片機的畢業設計

發布時間:2022-06-07 18:45:21

1. 電子專業的畢業設計做哪方面的比較好

應用電子專業是相當不錯的專業,它的相近專業是計算機科學.所有計算機專業能做的事,該專業一般都能做.考研時,同樣可兼報計算機專業.
該專業可從事的工作多了:計算機控制系統設計與維護,計算機網路系統的設計與維護,電器設備自動化設計與維護.通信系統相關領域.公路,鐵路,航空等控制信號系統設計與維護.工業企業設備電器系統自動化設計與維護等 希望對你有所幫助!!

2. 單片機原理的參考文獻有哪些

單片機原理參考文獻:

1、 李廣弟等 單片機基礎 北京航空航天出版社, 2001.7

2、 樓然苗等 51 系列單片機設計實例 北京航空航天出版社, 2003.3

3、 唐俊翟等 單片機原理與應用 冶金工業出版社, 2003.9

4、劉瑞新等 單片機原理及應用教程 機械工業出版社, 2003.7

5、 吳國經等 單片機應用技術 中國電力出版社, 2004.1

6、 李全利,遲榮強編著 單片機原理及介面技術 高等教育出版社,2004.1

7、 侯媛彬等,凌陽單片機原理及其畢業設計精選 2006年,科學出版社

8、 羅亞非,凌陽十六位單片機應用基礎2003年 北京航空航天大學出版社

9、 北京北陽電子有限公司,061A凌陽單片機及其附帶光碟2003年

10、 張毅剛等, MCS-51單片機應用設計,哈工大出版社,2004年第2版

11、 霍孟友等,單片機原理與應用,機械工業出版社,2004.1

12、 霍孟友等,單片機原理與應用學習概要及題解,機械工業出版社,2005.3

13、 許泳龍等,單片機原理及應用,機械工業出版社,2005.1

14、 馬忠梅等,單片機的C語言應用程序設計,北京航空航天大學出版社,2003修訂版

15、薛均義 張彥斌 虞鶴松 樊波,凌陽十六位單片機原理及應用,2003年,北京航空航天大學出版社

(2)凌陽單片機的畢業設計擴展閱讀:

單片機原理是指一種在線式實時控制計算機的原理方式。在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機(比如家用PC)的主要區別。

單片機就是一個微型電腦,它是靠程序工作的,並且可以修改。通過不同的程序實現不同的功能。

3. 急需凌陽單片機貪吃蛇游戲的設計程序

1、把程序燒進單片機就可以離線運行了,即可以獨立使用了。

2、因為領養單片機是flash存儲器,可以在3.3v電壓下直接擦寫,所以不需要編程器。只需要通過下載線把PC機端編譯好的程序下載進去就行。
希望採納

4. 想做一個基於51單片機的語音控制

51單片機做語音識別基本上不可能,你可以用凌陽單片機做,一套100多,當年畢業設計用凌陽做的成績基本很差,不是設計不好,而是凌陽做得比較完美,把各個部件一組裝,把程序一修改,就可以語音控制了,太簡單了所以得低分。
建議你用凌陽單片機做,網上有專業網站介紹,而且非常簡單。
具體設計太簡單了,還真不好說。

5. 求基於AT89C2051單片機的水溫控制系統開題報告和論文

用一個STC89S52單片機+DS18B20溫感可以不?!
ds18b20可以使用密封包裝,同樣能放置在水中,而且精確度能在0.1℃。

我的blog,歡迎學習交流!
http://blog.163.com/jammy_lee/

6. 凌陽單片機語音控制課程設計

我這有一篇網上下的,摘 要

本文主要介紹了目前常用的單片機(61和51單片機)對語音控制小車、紅外遙控小車以及循跡小車的實現。本文說明大致方案設計和著重介紹了軟體設計過程。
本設計以凌陽公司生產的61單片機為主控晶元製作了語音控制小車,實現了語音採集,語音播放以及特定人的語音識別功能。在此基礎上實現了聲音對小車的前進、倒車、左轉、右轉以及停車等狀態的控制。大體上實現了語音控制小車的基本功能。
紅外遙控及循跡小車是以51單片機為控制芯•片實現的。該部分由3個51系列單片機系統組成。其中,一個單片機(發送單片機)負責處理紅外遙控程序,一個單片機(主控單片機)負責小車電機控制和相關信息處理,還有一個單片機(接收單片機)負責處理測溫和液晶顯示程序。三個單片機之間通過引線實現短距離的通信,以使它們可以相互配合,各司其職,使整個系統的實現和控制更為靈活方便。
以上系統的實現可以運用於特殊環境(人員不可達)下小車的遠程式控制制和相關的智能操作。同時也可運用於智能監控和智能決策等相關場合,為實現智能化操作和管理提供方便。

7. 誰有關於LED顯示時鍾溫度檢測控制器的畢業設計啊,借來參考一下,非常感謝

www.ledshow.net也是一個led網站
摘 要
本系統是從實際應用角度出發,針對當前市場上流行的LED產品的應用領域而設計製作的多功能電子顯示屏,可用於商場導購促銷顯示、新聞與廣告顯示、車站機場班次時間資訊顯示等。
本簡易16行*64列LED電子顯示屏根據題目設計要求,硬體部分主要包括SPCE061A單片機系統、16塊8*8LED點陣顯示模塊構成16*64點陣、顯示驅動電路、SPR4096存儲器、PCF8563實時時鍾電路、鍵盤輸入控制器等部分,還外擴了液晶顯示、溫度實時檢測、無線通訊、電機驅動屏幕旋轉等電路,。本系統不僅能夠實現數字、字母、漢字等預存信息的切換顯示,同時還可以實現信息的定時循環、上下左右滾屏、LED顯示亮度連續可調、實時時間顯示、實時溫度顯示、無線遙控、顯示屏旋轉等擴展功能。另外,本系統可以和PC機通訊,通過PC機串口對顯示信息進行更新。

關鍵詞:LED電子顯示屏 SPCE061A 串列通信
Abstract
The LED lattice display system is a kind of new information display media with the rapid development of the computer, micro-electronics, photoelectron technology.
This 16*64 LED display system includes SPCE061A MCU system, sixteen 8*8 LED lattice moles, display driving circuit, SPR4096 memory mole, PCF8563 as the real-time clock chip, keyboard controller et. In addition, it includes LCD circuit, real-time temperature detective, RF communication circuit. This system can display the numbers, letters, Chinese characters. It can display the information timely and circularly, up-rollingly, down rollingly left-rollingly, right-rollingly. The lightness of the displaying information can be adjusted continuously. Further more, this system can be remote controlled and communicate with PC by COM1 to update the display information.

Keywords: LED lattice display system SPCE061A serial communication

目 錄
一、方案比較 4
1、控制系統 4
2、點陣信息提取方案 4
3、顯示驅動電路 5
二、硬體設計與論證 5
1、主控制單片機 6
2、LED顯示驅動電路 6
3、數據存儲器 8
4、鍵盤液晶顯示模塊 9
5、無線通信模塊 9
6、時鍾電路的設計 10
7、溫度檢測 10
8、列印機的選擇 11
9、旋轉底盤的設計 11
三、系統的軟體設計 11
1、主程序流程圖 12
2、點陣字模信息提取程序流程圖 12
3、LED各顯示程序 12
4、串列通信程序 12
5、PC機客戶程序 12
四、系統功能測試 16
1、測試及製作中所用儀器 16
2、鍵盤各鍵功能 16
3、單元模塊電路測試 16
4、系統整體功能測試 16
五、總結 17
一、方案比較
1、控制系統
LED點陣電子顯示屏的設計一般有兩種方案:
方案一:採用可編程邏輯器件作為核心控制器產生LED點陣的行、列驅動信號。由於該系統不僅要實現信息的顯示,還要具備鍵盤控制器、顯示亮度連續可調、實時時鍾顯示、與PC機通訊等功能及其他發揮功能,這就要求需要用中大規模的PLD,設計多個介面電路,開發周期長,不易進一步擴展,同時系統的成本會急劇上升(相對於第二種方案)。因此,本設計並未採用這種方案。
方案二:採用單片機系統來實現。鑒於SPCE061A單片機比傳統的51系列8位單片機具有更加豐富的資源,而且數據處理速度快,同時「61板除了具備單片機最小系統電路外還包括有電源電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復位電路等,體積小,可靠性高。本系統的設計採用雙單片機系統,一個主要用於完成多功能顯示控制功能,另一個主要用於實時時鍾顯示、實時溫度檢測顯示、無線通訊以及其他的擴展發揮部分功能,這樣提供了充足的內部空間和更多的外部介面;同時由於安裝和調試工作可以並行進行,極大地縮短了總體設計和製造的時間。
2、點陣信息提取方案
要用LED點陣來顯示數字、字母和漢字等信息,首先要能夠提取出其字模數據,即一個16*8的點陣數字、字母的字模數據共有16個位元組,一個16*16的點陣漢字的字模數據共有32個位元組。首先要確定點陣信息提取方案。
方案一:固定漢字顯示,就是將要顯示的語句中全部漢字的字母數據依次提取出來,按順序存放在存儲器中,當有顯示任務時,直接取出字模數據送至顯示器即可。這種方法佔用空間少,程序實現簡單,顯示速度快。本系統中對10組預存信息的點陣信息的提取和存儲就是採用這種方案。但是,要想顯示大量的漢字信息或直接對顯示信息進行更新,則幾乎是不可能的事。因此,要實現這樣的功能就要採用第二種方案。
方案二:將標準的點陣信息字模數據的字型檔文件(本系統中採用漢字型檔文件HZK16、ASCII碼庫文件ASC16)裝入外擴ROM存儲器,採用與PC機相同的編碼(機內碼),先進行基於PC機的預處理,提取需顯示內容的機內碼,通過串口發給單片機,單片機首先進行判斷,若是ASCII碼,則直接計算出起始地址,在ASC16文件中指定位置取出連續的16個位元組即為其字模信息;若為漢字,單片機將機內碼轉換為區碼和位碼,再計算出起始地址,在HZK16文件中指定位置取出連續的32個位元組即為其字模信息,然後送到顯示器去顯示。另外,PC機與單片機之間串口通信只是傳輸機內碼,而不是傳輸字模信息,傳輸信息量小,不需要復雜的通信協議。這樣既可以減輕單片機的負擔,而且可以根據要求隨時改變顯示內容,非常簡單靈活。
3、顯示驅動電路
常用的顯示驅動方式有三種:
方案一:串列控制驅動,這種方式的好處是單元內的線路連接簡單,給印刷電路板的設計帶來方便,減少了布線的密度,方便以後的製作與調試,而且相對提高了每個單元的可靠性;
方案二:並行控制驅動,將顯示數據通過並行(一般為8位)方式送入驅動電路,這樣的好處是:相對於串列控制而言,數據的刷新速度快,在處理同等數量的數據時,對處理速度要求可以大大降低,從而提高了系統的穩定性,但也正因為「並行」使單元內的數據線路的連接更加復雜,布線後的排錯難度大大增加;
方案三:採用專用集成電路(ASIC)直接驅動,由於這種專用集成電路是集行控制、列控制和外圍驅動於一體,使系統的穩定性更為可靠,特別適合戶外的大型或者超大型顯示屏。因為這種類型的顯示屏對圖像顯示要求高,不僅要保證圖像的一致性,而且要保證圖像的穩定、高亮。
本次設計的顯示屏僅為16行*64列,更適合採用串列控制這種方式,這樣做既省去了並行控制驅動在製版過程中十分復雜的布線,又因為沒有採用專用集成電路在一定程度上降低了整個系統的成本。
二、硬體設計與論證
根據以上的系統方案比較與分析,本設計的系統總體組成框圖如圖1所示:
圖1 系統的總體組成框圖
系統整體由三大部分構成:
以單片機1#為核心的模塊一:包括16*64LED點陣、驅動電路、STR4096存儲器、無線數傳模塊、旋轉底盤、光電感測器、音箱、列印機。實現功能:主要用來實現點陣的顯示,包括特定標語庫內容的顯示,適時時間顯示、適時溫度顯示,並實現上下左右滾屏等各種花樣顯示;存儲器用來存儲漢字和ASCII碼的點陣庫,並實現掉電不丟失功能;無線模塊實現標語庫更新和接受設置信息;底盤可實現顯示屏的左右轉動,擺動幅度可調;在商場導購中,光電感測器用於檢測人員進出,可與自動門配合使用,音箱播放「歡迎光臨」等語音信息;在廣告牌應用中,列印機用於名片列印。
以單片機2#為核心的模塊二:包括4*4鍵盤、液晶、無線數傳模塊。實現功能:該部分實現遙控器的功能,可以遙控設置顯示屏的滾動模式,選擇標語庫,設置時間,設置擺頭幅度;實現標語庫的更新。(鍵盤使用說明見附錄一)
以上位PC機為核心的模塊三:包括上位機軟體和MAX232。實現功能:上位機主要實現標語庫的數據更新,上位機軟體通過MAX232將更新內容(漢字或者ASCII碼的機內碼)送到單片機2#,然後無線傳輸到單片機1#實現數據更新。
以下是各單元電路的具體設計:
1、主控制單片機
採用凌陽公司的16位單片機SPCE061A作為主控制器。由於SPCE061A內置有2K字的SRAM和32K字的內存FLASH,能滿足本系統數據處理及LED點陣顯示所需數據的存儲要求;CPU時鍾頻率高達49.152MHz,能滿足刷新速度要求。另外,「61板」功能較強、性價比高,具有體積小、集成度高、易擴展、功耗小等優點,簡化主控制系統的硬體電路設計,可靠性高,而且凌陽單片機具有C語言風格的匯編語言,有與標准C兼容的C語言,C語言函數可以與匯編函數互相調用,使其開發更加容易,實現整個系統更加簡單。
2、LED顯示驅動電路
本次設計中16行*64列LED電子顯示屏的製作以及其顯示驅動電路的設計製作都是非常關鍵的部分。下面主要介紹一下顯示驅動電路的設計。
本LED點陣屏採用動態掃描的方式顯示,即逐行掃描,工作時先將一行點陣字模通過列驅動輸出,然後運用解碼器選中對應行,使該行得以顯示,接著再送下一行數據,再選中下一行有效,直到16行全被掃描一遍。至此,一幅完整的文字信息就顯現出來。然後在反復掃描這16行直至顯示新的信息。採用這種方式的優點是耗電少,成本低,壽命長,但是也存在顯示亮度及內容顯示穩定的問題。根據視覺滯留原理,根據視覺滯留原理,每屏的完整的顯示時間應控制在20ms之內,即50Hz,人眼看上去才不會覺得閃爍。由於要掃描16 行的點陣,所以每行的時間絕不能超過20ms÷16=1.25ms,同時也不是每行的掃描時間越短越好,因為LED的亮度同電流的大小和維持時間的長短有關。LED點陣塊的單點靜態電流一般在10mA左右,由於占空比是1/16,所以單點的動態電流最大可以達到160mA。在維持時間恆定的情況下,電流越大(不超過額定電流),點陣亮度也越亮,而在電流恆定的情況下,需要一段維持時間來保持亮度。試驗表明當輸入LED的電流為15mA時,維持時間至少需要1ms,否則LED呈微亮狀態。由於設計時設置SPCE061A單片機的時鍾頻率為24MHz,而每次傳送移行的字模數據有64位,經計算傳輸所需的時間小於1ms,這樣就能充分利用列驅動74HC595的鎖存功能,即在它接收下一行待顯示的數據,還沒有鎖存新數據的這段時間來顯示本行的內容,這樣就不需要額外加延時來增加顯示屏的亮度。採用這個方法就不要再增加LED的列驅動器件,從而使整個硬體結構更簡化,成本降低。
行信號的處理是由四十六解碼器CD4514來完成解碼,輸出為高。由於顯示屏行的組成是多個模塊並聯而成的,因而行驅動得功率要求比較大,而且我們進行行掃描時需要所選行為低,故加反相驅動器ULN2803來滿足要求。
列信號的處理列信號的處理主要由8片8位帶鎖存的串入並出移位寄存器74HC595來完成。從單片機IO口串列輸出的64位點陣數據隨著移位時鍾的作用逐位移動到對應位置,在接收到鎖存信號後,將數據並行輸出至LED的列線,最後在行驅動信號作用下點亮一行LED象素。
顯示掃描電路的電路圖如圖2所示。

圖2 LED顯示掃描驅動電路
3、數據存儲器
設計題目要求能增大到10組預存信息,且顯示信息具有掉電保護功能,同時考慮到要把漢字點陣字型檔文件HZK16(261K位元組)和ASCII碼點陣字型檔文件ASC16(4K位元組)裝入到ROM存儲器中,以便根據機內碼在字型檔中定址,找到對應的字模,提取後再送到點陣顯示屏顯示。因為SPCE061單片機的內存Flash只有32K,還要存放程序,因此需外擴數據存儲器。我們選擇了凌陽「61板」的配套模組SPR4096。SPR4096是一個高性能的4M-bit(512K位元組)FLASH,分為256個扇區,每個扇區為2K位元組。SPR4096串列介面的工作頻率可達5MHz,數據存取速度和存儲容量都能夠達到我們的要求。硬體圖連接如圖3所示:

圖3 SPR4096硬體連接圖
4、鍵盤液晶顯示模塊
為使用鍵盤作為顯示屏控制器,實現多功能顯示控制,我們使用智能型鍵盤顯示控制晶元HD7279A作為4*4鍵盤與單片機之間的介面,其與微處理器僅需4條介面線,採用串列通信方式,佔用CPU埠少,同時HD7279得到鍵盤碼後通過中斷服務程序把按鍵信息送給單片機,使單片機可以騰出更多時間質性其他操作。設計中我們需要用液晶模塊顯示遙控單片機菜單的各信息。在本系統中選用了OCM4×8C模塊,可以顯示字母、數字元號、中文字型及圖形,具有繪圖及文字畫面混合顯示功能,既可採用並行介面,又可採用串列介面,連線較為方便。HD7229、OCM4×8C與單片機連接原理圖如圖4所示。
5、無線通信模塊
在本設計中,我們採用了兩塊61板,1#板主要用於完成控制LED顯示屏,2#板主要用於鍵盤液晶控制、實時時鍾、實時溫度檢測顯示、與PC機通訊以及其他的擴展發揮部分功能。兩板之間採用無線通訊進行數據傳輸。為滿足系統的要求我們選擇了SRWF-1型微功率無線數傳模塊,該模塊的特點是:高抗干擾能力和低誤碼率、完善的通訊協議、數據實時同步、看門狗實時監控、傳輸距離遠、低功耗及休眠功能高可靠性,體積小、重量輕。

圖4 鍵盤顯示電路
SRWF-1型模塊提供2個串口3種介面方式,COM1為TTL電平UART介面,COM2由用戶自定義為標準的RS-232/RS-485介面(用戶只需拔/插短路器再上電即可改變介面類型)。SRWF-1提供的兩個串口,在使用時注意以下事項:(1)對於空中接收的數據,SRWF-1通過串口轉送給終端設備時,COM1和COM2同時輸出,即用戶如果在COM1和COM2各連接了1個設備,他們都可同時收到數據;(2)對於由終端設備送來,准備向空中發射的數據,SRWF-1隻能正確接收COM1或COM2其中1個串口送來的數據,否則將造成數據通訊混亂。如終端設備在向COM1發送1個0x12(數據正在傳送)時,再向COM2發送1個0x34,模塊將收到一個數據串0x12,0x34。
圖5 SRWF-1與用戶設備介面電路
註:沒有使用的引腳可以懸空不連。但不能連接長懸空線,以免引入干擾。
6、時鍾電路的設計
系統要求實現實時時間的顯示,這里我們選用串列日歷時鍾晶元PCF8563,,與單片機的連線大為減少,極大的節省了單片機的系統資源。PCF8563與單片機的介面電路如圖6所示。而且該部分電路還加了掉電保護功能,在主供電系統意外斷電時,即Vcc為0V時,D1截止, 3.6V備用電源通過D2繼續給PCF8563供電,保證8563的正常運行。
圖6 PCF8563時鍾電路
7、溫度檢測
本系統擴展了實時溫度檢測顯示功能,選用DS18B20一線式數字溫度感測器,通過單片機讀取當前環境溫度可通過鍵盤切換顯示時間和溫度。

圖6 DS18B20與單片機的介面電路
8、列印機的選擇
本系統還擴展了列印機功能,在廣告牌應用中用來列印名片等相關信息。我們選擇了北京市興偉機電應用技術研究所研製的微型熱敏/針打列印機。通過通用的ESC/P列印命令實現字元的列印。

圖7 列印機介面控制時序圖
9、旋轉底盤的設計
針對應用的需要,系統擴展了顯示屏旋轉功能,用普通小型直流電機提供動力,由變速箱減速並加大驅動能力,實現顯示屏幕左右擺動,並且幅度可調。

圖8 直流電機驅動電路

三、系統的軟體設計
本系統的軟體部分主要包括主程序、點陣字模信息提取程序、LED各顯示程序、串列通信程序以及PC機客戶程序等。
1、主程序流程圖
見圖8。
2、點陣字模信息提取程序流程圖
見圖9。
3、LED各顯示程序
LED顯示屏的顯示方式有靜止、上下滾屏、左右滾屏等多種方式。其中上下滾屏顯示程序類似,左右滾屏顯示程序類似,其他多花樣的顯示方式程序都是在此基礎上進行改動而來的。因此主要給出靜態顯示、上移顯示、左移顯示這三種典型方式的程序流程圖,見圖10、圖11、圖12。
4、串列通信程序
每當向PC機客戶程序里輸入新顯示內容並發送給單片機時,單片機就產生串列中斷,接受待顯示信息的機內碼,然後再利用點陣字模信息提取程序得到點陣數據送到LED顯示屏顯示。單片機接受數據採用中斷的方式。串列中斷程序流程圖見圖13。
5、PC機客戶程序
本系統的PC機客戶程序是採用Visual Basic 6.0進行開發的,主要利用其串列通信控制項MSComm,其主要流程圖及運行效果見圖14、圖15。

圖8 主程序流程圖 圖9 點陣字模信息提取程序流程圖

圖10 靜態顯示程序流程圖 圖11 上移顯示程序流程圖

圖12 左移顯示程序流程圖

圖13 串列中斷程序流程圖 圖14 PC機客戶程序流程圖

圖15 PC機客戶控製程序的界面
四、系統功能測試
1、測試及製作中所用儀器
GDS-820C型雙蹤數字示波器、UNT-T型台式數字萬用表、
SK1731SL2A直流穩壓電源、F10型數字合成函數信號發生器、
聯想PC、烙鐵等
2、鍵盤各鍵功能
1 2 3 4
5 6 7 8
9 0 ./+ C/-
確定 上 下 取消
「0—9」 :數字鍵;
「. /+」 :小數點/數據加1;
「C/-」 : 刪格/數據減1;
「確定」 :進入菜單,保存設置
「取消」 :返回上一級菜單
「上」 : 菜單上翻,插入點左移
「下」 : 菜單下翻,插入點右移
3、單元模塊電路測試
1)LED點陣測試:用程序實現所有點陣全部點亮,顯示部分點陣塊無法完全點亮,更換點陣塊後顯示正常。
2)無線數傳測試:由單片機#2無線發送1000位元組數據,單片機#1接收並存儲,通過開發環境查看接收數據,發送一百次,成功接收100次,經測試系統穩定;
3)與上位機通信測試:上位機循環發送1000位元組數據,單片機接收並校驗,接受成功後送液晶顯示,然後停止發送,經測試接收時間相對於人的反映時間可以忽略。測試20次,成功接受20次。
4)鍵盤液晶測試:用鍵盤控制菜單進出,上下翻頁,鍵盤無抖動,液晶無閃爍。
4、系統整體功能測試
各單元模塊整合後,系統上電,顯示屏上顯示預存信息,通過2#機上的鍵盤可以成功控制1#機上的顯示,包括預存信息切換顯示、翻頁、上下滾屏、左右滾屏、對流、展開等各花樣顯示方式、LED顯示屏亮度連續可調,能成功地顯示出字母、數字、漢字等信息,通過按鍵可以控制顯示實時時間、實時溫度等信息,而且斷電後,重新開機,預存的顯示信息與時間均可掉電保護。通過PC機的客戶程序發送需更新信息數據到2#機,由2#機通過無線數傳模塊發送給1#機,可以成功地更新顯示內容。
經過多次測試,整個系統工作穩定可靠,能夠實現上述所有功能。
五、總結
我們製作的這套LED點陣電子顯示屏系統不僅完成了題目要求的基本功能和發揮功能,還在實時溫度檢測顯示、無線遙控、顯示方式等方面有所創新。本系統以凌陽16位單片機SPCE061A為核心部件,最終完成了競賽題目中要求的各項任務,包括可以控制16*64LED點陣顯示屏實現信息的左右滾屏、顯示屏亮度連續可調、實時時間和實時溫度的顯示等,在設計過程中,力求硬體線路簡單,充分發揮軟體在編程方面靈活的特點,來滿足系統設計的要求。
在競賽的過程中,我們遇到了許多突發性的不太好解決的問題,例如,在整個系統的調試過程中,我們體會到無論是硬體還是軟體的調試都要注意模塊化,要從最底層開始,逐級通過後才能進行下一步的工作;同時在聯合調試的過程中,應注意各模塊之間的時序配合問題,有時都是正確的模塊程序卻因為按照不恰當的順序來執行從而導致程序運行結果完全出錯。
通過這次比賽,我們深深的體會到了團隊間的共同協作的重要性,提高了自己的動手能力和解決問題的能力。

8. 跪求基於51系列單片機的音頻播放器控制系統的設計

選擇凌陽的單片機比較適合。

9. 畢業論文資料收集(採納追加1000分)

單片機類畢業設計
·電子時鍾的設計
·全自動節水灌溉系統--硬體部分
·數字式溫度計的設計
·溫度監控系統設計
·基於單片機的語音提示測溫系統的研究
·簡易無線電遙控系統
·數字流量計
·基於單片機的全自動洗衣機
·水塔智能水位控制系統
·溫度箱模擬控制系統
·超聲波測距儀的設計
·基於51單片機的LED點陣顯示屏系統的設計與實現 16×16點陣顯示屏
·基於AT89S51單片機的數字電子時鍾
·基於單片機的步進電機的控制
·基於單片機的交流調功器設計
·基於單片機的數字電壓表的設計
·單片機的數字鍾設計
·智能散熱器控制器的設計
·單片機打鈴系統設計
·基於單片機的交通信號燈控制電路設計
·基於單片機的電話遠程式控制制家用電器系統設計
·基於單片機的安全報警器
·基於單片機的八路搶答器設計
·基於單片機的超聲波測距系統的設計
·基於MCS-51數字溫度表的設計
·電子體溫計的設計
·基於AT89C51的電話遠程式控制制系統
·基於AVR單片機幅度可調的DDS信號發生器
·基於單片機的數控穩壓電源的設計
·基於單片機的室內一氧化碳監測及報警系統的研究
·基於單片機的空調溫度控制器設計
·基於單片機的可編程多功能電子定時器
·單片機的數字溫度計設計
·紅外遙控密碼鎖的設計
·基於61單片機的語音識別系統設計
·家用可燃氣體報警器的設計
·基於數字溫度計的多點溫度檢測系統
·基於凌陽單片機的語音實時採集系統設計
·基於單片機的數字頻率計的設計
·基於單片機的數字電子鍾設計
·設施環境中溫度測量電路設計
·汽車倒車防撞報警器的設計
·籃球賽計時記分器
·基於單片機的家用智能匯流排式開關設計
·設施環境中濕度檢測電路設計
·基於單片機的音樂合成器設計
·設施環境中二氧化碳檢測電路設計
·基於單片機的水溫控制系統設計
·基於單片機的數字溫度計的設計
·基於單片機的火災報警器
·基於單片機的紅外遙控開關設計
·基於單片機的電子鍾設計
·基於單片機的紅外遙控電子密碼鎖
·大棚溫濕度自動監控系統
·基於單片機的電器遙控器的設計
·單片機的語音存儲與重放的研究
·基於單片機的電加熱爐溫度控制系統設計
·紅外遙控電源開關
·基於單片機的低頻信號發生器設計
·基於單片機的呼叫系統的設計
·基於PIC16F876A單片機的超聲波測距儀
·基於單片機的密碼鎖設計
·單片機步進電機轉速控制器的設計
·由AT89C51控制的太陽能熱水器
·防盜與恆溫系統的設計與製作
·AT89S52單片機實驗系統的開發與應用
·基於單片機控制的數字氣壓計的設計與實現
·智能壓力感測器系統設計
·智能定時器
·基於單片機的智能火災報警系統
·基於單片機的電子式轉速里程錶的設計
·公交車漢字顯示系統
·單片機數字電壓表的設計
·精密VF轉換器與MCS-51單片機的介面技術
·基於單片機的居室安全報警系統設計
·基於89C2051 IC卡讀/寫器的設計
·PC機與單片機串列通信畢業論文
·球賽計時計分器 畢業設計論文
·松下系列PCL五層電梯控制系統
·自動起閉光控窗簾畢業設計論文
·單片機控制交通燈系統設計
·基於單片機的電子密碼鎖
·基於51單片機的多路溫度採集控制系統
·點陣電子顯示屏--畢業設計
·超聲波測距儀--畢業設計
·單片機對玩具小車的智能控制畢業設計論文
·基於單片機控制的電機交流調速畢業設計論文
·單片機智能火災報警器畢業設計論文
·基於單片機的鎖相頻率合成器畢業設計論文
·單片機控制的數控電流源畢業設計論文
·基於單片機的數字顯示溫度系統畢業設計論文
·單片機串列通信發射部分畢業設計論文
·基於單片機控制直流電機調速系統畢業設計論文
·單片機控制步進電機 畢業設計論文
·基於MCS51單片機溫度控制畢業設計論文
·基於單片機的自行車測速系統設計
·單片機汽車倒車測距儀
·基於單片機的數字電壓表
·單片機脈搏測量儀
·單片機控制的全自動洗衣機畢業設計論文
·基於單片機的電器遙控器設計
·單片機控制的微型頻率計設計
·基於單片機的音樂噴泉控制系統設計
·等精度頻率計的設計
·自行車里程,速度計的設計
·基於單片機的數字電壓表設計
·自行車車速報警系統
·大棚倉庫溫濕度自動控制系統
·自動剪板機單片機控制系統設計
·單片機電器遙控器的設計
·基於單片機技術的自動停車器的設計
·基於單片機的金屬探測器設計
·ATMEIL AT89系列通用單片機編程器的設計
·單片機水溫控制系統
·基於單片機的IC卡智能水表控制系統設計
·基於MP3格式的單片機音樂播放系統
·節能型電冰箱研究
·基於單片機控制的PWM調速系統
·交流非同步電動機變頻調速設計
·基於單片機的數字溫度計的電路設計
·基於Atmel89系列晶元串列編程器設計
·基於MCS-51通用開發平台設計
·基於單片機的實時時鍾
·用單片機實現電話遠程式控制制家用電器
·中頻感應加熱電源的設計
·家用豆漿機全自動控制裝置
·基於ATmega16單片機的高爐透氣性監測儀表的設計
·用單片機控制的多功能門鈴
·基於8051單片機的數字鍾
·紅外快速檢測人體溫度裝置的設計與研製
·三層電梯的單片機控制電路
·交通燈89C51控制電路設計
·基於單片機的簡訊收發系統設計 ――硬體設計
·大棚溫濕度自動控制系統
·串列顯示的步進電機單片機控制系統
·微機型高壓電網繼電保護系統的設計
·基於單片機mega16L的煤氣報警器的設計
·智能毫伏表的設計
·基於單片機的波形發生器設計
·基於單片機的電子時鍾控制系統
·火災自動報警系統
·基於PIC16F74單片機串列通信中繼控制器
·遙控小汽車的設計研究
·基於單片機對氧氣濃度檢測控制系統
·單片機的數字電壓表設計
·基於單片機的壓電智能懸臂梁振動控制系統設計
·單片機的列印機的驅動設計
·單片機音樂演奏控制器設計
·自動選台立體聲調頻收音機
·直流數字電壓表的設計
·具有紅外保護的溫度自動控制系統的設計
·基於單片機的機械通風控制器設計
·音頻信號分析儀
·單片機波形記錄器的設計
·公交車站自動報站器的設計
·基於單片機的溫度測量系統的設計
·龍門刨床的可逆直流調速系統的設計
·電子秤設計與製作
·智能型充電器的電源和顯示的設計
·80C196MC控制的交流變頻調速系統設計
·步進電機運行控制器的設計
·自動車庫門的設計
·家庭智能緊急呼救系統的設計
·單片機病房呼叫系統設計
·電子鬧鍾設計
·電子萬年歷設計
·定時鬧鍾設計
·計算器模擬系統設計
·數字電壓表設計
·數字定時鬧鍾設計
·數字溫度計設計
·數字音樂盒設計
·智能定時鬧鍾設計
·電子風壓表設計
·8×8LED點陣設計
·可編程的LED(16×64)點陣顯示屏
·無線智能報警系統
·溫濕度智能測控系統
·單片機電量測量與分析系統
·多通道數據採集記錄系統
·單片機控制直流電動機調速系統
·步進電動機驅動器設計
·DS18B20溫度檢測控制
·6KW電磁採暖爐電氣設計
·基於電流型逆變器的中頻冶煉電氣設計
·新型電磁開水爐設計
·新型洗浴器設計
·中頻淬火電氣控制系統設計
·中型電弧爐單片機控制系統設計
·基於單片機的電火箱調溫器
·LCD數字式溫度濕度測量計
·單片機與計算機USB介面通信
·萬年歷的設計
·基於單片機的家電遠程式控制制系統設計
·超聲波測距器設計
·多路溫度採集系統設計
·交通燈控制系統設計
·數字電容表的設計
·100路數字搶答器設計
·單片機與PC串列通信設計
·基於DS18B20溫度感測器的數字溫度計設計
·基於單片機的大棚溫、濕度的檢測系統
·基於MCS-96單片機的雙向加力式電子天平
·智能型客車超載檢測系統的設計
·語音控制小汽車控制系統設計
·萬年歷可編程電子鍾控電鈴
·基於單片機的步進電機控制系統
·基於MCS-51單片機溫控系統設計的電阻爐
·基於單片機89C52的啤酒發酵溫控系統
·基於單片機的溫度採集系統設計
·PIC單片機在空調中的應用
·列車測速報警系統
·多點溫度數據採集系統的設計
·遙控窗簾電路的設計
·基於單片機的數字式溫度計設計
·87C196MC單片機最小系統單板電路模板的設計與開發
·基於87C196MC交流調速實驗系統軟體的設計與開發
·基於87C196MC交流調速系統主電路軟體的設計與開發
·基於80C196MC交流調速實驗系統軟體的設計與開發
·基於單片機的水位控制系統設計
·基於單片機的液位檢測
·基於單片機的定量物料自動配比系統
·智能恆壓充電器設計
·單片機的水溫控制系統
·基於單片機的車載數字儀表的設計
·基於單片機的室溫控制系統設計
·基於MAX134與單片機的數字萬用表設計
·基於單片機防盜報警系統的設計
·18B20多路溫度採集介面模塊
·基於單片機的乳粉包裝稱重控制系統設計
·基於單片機的戶式中央空調器溫度測控系統設計
·步進電機實現的多軸運動控制系統
·IC卡讀寫系統的單片機實現
·單片機電阻爐溫度控制系統設計
·單片機控制PWM直流可逆調速系統設計
·單片機自動找幣機械手控制系統設計
·基於89C52的多通道採集卡的設計
·基於AT89C51單片機控制的雙閉環直流調速系統設計
·單片機控制的PWM直流電機調速系統的設計
·基於單片機的電阻爐溫度控制系統設計
·公交車報站系統的設計
·智能多路數據採集系統設計
·基於單片機控制的紅外防盜報警器的設計
·籃球比賽計時器設計
·超聲波測距儀的設計及其在倒車技術上的應用
·汽車側滑測量系統的設計
·自動門控制系統設計
·基於51單片機的液晶顯示器設計
·基於AT89C51單片機的電源切換控制器的設計
·基於單片機的普通銑床數控化設計
·基於AT89C51單片機的號音自動播放器設計
·基於單片機的玻璃管加熱控制系統設計
·中央冷卻水溫控制系統
·基於單片機的無刷直流電機控制系統設計
·鍋爐汽包水位控制系統
·基於單片機的魚用投餌機自動控制系統的設計
·空調溫度控制單元的設計
·軟膠囊的單片機溫度控制(硬體設計)
·小型戶用風力發電機控制器設計
·自動售報機的設計
·無線表決系統的設計
·微電腦時間控制器的軟體設計
·基於單片機AT89S52的超聲波測距儀的研製
·單片機教學實驗板——軟體設計
·基於16位單片機的串口數據採集
·單片機太陽能熱水器測控儀的設計
·基於單片機的簡單數字採集系統設計
·多電量採集系統的設計與實現
·PWM及單片機在按摩機中的應用
·基於單片機的簡易GPS定位信息顯示系統設計
·基於單片機的溫濕度測量系統設計
·基於單片機的電子音樂門鈴的設計
·開關電源的設計
·鍋爐控制系統的研究與設計
·基於ARM的嵌入式溫度控制系統的設計
·基於DS18B20的多點溫度巡迴檢測系統的設計
·基於單片機的頻率計設計
·倉儲用多點溫濕度測量系統
·基於單片機的超聲波液位測量系統的設計
·基於單片機的多功能函數信號發生器設計
·噪音檢測報警系統的設計與研究
·轉速、電流雙閉環直流調速系統設計
·基於單片機程式控制精密直流穩壓電源的設計
·模擬電梯的製作
·基於AT89C51單片機的步進電機控制系統
·超聲波倒車雷達系統硬體設計
·基於單片機實現汽車報警電路的設計
·採用單片機技術的脈沖頻率測量設計
·智能豆漿機的設計
·電話遠程監控系統的研究與製作
·分立式生活環境表的研究與製作(多功能電子萬年歷)
·高效智能汽車調節器
·全自動汽車模型的製作
·智能紅外遙控暖風機設計
·蔬菜公司恆溫庫微機監控系統
·數字觸發提升機控制系統
·基於單片控制的交流調速設計
·基於單片機的多點無線溫度監控系統
·單片機控制的霓虹燈控制器
·基於單片機的數碼錄音與播放系統
·全自動洗衣機控制器
·空調器微電腦控制系統
·自動存包櫃的設計
·基於單片機的數字鍾設計
·電子萬年歷
·多路數據採集系統的設計
·基於單片機步進電機控制系統設計
·基於單片機的雞雛恆溫孵化器的設計
·基於FPGA和單片機的多功能等精度頻率計
·基於單片機的水溫控制系統
·基於單片機的智能電子負載系統設計
·智能電話報警器
·基於ADE7758的電能監測系統的設計
·基於單片機PIC16F877的環境監測系統的設計
·基於單片機控制動態掃描文字顯示系統的設計
·基於單片機控制發生的數字音樂盒
·基於單片機控制文字的顯示
·基於單片機控制音樂門鈴
·智能電子密碼鎖設計
·單片機電鈴系統設計
·單片機演奏音樂歌曲裝置的設計
·大功率電器智能識別與用電安全控制器的設計
·單片機交通燈控制系統的設計
·智能立體倉庫系統的設計
·智能火災報警監測系統
·基於單片機的多點溫度檢測系統
·單片機定時鬧鍾設計
·濕度感測器單片機檢測電路製作
·智能小車自動定址設計--小車懸掛運動控制系統
·單片機呼叫系統的設計
·基於單片機的帶智能自動化的紅外遙控小車
·基於單片機AT89C51的語音溫度計的設計
·基於TMS320VC33DSP開發板製作
·16×16點陣LED電子顯示屏的設計
·單片機實驗教學平台分析
·基於USB匯流排的設計與開發
·基於單片機設計的自動售貨機系統設計
·數字溫度計的設計
·生產流水線產品產量統計顯示系統
·水位報警顯時控制系統的設計
·紅外遙控電子密碼鎖的設計
·基於MCU溫控智能風扇控制系統的設計
·數字電容測量儀的設計
·基於單片機的遙控器的設計
·200電話卡代撥器的設計
·數字式心電信號發生器硬體設計及波形輸出實現
·全氫罩式退火爐溫度控制系統
·單片機控制單閉環直流電動機的調速控制系統
·單片機電加熱爐溫度控制系統
·單片機大型建築火災監控系統
·點陣式漢字電子顯示屏的設計與製作
·基於AT89C51的路燈控制系統設計
·基於AT89C51的寬范圍高精度的電機轉速測量系統
·基於DSP的電機控制
·汽車倒車雷達
·基於光纖的汽車CAN匯流排研究
·基於AT89C51SND1C的MP3播放器
·多功能頻率計的設計
·基於單片機的數字直流調速系統設計
·單片機的智能電源管理系統
·基於單片機的多功能智能小車設計
·汽車防撞主控系統設計
·單片機控制電梯系統的設計
·電子密碼鎖的電路設計與製作
·高精度超聲波感測器信號調理電路的設計
·數字電子鍾的設計與製作
·銀行自動報警系統

10. 求凌陽單片機語音控製程序

// 工程名稱: Car_Demo
// 功能描述: 實現小車的語音控制
// 涉及的庫: CMacro1016.lib
// bsrv222SDL.lib
// sacmv26e.lib
// 組成文件: main.c
// Flash.asm, hardware.asm,ISR.asm
// hardware.h,s480.h, hardware.inc
// 硬體連接: IOA0-----KEY1
// IOA1-----KEY2
// IOA2-----KEY3
// IOB8-----前進
// IOB9-----倒車
// IOB10----左拐
// IOB11----右拐
// 維護記錄: 2005-12-12 v1.0
//========================================================

#include "s480.h"
#include "bsrsd.h"

#define P_IOA_Data (volatile unsigned int *)0x7000
#define P_IOA_Dir (volatile unsigned int *)0x7002
#define P_IOA_Attrib (volatile unsigned int *)0x7003
#define P_IOB_Data (volatile unsigned int *)0x7005
#define P_IOB_Dir (volatile unsigned int *)0x7007
#define P_IOB_Attrib (volatile unsigned int *)0x7008
#define P_TimerA_Data (volatile unsigned int *)0x700A
#define P_TimerA_Ctrl (volatile unsigned int *)0x700B
#define P_TimerB_Data (volatile unsigned int *)0x700C
#define P_TimerB_Ctrl (volatile unsigned int *)0x700D
#define P_Watchdog_Clear (volatile unsigned int *)0x7012
#define P_INT_Mask (volatile unsigned int *)0x702D
#define P_INT_Clear (volatile unsigned int *)0x7011

#define NAME_ID 0x100
#define COMMAND_GO_ID 0x101
#define COMMAND_BACK_ID 0x102
#define COMMAND_LEFT_ID 0x103
#define COMMAND_RIGHT_ID 0x104

#define S_NAME 0 //給我取個名字吧
#define S_ACT1 1 //前進
#define S_ACT2 2 //倒車,請注意
#define S_ACT3 3 //左拐
#define S_ACT4 4 //右拐
#define S_RDY 5 //Yeah
#define S_AGAIN 6 //請再說一遍
#define S_NOVOICE 7 //沒有聽到任何聲音
#define S_CMDDIFF 8 //說什麼暗語呀
#define S_NOISY 8 //說什麼暗語呀
#define S_START 9 //准備就緒,開始辨識
#define S_GJG 10 //拐就拐
#define S_DCZY 11 //倒車,請注意

extern unsigned int BSR_SDModel[100]; //外部變數BSR_SDModel[100],辨識器自帶
extern void F_FlashWrite1Word(unsigned int addr,unsigned int Value);
extern void F_FlashErase(unsigned int sector);
unsigned int uiTimeset = 3; //運行時間定時,調整該參數控制運行時間
unsigned int uiTimecont; //運行時間計時

//=============================================================
// 語法格式: void Delay();
// 實現功能: 延時
// 參數: 無
// 返回值: 無
//=============================================================
void Delay()
{
unsigned int i;
for(i=0;i<0x3Fff;i++)
{
*P_Watchdog_Clear=0x0001;
}
}

//=============================================================
// 語法格式: void PlaySnd(unsigned SndIndex,unsigned DAC_Channel);
// 實現功能: 語音播放函數
// 參數: SndIndex-播放語音資源索引號
// DAC_Channel-播放聲道選擇
// 返回值: 無
//=============================================================
void PlaySnd(unsigned SndIndex,unsigned DAC_Channel)
{
BSR_StopRecognizer(); //停止識別器
SACM_S480_Initial(1); //初始化為自動播放
SACM_S480_Play(SndIndex, DAC_Channel, 3); //開始播放一段語音
while((SACM_S480_Status()&0x0001)!= 0) //是否播放完畢?
{
SACM_S480_ServiceLoop(); //解碼並填充隊列
*P_Watchdog_Clear=0x0001; //清看門狗
}
SACM_S480_Stop(); //停止播放
BSR_InitRecognizer(BSR_MIC); //初始化識別器
}

//=============================================================
// 語法格式: int TrainWord(int WordID,int SndID);
// 實現功能: 訓練一條指令
// 參數: WordID-指令編碼
// SndID-指令提示音索引號
// 返回值: 無
//=============================================================
int TrainWord(unsigned int WordID,unsigned int SndID)
{
int Result;
PlaySnd(SndID,3); //引導訓練,播放指令對應動作
while(1)
{
Result = BSR_Train(WordID,BSR_TRAIN_TWICE); //訓練兩次,獲得訓練結果

if(Result==0)break;
switch(Result)
{
case -1: //沒有檢測出聲音
PlaySnd(S_NOVOICE,3);
return -1;
case -2: //需要訓練第二次
PlaySnd(S_AGAIN,3);
break;
case -3: //環境太吵
PlaySnd(S_NOISY,3);
return -3;
case -4: //資料庫滿
return -4;
case -5: //檢測出聲音不同
PlaySnd(S_CMDDIFF,3);
return -5;
case -6: //序號錯誤
return -6;
default:
break;
}
}
return 0;
}

//=============================================================
// 語法格式: void TrainSD();
// 實現功能: 訓練函數
// 參數: 無
// 返回值: 無
//=============================================================
void TrainSD()
{
while(TrainWord(NAME_ID,S_NAME) != 0) ; //訓練名稱
while(TrainWord(COMMAND_GO_ID,S_ACT1) != 0) ; //訓練第1個動作
while(TrainWord(COMMAND_BACK_ID,S_ACT2) != 0) ; //訓練第2個動作
while(TrainWord(COMMAND_LEFT_ID,S_ACT3) != 0) ; //訓練第3個動作
while(TrainWord(COMMAND_RIGHT_ID,S_ACT4) != 0) ; //訓練第4個動作
}

//=============================================================
// 語法格式: void StoreSD();
// 實現功能: 存儲語音模型函數
// 參數: 無
// 返回值: 無
//=============================================================
void StoreSD()
{ unsigned int ulAddr,i,commandID,g_Ret;
F_FlashWrite1Word(0xef00,0xaaaa);
F_FlashErase(0xe000);
F_FlashErase(0xe100);
F_FlashErase(0xe200);
ulAddr=0xe000;//********
for(commandID=0x100;commandID<0x105;commandID++)
{
g_Ret=BSR_ExportSDWord(commandID);
while(g_Ret!=0) //模型導出成功?
g_Ret=BSR_ExportSDWord(commandID);
for(i=0;i<100;i++) //保存語音模型SD1(0xe000---0xe063)
{
F_FlashWrite1Word(ulAddr,BSR_SDModel[i]);
ulAddr+=1;
}
}
}

//=============================================================
// 語法格式: void StoreSD();
// 實現功能: 裝載語音模型函數
// 參數: 無
// 返回值: 無
//=============================================================
void LoadSD()
{ unsigned int *p,k,jk,Ret,g_Ret;
p=(int *)0xe000;
for(jk=0;jk<5;jk++)
{
for(k=0;k<100;k++)
{
Ret=*p;
BSR_SDModel[k]=Ret; //裝載語音模型
p+=1;
}
g_Ret=BSR_ImportSDWord();
while(g_Ret!=0) //模型裝載成功?
g_Ret=BSR_ImportSDWord();
}
}

//=============================================================
// 語法格式: void GoAhead();
// 實現功能: 前進子函數
// 參數: 無
// 返回值: 無
//=============================================================
void GoAhead() //前進
{
PlaySnd(S_ACT1,3); //提示
*P_IOB_Data=0x0100; //前進
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}
//=============================================================
// 語法格式: void BackUp();
// 實現功能: 後退子函數
// 參數: 無
// 返回值: 無
//=============================================================
void BackUp() //倒退
{
PlaySnd(S_DCZY,3); //提示
*P_IOB_Data=0x0200; //倒退
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}

//=============================================================
// 語法格式: void TurnLeft();
// 實現功能: 左轉子函數
// 參數: 無
// 返回值: 無
//=============================================================
void TurnLeft() //左轉
{
PlaySnd(S_GJG,3);
*P_IOB_Data=0x0900; //右轉
Delay(); //延時
*P_IOB_Data=0x0500; //左轉
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}
//=============================================================
// 語法格式: void TurnRight();
// 實現功能: 右轉子函數
// 參數: 無
// 返回值: 無
//=============================================================
void TurnRight() //右轉
{
PlaySnd(S_GJG,3); //語音提示
*P_IOB_Data=0x0500; //左轉
Delay(); //延時
*P_IOB_Data=0x0900; //右轉
*P_INT_Mask |= 0x0004; //以下為中斷定時操作
__asm("int fiq,irq");
uiTimecont = 0;
}

//=============================================================
// 語法格式: void Stop();
// 實現功能: 停車子函數
// 參數: 無
// 返回值: 無
//=============================================================
void Stop() //停車
{
*P_IOB_Data=0x0000; //停車
PlaySnd(S_RDY,3); //語音提示
}

//=============================================================
// 語法格式: void BSR(void);
// 實現功能: 辨識子函數
// 參數: 無
// 返回值: 無
//=============================================================
void BSR(void)
{
int Result; //辨識結果寄存
Result = BSR_GetResult(); //獲得識別結果

if(Result>0) //有語音觸發?
{
*P_IOB_Data=0x0000; //臨時停車
switch(Result)
{
case NAME_ID: //識別出名稱命令
Stop(); //停車待命
break;
case COMMAND_GO_ID: //識別出第一條命令
GoAhead(); //執行動作一:直走
break;
case COMMAND_BACK_ID: //識別出第二條命令
BackUp(); //執行動作二:倒車
break;
case COMMAND_LEFT_ID: //識別出第三條命令
TurnLeft(); //執行動作三:左轉
break;
case COMMAND_RIGHT_ID: //識別出第四條命令
TurnRight(); //執行動作四:右轉
break;
default:
break;
}
}
}
//=============================================================
// 語法格式: void IRQ5(void);
// 實現功能: 中斷服務子函數
// 參數: 無
// 返回值: 無
//=============================================================
void IRQ5(void)__attribute__((ISR)); //運動定時控制
void IRQ5(void)
{
if(uiTimecont++ == uiTimeset)
{
*P_IOB_Data = 0x0000;
}
*P_INT_Clear = 0x0004;
}

//=============================================================
// 語法格式: int main(void);
// 實現功能: 主函數
// 參數: 無
// 返回值: 無
//=============================================================
int main(void)
{ unsigned int BS_Flag; //Train標志位

*P_IOA_Dir=0xff00; //初始化IOA,IOA0~7下拉輸入
*P_IOA_Attrib=0xff00;
*P_IOA_Data=0x0000;

*P_IOB_Dir=0x0f00; //初始化IOB,IOB8~11同向輸出
*P_IOB_Attrib=0x0f00;
*P_IOB_Data=0x0000;

BSR_DeleteSDGroup(0); //初始化存儲器RAM
BS_Flag=*(unsigned int *)0xe000; //讀存儲單元0xe000
if(BS_Flag==0xffff) //沒有經過訓練(0xe000內容為0xffff)
{
TrainSD(); //訓練
StoreSD(); //存儲訓練結果(語音模型)
}
else //經過訓練(0xe000內容為0x0055)
{
LoadSD(); //語音模型載入識別器
}

PlaySnd(S_START,3); //開始識別提示
BSR_InitRecognizer(BSR_MIC); //初始化識別器

while(1)
{
BSR();
if((*P_IOA_Data)&0x0004) //是否重新訓練
{
F_FlashErase(0xe000);
while(1);
}
}
}

//============================================================
// 文件名稱:flash.asm
// 實現功能: SPCE061 32K flash 的讀寫
// 維護記錄: 2003-6-9 V1.0
//============================================================

.INCLUDE hardware.inc

.DEFINE C_FLASH_SIZE 0x8000
.DEFINE C_FLASH_BLOCK_SIZE 0x100
.DEFINE C_FLASH_MATCH 0xAAAA
.DEFINE C_FLASH_PAGE_ERASE 0x5511 //擦除一頁
.DEFINE C_FLASH_MASS_ERASE 0x5522 //
.DEFINE C_FLASH_1WORD_PGM 0x5533 //寫一個字
.DEFINE C_FLASH_SEQUENT_PGM 0x5544 //寫多個字
.DEFINE C_FLASH_MAIN_BLOCK 0x5555
.DEFINE C_FLASH_INFORM_BLOCK 0x5566

.CODE
//============================================================================================
//語法:void F_FlashWrite1Word(int addr,int Value )
//描述:寫一個字到FLASH中
//參數:addr-被寫數據的存儲地址 Value-被寫數據
//返回:無
//===============================================================================================
.PUBLIC _F_FlashWrite1Word
.DEFINE P_Flash_Ctrl 0x7555
_F_FlashWrite1Word: .proc
push bp to [sp]
bp = sp+1
r1 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r1
r1 = C_FLASH_1WORD_PGM //5533
[P_Flash_Ctrl] = r1
r1 = [bp+3] //flash address
r2 = [bp+4] //data
[r1] = r2

pop bp from [sp]
retf
.ENDP

//=============================================================================================
//語法:F_FlashWrite(int sector,int &num, int size)
//描述:順序寫多個字
//參數:sector-被寫數據的起始地址 &num-被寫數據 size-寫數據的數量
//返回:無
//=============================================================================================
.PUBLIC _F_FlashWrite
_F_FlashWrite: .proc
push bp to [sp]
bp = sp+1
r1 = [bp+3] //flash base address
r2 = [bp+4] //data
r3 = [bp+5] //多個位元組
r4 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r4
L_FlashWriteLoop:
r4 = C_FLASH_SEQUENT_PGM //5544
[P_Flash_Ctrl] = r4
r4 = [r2++]
[r1++] = r4

r3 -= 1
jnz L_FlashWriteLoop
[P_Flash_Ctrl] = r3 //寫結束
pop bp from [sp]
retf
.ENDP

// ============================================================================================
//語法:void F_FlashErase(sector)
//描述:擦除256位元組
//參數: sector-擦除頁的起始地址
//返回:無
// ============================================================================================
.PUBLIC _F_FlashErase
_F_FlashErase: .proc
push bp to [sp]
bp = sp + 1
r1 = C_FLASH_MATCH //AAAA
[P_Flash_Ctrl] = r1
r1 = C_FLASH_PAGE_ERASE //5511
[P_Flash_Ctrl] = r1
r1 = [bp+3] //擦除一頁
[r1] = r1

pop bp from [sp]
retf
.ENDP
.END

//============================================================
// 文件名稱:ISR.asm
// 實現功能: 語音播放/識別中斷服務
// 維護記錄: 2003-9-9 V1.0
//============================================================
.include hardware.inc

.public _FIQ;

.external _BSR_FIQ_Routine
.external F_FIQ_Service_SACM_S480

.text
_FIQ:
push R1,R5 to [sp]; // 寄存器壓棧保護
R1 = C_FIQ_TMA;
[P_INT_Clear] = R1;
call _BSR_FIQ_Routine //語音識別中斷服務
call F_FIQ_Service_SACM_S480; //語音播放中斷服務
pop R1,R5 from [sp];
reti;

閱讀全文

與凌陽單片機的畢業設計相關的資料

熱點內容
androidcanvas撤銷 瀏覽:267
安卓手機怎麼把圖標全部下移 瀏覽:183
飢荒被伺服器踢出怎麼進 瀏覽:170
c編譯器哪款好 瀏覽:732
快手寶哥發明什麼app 瀏覽:822
張艷玲編譯 瀏覽:66
android展開收起動畫 瀏覽:237
linuxxz文件 瀏覽:160
在游戲中心裏面怎麼玩到解壓神器 瀏覽:484
電腦發到手機裡面照片怎麼解壓 瀏覽:73
虛擬pdf列印機64位 瀏覽:413
支付寶AES加密和解密 瀏覽:379
編譯實驗原理下載 瀏覽:131
加密防偽溯源系統私人定做 瀏覽:222
掃碼給電動車充電的app叫什麼 瀏覽:760
關閉命令提醒 瀏覽:356
雲賬本app伺服器 瀏覽:499
python輸入數字循環 瀏覽:370
未成年人用什麼app 瀏覽:517
程序員出差多久回家 瀏覽:433