AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版)詳細(xì)介紹ATMEL公司開(kāi)發(fā)的AVR高速嵌入式單片機(jī)的結(jié)構(gòu);講述AVR單片機(jī)的開(kāi)發(fā)工具和集成開(kāi)發(fā)環(huán)境(IDE),包括Studio調(diào)試工具、AVR單片機(jī)匯編器和單片機(jī)串行下載編程;學(xué)習(xí)指令系統(tǒng)時(shí),每條指令均有實(shí)例,邊學(xué)習(xí)邊調(diào)試,使學(xué)習(xí)者看得見(jiàn)指令流向及操作結(jié)果,真正理解每條指令的功能及使用注意事項(xiàng);介紹AVR系列多種單片機(jī)功能特點(diǎn)、實(shí)用程序設(shè)計(jì)及應(yīng)用實(shí)例;作為提高篇,講述簡(jiǎn)單易學(xué)、適用AVR單片機(jī)的高級(jí)語(yǔ)言BASCOMAVR及ICC AVR C編譯器。
AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版) 目錄 第一章ATMEL單片機(jī)簡(jiǎn)介1.1ATMEL公司產(chǎn)品的特點(diǎn)11.2AT90系列單片機(jī)簡(jiǎn)介21.3AT91M系列單片機(jī)簡(jiǎn)介2第二章AVR單片機(jī)系統(tǒng)結(jié)構(gòu)2.1AVR單片機(jī)總體結(jié)構(gòu)42.2AVR單片機(jī)中央處理器CPU62.2.1結(jié)構(gòu)概述72.2.2通用寄存器堆92.2.3X、Y、Z寄存器92.2.4ALU運(yùn)算邏輯單元92.3AVR單片機(jī)存儲(chǔ)器組織102.3.1可下載的Flash程序存儲(chǔ)器102.3.2內(nèi)部和外部的SRAM數(shù)據(jù)存儲(chǔ)器102.3.3EEPROM數(shù)據(jù)存儲(chǔ)器112.3.4存儲(chǔ)器訪問(wèn)和指令執(zhí)行時(shí)序112.3.5I/O存儲(chǔ)器132.4AVR單片機(jī)系統(tǒng)復(fù)位162.4.1復(fù)位源172.4.2加電復(fù)位182.4.3外部復(fù)位192.4.4看門(mén)狗復(fù)位192.5AVR單片機(jī)中斷系統(tǒng)202.5.1中斷處理202.5.2外部中斷232.5.3中斷應(yīng)答時(shí)間232.5.4MCU控制寄存器 MCUCR232.6AVR單片機(jī)的省電方式242.6.1休眠狀態(tài)242.6.2空閑模式242.6.3掉電模式252.7AVR單片機(jī)定時(shí)器/計(jì)數(shù)器252.7.1定時(shí)器/計(jì)數(shù)器預(yù)定比例器252.7.28位定時(shí)器/計(jì)數(shù)器0252.7.316位定時(shí)器/計(jì)數(shù)器1272.7.4看門(mén)狗定時(shí)器332.8AVR單片機(jī)EEPROM讀/寫(xiě)訪問(wèn)342.9AVR單片機(jī)串行接口352.9.1同步串行接口 SPI352.9.2通用串行接口 UART402.10AVR單片機(jī)模擬比較器452.10.1模擬比較器452.10.2模擬比較器控制和狀態(tài)寄存器ACSR462.11AVR單片機(jī)I/O端口472.11.1端口A472.11.2端口 B482.11.3端口 C542.11.4端口 D552.12AVR單片機(jī)存儲(chǔ)器編程612.12.1編程存儲(chǔ)器鎖定位612.12.2熔斷位612.12.3芯片代碼612.12.4編程 Flash和 EEPROM612.12.5并行編程622.12.6串行下載662.12.7可編程特性67第三章AVR單片機(jī)開(kāi)發(fā)工具3.1AVR實(shí)時(shí)在線仿真器ICE200693.2JTAG ICE仿真器693.3AVR嵌入式單片機(jī)開(kāi)發(fā)下載實(shí)驗(yàn)器SL?AVR703.4AVR集成開(kāi)發(fā)環(huán)境(IDE)753.4.1AVR Assembler編譯器753.4.2AVR Studio773.4.3AVR Prog783.5SL?AVR系列組態(tài)開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)793.6SL?AVR*.ASM源文件說(shuō)明81第四章AVR單片機(jī)指令系統(tǒng)4.1指令格式844.1.1匯編指令844.1.2匯編器偽指令844.1.3表達(dá)式874.2尋址方式894.3數(shù)據(jù)操作和指令類(lèi)型924.3.1數(shù)據(jù)操作924.3.2指令類(lèi)型924.3.3指令集名詞924.4算術(shù)和邏輯指令934.4.1加法指令934.4.2減法指令974.4.3乘法指令1014.4.4取反碼指令1014.4.5取補(bǔ)指令1024.4.6比較指令1034.4.7邏輯與指令1054.4.8邏輯或指令1074.4.9邏輯異或指令1104.5轉(zhuǎn)移指令1114.5.1無(wú)條件轉(zhuǎn)移指令1114.5.2條件轉(zhuǎn)移指令1144.6數(shù)據(jù)傳送指令1354.6.1直接數(shù)據(jù)傳送指令1354.6.2間接數(shù)據(jù)傳送指令1374.6.3從程序存儲(chǔ)器直接取數(shù)據(jù)指令1444.6.4I/O口數(shù)據(jù)傳送指令1454.6.5堆棧操作指令1464.7位指令和位測(cè)試指令1474.7.1帶進(jìn)位邏輯操作指令1474.7.2位變量傳送指令1514.7.3位變量修改指令1524.7.4其它指令1614.8新增指令(新器件)1624.8.1EICALL-- 延長(zhǎng)間接調(diào)用子程序1624.8.2EIJMP--擴(kuò)展間接跳轉(zhuǎn)1634.8.3ELPM--擴(kuò)展裝載程序存儲(chǔ)器1644.8.4ESPM--擴(kuò)展存儲(chǔ)程序存儲(chǔ)器1644.8.5FMUL--小數(shù)乘法1664.8.6FMULS--有符號(hào)數(shù)乘法1664.8.7FMULSU--有符號(hào)小數(shù)和無(wú)符號(hào)小數(shù)乘法1674.8.8MOVW--拷貝寄存器字1684.8.9MULS--有符號(hào)數(shù)乘法1694.8.10MULSU--有符號(hào)數(shù)與無(wú)符號(hào)數(shù)乘法1694.8.11SPM--存儲(chǔ)程序存儲(chǔ)器170
第五章AVR單片機(jī)AT90系列5.1AT90S12001725.1.1特點(diǎn)1725.1.2描述1735.1.3引腳配置1745.1.4結(jié)構(gòu)縱覽1755.2AT90S23131835.2.1特點(diǎn)1835.2.2描述1845.2.3引腳配置1855.3ATmega8/8L1855.3.1特點(diǎn)1865.3.2描述1875.3.3引腳配置1895.3.4開(kāi)發(fā)實(shí)驗(yàn)工具1905.4AT90S2333/44331915.4.1特點(diǎn)1915.4.2描述1925.4.3引腳配置1945.5AT90S4414/85151955.5.1特點(diǎn)1955.5.2AT90S4414和AT90S8515的比較1965.5.3引腳配置1965.6AT90S4434/85351975.6.1特點(diǎn)1975.6.2描述1985.6.3AT90S4434和AT90S8535的比較1985.6.4引腳配置2005.6.5AVR RISC結(jié)構(gòu)2015.6.6定時(shí)器/計(jì)數(shù)器2125.6.7看門(mén)狗定時(shí)器 2175.6.8EEPROM讀/寫(xiě)2175.6.9串行外設(shè)接口SPI2175.6.10通用串行接口UART2175.6.11模擬比較器 2175.6.12模數(shù)轉(zhuǎn)換器2185.6.13I/O端口2235.7ATmega83/1632285.7.1特點(diǎn)2285.7.2描述2295.7.3ATmega83與ATmega163的比較2315.7.4引腳配置2315.8ATtiny10/11/122325.8.1特點(diǎn)2325.8.2描述2335.8.3引腳配置2355.9ATtiny15/L2375.9.1特點(diǎn)2375.9.2描述2375.9.3引腳配置2395 .10ATmega128/128L2395.10.1特點(diǎn)2405.10.2描述2415.10.3引腳配置2435.10.4開(kāi)發(fā)實(shí)驗(yàn)工具2455.11ATmega1612465.11.1特點(diǎn)2465.11.2描述2475.11.3引腳配置2475.12AVR單片機(jī)替代MCS51單片機(jī)249第六章實(shí)用程序設(shè)計(jì)6.1程序設(shè)計(jì)方法2506.1.1程序設(shè)計(jì)步驟2506.1.2程序設(shè)計(jì)技術(shù)2506.2應(yīng)用程序舉例2516.2.1內(nèi)部寄存器和位定義文件2516.2.2訪問(wèn)內(nèi)部 EEPROM2546.2.3數(shù)據(jù)塊傳送2546.2.4乘法和除法運(yùn)算應(yīng)用一2556.2.5乘法和除法運(yùn)算應(yīng)用二2556.2.616位運(yùn)算2556.2.7BCD運(yùn)算2556.2.8冒泡分類(lèi)算法2556.2.9設(shè)置和使用模擬比較器2556.2.10半雙工中斷方式UART應(yīng)用一2556.2.11半雙工中斷方式UART應(yīng)用二2566.2.128位精度A/D轉(zhuǎn)換器2566.2.13裝載程序存儲(chǔ)器2566.2.14安裝和使用相同模擬比較器2566.2.15CRC程序存儲(chǔ)的檢查2566.2.164×4鍵區(qū)休眠觸發(fā)方式2576.2.17多工法驅(qū)動(dòng)LED和4×4鍵區(qū)掃描2576.2.18I2C總線2576.2.19I2C工作2586.2.20SPI軟件2586.2.21驗(yàn)證SLAVR實(shí)驗(yàn)器及AT90S1200的口功能12596.2.22驗(yàn)證SLAVR實(shí)驗(yàn)器及AT90S1200的口功能22596.2.23驗(yàn)證SLAVR實(shí)驗(yàn)器及具有DIP40封裝的口功能第七章AVR單片機(jī)的應(yīng)用7.1通用延時(shí)子程序2607.2簡(jiǎn)單I/O口輸出實(shí)驗(yàn)2667.2.1SLAVR721.ASM 2667.2.2SLAVR722.ASM2677.2.3SLAVR723.ASM2687.2.4SLAVR724.ASM2707.2.5SLAVR725.ASM2717.2.6SLAVR726.ASM2727.2.7SLAVR727.ASM2737.3綜合程序2747.3.1LED/LCD/鍵盤(pán)掃描綜合程序2747.3.2LED鍵盤(pán)掃描綜合程序2757.3.3在LED上實(shí)現(xiàn)字符8的循環(huán)移位顯示程序2757.3.4電腦放音機(jī)2777.3.5鍵盤(pán)掃描程序2857.3.6十進(jìn)制計(jì)數(shù)顯示2867.3.7廉價(jià)的A/D轉(zhuǎn)換器2897.3.8高精度廉價(jià)的A/D轉(zhuǎn)換器2947.3.9星星燈2977.3.10按鈕猜數(shù)程序2987.3.11漢字的輸入3047.4復(fù)雜實(shí)用程序3067.4.110位A/D轉(zhuǎn)換3067.4.2步進(jìn)電機(jī)控制程序3097.4.3測(cè)脈沖寬度3127.4.4LCD顯示8字循環(huán)3187.4.5LED電腦時(shí)鐘3247.4.6測(cè)頻率3307.4.7測(cè)轉(zhuǎn)速3327.4.8AT90S8535的A/D轉(zhuǎn)換334第八章BASCOMAVR的應(yīng)用8.1基于高級(jí)語(yǔ)言BASCOMAVR的單片機(jī)開(kāi)發(fā)平臺(tái)3408.2BASCOMAVR軟件平臺(tái)的安裝與使用3418.3AVR I/O口的應(yīng)用3458.3.1LED發(fā)光二極管的控制3458.3.2簡(jiǎn)易手控廣告燈3468.3.3簡(jiǎn)易電腦音樂(lè)放音機(jī)3478.4LCD顯示器3498.4.1標(biāo)準(zhǔn)LCD顯示器的應(yīng)用3498.4.2簡(jiǎn)單游戲機(jī)--按鈕猜數(shù)3518.5串口通信UART3528.5.1AVR系統(tǒng)與PC的簡(jiǎn)易通信3538.5.2PC控制的簡(jiǎn)易廣告燈3548.6單總線接口和溫度計(jì)3568.7I2C總線接口和簡(jiǎn)易IC卡讀寫(xiě)器359第九章ICC AVR C編譯器的使用9.1ICC AVR的概述3659.1.1介紹ImageCraft的ICC AVR3659.1.2ICC AVR中的文件類(lèi)型及其擴(kuò)展名3659.1.3附注和擴(kuò)充3669.2ImageCraft的ICC AVR編譯器安裝3679.2.1安裝SETUP.EXE程序3679.2.2對(duì)安裝完成的軟件進(jìn)行注冊(cè)3679.3ICC AVR導(dǎo)游3689.3.1起步3689.3.2C程序的剖析3699.4ICC AVR的IDE環(huán)境3709.4.1編譯一個(gè)單獨(dú)的文件3709.4.2創(chuàng)建一個(gè)新的工程3709.4.3工程管理3719.4.4編輯窗口3719.4.5應(yīng)用構(gòu)筑向?qū)?719.4.6狀態(tài)窗口3719.4.7終端仿真3719.5C庫(kù)函數(shù)與啟動(dòng)文件3729.5.1啟動(dòng)文件3729.5.2常用庫(kù)函數(shù)3729.5.3字符類(lèi)型庫(kù)3739.5.4浮點(diǎn)運(yùn)算庫(kù)3749.5.5標(biāo)準(zhǔn)輸入/輸出庫(kù)3759.5.6標(biāo)準(zhǔn)庫(kù)和內(nèi)存分配函數(shù)3769.5.7字符串函數(shù)3779.5.8變量參數(shù)函數(shù)3799.5.9堆棧檢查函數(shù)3799.6AVR硬件訪問(wèn)的編程3809.6.1訪問(wèn)AVR的底層硬件3809.6.2位操作3809.6.3程序存儲(chǔ)器和常量數(shù)據(jù)3819.6.4字符串3829.6.5堆棧3839.6.6在線匯編3839.6.7I/O寄存器3849.6.8絕對(duì)內(nèi)存地址3849.6.9C任務(wù)3859.6.10中斷操作3869.6.11訪問(wèn)UART3879.6.12訪問(wèn)EEPROM3879.6.13訪問(wèn)SPI3889.6.14相對(duì)轉(zhuǎn)移/調(diào)用的地址范圍3889.6.15C的運(yùn)行結(jié)構(gòu)3889.6.16匯編界面和調(diào)用規(guī)則3899.6.17函數(shù)返回非整型值3909.6.18程序和數(shù)據(jù)區(qū)的使用3909.6.19編程區(qū)域3919.6.20調(diào)試3919.7應(yīng)用舉例*3929.7.1讀/寫(xiě)口3929.7.2延時(shí)函數(shù)3929.7.3讀/寫(xiě)EEPROM3929.7.4AVR的PB口變速移位3939.7.5音符聲程序3939.7.68字循環(huán)移位顯示程序3949.7.7鋸齒波程序3959.7.8正三角波程序3969.7.9梯形波程序396附錄1AT89系列單片機(jī)簡(jiǎn)介398附錄2AT94K系列現(xiàn)場(chǎng)可編程系統(tǒng)標(biāo)準(zhǔn)集成電路401附錄3指令集綜合404附錄4AVR單片機(jī)選型表408參 考 文 獻(xiàn)412
標(biāo)簽:
AVR
高速嵌入式
單片機(jī)原理
上傳時(shí)間:
2013-11-08
上傳用戶:xcy122677
RS-232-C 是PC 機(jī)常用的串行接口,由于信號(hào)電平值較高,易損壞接口電路的芯片,與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。本產(chǎn)品(轉(zhuǎn)接器),可以實(shí)現(xiàn)任意電平下(0.8~15)的UART串行接口到RS-232-C/E接口的無(wú)源電平轉(zhuǎn)接, 使用非常方便可靠。
什么是RS-232-C 接口?采用RS-232-C 接口有何特點(diǎn)?傳輸電纜長(zhǎng)度如何考慮?答: 計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同 的設(shè)備可以方便地連接起來(lái)進(jìn)行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970 年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25 個(gè)腳的 DB25 連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。(1) 接口的信號(hào)內(nèi)容實(shí)際上RS-232-C 的25 條引線中有許多是很少使用的,在計(jì)算機(jī)與終端通訊中一般只使用3-9 條引線。(2) 接口的電氣特性 在RS-232-C 中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”,-5— -15V;邏輯“0” +5— +15V 。噪聲容限為2V。即 要求接收器能識(shí)別低至+3V 的信號(hào)作為邏輯“0”,高到-3V的信號(hào) 作為邏輯“1”(3) 接口的物理結(jié)構(gòu) RS-232-C 接口連接器一般使用型號(hào)為DB-25 的25 芯插頭座,通常插頭在DCE 端,插座在DTE端. 一些設(shè)備與PC 機(jī)連接的RS-232-C 接口,因?yàn)椴皇褂脤?duì)方的傳送控制信號(hào),只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號(hào)地”。所以采用DB-9 的9 芯插頭座,傳輸線采用屏蔽雙絞線。(4) 傳輸電纜長(zhǎng)度由RS-232C 標(biāo)準(zhǔn)規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長(zhǎng)度應(yīng)為50 英尺,其實(shí)這個(gè)4%的碼元畸變是很保守的,在實(shí)際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實(shí)際使用中最大距離會(huì)遠(yuǎn)超過(guò)50 英尺,美國(guó)DEC 公司曾規(guī)定允許碼元畸變?yōu)?0%而得出附表2 的實(shí)驗(yàn)結(jié)果。其中1 號(hào)電纜為屏蔽電纜,型號(hào)為DECP.NO.9107723 內(nèi)有三對(duì)雙絞線,每對(duì)由22# AWG 組成,其外覆以屏蔽網(wǎng)。2 號(hào)電纜為不帶屏蔽的電纜。
2. 什么是RS-485 接口?它比RS-232-C 接口相比有何特點(diǎn)?答: 由于RS-232-C 接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):(1) 接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。(2) 傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。(3) 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50 英尺,實(shí)際上也只能 用在50 米左右。針對(duì)RS-232-C 的不足,于是就不斷出現(xiàn)了一些新的接口標(biāo)準(zhǔn),RS-485 就是其中之一,它具有以下特點(diǎn):1. RS-485 的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V 表示;邏輯“0”以兩線間的電壓差為-(2—6)V 表示。接口信號(hào)電平比RS-232-C 降低了,就不易損壞接口電路的芯片, 且該電平與TTL 電平兼容,可方便與TTL 電路連接。2. RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps3. RS-485 接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干能力增強(qiáng),即抗噪聲干擾性好。4. RS-485 接口的最大傳輸距離標(biāo)準(zhǔn)值為4000 英尺,實(shí)際上可達(dá) 3000 米,另外RS-232-C接口在總線上只允許連接1 個(gè)收發(fā)器, 即單站能力。而RS-485 接口在總線上是允許連接多達(dá)128 個(gè)收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。因RS-485 接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口。 因?yàn)镽S485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。 RS485 接口連接器采用DB-9 的9 芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤(pán)連接的鍵盤(pán)接口RS485 采用DB-9(針)。3. 采用RS485 接口時(shí),傳輸電纜的長(zhǎng)度如何考慮?答: 在使用RS485 接口時(shí),對(duì)于特定的傳輸線經(jīng),從發(fā)生器到負(fù)載其數(shù)據(jù)信號(hào)傳輸所允許的最大電纜長(zhǎng)度是數(shù)據(jù)信號(hào)速率的函數(shù),這個(gè) 長(zhǎng)度數(shù)據(jù)主要是受信號(hào)失真及噪聲等影響所限制。下圖所示的最大電纜長(zhǎng)度與信號(hào)速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線 徑為0.51mm),線間旁路電容為52.5PF/M,終端負(fù)載電阻為100 歐 時(shí)所得出。(曲線引自GB11014-89 附錄A)。由圖中可知,當(dāng)數(shù)據(jù)信 號(hào)速率降低到90Kbit/S 以下時(shí),假定最大允許的信號(hào)損失為6dBV 時(shí), 則電纜長(zhǎng)度被限制在1200M。實(shí)際上,圖中的曲線是很保守的,在實(shí) 用時(shí)是完全可以取得比它大的電纜長(zhǎng)度。 當(dāng)使用不同線徑的電纜。則取得的最大電纜長(zhǎng)度是不相同的。例 如:當(dāng)數(shù)據(jù)信號(hào)速率為600Kbit/S 時(shí),采用24AWG 電纜,由圖可知最 大電纜長(zhǎng)度是200m,若采用19AWG 電纜(線徑為0。91mm)則電纜長(zhǎng) 度將可以大于200m; 若采用28AWG 電纜(線徑為0。32mm)則電纜 長(zhǎng)度只能小于200m。
標(biāo)簽:
232
RS
串行接口
電平
上傳時(shí)間:
2013-10-11
上傳用戶:時(shí)代電子小智