[學(xué)習(xí)要求] 掌握MCS-51單片機(jī)的基本應(yīng)用。[重點與難點]重點:動態(tài)掃描LED顯示電路編程范例;定時/計數(shù)器軟件編程范例;A/D接口電路;矩陣式鍵盤接口技術(shù)及編程。難點:動態(tài)掃描LED顯示電路編程范例;定時/計數(shù)器軟件編程范例。[理論內(nèi)容]一、并行I/O口編程范例單片機(jī)I/O的應(yīng)用最典型的是通過I/O口與7段LED數(shù)碼管構(gòu)成顯示電路,下面從常用的LED顯示原理開始,詳盡講解利用單片機(jī)驅(qū)動LED數(shù)碼管的電路及編程原理,目的在于通過這一編程范例,讓初學(xué)者了解I/O口的編程原理,意在起舉一反三,拋磚引玉的作用。LED的發(fā)光原理,稍有電子技術(shù)基礎(chǔ)的人士都很清楚,這里不想作過多的介紹,7段LED數(shù)碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點亮相應(yīng)的點劃來顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。圖1是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。
標(biāo)簽: MCS 51 單片機(jī) 編程應(yīng)用
上傳時間: 2013-10-19
上傳用戶:linlin
8.1 模擬接口概述單片機(jī)的外部設(shè)備不一定都是數(shù)字式的,也經(jīng)常會和模擬式的設(shè)備連接。 例如單片機(jī)來控制溫度、壓力時,溫度和壓力都是連續(xù)變化的,都是模擬量,在單片機(jī)與外部環(huán)境通信的時候,就需要有一種轉(zhuǎn)換器來把模擬信號變?yōu)閿?shù)字信號,以便能夠輸送給單片機(jī)進(jìn)行處理。而單片機(jī)送出的控制信號,也必須經(jīng)過變換器變成模擬信號,才能為控制電路所接受。這種變換器就稱為數(shù)模(D/A)轉(zhuǎn)換器和模數(shù)(A/D)轉(zhuǎn)換器。CPU與模擬外設(shè)之間的接口電路稱為模擬接口。在這一章里將介紹單片機(jī)與 A/D及D/A轉(zhuǎn)換器接口,以及有關(guān)的應(yīng)用。 8.2 DAC及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError) 線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity) 二、典型DAC芯片及其接口一、DAC介紹:1.DAC結(jié)構(gòu):DAC芯片上集成有D/A轉(zhuǎn)換電路和輔助電路。2.DAC的參數(shù):描述D/A轉(zhuǎn)換器性能的參數(shù)很多,主要有以下幾個:分辨率(Resolution) 偏移誤差(OffsetError) 線性度(Linearity) 精度(Accuracy) 轉(zhuǎn)換速度(ConvemionRate) 溫度靈敏度(TemperatureSensitivity) 8.3 ADC及其接口DAC 0832的結(jié)構(gòu)DAC 0832的引腳DAC 0832的接口DAC 0832的應(yīng)用DAC0832是CMOS工藝,雙列直插式20引腳。① VCC電源可以在5-15V內(nèi)變化。典型使用時用15V電源。② AGND為模擬量地線,DGND為數(shù)字量地線,使用時,這兩個接地端應(yīng)始終連在一起。③ 參考電壓VREF接外部的標(biāo)準(zhǔn)電源,VREF一般可在+10V到—10V范圍內(nèi)選用。
標(biāo)簽: 模擬接口
上傳時間: 2013-10-10
上傳用戶:ukuk
AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版)詳細(xì)介紹ATMEL公司開發(fā)的AVR高速嵌入式單片機(jī)的結(jié)構(gòu);講述AVR單片機(jī)的開發(fā)工具和集成開發(fā)環(huán)境(IDE),包括Studio調(diào)試工具、AVR單片機(jī)匯編器和單片機(jī)串行下載編程;學(xué)習(xí)指令系統(tǒng)時,每條指令均有實例,邊學(xué)習(xí)邊調(diào)試,使學(xué)習(xí)者看得見指令流向及操作結(jié)果,真正理解每條指令的功能及使用注意事項;介紹AVR系列多種單片機(jī)功能特點、實用程序設(shè)計及應(yīng)用實例;作為提高篇,講述簡單易學(xué)、適用AVR單片機(jī)的高級語言BASCOMAVR及ICC AVR C編譯器。 AVR高速嵌入式單片機(jī)原理與應(yīng)用(修訂版) 目錄 第一章ATMEL單片機(jī)簡介1.1ATMEL公司產(chǎn)品的特點11.2AT90系列單片機(jī)簡介21.3AT91M系列單片機(jī)簡介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運算邏輯單元92.3AVR單片機(jī)存儲器組織102.3.1可下載的Flash程序存儲器102.3.2內(nèi)部和外部的SRAM數(shù)據(jù)存儲器102.3.3EEPROM數(shù)據(jù)存儲器112.3.4存儲器訪問和指令執(zhí)行時序112.3.5I/O存儲器132.4AVR單片機(jī)系統(tǒng)復(fù)位162.4.1復(fù)位源172.4.2加電復(fù)位182.4.3外部復(fù)位192.4.4看門狗復(fù)位192.5AVR單片機(jī)中斷系統(tǒng)202.5.1中斷處理202.5.2外部中斷232.5.3中斷應(yīng)答時間232.5.4MCU控制寄存器 MCUCR232.6AVR單片機(jī)的省電方式242.6.1休眠狀態(tài)242.6.2空閑模式242.6.3掉電模式252.7AVR單片機(jī)定時器/計數(shù)器252.7.1定時器/計數(shù)器預(yù)定比例器252.7.28位定時器/計數(shù)器0252.7.316位定時器/計數(shù)器1272.7.4看門狗定時器332.8AVR單片機(jī)EEPROM讀/寫訪問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ī)存儲器編程612.12.1編程存儲器鎖定位612.12.2熔斷位612.12.3芯片代碼612.12.4編程 Flash和 EEPROM612.12.5并行編程622.12.6串行下載662.12.7可編程特性67第三章AVR單片機(jī)開發(fā)工具3.1AVR實時在線仿真器ICE200693.2JTAG ICE仿真器693.3AVR嵌入式單片機(jī)開發(fā)下載實驗器SL?AVR703.4AVR集成開發(fā)環(huán)境(IDE)753.4.1AVR Assembler編譯器753.4.2AVR Studio773.4.3AVR Prog783.5SL?AVR系列組態(tài)開發(fā)實驗系統(tǒng)793.6SL?AVR*.ASM源文件說明81第四章AVR單片機(jī)指令系統(tǒng)4.1指令格式844.1.1匯編指令844.1.2匯編器偽指令844.1.3表達(dá)式874.2尋址方式894.3數(shù)據(jù)操作和指令類型924.3.1數(shù)據(jù)操作924.3.2指令類型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無條件轉(zhuǎn)移指令1114.5.2條件轉(zhuǎn)移指令1144.6數(shù)據(jù)傳送指令1354.6.1直接數(shù)據(jù)傳送指令1354.6.2間接數(shù)據(jù)傳送指令1374.6.3從程序存儲器直接取數(shù)據(jù)指令1444.6.4I/O口數(shù)據(jù)傳送指令1454.6.5堆棧操作指令1464.7位指令和位測試指令1474.7.1帶進(jìn)位邏輯操作指令1474.7.2位變量傳送指令1514.7.3位變量修改指令1524.7.4其它指令1614.8新增指令(新器件)1624.8.1EICALL-- 延長間接調(diào)用子程序1624.8.2EIJMP--擴(kuò)展間接跳轉(zhuǎn)1634.8.3ELPM--擴(kuò)展裝載程序存儲器1644.8.4ESPM--擴(kuò)展存儲程序存儲器1644.8.5FMUL--小數(shù)乘法1664.8.6FMULS--有符號數(shù)乘法1664.8.7FMULSU--有符號小數(shù)和無符號小數(shù)乘法1674.8.8MOVW--拷貝寄存器字1684.8.9MULS--有符號數(shù)乘法1694.8.10MULSU--有符號數(shù)與無符號數(shù)乘法1694.8.11SPM--存儲程序存儲器170 第五章AVR單片機(jī)AT90系列5.1AT90S12001725.1.1特點1725.1.2描述1735.1.3引腳配置1745.1.4結(jié)構(gòu)縱覽1755.2AT90S23131835.2.1特點1835.2.2描述1845.2.3引腳配置1855.3ATmega8/8L1855.3.1特點1865.3.2描述1875.3.3引腳配置1895.3.4開發(fā)實驗工具1905.4AT90S2333/44331915.4.1特點1915.4.2描述1925.4.3引腳配置1945.5AT90S4414/85151955.5.1特點1955.5.2AT90S4414和AT90S8515的比較1965.5.3引腳配置1965.6AT90S4434/85351975.6.1特點1975.6.2描述1985.6.3AT90S4434和AT90S8535的比較1985.6.4引腳配置2005.6.5AVR RISC結(jié)構(gòu)2015.6.6定時器/計數(shù)器2125.6.7看門狗定時器 2175.6.8EEPROM讀/寫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特點2285.7.2描述2295.7.3ATmega83與ATmega163的比較2315.7.4引腳配置2315.8ATtiny10/11/122325.8.1特點2325.8.2描述2335.8.3引腳配置2355.9ATtiny15/L2375.9.1特點2375.9.2描述2375.9.3引腳配置2395 .10ATmega128/128L2395.10.1特點2405.10.2描述2415.10.3引腳配置2435.10.4開發(fā)實驗工具2455.11ATmega1612465.11.1特點2465.11.2描述2475.11.3引腳配置2475.12AVR單片機(jī)替代MCS51單片機(jī)249第六章實用程序設(shè)計6.1程序設(shè)計方法2506.1.1程序設(shè)計步驟2506.1.2程序設(shè)計技術(shù)2506.2應(yīng)用程序舉例2516.2.1內(nèi)部寄存器和位定義文件2516.2.2訪問內(nèi)部 EEPROM2546.2.3數(shù)據(jù)塊傳送2546.2.4乘法和除法運算應(yīng)用一2556.2.5乘法和除法運算應(yīng)用二2556.2.616位運算2556.2.7BCD運算2556.2.8冒泡分類算法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裝載程序存儲器2566.2.14安裝和使用相同模擬比較器2566.2.15CRC程序存儲的檢查2566.2.164×4鍵區(qū)休眠觸發(fā)方式2576.2.17多工法驅(qū)動LED和4×4鍵區(qū)掃描2576.2.18I2C總線2576.2.19I2C工作2586.2.20SPI軟件2586.2.21驗證SLAVR實驗器及AT90S1200的口功能12596.2.22驗證SLAVR實驗器及AT90S1200的口功能22596.2.23驗證SLAVR實驗器及具有DIP40封裝的口功能第七章AVR單片機(jī)的應(yīng)用7.1通用延時子程序2607.2簡單I/O口輸出實驗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/鍵盤掃描綜合程序2747.3.2LED鍵盤掃描綜合程序2757.3.3在LED上實現(xiàn)字符8的循環(huán)移位顯示程序2757.3.4電腦放音機(jī)2777.3.5鍵盤掃描程序2857.3.6十進(jìn)制計數(shù)顯示2867.3.7廉價的A/D轉(zhuǎn)換器2897.3.8高精度廉價的A/D轉(zhuǎn)換器2947.3.9星星燈2977.3.10按鈕猜數(shù)程序2987.3.11漢字的輸入3047.4復(fù)雜實用程序3067.4.110位A/D轉(zhuǎn)換3067.4.2步進(jìn)電機(jī)控制程序3097.4.3測脈沖寬度3127.4.4LCD顯示8字循環(huán)3187.4.5LED電腦時鐘3247.4.6測頻率3307.4.7測轉(zhuǎn)速3327.4.8AT90S8535的A/D轉(zhuǎn)換334第八章BASCOMAVR的應(yīng)用8.1基于高級語言BASCOMAVR的單片機(jī)開發(fā)平臺3408.2BASCOMAVR軟件平臺的安裝與使用3418.3AVR I/O口的應(yīng)用3458.3.1LED發(fā)光二極管的控制3458.3.2簡易手控廣告燈3468.3.3簡易電腦音樂放音機(jī)3478.4LCD顯示器3498.4.1標(biāo)準(zhǔn)LCD顯示器的應(yīng)用3498.4.2簡單游戲機(jī)--按鈕猜數(shù)3518.5串口通信UART3528.5.1AVR系統(tǒng)與PC的簡易通信3538.5.2PC控制的簡易廣告燈3548.6單總線接口和溫度計3568.7I2C總線接口和簡易IC卡讀寫器359第九章ICC AVR C編譯器的使用9.1ICC AVR的概述3659.1.1介紹ImageCraft的ICC AVR3659.1.2ICC AVR中的文件類型及其擴(kuò)展名3659.1.3附注和擴(kuò)充3669.2ImageCraft的ICC AVR編譯器安裝3679.2.1安裝SETUP.EXE程序3679.2.2對安裝完成的軟件進(jìn)行注冊3679.3ICC AVR導(dǎo)游3689.3.1起步3689.3.2C程序的剖析3699.4ICC AVR的IDE環(huán)境3709.4.1編譯一個單獨的文件3709.4.2創(chuàng)建一個新的工程3709.4.3工程管理3719.4.4編輯窗口3719.4.5應(yīng)用構(gòu)筑向?qū)?719.4.6狀態(tài)窗口3719.4.7終端仿真3719.5C庫函數(shù)與啟動文件3729.5.1啟動文件3729.5.2常用庫函數(shù)3729.5.3字符類型庫3739.5.4浮點運算庫3749.5.5標(biāo)準(zhǔn)輸入/輸出庫3759.5.6標(biāo)準(zhǔn)庫和內(nèi)存分配函數(shù)3769.5.7字符串函數(shù)3779.5.8變量參數(shù)函數(shù)3799.5.9堆棧檢查函數(shù)3799.6AVR硬件訪問的編程3809.6.1訪問AVR的底層硬件3809.6.2位操作3809.6.3程序存儲器和常量數(shù)據(jù)3819.6.4字符串3829.6.5堆棧3839.6.6在線匯編3839.6.7I/O寄存器3849.6.8絕對內(nèi)存地址3849.6.9C任務(wù)3859.6.10中斷操作3869.6.11訪問UART3879.6.12訪問EEPROM3879.6.13訪問SPI3889.6.14相對轉(zhuǎn)移/調(diào)用的地址范圍3889.6.15C的運行結(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讀/寫口3929.7.2延時函數(shù)3929.7.3讀/寫EEPROM3929.7.4AVR的PB口變速移位3939.7.5音符聲程序3939.7.68字循環(huán)移位顯示程序3949.7.7鋸齒波程序3959.7.8正三角波程序3969.7.9梯形波程序396附錄1AT89系列單片機(jī)簡介398附錄2AT94K系列現(xiàn)場可編程系統(tǒng)標(biāo)準(zhǔn)集成電路401附錄3指令集綜合404附錄4AVR單片機(jī)選型表408參 考 文 獻(xiàn)412
上傳時間: 2013-11-08
上傳用戶:xcy122677
AVR單片機(jī)應(yīng)用設(shè)計:AVR單片機(jī)是美國ATMEL公司1997年推出的單片機(jī)系列。本書以其代表型號AT90S8535為主線,講述該系列單片機(jī)的內(nèi)部結(jié)構(gòu)、開發(fā)工具、指令系統(tǒng)、各種接口及其應(yīng)用程序舉例和設(shè)計方法。學(xué)習(xí)了這種功能較全的單片機(jī),對于AVR系列其他型號單片機(jī)的應(yīng)用就可以舉一反三。 AVR單片機(jī)具有高速度、高保密性、低功耗的特點。AT90S8535內(nèi)含可反復(fù)編程的Flash程序存儲器、SRAM和EEPROM兩種數(shù)據(jù)存儲器、定時器/計數(shù)器、方向可定義的I/O口、同步串行口、異步串行口、A/D轉(zhuǎn)換器及PWM等豐富的內(nèi)部資源。一般的應(yīng)用系統(tǒng)只需此一塊芯片即可實現(xiàn)智能化。
標(biāo)簽: AVR 單片機(jī) 應(yīng)用設(shè)計
上傳時間: 2013-10-18
上傳用戶:forzalife
C51單片機(jī)是我們生活中最常用的系列,MCS-51系列單片機(jī)有4個并行口(P0,P1,P2,P3口),但對一個稍微復(fù)雜的應(yīng)用系統(tǒng)來說,真正可供用戶使用的并行口,只有P1口可用,況且常常因擴(kuò)展I2C和SPI的器件需占用某些P1口,迫使用戶不得不擴(kuò)展并行口以滿足實際的需要。習(xí)慣上,常用的并行口接口芯片有8255、8155,這兩種芯片功能比較齊全,可以使用在相對比較復(fù)雜的系統(tǒng)中,但如是對一般的系統(tǒng)而言,這些功能往往閑置不用。那么就可以選用一些本來閑置不用的口線作為選通信號來進(jìn)行并行口的擴(kuò)展,這樣就能充分利用單片機(jī)有限的I/O資源,在本設(shè)計中是將P1口擴(kuò)展成一個或幾個8位并行口,在每一個八位口上接入8個發(fā)光二極管做為輸出,二極管是做開關(guān)量來使用的,在這里設(shè)計了跑馬燈和流水燈程序,做到對開關(guān)量的開斷控制;配合開關(guān)量的控制筆者設(shè)計了一個共陽LED數(shù)碼管,用來顯示當(dāng)前發(fā)光二極管發(fā)亮的序號,做到更加直觀的雙重控制效果,然后再將P0口通過D/A轉(zhuǎn)換器和一放大器輸出一個模擬信號,其結(jié)果可以通過示波器看出。這樣整個系統(tǒng)即有了數(shù)字信號輸出和模擬信號輸出,也有數(shù)碼管顯示功能,實用性能大提高了。2、 基于89C51的系統(tǒng)硬件設(shè)計2.1 并行口的擴(kuò)展的電路設(shè)計 眾所周知,C51系列的單片機(jī)都有四個I/O口(P0、P1、P2、P3),那么AT89C51也不例外,但我們通常僅僅使用P1口作為并行口,而令其余口(P2、P3)處于閑置狀態(tài),所以這次設(shè)計,我們就是使用閑置不用的P3口做為選能信號線來將P1口進(jìn)行并行口擴(kuò)展。 (1) 種方式的并行口擴(kuò)展優(yōu)點 連線簡單; 不占用存儲器空間; (2) 編程也方便靈活。但也有很大的缺點 并行口擴(kuò)展能力有限,(如使用74LS573(74LS373)且不進(jìn)行驅(qū)動處理,則最多可擴(kuò)展4個同樣類型的并行輸出端口,當(dāng)然還需要與之對應(yīng)的四個選通信號。) 如擴(kuò)展較多,選通信號占用并行口位數(shù)太多,例如欲擴(kuò)展8個并行輸出端口,則需要8個選能信號,此時,僅選能信號就占用了一個8位并行口,這對在I/O端口線有限的單片機(jī)系統(tǒng)中,如此浪費資源的現(xiàn)象是不能容忍的。在本次的設(shè)計中,采用芯片74HC573(帶三態(tài)輸出的八進(jìn)制透明D型鎖存器)對P1口進(jìn)行了一個8位并行口的擴(kuò)展,選通信號選用P3口的P3.3引腳。原理圖如圖1所示:
標(biāo)簽: C51 單片機(jī) 并行口 擴(kuò)展設(shè)計
上傳時間: 2013-11-18
上傳用戶:dbs012280
單片機(jī)應(yīng)用技術(shù)選編(1) 第一章 單片機(jī)系統(tǒng)綜合應(yīng)用技術(shù) 11.1 且使用 8098單片機(jī)的幾點體會 2 1.2 單片機(jī)的冷啟動與熱啟動 31.3 大容量動態(tài)存儲器在單片機(jī)系統(tǒng)中的應(yīng)用111.4 MCS-51單片機(jī)系統(tǒng)中動態(tài) RAM的刷新技巧141.5 MCS-51單片機(jī)系統(tǒng)中外RAM空間超64KB的擴(kuò)展方法161.6 8031單片機(jī)P0口和P2口的應(yīng)用開發(fā) 181.7 74LS164在 8031單片機(jī)中的兩種用法261.8 用于 8031單片機(jī)的快速I/O接口281.9 MCS-51定時器定時常數(shù)初值的精確設(shè)定法301.10 8253的翻轉(zhuǎn)問題及 MC6840的替代方法321.11 MCS-51單片機(jī)外部中斷源的擴(kuò)展設(shè)計351.12 MCS-51單片機(jī)多外中斷擴(kuò)展方法401.13 用優(yōu)先權(quán)編碼器74LS348擴(kuò)展51系列單片機(jī)的外中斷源421.14 用優(yōu)先權(quán)編碼器74LS148擴(kuò)展51系列單片機(jī)的外中斷源471.15 8031單片機(jī)與 BG5119A漢字庫的接口方法521.16 可背插 SRAM的日歷時鐘 DS1216及其應(yīng)用551.17 實時日歷時鐘集成電路MSM5832及其時序601.18 實時日歷時鐘集成電路MSM5832的接口技術(shù)631.19 實時時鐘/日歷芯片MC146818及其應(yīng)用671.20 與 SICE仿真器通訊的IBM-PC機(jī)通訊程序的改進(jìn)741.21 代碼形式參數(shù)匯編子程序的應(yīng)用821.22 單片機(jī)應(yīng)用系統(tǒng)中的查表程序設(shè)計861.23 用狀態(tài)綜合法設(shè)計鍵盤監(jiān)控程序901.24 單片機(jī)系統(tǒng)程序的加密技術(shù)961.25 MCS-96單片機(jī)程序保密的幾種方法1001.26 GAL輸出宏單元原理及使用105 1.27 通用陣列邏輯 GAL應(yīng)用于步進(jìn)電機(jī)控制實例110 第二章 傳感器與前向通道接口技術(shù)1172.1 集成溫度傳感器 LM134及其應(yīng)用1182.2 AD590集成溫度一電流傳感器原理及應(yīng)用1242.3 集成溫度傳感器 AD590的應(yīng)用1292.4 GS-800和 GS-130可燃?xì)怏w傳感器1332.5 集成化霍爾開關(guān)傳感器1352.6 一種新穎實用的氧氣/頻率轉(zhuǎn)換電路1392.7 MCS-51單片機(jī)與數(shù)字式溫度傳感器的接口設(shè)計1422.8 數(shù)字式溫度傳感器 SWC與 8031的接口及應(yīng)用1452.9 低成本高精度壓力傳感器微機(jī)接口設(shè)計1472.10 峰值檢測電路原理及應(yīng)用1512.11 用 LF398制作的實用峰值和谷值保持電路1532.12 AD637集成真有效值轉(zhuǎn)換器1562.13 傳感器信號調(diào)理模塊 ZB311622.14 2B31模塊在稱重智能儀表中的應(yīng)用1662.15 傳感器信號調(diào)理模塊 2B30/2B31及其應(yīng)用1692.16 高精度光纖位移測量系統(tǒng)的電路設(shè)計1752.17 集成電壓一電流轉(zhuǎn)換器 XTR100的工作原理及應(yīng)用1792.18 傳感器信號變送器 F693及其應(yīng)用1852.19 一種用兩片 VFC32構(gòu)成的隔離放大器電路1912.20 實用線性隔離放大器1922.21 電橋放大電路中 7650的一些應(yīng)用問題1942.22 A/D轉(zhuǎn)換器 ICL7109的應(yīng)用研究1962.23 5G14433模數(shù)轉(zhuǎn)換器的啟停控制2002.24 ADC1130模數(shù)轉(zhuǎn)換器及其使用2042.25 16位 A/D轉(zhuǎn)換器 ADC1143及其與 80C31單片機(jī)的接口2082.26 串行 I/O D/A A/D轉(zhuǎn)換器與單片機(jī)的接口2132.27 單片機(jī)應(yīng)用系統(tǒng)中的數(shù)字化傳感器接口技術(shù)2162.28 ADVFC32 A/D轉(zhuǎn)換接口技術(shù)2202.29 V/F和 F/V轉(zhuǎn)換器 TD650原理與應(yīng)用2242.30 AD650與 MC-51單片機(jī)的接口技術(shù)2302.31 利用VCO電路與單片機(jī)接口實現(xiàn)A/D轉(zhuǎn)換2352.32 LM2907/2917系列F/V變換器在汽車檢測中的應(yīng)用2382.33 單信號多通道輸入法改善 A/D轉(zhuǎn)換器性能2412.34 用多片 A們轉(zhuǎn)換芯片提高 A/D轉(zhuǎn)換速度2452.35 實時數(shù)控增益調(diào)整與浮點 ADC電路2492.36 電荷耦合器件的單片機(jī)驅(qū)動2532.37 電荷耦合器件的結(jié)構(gòu)原理與單片機(jī)的軟件定時驅(qū)動2582.38 利用模數(shù)轉(zhuǎn)換器提高轉(zhuǎn)換信號的線性度2622.39 利用微型機(jī)解決轉(zhuǎn)換中的非線性問題2682.40 利用非線性曲線存儲實現(xiàn)線性化的方法2702.41 輸出無非線性誤差的可變電壓源單臂電橋274 第三章 控制系統(tǒng)與后向通道接口技術(shù)2793.1 DAC1231與單片機(jī) 8031的接口技術(shù)2803.2 單路及多路 D八的光電隔離接口技術(shù)2843.3 光電隔離高壓驅(qū)動器2903.4 TRAIC型光耦在 8031后向通道接口的應(yīng)用分析2913.5 GD-L型光控晶閘管輸出光耦合器2963.6 用于晶閘管過零觸發(fā)的幾種方式3003.7 固態(tài)繼電器3043.8 固態(tài)繼電器在交流電子開關(guān)中的應(yīng)用3083.9 JCG型參數(shù)固態(tài)繼電器3123.10 JCG型參數(shù)固態(tài)繼電器的應(yīng)用315 3.11 介紹幾種適用于印刷電路板的超小型電磁繼電器3193.12 用TWH8751集成電路構(gòu)成微機(jī)控制的三步進(jìn)電機(jī)驅(qū)動電源3223.13 3-4相步進(jìn)電機(jī)控制器 5G87133253.14 5G0602報警電路及應(yīng)用3283.15 兩種新型溫控光控兀的應(yīng)用330 第四章 人機(jī)對話通道接口技術(shù)3334.1 單片機(jī)鍵盤接口設(shè)計3344.2 由電話機(jī)集成電路構(gòu)成的單片機(jī)鍵盤接口電路3364.3 用 GAL設(shè)計的一種編碼鍵盤接口3384.4 用 CMOS電路構(gòu)成的非編碼觸摸鍵盤3424.5 設(shè)計薄膜開關(guān)應(yīng)注意的一些問題3454.6 觸摸式電子開關(guān)集成電路 5G673及其應(yīng)用3504.7 8279用于撥碼盤及顯示器的接口設(shè)計3544.8 LED數(shù)碼管的構(gòu)造與特點3584.9 LED數(shù)碼管的集成驅(qū)動器及配套器件3624.10 8279芯片的顯示接口分析及32位數(shù)碼管顯示驅(qū)動電路設(shè)計366 4.11 用三端可調(diào)穩(wěn)壓塊代替LED顯示器的限流電阻3704.12 液晶顯示器件的構(gòu)造與特點3714.13 LCD七段顯示器與單片機(jī)的接口3744.14 液晶顯示器與單片機(jī)的接口技術(shù)3764.15 可編程LCD控制驅(qū)動器PPD72253814.16 微機(jī)總線兼容的四位 LCD驅(qū)動電路 TSC7211AM3874.17 使用8255的雙極性歸零脈沖驅(qū)動液晶顯示器接口3914.18 DMC16230型 LCD顯示模塊的接口技術(shù)3954.19 點陣式液晶顯示器原理及應(yīng)用4034.20 實用液晶顯示電路4094.21 8031控制的 CRT顯示控制接口4144.22 用 8031控制多臺彩色顯示器的實現(xiàn)方法4194.23 高級語言處理器--T6668的結(jié)構(gòu)與典型電路4234.24 延長 T6668語言電路錄放時間的方法4294.25 T6668高級語音開發(fā)站4324.26 語言處理器 T6668在電話報警系統(tǒng)中的應(yīng)用4354.27 新型語音處理器YYH16439 第五章 網(wǎng)絡(luò)、通訊控制與多機(jī)系統(tǒng)4415.1 IBM-PC/XT和單片機(jī)通訊系統(tǒng)的設(shè)計4425.2 IBM-PC/XT微機(jī)與單片機(jī)的兩種通訊接口4485.3 MCS-51單片機(jī)與 IBMPC微機(jī)的串行通訊4525.4 中央控制端與 MCS-51單片機(jī)間的數(shù)據(jù)通訊4595.5 IBMPC機(jī)與 MCS-51單片機(jī)的快速數(shù)據(jù)通訊4665.6 8031單片機(jī)與 PC-1500計算機(jī)的通訊4735.7 多片 MCS-51系統(tǒng)的一種串行通訊方式4775.8 多單片機(jī)處理系統(tǒng)并行通訊的實現(xiàn)4815.9 半雙工遠(yuǎn)距離電流環(huán)多機(jī)通訊接口電路4855.10 多微機(jī)系統(tǒng)共享 RAM電路4905.11 串行通訊中的波特率設(shè)置4925.12 在MCS-51單片機(jī)的串行通訊中實現(xiàn)波特率的自動整定4965.13 J274和 J275在微機(jī)分布式測控系統(tǒng)中的應(yīng)用5005.14 單電纜傳送雙向數(shù)據(jù)5045.15 新穎的多路遙控兀編譯碼器5055.16 DTMF在單片機(jī)無線數(shù)據(jù)通訊中的應(yīng)用5085.17 MCS-8031單片機(jī)在紅外遙控裝置中的應(yīng)用5155.18 一種實用光纖數(shù)字遙測系統(tǒng)5185.19 智能儀表通訊系統(tǒng)中一種冗余通道的設(shè)計5245.20 EIARS-232-C接口使用中的幾個問題528 第六章 電源、電源變換與電源監(jiān)視5316.1 電源擴(kuò)展電路5326.2 一種簡單的直流三倍壓電路533 6.3 直流電源變換集成電路5356.4 直流電壓變換器ICL7660的應(yīng)用5376.5 一種廉價高精密基準(zhǔn)電壓源5406.6 精密可調(diào)基準(zhǔn)電壓源及其應(yīng)用5416.7 引腳可編程精密基準(zhǔn)電壓源AD584及其應(yīng)用5496.8 幾種新型恒流源集成電路5536.9 CW334三端可調(diào)恒流源及應(yīng)用5576.10 電源電壓監(jiān)視用芯片TL7705CP簡介5606.11 電源電壓監(jiān)視用芯片TL7700簡介5646.12 WMS7705B電源監(jiān)視用芯片簡介5676.13 具有HMOS結(jié)構(gòu)的MCS-51系列單片機(jī)提供后備電源的方法570 第七章 系統(tǒng)抗于擾技術(shù)5757.1 微型計算機(jī)系統(tǒng)的抗干擾措施5767.2 計算機(jī)應(yīng)用系統(tǒng)抗干擾問題5797.3 微機(jī)在工業(yè)應(yīng)用中的抗干擾措施5867.4 利用電源監(jiān)視TL7705芯片的抗電源于擾新方法5917.5 利用電源監(jiān)視芯片WMS7705的抗電源干擾新方法5947.6 具有浪涌抑制能力的 TVP 6017.7 瞬變電壓抑制M極管TVP的特性及應(yīng)用6047.8 單片機(jī)實時控制軟件抗干擾編程方法的探討6077.9 一種簡單實用的微機(jī)死機(jī)自復(fù)位抗干擾技術(shù)6107.10 單片機(jī)程序的監(jiān)視保護(hù)6127.11 軟件 WATCHDOG系統(tǒng)615 7.12 一種實用的"看門狗"電路6187.13 高電壓下測量系統(tǒng)的抗干擾措施619 第八章 應(yīng)用實例6218.1 單片機(jī)在多功能函數(shù)發(fā)生器中的應(yīng)用6228.2 單片機(jī)波形發(fā)生器6298.3 單片機(jī)控制的調(diào)幅波發(fā)生器6338.4 用 8031單片機(jī)解調(diào)時統(tǒng)信號6368.5 具有 114DB動態(tài)范圍的浮點數(shù)據(jù)采集系統(tǒng)6418.6 電熱恒溫箱單片微機(jī)控制系統(tǒng)6468.7 智能 I一、C丑測試儀的原理及設(shè)計6528.8 采用 LMS算法的單片機(jī)數(shù)字交流電橋6568.9 單片微機(jī)的數(shù)字相位測試儀6598.10 單片機(jī)的氣體流量測量6628.11 單片機(jī)的相關(guān)流量儀6688.12 723型可見分光光度計6758.13 多功能微電腦電子秤6798.14 智能路面回彈檢測儀6838.15 使用 CCD的單片機(jī)動態(tài)布面檢測系統(tǒng)6878.16 使用 CCD的單片機(jī)激光衍射測徑系統(tǒng)6908.17 使用 CCD的單片機(jī)動態(tài)線徑測量儀6958.18 使用CCD的單片機(jī)中型熱軋圓鋼直徑檢測儀7018.19 用 MCS-51單片微機(jī)實現(xiàn)織布機(jī)的監(jiān)測7058.20 單片機(jī)在工頻參量測試中的應(yīng)用7098.21 單片機(jī) 8098在直線電機(jī)控制中的應(yīng)用715?
標(biāo)簽: 單片機(jī) 應(yīng)用技術(shù)
上傳時間: 2014-12-28
上傳用戶:liufei
九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級IPOL和I/O許可位圖的方法來控制輸入/輸出,實現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問I/O空間中所有地址的最外層特權(quán)級。IOPL的值在如下圖所示的標(biāo)志寄存器中。 標(biāo) 志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規(guī)定了I/O空間中的哪些地址可以由在任何特權(quán)級執(zhí)行的程序所訪問。I/O許可位圖在任務(wù)狀態(tài)段TSS中。 I/O敏感指令 指令 功能 保護(hù)方式下的執(zhí)行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設(shè)置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數(shù)據(jù) CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時才可以執(zhí)行,所以把它們稱為I/O敏感指令。從表中可見,當(dāng)前特權(quán)級不在I/O特權(quán)級外層時,可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級在I/O特權(quán)級外層時,執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯碼為0的通用保護(hù)異常。 由于每個任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實際要求需要。因為這樣做會使得在特權(quán)級3執(zhí)行的應(yīng)用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問I/O地址時發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨享設(shè)備時發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對應(yīng)一個I/O地址,位串的第0位對應(yīng)I/O地址0,位串的第n位對應(yīng)I/O地址n。如果位串中的第位為0,那么對應(yīng)的I/O地址m可以由在任何特權(quán)級執(zhí)行的程序訪問;否則對應(yīng)的I/O地址m只能由在IOPL特權(quán)級或更內(nèi)層特權(quán)級執(zhí)行的程序訪問。如果在I/O外層特權(quán)級執(zhí)行的程序訪問位串中位值為1的位所對應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個I/O地址。在需要根據(jù)I/O位圖決定是否可訪問I/O地址的情況下,當(dāng)一條I/O指令涉及多個I/O地址時,只有這多個I/O地址所對應(yīng)的I/O許可位圖中的位都為0時,該I/O指令才能被正常執(zhí)行,如果對應(yīng)位中任一位為1,就會引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長度是64K個位,即位圖的有效部分最大為8K字節(jié)。一個任務(wù)實際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲,所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見,TSS內(nèi)偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長可達(dá)8K字節(jié),所以開始偏移應(yīng)小于56K,但必須大于等于104,因為TSS中前104字節(jié)為TSS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開始偏移;(3)計算I/O地址對應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計算位偏移以形成屏蔽碼值,即計算I/O地址對應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對應(yīng)字節(jié)及下一個字節(jié);(7)把讀出的兩個字節(jié)與屏蔽碼進(jìn)行與運算,若結(jié)果不為0表示檢查未通過,則產(chǎn)生出錯碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問。設(shè)某一任務(wù)的TSS段如下: TSSSEG SEGMENT PARA USE16 TSS <> ;TSS低端固定格式部分 DB 8 DUP(0) ;對應(yīng)I/O端口00H—3FH DB 10000000B ;對應(yīng)I/O端口40H—47H DB 01100000B ;對用I/O端口48H—4FH DB 8182 DUP(0ffH) ;對應(yīng)I/O端口50H—0FFFFH DB 0FFH ;位圖結(jié)束字節(jié)TSSLen = $TSSSEG ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會引起通用保護(hù)異常: in al,21h ;(1)正常執(zhí)行 in al,47h ;(2)引起異常 out 20h,al ;(3)正常實行 out 4eh,al ;(4)引起異常 in al,20h ;(5)正常執(zhí)行 out 20h,eax ;(6)正常執(zhí)行 out 4ch,ax ;(7)引起異常 in ax,46h ;(8)引起異常 in eax,42h ;(9)正常執(zhí)行 由上述I/O許可檢查的細(xì)節(jié)可見,不論是否必要,當(dāng)進(jìn)行許可位檢查時,80386總是從I/O許可位圖中讀取兩個字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個字節(jié)。例如,上面的第(8)條指令要對I/O位圖中的兩個位進(jìn)行檢查,其低位是某個字節(jié)的最高位,高位是下一個字節(jié)的最低位。可見即使只要檢查兩個位,也可能需要讀取兩個字節(jié)。另一方面,最多檢查四個連續(xù)的位,即最多也只需讀取兩個字節(jié)。所以每次要讀取兩個字節(jié)。這也是在判別是否越界時再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時產(chǎn)生越界,必須在I/O許可位圖的最后填加一個全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開始偏移加8K時,I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開始偏移加8K時,I/O許可位圖有效部分就不到8K字節(jié),于是對較小I/O地址訪問的許可檢查根據(jù)位圖進(jìn)行,而對較大I/O地址訪問的許可檢查總被認(rèn)為不可訪問而引起通用保護(hù)故障。因為這時會發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個特點,可大大節(jié)約TSS中I/O許可位圖占用的存儲單元,也就大大減小了TSS段的長度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實現(xiàn)輸入輸出保護(hù)。類似地,對EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對EFLAGS中的這三個字段的處理比較特殊,只有在較高特權(quán)級執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級下對這三個字段的處理情況。 不同特權(quán)級對標(biāo)志寄存器特殊字段的處理 特權(quán)級 VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0 不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權(quán)級0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對于IOPL同級或更內(nèi)層特權(quán)級執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級不滿足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時,如果試圖修改這些字段中的任何一個字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實例(實例九)下面給出一個用于演示輸入輸出保護(hù)的實例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過任務(wù)門調(diào)用任務(wù),實現(xiàn)任務(wù)嵌套。 1.演示步驟實例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級是0;(4)通過任務(wù)門調(diào)用測試任務(wù)1。測試任務(wù)1能夠順利進(jìn)行;(5)通過任務(wù)門調(diào)用測試任務(wù)2。測試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過任務(wù)門調(diào)用測試任務(wù)3。測試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過任務(wù)門調(diào)用測試任務(wù)4。測試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時代碼,準(zhǔn)備返回實模式;(9)返回實模式,并作結(jié)束處理。
上傳時間: 2013-12-11
上傳用戶:nunnzhy
摘要:設(shè)計并實現(xiàn)了一個USB/EPP 轉(zhuǎn)接系統(tǒng),給出其硬件設(shè)計方案并討論了相關(guān)技術(shù)細(xì)節(jié), 使其實現(xiàn)USB 接口到EPP接口的相互數(shù)據(jù)轉(zhuǎn)發(fā)。使僅具有EPP 接口的傳統(tǒng)儀器設(shè)備借助于USB/EPP 轉(zhuǎn)接系統(tǒng)擁有USB 總線所提供的即插即用和設(shè)備插架特性, 方便其通過USB 接口靈活接入同時擁有多個外設(shè)的計算機(jī)主機(jī)系統(tǒng)。關(guān)鍵詞:USB;EPP;轉(zhuǎn)接系統(tǒng)中圖分類號:TP368.3 文獻(xiàn)標(biāo)識碼:A文章編號:1008- 0570(2005)11- 2- 0166- 03 在傳統(tǒng)的I/O 模式中,計算機(jī)外設(shè)通常映射為CPU 中固定I/O 地址,要求由主機(jī)分配一個指定的IRQ 中斷請求。由于PC 機(jī)的端口和中斷資源有限,因而使外設(shè)的可擴(kuò)展性受到局限;同時,隨著電腦應(yīng)用的拓展,PC 機(jī)的外設(shè)接口越來越多,外設(shè)對系統(tǒng)資源的獨占性也容易導(dǎo)致系統(tǒng)資源沖突。由于各種外部設(shè)備不斷增加,容易導(dǎo)致各種I/O 沖突。由Intel、Compaq、Microsoft、IBM等廠商所提出的USB 總線標(biāo)準(zhǔn),基于即插即用和設(shè)備插架技術(shù),設(shè)備接入時不影響應(yīng)用程序的運行,具有良好的可擴(kuò)充性和擴(kuò)展的方便性。目前USB 協(xié)議已經(jīng)發(fā)展到了最新的2.0 版本,可支持峰值傳輸速率為480Mbps 的高速外設(shè),可提供4~8 個USB 2.0 接口,同時通過USB 集線器(HUB)的擴(kuò)展還可以支持多達(dá)127 個外設(shè)同時連接,基本上解決了各種外設(shè)同時存在同時使用的所有問題。基于USB 接口的上述優(yōu)點,目前的計算機(jī),特別是筆記本計算機(jī)基本上都只配備USB 接口,而取消了傳統(tǒng)的串口和并口,這對那些以前購置的需要與計算機(jī)進(jìn)行通信而只有串口或并口的各種儀器的繼續(xù)使用造成了極大的障礙。 針對傳統(tǒng)的數(shù)字化儀器與計算機(jī)通信中存在的接口不足的問題,本文設(shè)計了一個USB/EPP 轉(zhuǎn)接系統(tǒng),使其能夠從計算機(jī)的USB 接口接收數(shù)據(jù),經(jīng)過格式轉(zhuǎn)換,從USB/EPP 轉(zhuǎn)接系統(tǒng)的并行接口EPP 發(fā)送給傳統(tǒng)的儀器設(shè)備;同時也能夠從USB/EPP 轉(zhuǎn)接系統(tǒng)的并行接口EPP 接收數(shù)據(jù),將其轉(zhuǎn)化為USB 幀格式,并發(fā)送到計算機(jī)的USB 接口。從而使僅具有EPP 接口的傳統(tǒng)儀器設(shè)備借助于USB/EPP 轉(zhuǎn)接系統(tǒng),可以繼續(xù)正常使用。2 USB 總線2.1 USB 系統(tǒng)描述及總線協(xié)議USB 是一種電纜總線,支持在主機(jī)和各種即插即用外設(shè)之間進(jìn)行數(shù)據(jù)傳輸。由主機(jī)預(yù)定的標(biāo)準(zhǔn)協(xié)議使各種設(shè)備分享USB 帶寬,當(dāng)其它設(shè)備和主機(jī)在運行時,總線允許添加、設(shè)置、使用以及拆除外設(shè),這為多個儀器設(shè)備共享同一個主計算機(jī)提供了可能。USB 協(xié)議采用了管道模型的軟硬件協(xié)議,摒棄了一般外設(shè)協(xié)議的端口映射方式,從而有效地避免了計算機(jī)應(yīng)用系統(tǒng)I/O 端口地址沖突。根據(jù)功能劃分,一個USB 系統(tǒng)由三個部分組成:即USB 互連、USB 主機(jī)和USB 設(shè)備。圖1 給出了USB系統(tǒng)的通用拓?fù)浣Y(jié)構(gòu)。
上傳時間: 2013-10-09
上傳用戶:半熟1994
微處理器及微型計算機(jī)的發(fā)展概況 第一代微處理器是以Intel公司1971年推出的4004,4040為代表的四位微處理機(jī)。 第二代微處理機(jī)(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。 第三代微處理機(jī) 第三代微機(jī)是以16位機(jī)為代表,基本上是在第二代微機(jī)的基礎(chǔ)上發(fā)展起來的。其中Intel公司的8088。8086是在8085的基礎(chǔ)發(fā)展起來的;M68000是Motorola公司在M6800 的基礎(chǔ)發(fā)展起來的; 第四代微處理機(jī) 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU為代表, 第五代微處理機(jī)的發(fā)展更加迅猛,1993年3月被命名為PENTIUM的微處理機(jī)面世,98年P(guān)ENTIUM 2又被推向市場。 INTEL CPU 發(fā)展歷史Intel第一塊CPU 4004,4位主理器,主頻108kHz,運算速度0.06MIPs(Million Instructions Per Second, 每秒百萬條指令),集成晶體管2,300個,10微米制造工藝,最大尋址內(nèi)存640 bytes,生產(chǎn)曰期1971年11月. 8085,8位主理器,主頻5M,運算速度0.37MIPs,集成晶體管6,500個,3微米制造工藝,最大尋址內(nèi)存64KB,生產(chǎn)曰期1976年 8086,16位主理器,主頻4.77/8/10MHZ,運算速度0.75MIPs,集成晶體管29,000個,3微米制造工藝,最大尋址內(nèi)存1MB,生產(chǎn)曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主頻25/33/50/66/75/100MHZ,總線頻率33/50/66MHZ,運算速度20~60MIPs,集成晶體管1.2M個,1微米制造工藝,168針PGA,最大尋址內(nèi)存4GB,緩存8/16/32/64KB,生產(chǎn)曰期1989年4月 Celeron一代, 主頻266/300MHZ(266/300MHz w/o L2 cache, Covington芯心 (Klamath based),300A/333/366/400/433/466/500/533MHz w/128kB L2 cache, Mendocino核心 (Deschutes-based), 總線頻率66MHz,0.25微米制造工藝,生產(chǎn)曰期1998年4月) Pentium 4 (478針),至今分為三種核心:Willamette核心(主頻1.5G起,FSB400MHZ,0.18微米制造工藝),Northwood核心(主頻1.6G~3.0G,FSB533MHZ,0.13微米制造工藝, 二級緩存512K),Prescott核心(主頻2.8G起,FSB800MHZ,0.09微米制造工藝,1M二級緩存,13條全新指令集SSE3),生產(chǎn)曰期2001年7月. 更大的緩存、更高的頻率、 超級流水線、分支預(yù)測、亂序執(zhí)行超線程技術(shù) 微型計算機(jī)組成結(jié)構(gòu)單片機(jī)簡介單片機(jī)即單片機(jī)微型計算機(jī),是將計算機(jī)主機(jī)(CPU、 內(nèi)存和I/O接口)集成在一小塊硅片上的微型機(jī)。 三、計算機(jī)編程語言的發(fā)展概況 機(jī)器語言 機(jī)器語言就是0,1碼語言,是計算機(jī)唯一能理解并直接執(zhí)行的語言。匯編語言 用一些助記符號代替用0,1碼描述的某種機(jī)器的指令系統(tǒng),匯編語言就是在此基礎(chǔ)上完善起來的。高級語言 BASIC,PASCAL,C語言等等。用高級語言編寫的程序稱源程序,它們必須通過編譯或解釋,連接等步驟才能被計算機(jī)處理。 面向?qū)ο笳Z言 C++,Java等編程語言是面向?qū)ο蟮恼Z言。 1.3 微型計算機(jī)中信息的表示及運算基礎(chǔ)(一) 十進(jìn)制ND有十個數(shù)碼:0~9,逢十進(jìn)一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加權(quán)展開式以10稱為基數(shù),各位系數(shù)為0~9,10i為權(quán)。 一般表達(dá)式:ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… (二) 二進(jìn)制NB兩個數(shù)碼:0、1, 逢二進(jìn)一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加權(quán)展開式以2為基數(shù),各位系數(shù)為0、1, 2i為權(quán)。 一般表達(dá)式: NB = bn-1×2n-1 + bn-2×2n-2 +…+b0×20 +b-1×2-1+… (三)十六進(jìn)制NH十六個數(shù)碼0~9、A~F,逢十六進(jìn)一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展開式以十六為基數(shù),各位系數(shù)為0~9,A~F,16i為權(quán)。 一般表達(dá)式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… 二、不同進(jìn)位計數(shù)制之間的轉(zhuǎn)換 (二)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換 24=16 ,四位二進(jìn)制數(shù)對應(yīng)一位十六進(jìn)制數(shù)。舉例:(三)十進(jìn)制數(shù)轉(zhuǎn)換成二、十六進(jìn)制數(shù)整數(shù)、小數(shù)分別轉(zhuǎn)換 1.整數(shù)轉(zhuǎn)換法“除基取余”:十進(jìn)制整數(shù)不斷除以轉(zhuǎn)換進(jìn)制基數(shù),直至商為0。每除一次取一個余數(shù),從低位排向高位。舉例: 2. 小數(shù)轉(zhuǎn)換法“乘基取整”:用轉(zhuǎn)換進(jìn)制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0或達(dá)到轉(zhuǎn)換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。舉例: 三、帶符號數(shù)的表示方法 機(jī)器數(shù):機(jī)器中數(shù)的表示形式。真值: 機(jī)器數(shù)所代表的實際數(shù)值。舉例:一個8位機(jī)器數(shù)與它的真值對應(yīng)關(guān)系如下: 真值: X1=+84=+1010100B X2=-84= -1010100B 機(jī)器數(shù):[X1]機(jī)= 01010100 [X2]機(jī)= 11010100(二)原碼、反碼、補(bǔ)碼最高位為符號位,0表示 “+”,1表示“-”。 數(shù)值位與真值數(shù)值位相同。 例 8位原碼機(jī)器數(shù): 真值: x1 = +1010100B x2 =- 1010100B 機(jī)器數(shù): [x1]原 = 01010100 [x2]原 = 11010100原碼表示簡單直觀,但0的表示不唯一,加減運算復(fù)雜。 正數(shù)的反碼與原碼表示相同。 負(fù)數(shù)反碼符號位為 1,數(shù)值位為原碼數(shù)值各位取反。 例 8位反碼機(jī)器數(shù): x= +4: [x]原= 00000100 [x]反= 00000100 x= -4: [x]原= 10000100 [x]反= 111110113、補(bǔ)碼(Two’s Complement)正數(shù)的補(bǔ)碼表示與原碼相同。 負(fù)數(shù)補(bǔ)碼等于2n-abs(x)8位機(jī)器數(shù)表示的真值四、 二進(jìn)制編碼例:求十進(jìn)制數(shù)876的BCD碼 876= 1000 0111 0110 BCD 876= 36CH = 1101101100B 2、字符編碼 美國標(biāo)準(zhǔn)信息交換碼ASCII碼,用于計算 機(jī)與計算機(jī)、計算機(jī)與外設(shè)之間傳遞信息。 3、漢字編碼 “國家標(biāo)準(zhǔn)信息交換用漢字編碼”(GB2312-80標(biāo)準(zhǔn)),簡稱國標(biāo)碼。 用兩個七位二進(jìn)制數(shù)編碼表示一個漢字 例如“巧”字的代碼是39H、41H漢字內(nèi)碼例如“巧”字的代碼是0B9H、0C1H1·4 運算基礎(chǔ) 一、二進(jìn)制數(shù)的運算加法規(guī)則:“逢2進(jìn)1” 減法規(guī)則:“借1當(dāng)2” 乘法規(guī)則:“逢0出0,全1出1”二、二—十進(jìn)制數(shù)的加、減運算 BCD數(shù)的運算規(guī)則 循十進(jìn)制數(shù)的運算規(guī)則“逢10進(jìn)1”。但計算機(jī)在進(jìn)行這種運算時會出現(xiàn)潛在的錯誤。為了解決BCD數(shù)的運算問題,采取調(diào)整運算結(jié)果的措施:即“加六修正”和“減六修正”例:10001000(BCD)+01101001(BCD) =000101010111(BCD) 1 0 0 0 1 0 0 0 + 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 0 1 1 0 ……調(diào)整 1 0 1 0 1 0 1 1 1 進(jìn)位 例: 10001000(BCD)- 01101001(BCD)= 00011001(BCD) 1 0 0 0 1 0 0 0 - 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 1 - 0 1 1 0 ……調(diào)整 0 0 0 1 1 0 0 1 三、 帶符號二進(jìn)制數(shù)的運算 1.5 幾個重要的數(shù)字邏輯電路編碼器譯碼器計數(shù)器微機(jī)自動工作的條件程序指令順序存放自動跟蹤指令執(zhí)行1.6 微機(jī)基本結(jié)構(gòu)微機(jī)結(jié)構(gòu)各部分組成連接方式1、以CPU為中心的雙總線結(jié)構(gòu);2、以內(nèi)存為中心的雙總線結(jié)構(gòu);3、單總線結(jié)構(gòu)CPU結(jié)構(gòu)管腳特點 1、多功能;2、分時復(fù)用內(nèi)部結(jié)構(gòu) 1、控制; 2、運算; 3、寄存器; 4、地址程序計數(shù)器堆棧定義 1、定義;2、管理;3、堆棧形式
上傳時間: 2013-10-17
上傳用戶:erkuizhang
單片機(jī)原理與應(yīng)用《課程簡介》:單片機(jī)已成為電子系統(tǒng)中進(jìn)行數(shù)據(jù)采集、信息處理、通信聯(lián)絡(luò)和實施控制的重要器件。通常利用單片機(jī)技術(shù)在各種系統(tǒng)、儀器設(shè)備或裝置中,形成嵌入式智能系統(tǒng)或子系統(tǒng)。因此,單片機(jī)技術(shù)是電類專業(yè)特別是電子信息類學(xué)生必須具備的基本功。本課程以51系列單片機(jī)為模型,主要向?qū)W生介紹單片機(jī)的基本結(jié)構(gòu)、工作原理、指令系統(tǒng)與程序設(shè)計、系統(tǒng)擴(kuò)展與工程應(yīng)用。作為微機(jī)原理與接口技術(shù)的后續(xù)課程,本課程強(qiáng)調(diào)實踐環(huán)節(jié),側(cè)重系統(tǒng)構(gòu)成與應(yīng)用設(shè)計。力求通過實踐環(huán)節(jié),軟、硬結(jié)合,培養(yǎng)初步的單片機(jī)開發(fā)能力,并使其前導(dǎo)課程講授的基本概念得到綜合與深化。由于課時的限制,綜合性的應(yīng)用設(shè)計安排在后續(xù)課程《微機(jī)應(yīng)用系統(tǒng)設(shè)計》中進(jìn)行。 課 程 內(nèi) 容:第一章 單片微型計算機(jī)概述單片機(jī)的發(fā)展與應(yīng)用 MCS-51系列單片機(jī)簡介第二章 MCS-51系列單片機(jī)結(jié)構(gòu)MCS-51單片機(jī)基本結(jié)構(gòu) CPU 時序簡介 存儲器空間結(jié)構(gòu) 片內(nèi)RAM與SFR時鐘電路與復(fù)位電路 并行I/O口與總線擴(kuò)展第三章 MCS-51單片機(jī)指令系統(tǒng)指令系統(tǒng)簡介數(shù)據(jù)傳送指令 數(shù)據(jù)處理指令 位處理指令 程序控制指令匯編語言程序設(shè)計方法 程序調(diào)試的常用方法第四章 SCB-I 單片單板機(jī)SCB-I 單片單板機(jī)結(jié)構(gòu)簡介 監(jiān)控系統(tǒng)簡介SCB-I 單片單板機(jī)的基本操作 第五章 單片機(jī)常用接口電路的軟、硬件設(shè)計LED顯示接口電路與應(yīng)用編程鍵盤接口電路與應(yīng)用編程計數(shù)器/定時器工作原理及其應(yīng)用編程MCS-51中斷系統(tǒng)及其應(yīng)用編程8255擴(kuò)展并行接口及其應(yīng)用編程串行通信接口及其應(yīng)用編程A/D與D/A轉(zhuǎn)換接口及其應(yīng)用編程*第六章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計舉例第七章 單片機(jī)開發(fā)工具簡介* 加“*”為選講內(nèi)容教學(xué)要求:1、 了解單片機(jī)的一般性概念及單片機(jī)技術(shù)的發(fā)展。2、 掌握51系列單片機(jī)的基本結(jié)構(gòu)與工作原理。3、 掌握51系列單片機(jī)的指令系統(tǒng)與程序設(shè)計的基本方法。4、 以單片單板機(jī)為樣板,掌握51系列單片機(jī)的系統(tǒng)擴(kuò)展設(shè)計。5、 通過實驗,掌握單片機(jī)常用接口電路的軟硬件設(shè)計及其應(yīng)用。6、 以上為本課程的基本要求。作為提高要求,對有能力、有興趣的學(xué)生,若能較快地完成基本實驗,可在規(guī)定課時內(nèi)安排有一定難度的綜合性實驗,以提高其應(yīng)用設(shè)計的能力。 課時安排和考核方式:1、 講課40學(xué)時,實驗20學(xué)時,課內(nèi)外學(xué)時比 1:2 ;(實驗從第七周開始,7個基本實驗,選做1個綜合實驗)2、 考核方式平時考查 20實驗考核 40(含實驗過程、實驗驗收與實驗報告)期末筆試 40參考書:《MCS-51單片機(jī)應(yīng)用設(shè)計》 張毅剛 等編 哈爾濱工業(yè)大學(xué)出版社《MCS-51系列單片機(jī)原理及應(yīng)用》 孫涵芳 徐愛卿 編著 北京航空航天大學(xué)出版社《單片微機(jī)與測控技術(shù)》 趙秀菊 等編 東南大學(xué)出版社《單片微型機(jī)原理、應(yīng)用與實驗》 張友德 等編 復(fù)旦大學(xué)出版社 《單片機(jī)實驗》 肖璋 雷兆宜 編 暨南大學(xué)講義
上傳時間: 2014-01-08
上傳用戶:417313137
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1