亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

攝像機(jī)(jī)標(biāo)(biāo)定

  • Keil C51使用詳解

    Keil C51使用詳解:8051 系列微處理器基于簡化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動控制再到PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供8051 系列單片機(jī)像Intel Philips Siemens 等這些制造商給51 系列單片機(jī)加入了大量的性能和外部功能像I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到40M 工作電壓下降到1.5V 基于一個內(nèi)核的這些功能使得8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個平臺8051 系列的基本結(jié)構(gòu)如下1 一個8 位算術(shù)邏輯單元2 32 個I/O 口4 組8 位端口可單獨尋址3 兩個16 位定時計數(shù)器4 全雙工串行通信5 6 個中斷源兩個中斷優(yōu)先級6 128 字節(jié)內(nèi)置RAM7 獨立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項操作如取指令和計算指令執(zhí)行時間可把時鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時鐘是11.059MHz 除以12 后就得到了每秒執(zhí)行的指令個數(shù)為921583

    標(biāo)簽: Keil C51 使用詳解

    上傳時間: 2014-04-05

    上傳用戶:xaijhqx

  • 波形發(fā)生器,含原理圖+電路圖+源程序

    含原理圖+電路圖+程序的波形發(fā)生器:在工作中,我們常常會用到波形發(fā)生器,它是使用頻度很高的電子儀器。現(xiàn)在的波形發(fā)生器都采用單片機(jī)來構(gòu)成。單片機(jī)波形發(fā)生器是以單片機(jī)核心,配相應(yīng)的外圍電路和功能軟件,能實現(xiàn)各種波形發(fā)生的應(yīng)用系統(tǒng),它由硬件部分和軟件部分組成,硬件是系統(tǒng)的基礎(chǔ),軟件則是在硬件的基礎(chǔ)上,對其合理的調(diào)配和使用,從而完成波形發(fā)生的任務(wù)。 波形發(fā)生器的技術(shù)指標(biāo):(1) 波形類型:方型、正弦波、三角波、鋸齒波;(2) 幅值電壓:1V、2V、3V、4V、5V;(3) 頻率值:10HZ、20HZ、50HZ、100HZ、200HZ、500HZ、1KHZ;(4) 輸出極性:雙極性操作設(shè)計1、 機(jī)器通電后,系統(tǒng)進(jìn)行初始化,LED在面板上顯示6個0,表示系統(tǒng)處于初始狀態(tài),等待用戶輸入設(shè)置命令,此時,無任何波形信號輸出。2、 用戶按下“F”、“V”、“W”,可以分別進(jìn)入頻率,幅值波形設(shè)置,使系統(tǒng)進(jìn)入設(shè)置狀態(tài),相應(yīng)的數(shù)碼管顯示“一”,此時,按其它鍵,無效;3、 在進(jìn)入某一設(shè)置狀態(tài)后,輸入0~9等數(shù)字鍵,(數(shù)字鍵僅在設(shè)置狀態(tài)時,有效)為欲輸出的波形設(shè)置相應(yīng)參數(shù),LED將參數(shù)顯示在面板上;4、 如果在設(shè)置中,要改變已設(shè)定的參數(shù),可按下“CL”鍵,清除所有已設(shè)定參數(shù),系統(tǒng)恢復(fù)初始狀態(tài),LED顯示6個0,等待重新輸入命令;5、 當(dāng)必要的參數(shù)設(shè)定完畢后,所有參數(shù)顯示于LED上,用戶按下“EN”鍵,系統(tǒng)會將各波形參數(shù)傳遞到波形產(chǎn)生模塊中,以便控制波形發(fā)生,實現(xiàn)不同頻率,不同電壓幅值,不同類型波形的輸出;6、 用戶按下“EN”鍵后,波形發(fā)生器開始輸出滿足參數(shù)的波形信號,面板上相應(yīng)類型的運行指示燈閃爍,表示波形正在輸出,LED顯示波形類型編號,頻率值、電壓幅值等波形參數(shù);7、 波形發(fā)生器在輸出信號時,按下任意一個鍵,就停止波形信號輸出,等待重新設(shè)置參數(shù),設(shè)置過程如上所述,如果不改變參數(shù),可按下“EN”鍵,繼續(xù)輸出原波形信號;8、 要停止波形發(fā)生器的使用,可按下復(fù)位按鈕,將系統(tǒng)復(fù)位,然后關(guān)閉電源。硬件組成部分通過綜合比較,決定選用獲得廣泛應(yīng)用,性能價格高的常用芯片來構(gòu)成硬件電路。單片機(jī)采用MCS-51系列的89C51(一塊),74LS244和74LS373(各一塊),反相驅(qū)動器 ULN2803A(一塊),運算放大器 LM324(一塊)  波形發(fā)生器的硬件電路由單片機(jī)、鍵盤顯示器接口電路、波形轉(zhuǎn)換(D/ A)電路和電源線路等四部分構(gòu)成。1.單片機(jī)電路功能:形成掃描碼,鍵值識別,鍵功能處理,完成參數(shù)設(shè)置;形成顯示段碼,向LED顯示接口電路輸出;產(chǎn)生定時中斷;形成波形的數(shù)字編碼,并輸出到D/A接口電路;如電路原理圖所示: 89C51的P0口和P2口作為擴(kuò)展I/O口,與8255、0832、74LS373相連接,可尋址片外的寄存器。單片機(jī)尋址外設(shè),采用存儲器映像方式,外部接口芯片與內(nèi)部存儲器統(tǒng)一編址,89C51提供16根地址線P0(分時復(fù)用)和P2,P2口提供高8位地址線,P0口提供低8位地址線。P0口同時還要負(fù)責(zé)與8255,0832的數(shù)據(jù)傳遞。P2.7是8255的片選信號,P2.6是0832(1)的片選,P2.5是0832(2)的片選,低電平有效,P0.0、P0.1經(jīng)過74LS373鎖存后,送到8255的A1、A2作,片內(nèi)A口,B口,C口,控制口等寄存器的字選。89C51的P1口的低4位連接4只發(fā)光三極管,作為波形類型指示燈,表示正在輸出的波形是什么類型。單片機(jī)89C51內(nèi)部有兩個定時器/計數(shù)器,在波形發(fā)生器中使用T0作為中斷源。不同的頻率值對應(yīng)不同的定時初值,定時器的溢出信號作為中斷請求。控制定時器中斷的特殊功能寄存器設(shè)置如下:定時控制寄存器TCON=(00010000)工作方式選擇寄存器(TMOD)=(00000000)中斷允許控制寄存器(IE)=(10000010)2、鍵盤顯示器接口電路功能:驅(qū)動6位數(shù)碼管動態(tài)顯示;           提供響應(yīng)界面;           掃面鍵盤;           提供輸入按鍵。由并口芯片8255,鎖存器74LS273,74LS244,反向驅(qū)動器ULN2803A,6位共陰極數(shù)碼管(LED)和4×4行列式鍵盤組成。8255的C口作為鍵盤的I/O接口,C口的低4位輸出到掃描碼,高4位作為輸入行狀態(tài),按鍵的分布如圖所示。8255的A口作為LED段碼輸出口,與74LS244相連接,B口作為LED的位選信號輸出口,與ULN2803A相連接。8255內(nèi)部的4個寄存器地址分配如下:控制口:7FFFH , A口:7FFFCH , B口:7FFDH ,  C口:7FFEH    3、D/A電路功能:將波形樣值的數(shù)字編碼轉(zhuǎn)換成模擬值;完成單極性向雙極性的波形輸出;構(gòu)成由兩片0832和一塊LM324運放組成。0832(1)是參考電壓提供者,單片機(jī)向0832(1)內(nèi)的鎖存器送數(shù)字編碼,不同的編碼會產(chǎn)生不同的輸出值,在本發(fā)生器中,可輸出1V、2V、3V、4V、5V等五個模擬值,這些值作為0832(2)的參考電壓,使0832(2)輸出波形信號時,其幅度是可調(diào)的。0832(2)用于產(chǎn)生各種波形信號,單片機(jī)在波形產(chǎn)生程序的控制下,生成波形樣值編碼,并送到0832(2)中的鎖存器,經(jīng)過D/A轉(zhuǎn)換,得到波形的模擬樣值點,假如N個點就構(gòu)成波形的一個周期,那么0832(2)輸出N個樣值點后,樣值點形成運動軌跡,就是波形信號的一個周期。重復(fù)輸出N個點后,由此成第二個周期,第三個周期……。這樣0832(2)就能連續(xù)的輸出周期變化的波形信號。運放A1是直流放大器,運放A2是單極性電壓放大器,運放A3是雙極性驅(qū)動放大器,使波形信號能帶得起負(fù)載。地址分配:0832(1):DFFFH ,0832(2):BFFFH4、電源電路:功能:為波形發(fā)生器提供直流能量;構(gòu)成由變壓器、整流硅堆,穩(wěn)壓塊7805組成。220V的交流電,經(jīng)過開關(guān),保險管(1.5A/250V),到變壓器降壓,由220V降為10V,通過硅堆將交流電變成直流電,對于諧波,用4700μF的電解電容給予濾除。為保證直流電壓穩(wěn)定,使用7805進(jìn)行穩(wěn)壓。最后,+5V電源配送到各用電負(fù)載。

    標(biāo)簽: 波形發(fā)生器 原理圖 電路圖 源程序

    上傳時間: 2013-11-08

    上傳用戶:685

  • 單片機(jī)音樂中音調(diào)和節(jié)拍的確定方法

    單片機(jī)音樂中音調(diào)和節(jié)拍的確定方法:調(diào)號-音樂上指用以確定樂曲主音高度的符號。很明顯一個八度就有12個半音。A、B、C、D、E、F、G。經(jīng)過聲學(xué)家的研究,全世界都用這些字母來表示固定的音高。比如,A這個音,標(biāo)準(zhǔn)的音高為每秒鐘振動440周。 升C調(diào):1=#C,也就是降D調(diào):1=BD;277(頻率)升D調(diào):1=#D,也就是降E調(diào):1=BE;311升F調(diào):1=#F,也就是降G調(diào):1=BG;369升G調(diào):1=#G,也就是降A(chǔ)調(diào):1=BA;415升A調(diào):1=#A,也就是降B調(diào):1=BB。466,C 262   #C277   D 294   #D(bE)311  E 330   F 349   #F369   G 392  #G415A 440.    #A466    B 494 所謂1=A,就是說,這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說,這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來的高低是不一樣的。各調(diào)的對應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂時音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對單片機(jī)演奏音樂比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識做一些簡介,但愿能對單片機(jī)演奏音樂比較有興趣而又不知其解的朋友能有所啟迪。 一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個音符唱多高的頻率,節(jié)拍表示一個音符唱多長的時間。 在音樂中所謂“音調(diào)”,其實就是我們常說的“音高”。在音樂中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個聲音信號的頻率相差一倍時,也即f2=2f1時,則稱f2比f1高一個倍頻程, 在音樂中1(do)與 ,2(來)與 ……正好相差一個倍頻程,在音樂學(xué)中稱它相差一個八度音。在一個八度音內(nèi),有12個半音。以1—i八音區(qū)為例, 12個半音是:1—#1、#1—2、2—#2、#2—3、3—4、4—#4,#4—5、5一#5、#5—6、6—#6、#6—7、7—i。這12個音階的分度基本上是以對數(shù)關(guān)系來劃分的。如果我們只要知道了這十二個音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說來,常采用的方法就是通過單片機(jī)的定時器定時中斷,將單片機(jī)上對應(yīng)蜂鳴器的I/O口來回取反,或者說來回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時器予置不同的定時值就可實現(xiàn)。那么怎樣確定一個頻率所對應(yīng)的定時器的定時值呢?以標(biāo)準(zhǔn)音高A為例:   A的頻率f = 440 Hz,其對應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對應(yīng)蜂鳴器的I/O口來回取反的時間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個時間t也就是單片機(jī)上定時器應(yīng)有的中斷觸發(fā)時間。一般情況下,單片機(jī)奏樂時,其定時器為工作方式1,它以振蕩器的十二分頻信號為計數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時器的予置初值由下式來確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時器待確定的計數(shù)初值。因此定時器的高低計數(shù)器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計算時應(yīng)將時間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來說明。在一張樂譜中,我們經(jīng)常會看到這樣的表達(dá)式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來表示節(jié)拍的。以 為例加以說明,它表示樂譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時長為四分音符的一半,即為八分音符長,3、4的時長為八分音符的一半,即為十六分音符長,5的時長為四分音符的一半,即為八分音符長,6的時長為四分音符長。那么一拍到底該唱多長呢?一般說來,如果樂曲沒有特殊說明,一拍的時長大約為400—500ms 。我們以一拍的時長為400ms為例,則當(dāng)以四分音符為節(jié)拍時,四分音符的時長就為400ms,八分音符的時長就為200ms,十六分音符的時長就為100ms。可見,在單片機(jī)上控制一個音符唱多長可采用循環(huán)延時的方法來實現(xiàn)。首先,我們確定一個基本時長的延時程序,比如說以十六分音符的時長為基本延時時間,那么,對于一個音符,如果它為十六分音符,則只需調(diào)用一次延時程序,如果它為八分音符,則只需調(diào)用二次延時程序,如果它為四分音符,則只需調(diào)用四次延時程序,依次類推。通過上面關(guān)于一個音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實現(xiàn)演奏音樂了。具體的實現(xiàn)方法為:將樂譜中的每個音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲器中,通過程序取出一個音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個音符,根據(jù)需要也可循環(huán)不停地播放整個樂曲。另外,對于樂曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂曲結(jié)束用節(jié)拍參數(shù)為00H來表示。下面給出部分音符(三個八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時器在工作方式1下的定時器高低計數(shù)器的予置初值 : C調(diào)音符  頻率Hz 262 277 293 311 329 349 370 392 415 440 466 494TH/TL F88B F8F2 F95B F9B7 FA14 FA66 FAB9 FB03 FB4A FB8F FBCF FC0BC調(diào)音符 1 1# 2 2# 3 4 4# 5 5# 6 6# 7頻率Hz 523 553 586 621 658 697 739 783 830 879 931 987TH/TL FC43 FC78 FCAB FCDB FD08 FD33 FD5B FD81 FDA5 FDC7 FDE7 FE05C調(diào)音符  頻率Hz 1045 1106 1171 1241 1316 1393 1476 1563 1658 1755 1860 1971TH/TL FB21 FE3C FE55 FE6D FE84 FE99 FEAD FEC0 FE02 FEE3 FEF3 FF02

    標(biāo)簽: 單片機(jī) 音調(diào)

    上傳時間: 2013-10-20

    上傳用戶:哈哈haha

  • 68HC05K0 Infra-red Remote Cont

    The MC68HC05K0 is a low cost, low pin countsingle chip microcomputer with 504 bytes of userROM and 32 bytes of RAM. The MC68HC05K0 isa member of the 68HC05K series of devices whichare available in 16-pin DIL or SOIC packages.It uses the same CPU as the other devices in the68HC05 family and has the same instructions andregisters. Additionally, the device has a 15-stagemulti-function timer and 10 general purposebi-directional I/0 lines. A mask option is availablefor software programmable pull-downs on all ofthe I/O pins and four of the pins are capable ofgenerating interrupts.The device is ideally suited for remote-controlkeyboard applications because the pull-downs andthe interrupt drivers on the port pins allowkeyboards to be built without any externalcomponents except the keys themselves. There isno need for external pull-up or pull-down resistors,or diodes for wired-OR interrupts, as these featuresare already designed into the device.

    標(biāo)簽: Infra-red Remote Cont 05K

    上傳時間: 2014-01-24

    上傳用戶:zl5712176

  • keil c51中文說明

    Keil C51 中文說明:8051 系列微處理器基于簡化的嵌入式控制系統(tǒng)結(jié)構(gòu)被廣泛應(yīng)用于從軍事到自動控制再到PC 機(jī)上的鍵盤上的各種應(yīng)用系統(tǒng)上僅次于Motorola 68HC11 在 8 位微控制器市場上的銷量很多制造商都可提供8051 系列單片機(jī)像Intel Philips Siemens 等這些制造商給51 系列單片機(jī)加入了大量的性能和外部功能像I2C 總線接口模擬量到數(shù)字量的轉(zhuǎn)換看門狗PWM 輸出等不少芯片的工作頻率達(dá)到40M 工作電壓下降到1.5V 基于一個內(nèi)核的這些功能使得8051 單片機(jī)很適合作為廠家產(chǎn)品的基本構(gòu)架它能夠運行各種程序而且開發(fā)者只需要學(xué)習(xí)這一個平臺8051 系列的基本結(jié)構(gòu)如下1 一個8 位算術(shù)邏輯單元2 32 個I/O 口4 組8 位端口可單獨尋址3 兩個16 位定時計數(shù)器4 全雙工串行通信5 6 個中斷源兩個中斷優(yōu)先級6 128 字節(jié)內(nèi)置RAM7 獨立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū)每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項操作如取指令和計算指令執(zhí)行時間可把時鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時鐘是11.059MHz 除以12 后就得到了每秒執(zhí)行的指令個數(shù)為921583條指令取倒數(shù)將得到每條指令所須的時間1.085ms.

    標(biāo)簽: keil c51

    上傳時間: 2013-10-24

    上傳用戶:xauthu

  • 微型計算機(jī)課程設(shè)計論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計

    微型計算機(jī)課程設(shè)計論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計 本文講述了在微型計算機(jī)中利用可編程時間間隔定時器的通用發(fā)聲程序設(shè)計,重點講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動畫程序原理,并以設(shè)計一個簡單的樂曲評分程序為引子,分析程序設(shè)計的細(xì)節(jié)。關(guān)鍵字:微機(jī) 8253 通用發(fā)聲程序 動畫技術(shù) 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機(jī)中,有一個可編程時間間隔定時器8253,它能夠根據(jù)程序提供的計數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計數(shù)/定時脈沖,提供給系統(tǒng)各個部件使用。本設(shè)計是利用計算機(jī)控制發(fā)聲的原理,編寫演奏樂曲的程序。    在8253/54定時器內(nèi)部有3個獨立工作的計數(shù)器:計數(shù)器0,計數(shù)器1和計數(shù)器2,每個計數(shù)器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內(nèi)部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數(shù)器和控制器尋址.     對8353/54編程時,先要設(shè)定控制字,以選擇計數(shù)器,確定工作方式和計數(shù)值的格式.每計數(shù)器由三個引腳與外部聯(lián)系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數(shù)/定時信號輸入端.每個計數(shù)器中包含一個16位計數(shù)寄存器,這個計數(shù)器時以倒計數(shù)的方式計數(shù)的,也就是說,從計數(shù)初值逐次減1,直到減為0為止.     8253/54的三個計數(shù)器是分別編程的,在對任一個計數(shù)器編程時,必須首先講控制字節(jié)寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數(shù)器輸入一個計數(shù)初值,因為這個計數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數(shù)器2設(shè)定為方式3,(關(guān)于計數(shù)器的工作方式參閱教材第325—330頁)計數(shù)初值為65536.    MOV   AL,10110110B ;選擇計數(shù)器2,按方式3工作,計數(shù)值是二進(jìn)制格式    OUT   43H,AL      ; j將控制字送入控制寄存器    MOV   AL,0        ;計數(shù)初值為0    OUT   42H,AL      ;將計數(shù)初值的低字節(jié)送入計數(shù)器2    OUT   42H,AL      ;將計數(shù)初值的高字節(jié)送入計數(shù)器2    在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機(jī)上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關(guān)于8255A的結(jié)構(gòu)和工作原理及應(yīng)用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機(jī)中的揚(yáng)聲器接口電路”一節(jié)介紹了揚(yáng)聲器的驅(qū)動原理,并給出了通用發(fā)聲程序.本設(shè)計正是基于這個原理,通過編程,控制加到揚(yáng)聲器上的信號的頻率,奏出樂曲的.2.發(fā)聲程序的設(shè)計下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:MOV      AL, 10110110B   ;8253控制字:通道2,先寫低字節(jié),后寫高字節(jié)        ;方式3,二進(jìn)制計數(shù)OUT      43H, AL                  ;寫入控制字MOV      DX, 0012H               ;被除數(shù)高位MOV      AX, 35DEH              ;被除數(shù)低位 DIV      ID      ;求計數(shù)初值n,結(jié)果在AX中OUT      42H, AL     ;送出低8位MOV      AL, AHOUT      42H,AL     ;送出高8位IN      AL, 61H     ;讀入8255A端口B的內(nèi)容MOV      AH, AL                  ;保護(hù)B口的原狀態(tài)OR  AL, 03H     ;使B口后兩位置1,其余位保留OUT 61H,AL     ;接通揚(yáng)聲器,使它發(fā)聲

    標(biāo)簽: 微型計算機(jī) 發(fā)聲程序 論文 微機(jī)

    上傳時間: 2013-10-17

    上傳用戶:sunjet

  • pic單片機(jī)實用教程(提高篇)

    pic單片機(jī)實用教程(提高篇)以介紹PIC16F87X型號單片機(jī)為主,并適當(dāng)兼顧PIC全系列,共分9章,內(nèi)容包括:存儲器;I/O端口的復(fù)位功能;定時器/計數(shù)器TMR1;定時器TMR2;輸入捕捉/輸出比較/脈寬調(diào)制CCP;模/數(shù)轉(zhuǎn)換器ADC;通用同步/異步收發(fā)器USART;主控同步串行端口MSSP:SPI模式和I2C模式。突出特點:通俗易懂、可讀性強(qiáng)、系統(tǒng)全面、學(xué)練結(jié)合、學(xué)用并重、實例豐富、習(xí)題齊全。<br>本書作為Microchip公司大學(xué)計劃選擇用書,可廣泛適用于初步具備電子技術(shù)基礎(chǔ)和計算機(jī)知識基礎(chǔ)的學(xué)生、教師、單片機(jī)愛好者、電子制作愛好者、電器維修人員、電子產(chǎn)品開發(fā)設(shè)計者、工程技術(shù)人員閱讀。本教程全書共分2篇,即基礎(chǔ)篇和提高篇,分2冊出版,以適應(yīng)不同課時和不同專業(yè)的需要,也為教師和讀者增加了一種可選方案。 第1章 EEPROM數(shù)據(jù)存儲器和FIASH程序存儲器1.1 背景知識1.1.1 通用型半導(dǎo)體存儲器的種類和特點1.1.2 PIC單片機(jī)內(nèi)部的程序存儲器1.1.3 PIC單片機(jī)內(nèi)部的EEPROM數(shù)據(jù)存儲器1.1.4 PIC16F87X內(nèi)部EEPROM和FIASH操作方法1.2 與EEPROM相關(guān)的寄存器1.3 片內(nèi)EEPROM數(shù)據(jù)存儲器結(jié)構(gòu)和操作原理1.3.1 從EEPROM中讀取數(shù)據(jù)1.3.2 向EEPROM中燒寫數(shù)據(jù)1.4 與FLASH相關(guān)的寄存器1.5 片內(nèi)FLASH程序存儲器結(jié)構(gòu)和操作原理1.5.1 讀取FLASH程序存儲器1.5.2 燒寫FLASH程序存儲器1.6 寫操作的安全保障措施1.6.1 寫入校驗方法1.6.2 預(yù)防意外寫操作的保障措施1.7 EEPROM和FLASH應(yīng)用舉例1.7.1 EEPROM的應(yīng)用1.7.2 FIASH的應(yīng)用思考題與練習(xí)題第2章 輸入/輸出端口的復(fù)合功能2.1 RA端口2.1.1 與RA端口相關(guān)的寄存器2.1.2 電路結(jié)構(gòu)和工作原理2.1.3 編程方法2.2 RB端口2.2.1 與RB端口相關(guān)的寄存器2.2.2 電路結(jié)構(gòu)和工作原理2.2.3 編程方法2.3 RC端口2.3.1 與RC端口相關(guān)的寄存器2.3.2 電路結(jié)構(gòu)和工作原理2.3.3 編程方法2.4 RD端口2.4.1 與RD端口相關(guān)的寄存器2.4.2 電路結(jié)構(gòu)和工作原理2.4.3 編程方法2.5 RE端口2.5.1 與RE端口相關(guān)的寄存器2.5.2 電路結(jié)構(gòu)和工作原理2.5.3 編程方法2.6 PSP并行從動端口2.6.1 與PSP端口相關(guān)的寄存器2.6.2 電路結(jié)構(gòu)和工作原理2.7 應(yīng)用舉例思考題與練習(xí)題第3章 定時器/計數(shù)器TMR13.1 定時器/計數(shù)器TMR1模塊的特性3.2 定時器/計數(shù)器TMR1模塊相關(guān)的寄存器3.3 定時器/計數(shù)器TMR1模塊的電路結(jié)構(gòu)3.4 定時器/計數(shù)器TMR1模塊的工作原理3.4.1 禁止TMR1工作3.4.2 定時器工作方式3.4.3 計數(shù)器工作方式3.4.4 TMR1寄存器的賦值與復(fù)位3.5 定時器/計數(shù)器TMR1模塊的應(yīng)用舉例思考題與練習(xí)題第4章 定時器TMR24.1 定時器TMR2模塊的特性4.2 定時器TMR2模塊相關(guān)的寄存器4.3 定時器TMR2模塊的電路結(jié)構(gòu)4.4 定時器TMR2模塊的工作原理4.4.1 禁止TMR2工作4.4.2 定時器工作方式4.4.3 寄存器TMR2和PR2以及分頻器的復(fù)位4.4.4 TMR2模塊的初始化編程4.5 定時器TMR2模塊的應(yīng)用舉例思考題與練習(xí)題第5章 輸入捕捉/輸出比較/脈寬調(diào)制CCP5.1 輸入捕捉工作模式5.1.1 輸入捕捉摸式相關(guān)的寄存器5.1.2 輸入捕捉模式的電路結(jié)構(gòu)5.1.3 輸入捕捉摸式的工作原理5.1.4 輸入捕捉摸式的應(yīng)用舉例5.2 輸出比較工作模式5.2.1 輸出比較模式相關(guān)的寄存器5.2.2 輸出比較模式的電路結(jié)構(gòu)5.2.3 輸出比較模式的工作原理5.2.4 輸出比較模式的應(yīng)用舉例5.3 脈寬調(diào)制輸出工作模式5.3.1 脈寬調(diào)制模式相關(guān)的寄存器5.3.2 脈寬調(diào)制模式的電路結(jié)構(gòu)5.3.3 脈寬調(diào)制模式的工作原理5.3.4 脈定調(diào)制模式的應(yīng)用舉例5.4 兩個CCP模塊之間相互關(guān)系思考題與練習(xí)題第6章 模/數(shù)轉(zhuǎn)換器ADC6.1 背景知識6.1.1 ADC種類與特點6.1.2 ADC器件的工作原理6.2 PIC16F87X片內(nèi)ADC模塊6.2.1 ADC模塊相關(guān)的寄存器6.2.2 ADC模塊結(jié)構(gòu)和操作原理6.2.3 ADC模塊操作時間要求6.2.4 特殊情況下的A/D轉(zhuǎn)換6.2.5 ADC模塊的轉(zhuǎn)換精度和分辨率6.2.6 ADC模塊的內(nèi)部動作流程和傳遞函數(shù)6.2.7 ADC模塊的操作編程6.3 PIC16F87X片內(nèi)ADC模塊的應(yīng)用舉例思考題與練習(xí)題第7章 通用同步/異步收發(fā)器USART7.1 串行通信的基本概念7.1.1 串行通信的兩種基本方式7.1.2 串行通信中數(shù)據(jù)傳送方向7.1.3 串行通信中的控制方式7.1.4 串行通信中的碼型、編碼方式和幀結(jié)構(gòu)7.1.5 串行通信中的檢錯和糾錯方式7.1.6 串行通信組網(wǎng)方式7.1.7 串行通信接口電路和參數(shù)7.1.8 串行通信的傳輸速率7.2 PIC16F87X片內(nèi)通用同步/異步收發(fā)器USART模塊7.2.1 與USART模塊相關(guān)的寄存器7.2.2 USART波特率發(fā)生器BRG7.2.3 USART模塊的異步工作方式7.2.4 USART模塊的同步主控工作方式7.2.5 USART模塊的同步從動工作方式7.3 通用同步/異步收發(fā)器USART的應(yīng)用舉例思考題與練習(xí)題第8章 主控同步串行端口MSSP——SPI模式8.1 SPI接口的背景知識8.1.1 SPI接口信號描述8.1.2 基于SPI的系統(tǒng)構(gòu)成方式8.1.3 SPI接口工作原理8.1.4 兼容的MicroWire接口8.2 PIC16F87X的SPI接口8.2.1 SPI接口相關(guān)的寄存器8.2.2 SPI接口的結(jié)構(gòu)和操作原理8.2.3 SPI接口的主控方式8.2.4 SPI接口的從動方式8.3 SPI接口的應(yīng)用舉例思考題與練習(xí)題第9章 主控同步串行端口MSSP——I(平方)C模式9.1 I(平方)C總線的背景知識9.1.1 名詞術(shù)語9.1.2 I(平方)C總線的技術(shù)特點9.1.3 I(平方)C總線的基本工作原理9.1.4 I(平方)C總線信號時序分析9.1.5 信號傳送格式9.1.6 尋址約定9.1.7 技術(shù)參數(shù)9.1.8 I(平方)C器件與I(平方)C總線的接線方式9.1.9 相兼容的SMBus總線9.2 與I(平方)C總線相關(guān)的寄存器9.3 典型信號時序的產(chǎn)生方法9.3.1 波特率發(fā)生器9.3.2 啟動信號9.3.3 重啟動信號9.3.4 應(yīng)答信號9.3.5 停止信號9.4 被控器通信方式9.4.1 硬件結(jié)構(gòu)9.4.2 被主控器尋址9.4.3 被控器接收——被控接收器9.4.4 被控器發(fā)送——被控發(fā)送器9.4.5 廣播式尋址9.5 主控器通信方式9.5.1 硬件結(jié)構(gòu)9.5.2 主控器發(fā)送——主控發(fā)送器9.5.3 主控器接收——主控接收器9.6 多主通信方式下的總線沖突和總線仲裁9.6.1 發(fā)送和應(yīng)答過程中的總線沖突9.6.2 啟動過程中的總線沖突9.6.3 重啟動過程中的總線沖突9.6.4 停止過程中的總線沖突9.7 I(平方)C總線的應(yīng)用舉例思考題與練習(xí)題附錄A 包含文件P16F877.INC附錄B 新版宏匯編器MPASM偽指令總表參考文獻(xiàn)

    標(biāo)簽: pic 單片機(jī) 實用教程

    上傳時間: 2013-12-14

    上傳用戶:xiaoyuer

  • 單片機(jī)應(yīng)用技術(shù)選編1

    單片機(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ù)模式+教程

    九.輸入/輸出保護(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é)束處理。

    標(biāo)簽: 匯編 保護(hù)模式 教程

    上傳時間: 2013-12-11

    上傳用戶:nunnzhy

  • 51單片機(jī)驅(qū)動步進(jìn)電機(jī)(含電路圖和C語言源程序代碼)

    51單片機(jī)驅(qū)動步進(jìn)電機(jī)(含電路圖和源程序代碼) 源程序:stepper.c stepper.hex /* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */ #i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.h register unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n; unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400 /* flag1 mask byte 0x01 run cw() 0x02 run ccw() */

    標(biāo)簽: 51單片機(jī) 驅(qū)動 步進(jìn)電機(jī) C語言

    上傳時間: 2013-11-09

    上傳用戶:釣鰲牧馬

主站蜘蛛池模板: 华容县| 沧源| 西乌| 凉山| 澎湖县| 房山区| 黄龙县| 乌什县| 唐山市| 洞口县| 河北省| 威远县| 双鸭山市| 若尔盖县| 枣强县| 棋牌| 珠海市| 裕民县| 雷波县| 遂宁市| 林西县| 苏州市| 多伦县| 顺昌县| 郑州市| 波密县| 达拉特旗| 黄浦区| 昌黎县| 孟州市| 白玉县| 罗江县| 定日县| 蕲春县| 囊谦县| 通道| 丰都县| 汉川市| 调兵山市| 清水县| 光山县|