提出一種基于單片機AT89C51SND1C的MP3播放系統的設計方案。單片機集成了專用的解碼器,使用K9F1208閃存作為外存儲器,放音電路采用CS4330,存儲文件通過播放器上的USB接口設備從PC機上直接下載,液晶顯示采用LCD1602。方案設計簡單,性價比高,低功耗,易擴展。由于采用的是通用單片機實現的,可以很容易地移植到其他微控制器系統中,有很強的市場競爭能力和實用價值。 Abstract: A MP3 player design based on microchip AT89C51SND1C was presented, which used K9F1208 Flash chip as the memory circuit and used CS4330 as play chip. Storage files were download from PC through USB interfaces player on the device,and the LCD/602 was used as display screen. This system had characteristics of simple design,low power,easy expand,low cost and high recognition. Using of universual microchip make it easy to transplant to other microcontrol system,and have strong market competitiom and practical value.
上傳時間: 2014-12-27
上傳用戶:佳期如夢
為了在工業生產及過程控制中準確測量溫度,設計了一種基于低功耗MSP430單片機的數字溫度計。整個系統通過單片機MSP430F1121A控制DS18B20讀取溫度,采用數碼管顯示,溫度傳感器DS18B20與單片機之間通過串口進行數據傳輸。MSP430系列單片機具有超低功耗,且外圍的整合性高,DS18B20只需一個端口即可實現數據通信,連接方便。通過多次實驗證明,該系統的測試結果與實際環境溫度一致,除了具有接口電路簡單、測量精度高、誤差小、可靠性高等特點外,其低成本、低功耗的特點使其擁有更廣闊的應用前景。 Abstract: In order to obtain accurate measuring temperature in industrial production and process control, a digital thermometer based on MSP430 MCU is designed. The system uses MSP430F1121A MCU to control DS18B20, and gets the temperature data, which is displayed on the LED. The temperature sensor DS18B20 and MCU transmit data through serial communication. MSP430 series has ultra-low power and high integration, DS18B20 only needs one port to achieve data communication. Through many experimental results prove, this system is consistent with actual environment temperature. The system has characteristics of interface circuit simple, high measuring accuracy, minor error, high reliability, besides, the characteristics of low cost and low power make it having vaster application prospect.
上傳時間: 2013-10-16
上傳用戶:wettetw
Information in this document is subject to change without notice and does notrepresent a commitment on the part of the manufacturer. The software describedin this document is furnished under license agreement or nondisclosureagreement and may be used or copied only in accordance with the terms of theagreement. It is against the law to copy the software on any medium except asspecifically allowed in the license or nondisclosure agreement. The purchasermay make one copy of the software for backup purposes. No part of this manualmay be reproduced or transmitted in any form or by any means, electronic ormechanical, including photocopying, recording, or information storage andretrieval systems, for any purpose other than for the purchaser’s personal use,without written permission.
上傳時間: 2014-12-27
上傳用戶:Tracey
前言智能儀表課采用了《單片機原理與接口技術》作為教材,這是一門實踐性極強的課程,理論和實驗教學的有機結合,是提高教學質量的唯一途徑。為密切配合理論教學,針對SICElab賽思開放式綜合實驗/仿真系統,我們編寫了配套的實驗教材。SICElab賽思開放式綜合實驗/仿真系統采用了符合單片機開發過程的“仿真式”組合設計思想,使得所有的實驗模塊及CPU資源均全力對用戶開放,從而充分滿足“驗證式”→“模仿式”→“探索式”→“開發式”的由淺入深的各種實驗要求。賽思開放式綜合實驗/仿真系統采用偉福G6W仿真器,為用戶提供了一個大集成軟件環境,統一的界面,包含一個項目管理器,一個功能強大的編輯器,匯編make、build和調試工具并提供一個與第三方編譯器的接口,具有DOS/WINDOWS雙平臺,仿真器與實驗平臺分離,采用“仿真”方式進行實驗,同時,允許進行脫機運行工作,所以,實驗過程是與實際開發過程完全一致的。仿真器使用的是雙“CPU”架構方式,100%資源出讓,100%實時,100%無條件硬件斷點,可滿足學生實驗,畢業設計,參加電子競爭,教師科研所需。第一章簡單介紹了賽思開放式綜合實驗/仿真系統的組成(包括實驗平臺、仿真器、軟件支持、開關電源),實驗內容,實驗方式,支持器件等。第二章選編了二十例驗證式實驗,包括實驗平臺操作,連接仿真器、PC機,利用DOS和WINDOWS平臺軟硬件結合的實驗,按由淺入深原則排列。第三章選編了十六例模仿和探索開發式實驗。教師和學生可根據課時和具體情況選擇實驗內容,或自行設計新的實驗內容。由于課時所限,有的實驗可讓學生在課后開放實驗室時完成,以提高學生動手能力,提高教學質量,培養學生創新精神。附錄一介紹了綜合實驗平臺各模塊的電路圖,附錄二是實驗平臺鍵盤操作仿真方法說明。由于時間匆忙,加上編者水平有限,難免有錯漏之處,請讀者不吝賜教。
上傳時間: 2013-10-22
上傳用戶:sunshie
ICCAVR簡介ICCAVR 是一種使用ANSI 標準C 語言來開發微控制器(MCU)程序的一個工具,它是一個綜合了編輯器和工程管理器的集成工作環境(IDE)。源文件全部被組織到工程之中,文件的編輯和工程(project)的構筑也在IDE 的環境中完成。編譯錯誤在狀態窗口中顯示,用鼠標單擊編譯錯誤時,光標會自動跳轉到出錯行。這個工程管理器還能直接產生INTEL HEX格式的燒寫文件和可以在AVR Studio 中調試的COFF 格式的調試文件。這里特別要提一下ICCAVR 中的應用構筑向導,可以在Tools 欄中選擇“ApplicationBiulder”或者直接點擊快捷工具欄中的“Application Biulder”圖標,就可以打開應用構筑向導對話框,可以根據需要設定芯片種類,各個端口初始值,是否使用定時器,中斷,UART等,選好以后單擊“OK”就可以得到所需的硬件初始化程序段,非??煽慷曳奖?。圖1給出了初始化UART 的一個例子:下面介紹一下創建并編譯一個工程文件的簡要步驟:1.新建一個源文件從file 菜單中選擇new,創建一個新文件,在改文件中輸入源程序并進行編輯和修改,然后存盤,在存盤時必須指定文件類型,如命名為:try.c 。寫一個新文件的步驟:首先用Biulder 初始化需要用到的硬件資源,生成初始化程序,然后再寫需要的代碼實現所要的功能。2.新建一個project從projrct 菜單中選擇new 命令,IDE 會彈出一個對話框,在對話框中用戶可以指定工程存放的文件夾和工程的名稱。在建立一個新工程之后,在工程管理器的窗口會出現三個子目錄,Files, Headers, Documents,這時就可以將要編譯的文件添加到project 中了。3.把文件添加到工程中可以在project-files 里單擊右鍵,選擇需要添加的文件;也可以在編輯窗口中單擊右鍵選擇彈出窗口的“Add To Project”命令。4.編譯源文件在編譯之前特別要注意在Project Options 中選擇與硬件相應的芯片。如本次實驗就選擇ATMEGA8515,如圖2 所示。在project 中選擇make project,也可以直接單擊快捷鍵F9,這時要是有錯則會彈出出錯信息,修改調試正確以后單擊快捷鍵ISP 就可以燒寫到硬件中去了。
標簽: ICCAVR
上傳時間: 2013-10-25
上傳用戶:569342831
at91rm9200啟動過程教程 系統上電,檢測BMS,選擇系統的啟動方式,如果BMS為高電平,則系統從片內ROM啟動。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個地址處都可以訪問到ROM。由于9200的ROM中固化了一個BOOTLOAER程序。所以PC從0X0處開始執行這個BOOTLOAER(準確的說應該是一級BOOTLOADER)。這個BOOTLOER依次完成以下步驟: 1、PLL SETUP,設置PLLB產生48M時鐘頻率提供給USB DEVICE。同時DEBUG USART也被初始化為48M的時鐘頻率; 2、相應模式下的堆棧設置; 3、檢測主時鐘源(Main oscillator); 4、中斷控制器(AIC)的設置; 5、C 變量的初始化; 6、跳到主函數。 完成以上步驟后,我們可以認為BOOT過程結束,接下來的就是LOADER的過程,或者也可以認為是裝載二級BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲設備的開始地址處連續的存放的32個字節,也就是8條指令必須是跳轉指令或者裝載PC的指令,其實這樣規定就是把這8條指令當作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關于如何計算和寫這條指令可以參考用戶手冊。一旦合法的映像找到之后,則BOOT程序會把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當BOOT程序完成了把合法的映像搬到SRAM的任務以后,接下來就進行存儲器的REMAP,經過REMAP之后,SRAM從映設前的0X200000地址處被映設到了0X0地址并且程序從0X0處開始執行。而ROM這時只能在0X100000這個地址處看到了。至此9200就算完成了一種形式的啟動過程。如果BOOT程序在以上所列的幾種存儲設備中找到合法的映像,則自動初始化DEBUG USART口和USB DEVICE口以準備從外部載入映像。對DEBUG口的初始化包括設置參數115200 8 N 1以及運行XMODEM協議。對USB DEVICE進行初始化以及運行DFU協議?,F在用戶可以從外部(假定為PC平臺)載入你的映像了。在PC平臺下,以WIN2000為例,你可以用超級終端來完成這個功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設然后執行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內的ROM啟動的一個過程。如果BMS為低電平,則AT91RM9200會從片外的FLASH啟動,這時片外的FLASH的起始地址就是0X0了,接下來的過程和片內啟動的過程是一樣的,只不過這時就需要自己寫啟動代碼了,至于怎么寫,大致的內容和ROM的BOOT差不多,不同的硬件設計可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設計的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內啟動可能需要BOOT好幾級了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個開放源代碼的軟件,用戶可以自由下載并根據自己的應用配置??偟恼f來,筆者以為AT91RM9200的啟動過程比較簡單,ATMEL的服務也不錯,不但提供了片內啟動的功能,還提供了UBOOT可供下載。筆者寫了一個BOOTLODER從片外的FLASHA啟動,效果還可以。 uboot結構與使用uboot是一個龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設的驅動,是一個功能強大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動uboot,還有兩個boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級boot。其源碼可以從atmel的官方網站下載。 我們知道,當9200系統上電后,如果bms為高電平,則系統從片內rom啟動,這時rom中固化的boot程序初始化了debug口并向其發送'c',這時我們打開超級終端會看到ccccc...。這說明系統已經啟動,同時xmodem協議已經啟動,用戶可以通過超級終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內的sram中。這個loder完成的功能主要是初始化時鐘,sdram和xmodem協議,為下載和啟動uboot做準備。當下載了loader.bin后,超級終端會繼續打?。篶cccc....。這時我們就可以下在uboot了。uboot將被下載到sdram中的一個地址后并把pc指針調到此處開始執行uboot。接著我們就可以在終端上看到uboot的shell啟動了,提示符uboot>,用戶可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了對內存、flash、網絡、系統啟動等一些命令。 如果系統上電時bms為低電平,則系統從片外的flash啟動。為了從片外的flash啟動uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動后首先執行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內rom啟動uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經啟動了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統復位,就可以看到系統先啟動boot,然后解壓縮uboot.gz,然后啟動uboot。注意,這里uboot必須壓縮成.gz文件,否則會出錯。 怎么編譯這三個源碼包呢,首先要建立一個arm的交叉編譯環境,關于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改makefile中的編譯器項目,正確填寫你的編譯器的所在路徑。 對loader和boot,直接make。對uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會在當前目錄下分別生成*.bin文件,對于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對loader和boot搞不清楚為什么要兩個,有什么區別嗎?首先有區別,boot主要完成從flash中啟動uboot的功能,他要對uboot的壓縮文件進行解壓,除此之外,他和loader并無大的區別,你可以把boot理解為在loader的基礎上加入了解壓縮.gz的功能而已。所以這兩個并無多大的本質不同,只是他們的使命不同而已。 特別說名的是這三個軟件包都是開放源碼的,所以用戶可以根據自己的系統的情況修改和配置以及裁減,打造屬于自己系統的bootloder。
上傳時間: 2013-10-27
上傳用戶:wsf950131
Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their productsor to discontinue any product or service without notice, and advise customers to obtain the latestversion of relevant information to verify, before placing orders, that information being relied onis current and complete. All products are sold subject to the terms and conditions of sale suppliedat the time of order acknowledgement, including those pertaining to warranty, patentinfringement, and limitation of liability.
標簽: Assembly Language C6000 320C
上傳時間: 2013-11-12
上傳用戶:chens000
<Almost since the introduction of microcontrollers as electronic components there always has been an oscillatorcircuit on the device to make it work. From application point of view only some external components wererequired to make it work. However, to make sure that it will always work required more effort. This report is basedon feedback from the market from customers applying 8-bit mircrocontrollers.>
標簽: oscillators X-tal bit mic
上傳時間: 2013-11-12
上傳用戶:穿著衣服的大衛
MSP430系列單片機C語言程序設計與開發MSP430系列是一個具有明顯技術特色的單片機品種。關于它的硬件特性及匯編語言程序設計已在《MSP430系列超低功耗16位單片機的原理與應用》及《MSP430系列 FLASH型超低功耗16位單片機》等書中作了全面介紹?!禡SP430系列單片機C語言程序設計與開發》介紹IAR公司為MSP430系列單片機配備的C程序設計語言C430。書中敘述了C語言的基本概念、C430的擴展特性及C庫函數;對C430的集成開發環境的使用及出錯信息作了詳盡的說明;并以MSP430F149為例,對各種應用問題及外圍模塊操作提供了典型的C程序例程,供讀者在今后的C430程序設計中參考。 《MSP430系列單片機C語言程序設計與開發》可以作為高等院校計算機、自動化及電子技術類專業的教學參考書,也可作為工程技術人員設計開發時的技術資料。MSP430系列超低功耗16位單片機的原理與應用目錄MSP430系列單片機C語言程序設計與開發 目錄 第1章 C語言基本知識1.1 標識符與關鍵字11.1.1 標識符11.1.2 關鍵字11.2 數據基本類型21.2.1 整型數據21.2.2 實型數據31.2.3 字符型數據41.2.4 各種數據轉換關系61.3 C語言的運算符71.3.1 算術運算符71.3.2 關系運算符和邏輯運算符71.3.3 賦值運算符81.3.4 逗號運算符81.3.5 ? 與 :運算符81.3.6 強制轉換運算符91.3.7 各種運算符優先級列表91.4 程序設計的三種基本結構101.4.1 語句的概念101.4.2 順序結構111.4.3 選擇結構121.4.4 循環結構141.5 函數181.5.1 函數定義181.5.2 局部變量與全局變量191.5.3 形式參數與實際參數201.5.4 函數調用方式201.5.5 函數嵌套調用211.5.6 變量的存儲類別221.5.7 內部函數和外部函數231.6 數組231.6.1 一維數組241.6.2 多維數組241.6.3 字符數組261.7 指針271.7.1 指針與地址的概念271.7.2 指針變量的定義281.7.3 指針變量的引用281.7.4 數組的指針281.7.5 函數的指針301.7.6 指針數組311.8 結構和聯合321.8.1 結構定義321.8.2 結構類型變量的定義331.8.3 結構類型變量的初始化341.8.4 結構類型變量的引用341.8.5 聯合341.9 枚舉361.9.1 枚舉的定義361.9.2 枚舉元素的值371.9. 3 枚舉變量的使用371.10 類型定義381.10.1 類型定義的形式381.10.2 類型定義的使用381.11 位運算391.11.1 位運算符391.11.2 位域401.12 預處理功能411.12.1 簡單宏定義和帶參數宏定義411.12.2 文件包含431.12.3 條件編譯命令44第2章 C430--MSP430系列的C語言2.1 MSP430系列的C語言452.1.1 C430概述452.1.2 C430程序設計工作流程462.1.3 開始462.1.4 C430程序生成472.2 C430的數據表達482.2.1 數據類型482.2.2 編碼效率502.3 C430的配置512.3.1 引言512.3. 2 存儲器分配522.3.3 堆棧體積522.3.4 輸入輸出522.3.5 寄存器的訪問542.3.6 堆體積542.3.7 初始化54第3章 C430的開發調試環境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的內嵌編輯器特性563.1.3 C編譯器特性573.1. 4 匯編器特性573.1.5 連接器特性583.1.6 庫管理器特性583.1.7 C?SPY調試器特性593.2 Workbench概述593.2.1 項目管理模式593.2.2 選項設置603.2.3 建立項目603.2.4 測試代碼613.2.5 樣本應用程序613.3 Workbench的操作623.3.1 開始633.3.2 編譯項目683.3.3 連接項目693.3.4 調試項目713.3.5 使用make命令733.4 Workbench的功能匯總753.4.1 Workbench的窗口753.4.2 Workbench的菜單功能813.5 Workbench的內嵌編輯器993.5.1 內嵌編輯器操作993.5.2 編輯鍵說明993.6 C?SPY概述1013.6.1 C?SPY的C語言級和匯編語言級調試1013.6.2 程序的執行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 編譯與連接1033.7.3 C?SPY運行1033.7.4 C語言級調試1043.7.5 匯編級調試1113.8 C?SPY的功能匯總1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜單命令功能1203.9 C?SPY的表達式與宏1323.9.1 匯編語言表達式1323.9.2 C語言表達式1333.9.3 C?SPY宏1353.9.4 C?SPY的設置宏1373.9.5 C?SPY的系統宏137 第4章 C430程序設計實例4.1 程序設計與調試環境1434.1.1 程序設計調試集成環境1434.1.2 設備連接1444.1.3 ProF149實驗系統1444.2 數值計算1454.2.1 C語言表達式1454.2.2 利用MPY實現運算1464.3 循環結構1474.4 選擇結構1484.5 SFR訪問1494.6 RAM訪問1504.7 FLASH訪問1514.8 WDT操作1534.8. 1 WDT使程序自動復位1534.8.2 程序對WATCHDOG計數溢出的控制1544.8.3 WDT的定時器功能1554.9 Timer操作1554.9.1 用Timer產生時鐘信號1554.9.2 用Timer檢測脈沖寬度1564.10 UART操作1574.10.1 點對點通信1574.10.2 點對多點通信1604.11 SPI操作1634.12 比較器操作1654.13 ADC12操作1674.13.1 單通道單次轉換1674.13.2 序列通道多次轉換1684.14 時鐘模塊操作1704.15 中斷服務程序1714.16 省電工作模式1754.17 調用匯編語言子程序1764.17.1 程序舉例1764.17.2 生成C程序調用的匯編子程序177第5章 C430的擴展特性5.1 C430的語言擴展概述1785.1.1 擴展關鍵字1785.1.2 #pragma編譯命令1785.1.3 預定義符號1795.1.4 本征函數1795.1.5 其他擴展特性1795.2 C430的關鍵字擴展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma編譯命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的預定義符號1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函數1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的匯編語言接口1915.6.1 創建匯編子程序框架1915.6.2 調用規則1915.6.3 C程序調用匯編子程序1935.7 C430的段定義1935.7.1 存儲器分布與段定義1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的庫函數6.1 引言1976.1.1 庫模塊文件1976.1.2 頭文件1976.1.3 庫定義匯總1976.2C 庫函數參考2046.2.1 C庫函數的說明格式2046.2.2 C庫函數說明204第7章 C430編譯器的診斷消息7.1 編譯診斷消息的類型2307.2 編譯出錯消息2317.3 編譯警告消息243附錄 AMSP430系列FLASH型芯片資料248附錄 BProF149實驗系統251附錄 CMSP430x14x.H文件253附錄 DIAR MSP430 C語言產品介紹275
上傳時間: 2014-05-05
上傳用戶:253189838
基于PIC單片機的低功耗讀卡器硬件設計:本文提出了一個完整的基于串口的智能讀卡器子系統設計方案并將其實現。讀卡器的設計突出了小型化的要求,全部器件使用貼片封裝。為了減小讀卡器的體積,設計中還使用了串口竊電的技術,使用串口信號線直接給讀卡器供電。為此,讀卡器使用了省電的設計,采用了省電的集成電路,并大膽簡化了許多傳統的設計電路。關鍵字: 讀卡器, 單片機, 串口竊電 Abstract: This paper aims to put forward a complete design of Smart IC card reader based onSerial Port and propose the way of realizing it for the purpose of Network Security. SMD isadopted to make Smart IC reader smaller in this design. To reduce the volume of Smart ICreader, Serial Port powered technology is employed to get power from the signal line of Serial Port. For this reason, low-power consumption components are adopted in the design and some traditional designs are simplified to reduce the power consumption.Keywords: Card Reader; Single-chip Computer; Serial Port Powered IC 卡系統保存了加密算法所需要的工作密鑰,供加密算法對網絡上傳輸的數據加密使用,是整個系統網絡安全的核心。在IC 卡子系統中,讀卡器是一個重要的部分。它起著管理IC卡、在IC 卡和PC或網絡計算機間傳遞數據的重要作用。本文以一片PIC單片機為核心完成了基于RS232 串口的讀卡器的硬件設計。
上傳時間: 2014-04-14
上傳用戶:wanghui2438