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

蟲(chóng)蟲(chóng)首頁(yè)| 資源下載| 資源專(zhuān)輯| 精品軟件
登錄| 注冊(cè)

標(biāo)(biāo)準(zhǔn)(zhǔn)化的

  • PCA9535 PCA9535C—帶中斷的低功耗16位I2C

    PCA9535/ PCA9535C是24腳的CMOS器件,它們提供了I2C/SMBus應(yīng)用中的16位通用并行輸入/輸出口(GPIO)的擴(kuò)展,該器件使PHILIPS的I2C I/O擴(kuò)展器件系列得到增強(qiáng)。改進(jìn)的特性包括更高的驅(qū)動(dòng)能力、5V I/O口、更低的電源電流、單獨(dú)的I/O口配置、更小的封裝形式。當(dāng)應(yīng)用中需要額外的I/O口來(lái)連接ACPI電源開(kāi)關(guān)、傳感器、按鈕、LED、風(fēng)扇等時(shí),可使用I/O擴(kuò)展器件實(shí)現(xiàn)簡(jiǎn)單的解決方案。

    標(biāo)簽: 9535 PCA 9535C I2C

    上傳時(shí)間: 2013-10-16

    上傳用戶(hù):604759954

  • 多功能高集成外圍器件

     多功能高集成外圍器件6. 1  多功能高集成外圍器件82371PCI的英文名稱(chēng):Peripheral Component Interconnect (外圍部件互聯(lián)PCI總線(xiàn));82371是PCI總線(xiàn)組件。ISA是:Industry Standard Architecture(工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu))IDE是 (Integrated Device Electronics)集成電路設(shè)備簡(jiǎn)稱(chēng)PIIX4PIIX4器件(芯片)的特點(diǎn)1、是一種支持Pentium和PentiumII微處理器的部件。2、82371對(duì)ISA橋來(lái)說(shuō),是一種多功能PCI總線(xiàn)。3、對(duì)可移動(dòng)性和桌面深綠色環(huán)境均提供支持。4、電源管理邏輯。5、被集成化的IDE控制器。6、增強(qiáng)了性能的DMA控制器。 (7)基于兩個(gè)82C59的中斷控制器。(8)基于82C54芯片的定時(shí)器。(9)USB(Universal Serial Bus)通用串行總線(xiàn)。(10)SMBus系統(tǒng)管理總線(xiàn)。(11)實(shí)時(shí)時(shí)鐘(12)順應(yīng)Microsoft Win95所需的功能其芯片的邏輯框圖如圖6-1所示。    PIIX4芯片邏輯框圖6.1.1   概述PIIX4芯片是一個(gè)多功能的PCI器件,圖6-2 是82371在系統(tǒng)中扮演的角色。(續(xù)上圖)1. PCI與EIO之間的橋(PIIX4芯片)橋是不對(duì)程的,是各類(lèi)不同標(biāo)準(zhǔn)總線(xiàn)與PCI總線(xiàn)連接,82371AB橋也可理解為一種總線(xiàn)轉(zhuǎn)換譯碼器和控制器,橋內(nèi)包含復(fù)雜的協(xié)議總線(xiàn)信號(hào)和緩沖器。(1).在PCI系統(tǒng)內(nèi),當(dāng)PIIX4操作時(shí),它總是作為系統(tǒng)內(nèi)各種模塊的主控設(shè)備,如USB和DMA控制器、IDE總線(xiàn)和分布式DMA的主控設(shè)備等,而且總是以ISA主控設(shè)備的名義出現(xiàn)。(2).  在向ISA總線(xiàn)或IDE總線(xiàn)進(jìn)行傳送操作的傳送周期期間作為從屬設(shè)備使用,并對(duì)內(nèi)部寄存器譯碼。PIIX4芯片(橋)的配置(1).可以把PIIX4芯片配置成整個(gè)ISA總線(xiàn),或ISA總線(xiàn)的子集,也可擴(kuò)展成EIO總線(xiàn)。在使用EIO總線(xiàn)時(shí),可以把未使用的信號(hào)配置成通用的輸入和輸出。(2).PIIX4可直接驅(qū)動(dòng)5個(gè)ISA插槽;(3).能提供字節(jié)-交換邏輯、I/O的恢復(fù)支持、等待狀態(tài)的生成以及SYSCLK的生成。(4).提供X-BUS鍵盤(pán)控制器芯片、BIOS芯片、實(shí)時(shí)時(shí)鐘芯片、二級(jí)微程序器等的選擇。2.  IDE接口(總線(xiàn)主控設(shè)備的權(quán)利和同步DMA方式)IDE接口為4個(gè)IDE的設(shè)備提供支持,比如IDE接口的硬盤(pán)和CD-ROM等。注意:目前硬盤(pán)接口有5類(lèi):IDE、SCSI、Fibre Channel、IEEE1394和USB等。IDE口幾乎在PC機(jī)最多,因?yàn)楸阋恕CSI多用于服務(wù)器和集群機(jī)。IDE的PIO IDE速率:14MB/s;而總線(xiàn)主控設(shè)備IDE的速率:33MB/s在PIIX4芯片的IDE系統(tǒng)內(nèi),配有兩個(gè)各次獨(dú)立的IDE信號(hào)通道。3. 具有兼容性的模塊—DMA、定時(shí)器/計(jì)數(shù)器、中斷控制器等(1)在PIIX4內(nèi)的兩各82C37 DMA控制器經(jīng)邏輯的組合,產(chǎn)生7個(gè)獨(dú)立的可編程通道。通道[0:3]是通過(guò)與8個(gè)二進(jìn)位的硬件連線(xiàn)實(shí)現(xiàn)的。通過(guò)以字節(jié)為單位的計(jì)數(shù)進(jìn)行傳送。而通道[5:7]是通過(guò)16個(gè)二進(jìn)位的連線(xiàn)實(shí)現(xiàn)的,以字為單位的計(jì)數(shù)進(jìn)行傳送。(2)DMA控制器還能通過(guò)PCI總線(xiàn),處理舊的DMA的兩個(gè)不同的方法提供支持。(3)計(jì)數(shù)/定時(shí)器模塊在功能上與82C54等價(jià)。(4)中斷控制器與ISA兼容,其功能是兩個(gè)82C59的功能之和。

    標(biāo)簽: 多功能 外圍器件 集成

    上傳時(shí)間: 2013-11-19

    上傳用戶(hù):3到15

  • 微機(jī)燈光控制系統(tǒng)

    一、實(shí)驗(yàn)?zāi)康模保莆斩〞r(shí)/計(jì)數(shù)器、輸入/輸出接口電路設(shè)計(jì)方法。    2.掌握中斷控制編程技術(shù)的方法和應(yīng)用。3.掌握8086匯編語(yǔ)言程序設(shè)計(jì)方法。 二、實(shí)驗(yàn)內(nèi)容與要求 微機(jī)燈光控制系統(tǒng)主要用于娛樂(lè)場(chǎng)所的彩燈控制。系統(tǒng)的彩燈共有12組,在實(shí)驗(yàn)時(shí)用12個(gè)發(fā)光二極管模擬。1. 基本要求:燈光控制共有8種模式,如12個(gè)燈依次點(diǎn)亮;12個(gè)燈同時(shí)閃爍等八種。系統(tǒng)可以通過(guò)鍵盤(pán)和顯示屏的人機(jī)對(duì)話(huà),將8種模式進(jìn)行任意個(gè)數(shù)、任意次序的連接組合。系統(tǒng)不斷重復(fù)執(zhí)行輸入的模式組合,直至鍵盤(pán)有任意一個(gè)鍵按下,退出燈光控制系統(tǒng),返回DOS系統(tǒng)。2. 提高要求:音樂(lè)彩燈控制系統(tǒng),根據(jù)音樂(lè)的變化控制彩燈的變化,主要有以下幾種:第一種為音樂(lè)節(jié)奏控制彩燈,按音樂(lè)的節(jié)拍變換彩燈花樣。第二種音律的強(qiáng)弱(信號(hào)幅度大小)控制彩燈。強(qiáng)音時(shí),燈的亮度加大,且被點(diǎn)亮的數(shù)目增多。第三種按音調(diào)高低(信號(hào)頻率高低)控制彩燈。低音時(shí),某一部分燈點(diǎn)亮;高音時(shí),另一部分點(diǎn)亮。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線(xiàn)圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問(wèn)題及解決的方法) 四、設(shè)計(jì)原理我們以背景霓虹燈的一種顯示效果為例,介紹控制霓虹燈顯示的基本原理。設(shè)有一排 n 段水平排列的霓虹燈,某種顯示方式為從左到右每0.2 秒逐個(gè)點(diǎn)亮。其控制過(guò)程如下: 若以“ 1 ”代表霓虹燈點(diǎn)亮,以“ 0 ”代表霓虹燈熄滅,則開(kāi)始時(shí)刻, n 段霓虹燈的控制信號(hào)均為“ 0 ”,隨后,控制器將一幀 n 個(gè)數(shù)據(jù)送至 n 段霓虹燈的控制端,其中,最左邊的一段霓虹燈對(duì)應(yīng)的控制數(shù)據(jù)為“ 1 ”,其余的數(shù)據(jù)均為零,即 1000 … 000 。當(dāng) n 個(gè)數(shù)據(jù)送完以后,控制器停止送數(shù),保留這種狀態(tài)(定時(shí)) 0.2 秒,此時(shí),第 1 段霓虹燈被點(diǎn)亮,其余霓虹燈熄滅。隨后,控制器又在極短的時(shí)間內(nèi)將數(shù)據(jù) 1100 … 000 送至霓虹燈的控制端,并定時(shí) 0.2 秒,這段時(shí)間,前兩段霓虹燈被點(diǎn)亮。由于送數(shù)據(jù)的過(guò)程很快,我們觀測(cè)到的效果是第一段霓虹燈被點(diǎn)亮 0.2 秒后,第 2 段霓虹燈接著被點(diǎn)亮,即每隔 0.2 秒顯示一幀圖樣。如此下去,最后控制器將數(shù)據(jù) 1111 … 111 送至 n 段霓虹燈的控制端,則 n 段霓虹燈被全部點(diǎn)亮。 只要改變送至每段霓虹燈的數(shù)據(jù),即可改變霓虹燈的顯示方式,顯然,我們可以通過(guò)合理地組合數(shù)據(jù)(編程)來(lái)得到霓虹燈的不同顯示方式。 五、總體方案論證分析系統(tǒng)設(shè)計(jì)思路如下:1) 采集8位開(kāi)關(guān)輸入信號(hào),若輸入數(shù)據(jù)為0時(shí),將其修改為1。確定輸入的硬件接口電路。采樣輸入開(kāi)關(guān)量,并存入NUM的軟件程序段。2) 以12個(gè)燈依次點(diǎn)亮為例(即燈光控制模式M1),考慮與其相應(yīng)的燈光顯示代碼數(shù)據(jù)。確定顯示代碼數(shù)據(jù)輸出的接口電路。輸出一個(gè)同期顯示代碼的軟件程序段(暫不考慮時(shí)隙的延時(shí)要求)。3) 應(yīng)用定時(shí)中斷服務(wù)和NUM數(shù)據(jù),實(shí)現(xiàn)t=N×50ms的方法。4) 實(shí)現(xiàn)某一種模式燈光顯示控制中12個(gè)時(shí)隙一個(gè)周期,共重復(fù)四次的控制方法。要求在初始化時(shí)采樣開(kāi)關(guān)輸入數(shù)據(jù)NUM,并以此控制每一時(shí)隙的延時(shí)時(shí)間;在每一時(shí)隙結(jié)束時(shí),檢查有無(wú)鍵按下,若是退出鍵按下,則結(jié)束燈光控制,返回DOS系統(tǒng),若是其他鍵就返回主菜單,重新輸入控制模式數(shù)據(jù)。5) 通過(guò)人機(jī)對(duì)話(huà),輸入8種燈光顯示控制模式的任意個(gè)數(shù)、任意次序連接組合的控制模式數(shù)據(jù)串(以ENTER鍵結(jié)尾)。對(duì)輸入的數(shù)據(jù)進(jìn)行檢查,若數(shù)據(jù)都在1 - 8之間,則存入INBUF;若有錯(cuò)誤,則通過(guò)屏幕顯示輸入錯(cuò)誤,準(zhǔn)備重新輸入燈光顯示控制模式數(shù)據(jù)。6) 依次讀取INBUF中的控制模式數(shù)據(jù)進(jìn)行不同模式的燈光顯示控制,在沒(méi)有任意鍵按下的情況下,系統(tǒng)從第一個(gè)控制模式數(shù)據(jù)開(kāi)始,順序工作到最后一個(gè)控制模式數(shù)據(jù)后,又返回到第一個(gè)控制模式數(shù)據(jù),不斷重復(fù)循環(huán)進(jìn)行燈光顯示控制。7) 本系統(tǒng)的軟件在總體上有兩部份,即主程序(MAIN)和實(shí)時(shí)中斷服務(wù)程序(INTT)。討論以功能明確、相互界面分割清晰的軟件程序模塊化設(shè)計(jì)方法。即確定有關(guān)功能模塊,并畫(huà)出以功能模塊表示的主程序(MAIN)流程框圖和定時(shí)中斷服務(wù)程序的流程框圖。    六、硬件電路設(shè)計(jì)   以微機(jī)實(shí)驗(yàn)平臺(tái)和PC機(jī)資源為硬件設(shè)計(jì)的基礎(chǔ),不需要外加電路。主要利用了以下的資源:1.8255并行口電路8255并行口電路主要負(fù)責(zé)數(shù)據(jù)的輸入與輸出,可以輸出數(shù)據(jù)控制發(fā)光二極管的亮滅和讀取乒乓開(kāi)關(guān)的數(shù)據(jù)。實(shí)驗(yàn)時(shí)可以將8255的A口、B口和一組發(fā)光二極管相連,C口和乒乓開(kāi)關(guān)相連。2.8253定時(shí)/計(jì)數(shù)器8253定時(shí)/計(jì)數(shù)器和8259中斷控制器一起實(shí)現(xiàn)時(shí)隙定時(shí)。本設(shè)計(jì)的定時(shí)就是采用的t=N×50ms的方法,50ms由8253定時(shí)/計(jì)數(shù)器的計(jì)數(shù)器0控制定時(shí),N是在中斷服務(wù)程序中軟件計(jì)時(shí)。8253的OUT0接到IRQ2,產(chǎn)生中斷請(qǐng)求信號(hào)。8253定時(shí)/計(jì)數(shù)器定時(shí)結(jié)束會(huì)發(fā)出中斷信號(hào),進(jìn)入中斷服務(wù)程序。3.PC機(jī)資源本設(shè)計(jì)除了利用PC機(jī)作為控制器之外,還利用了PC機(jī)的鍵盤(pán)和顯示器。鍵盤(pán)主要是輸入控制模式數(shù)據(jù),顯示器就是顯示提示信息。   七、軟件設(shè)計(jì)   軟件主要分為主程序(MAIN)和中斷服務(wù)程序(INTT),主程序包含系統(tǒng)初始化、讀取乒乓開(kāi)關(guān)、讀取控制模式數(shù)據(jù)以及按鍵處理等模塊。中斷服務(wù)程序主要是定時(shí)時(shí)間到后根據(jù)控制模式數(shù)據(jù)點(diǎn)亮相應(yīng)的發(fā)光二極管。1.主程序主程序的程序流程圖如圖1所示。

    標(biāo)簽: 微機(jī) 燈光控制

    上傳時(shí)間: 2014-04-05

    上傳用戶(hù):q986086481

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

    單片機(jī)音樂(lè)中音調(diào)和節(jié)拍的確定方法:調(diào)號(hào)-音樂(lè)上指用以確定樂(lè)曲主音高度的符號(hào)。很明顯一個(gè)八度就有12個(gè)半音。A、B、C、D、E、F、G。經(jīng)過(guò)聲學(xué)家的研究,全世界都用這些字母來(lái)表示固定的音高。比如,A這個(gè)音,標(biāo)準(zhǔn)的音高為每秒鐘振動(dòng)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,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同A一樣高,人們也把這首歌曲叫做A調(diào)歌曲,或叫“唱A調(diào)”。1=C,就是說(shuō),這首歌曲的“導(dǎo)”要唱得同C一樣高,或者說(shuō)“這歌曲唱C調(diào)”。同樣是“導(dǎo)”,不同的調(diào)唱起來(lái)的高低是不一樣的。各調(diào)的對(duì)應(yīng)的標(biāo)準(zhǔn)頻率為: 單片機(jī)演奏音樂(lè)時(shí)音調(diào)和節(jié)拍的確定方法 經(jīng)常看到一些剛學(xué)單片機(jī)的朋友對(duì)單片機(jī)演奏音樂(lè)比較有興趣,本人也曾是這樣。在此,本人將就這方面的知識(shí)做一些簡(jiǎn)介,但愿能對(duì)單片機(jī)演奏音樂(lè)比較有興趣而又不知其解的朋友能有所啟迪。 一般說(shuō)來(lái),單片機(jī)演奏音樂(lè)基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說(shuō)不能象電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂(lè)只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和“節(jié)拍”。音調(diào)表示一個(gè)音符唱多高的頻率,節(jié)拍表示一個(gè)音符唱多長(zhǎng)的時(shí)間。 在音樂(lè)中所謂“音調(diào)”,其實(shí)就是我們常說(shuō)的“音高”。在音樂(lè)中常把中央C上方的A音定為標(biāo)準(zhǔn)音高,其頻率f=440Hz。當(dāng)兩個(gè)聲音信號(hào)的頻率相差一倍時(shí),也即f2=2f1時(shí),則稱(chēng)f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱(chēng)它相差一個(gè)八度音。在一個(gè)八度音內(nèi),有12個(gè)半音。以1—i八音區(qū)為例, 12個(gè)半音是: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個(gè)音階的分度基本上是以對(duì)數(shù)關(guān)系來(lái)劃分的。如果我們只要知道了這十二個(gè)音符的音高,也就是其基本音調(diào)的頻率,我們就可根據(jù)倍頻程的關(guān)系得到其他音符基本音調(diào)的頻率。 知道了一個(gè)音符的頻率后,怎樣讓單片機(jī)發(fā)出相應(yīng)頻率的聲音呢?一般說(shuō)來(lái),常采用的方法就是通過(guò)單片機(jī)的定時(shí)器定時(shí)中斷,將單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反,或者說(shuō)來(lái)回清零,置位,從而讓蜂鳴器發(fā)出聲音,為了讓單片機(jī)發(fā)出不同頻率的聲音,我們只需將定時(shí)器予置不同的定時(shí)值就可實(shí)現(xiàn)。那么怎樣確定一個(gè)頻率所對(duì)應(yīng)的定時(shí)器的定時(shí)值呢?以標(biāo)準(zhǔn)音高A為例:   A的頻率f = 440 Hz,其對(duì)應(yīng)的周期為:T = 1/ f = 1/440 =2272μs 由上圖可知,單片機(jī)上對(duì)應(yīng)蜂鳴器的I/O口來(lái)回取反的時(shí)間應(yīng)為:t = T/2 = 2272/2 = 1136μs這個(gè)時(shí)間t也就是單片機(jī)上定時(shí)器應(yīng)有的中斷觸發(fā)時(shí)間。一般情況下,單片機(jī)奏樂(lè)時(shí),其定時(shí)器為工作方式1,它以振蕩器的十二分頻信號(hào)為計(jì)數(shù)脈沖。設(shè)振蕩器頻率為f0,則定時(shí)器的予置初值由下式來(lái)確定:    t = 12 *(TALL – THL)/ f0 式中TALL = 216 = 65536,THL為定時(shí)器待確定的計(jì)數(shù)初值。因此定時(shí)器的高低計(jì)數(shù)器的初值為:     TH = THL / 256 = ( TALL – t* f0/12) / 256    TL = THL % 256 = ( TALL – t* f0/12) %256  將t=1136μs代入上面兩式(注意:計(jì)算時(shí)應(yīng)將時(shí)間和頻率的單位換算一致),即可求出標(biāo)準(zhǔn)音高A在單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(shù)器的予置初值為 :    TH440Hz = (65536 – 1136 * 12/12) /256 = FBH    TL440Hz = (65536 – 1136 * 12/12)%256 = 90H根據(jù)上面的求解方法,我們就可求出其他音調(diào)相應(yīng)的計(jì)數(shù)器的予置初值。 音符的節(jié)拍我們可以舉例來(lái)說(shuō)明。在一張樂(lè)譜中,我們經(jīng)常會(huì)看到這樣的表達(dá)式,如1=C  、1=G …… 等等,這里1=C,1=G表示樂(lè)譜的曲調(diào),和我們前面所談的音調(diào)有很大的關(guān)聯(lián), 、 就是用來(lái)表示節(jié)拍的。以 為例加以說(shuō)明,它表示樂(lè)譜中以四分音符為節(jié)拍,每一小結(jié)有三拍。比如:      其中1 、2 為一拍,3、4、5為一拍,6為一拍共三拍。1 、2的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),3、4的時(shí)長(zhǎng)為八分音符的一半,即為十六分音符長(zhǎng),5的時(shí)長(zhǎng)為四分音符的一半,即為八分音符長(zhǎng),6的時(shí)長(zhǎng)為四分音符長(zhǎng)。那么一拍到底該唱多長(zhǎng)呢?一般說(shuō)來(lái),如果樂(lè)曲沒(méi)有特殊說(shuō)明,一拍的時(shí)長(zhǎng)大約為400—500ms 。我們以一拍的時(shí)長(zhǎng)為400ms為例,則當(dāng)以四分音符為節(jié)拍時(shí),四分音符的時(shí)長(zhǎng)就為400ms,八分音符的時(shí)長(zhǎng)就為200ms,十六分音符的時(shí)長(zhǎng)就為100ms。可見(jiàn),在單片機(jī)上控制一個(gè)音符唱多長(zhǎng)可采用循環(huán)延時(shí)的方法來(lái)實(shí)現(xiàn)。首先,我們確定一個(gè)基本時(shí)長(zhǎng)的延時(shí)程序,比如說(shuō)以十六分音符的時(shí)長(zhǎng)為基本延時(shí)時(shí)間,那么,對(duì)于一個(gè)音符,如果它為十六分音符,則只需調(diào)用一次延時(shí)程序,如果它為八分音符,則只需調(diào)用二次延時(shí)程序,如果它為四分音符,則只需調(diào)用四次延時(shí)程序,依次類(lèi)推。通過(guò)上面關(guān)于一個(gè)音符音調(diào)和節(jié)拍的確定方法,我們就可以在單片機(jī)上實(shí)現(xiàn)演奏音樂(lè)了。具體的實(shí)現(xiàn)方法為:將樂(lè)譜中的每個(gè)音符的音調(diào)及節(jié)拍變換成相應(yīng)的音調(diào)參數(shù)和節(jié)拍參數(shù),將他們做成數(shù)據(jù)表格,存放在存儲(chǔ)器中,通過(guò)程序取出一個(gè)音符的相關(guān)參數(shù),播放該音符,該音符唱完后,接著取出下一個(gè)音符的相關(guān)參數(shù)……,如此直到播放完畢最后一個(gè)音符,根據(jù)需要也可循環(huán)不停地播放整個(gè)樂(lè)曲。另外,對(duì)于樂(lè)曲中的休止符,一般將其音調(diào)參數(shù)設(shè)為FFH,F(xiàn)FH,其節(jié)拍參數(shù)與其他音符的節(jié)拍參數(shù)確定方法一致,樂(lè)曲結(jié)束用節(jié)拍參數(shù)為00H來(lái)表示。下面給出部分音符(三個(gè)八度音)的頻率以及以單片機(jī)晶振頻率f0=12Mhz,定時(shí)器在工作方式1下的定時(shí)器高低計(jì)數(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)

    上傳時(shí)間: 2013-10-20

    上傳用戶(hù):哈哈haha

  • AVR單片機(jī)GCC程序設(shè)計(jì)

    AVR單片機(jī)GCC程序設(shè)計(jì):第一章 概述1.1 AVR 單片機(jī)GCC 開(kāi)發(fā)概述1.2 一個(gè)簡(jiǎn)單的例子1.3 用MAKEFILE 管理項(xiàng)目1.4 開(kāi)發(fā)環(huán)境的配置1.5 實(shí)驗(yàn)板CA-M8第二章 存儲(chǔ)器操作編程2.1 AVR 單片機(jī)存儲(chǔ)器組織結(jié)構(gòu)2.2 I/O 寄存器操作2.3 SRAM 內(nèi)變量的使用2.4 在程序中訪問(wèn)FLASH 程序存儲(chǔ)器2.5 EEPROM 數(shù)據(jù)存儲(chǔ)器操作2.6 avr-gcc 段結(jié)構(gòu)與再定位2.7 外部RAM 存儲(chǔ)器操作2.8 堆應(yīng)用第三章 GCC C 編譯器的使用3.1 編譯基礎(chǔ)3.2 生成靜態(tài)連接庫(kù)第四章 AVR 功能模塊應(yīng)用實(shí)驗(yàn)4.1 中斷服務(wù)程序4.2 定時(shí)器/計(jì)數(shù)器應(yīng)用4.3 看門(mén)狗應(yīng)用4.4 UART 應(yīng)用4.5 PWM 功能編程4.6 模擬比較器4.7 A/D 轉(zhuǎn)換模塊編程4.8 數(shù)碼管顯示程序設(shè)計(jì)4.9 鍵盤(pán)程序設(shè)計(jì)4.10 蜂鳴器控制第五章 使用C 語(yǔ)言標(biāo)準(zhǔn)I/O 流調(diào)試程序5.1 avr-libc 標(biāo)準(zhǔn)I/O 流描述5.2 利用標(biāo)準(zhǔn)I/0 流調(diào)試程序5.3 最小化的格式化的打印函數(shù)第六章 CA-M8 上實(shí)現(xiàn)AT89S52 編程器的實(shí)現(xiàn)6.1 編程原理6.2 LuckyProg2004 概述6.3 AT989S52 isp 功能簡(jiǎn)介6.4 下位機(jī)程序設(shè)計(jì)第七章 硬件TWI 端口編程7.1 TWI 模塊概述7.2 主控模式操作實(shí)時(shí)時(shí)鐘DS13077.3 兩個(gè)Mega8 間的TWI 通信第八章 BootLoader 功能應(yīng)用8.1 BootLoader 功能介紹8.2 avr-libc 對(duì)BootLoader 的支持8.3 BootLoader 應(yīng)用實(shí)例8.4 基于LuckyProg2004 的BootLoader 程序第九章 匯編語(yǔ)言支持9.1 C 代碼中內(nèi)聯(lián)匯編程序9.2 獨(dú)立的匯編語(yǔ)言支持9.3 C 與匯編混合編程第十章 C++語(yǔ)言支持附錄 1 avr-gcc 選項(xiàng)附錄 2 Intel HEX 文件格式描述

    標(biāo)簽: AVR GCC 單片機(jī)

    上傳時(shí)間: 2014-04-03

    上傳用戶(hù):ligi201200

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

    單片機(jī)應(yīng)用技術(shù)選編(1) 第一章 單片機(jī)系統(tǒng)綜合應(yīng)用技術(shù) 11.1 且使用 8098單片機(jī)的幾點(diǎn)體會(huì) 2 1.2 單片機(jī)的冷啟動(dòng)與熱啟動(dòng) 31.3 大容量動(dòng)態(tài)存儲(chǔ)器在單片機(jī)系統(tǒng)中的應(yīng)用111.4 MCS-51單片機(jī)系統(tǒng)中動(dòng)態(tài) RAM的刷新技巧141.5 MCS-51單片機(jī)系統(tǒng)中外RAM空間超64KB的擴(kuò)展方法161.6 8031單片機(jī)P0口和P2口的應(yīng)用開(kāi)發(fā) 181.7 74LS164在 8031單片機(jī)中的兩種用法261.8 用于 8031單片機(jī)的快速I(mǎi)/O接口281.9 MCS-51定時(shí)器定時(shí)常數(shù)初值的精確設(shè)定法301.10 8253的翻轉(zhuǎn)問(wèn)題及 MC6840的替代方法321.11 MCS-51單片機(jī)外部中斷源的擴(kuò)展設(shè)計(jì)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漢字庫(kù)的接口方法521.16 可背插 SRAM的日歷時(shí)鐘 DS1216及其應(yīng)用551.17 實(shí)時(shí)日歷時(shí)鐘集成電路MSM5832及其時(shí)序601.18 實(shí)時(shí)日歷時(shí)鐘集成電路MSM5832的接口技術(shù)631.19 實(shí)時(shí)時(shí)鐘/日歷芯片MC146818及其應(yīng)用671.20 與 SICE仿真器通訊的IBM-PC機(jī)通訊程序的改進(jìn)741.21 代碼形式參數(shù)匯編子程序的應(yīng)用821.22 單片機(jī)應(yīng)用系統(tǒng)中的查表程序設(shè)計(jì)861.23 用狀態(tài)綜合法設(shè)計(jì)鍵盤(pán)監(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ī)控制實(shí)例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 集成化霍爾開(kāi)關(guān)傳感器1352.6 一種新穎實(shí)用的氧氣/頻率轉(zhuǎn)換電路1392.7 MCS-51單片機(jī)與數(shù)字式溫度傳感器的接口設(shè)計(jì)1422.8 數(shù)字式溫度傳感器 SWC與 8031的接口及應(yīng)用1452.9 低成本高精度壓力傳感器微機(jī)接口設(shè)計(jì)1472.10 峰值檢測(cè)電路原理及應(yīng)用1512.11 用 LF398制作的實(shí)用峰值和谷值保持電路1532.12 AD637集成真有效值轉(zhuǎn)換器1562.13 傳感器信號(hào)調(diào)理模塊 ZB311622.14 2B31模塊在稱(chēng)重智能儀表中的應(yīng)用1662.15 傳感器信號(hào)調(diào)理模塊 2B30/2B31及其應(yīng)用1692.16 高精度光纖位移測(cè)量系統(tǒng)的電路設(shè)計(jì)1752.17 集成電壓一電流轉(zhuǎn)換器 XTR100的工作原理及應(yīng)用1792.18 傳感器信號(hào)變送器 F693及其應(yīng)用1852.19 一種用兩片 VFC32構(gòu)成的隔離放大器電路1912.20 實(shí)用線(xiàn)性隔離放大器1922.21 電橋放大電路中 7650的一些應(yīng)用問(wèn)題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ī)接口實(shí)現(xiàn)A/D轉(zhuǎn)換2352.32 LM2907/2917系列F/V變換器在汽車(chē)檢測(cè)中的應(yīng)用2382.33 單信號(hào)多通道輸入法改善 A/D轉(zhuǎn)換器性能2412.34 用多片 A們轉(zhuǎn)換芯片提高 A/D轉(zhuǎn)換速度2452.35 實(shí)時(shí)數(shù)控增益調(diào)整與浮點(diǎn) ADC電路2492.36 電荷耦合器件的單片機(jī)驅(qū)動(dòng)2532.37 電荷耦合器件的結(jié)構(gòu)原理與單片機(jī)的軟件定時(shí)驅(qū)動(dòng)2582.38 利用模數(shù)轉(zhuǎn)換器提高轉(zhuǎn)換信號(hào)的線(xiàn)性度2622.39 利用微型機(jī)解決轉(zhuǎn)換中的非線(xiàn)性問(wèn)題2682.40 利用非線(xiàn)性曲線(xiàn)存儲(chǔ)實(shí)現(xiàn)線(xiàn)性化的方法2702.41 輸出無(wú)非線(xiàn)性誤差的可變電壓源單臂電橋274 第三章 控制系統(tǒng)與后向通道接口技術(shù)2793.1 DAC1231與單片機(jī) 8031的接口技術(shù)2803.2 單路及多路 D八的光電隔離接口技術(shù)2843.3 光電隔離高壓驅(qū)動(dòng)器2903.4 TRAIC型光耦在 8031后向通道接口的應(yīng)用分析2913.5 GD-L型光控晶閘管輸出光耦合器2963.6 用于晶閘管過(guò)零觸發(fā)的幾種方式3003.7 固態(tài)繼電器3043.8 固態(tài)繼電器在交流電子開(kā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ū)動(dòng)電源3223.13 3-4相步進(jìn)電機(jī)控制器 5G87133253.14 5G0602報(bào)警電路及應(yīng)用3283.15 兩種新型溫控光控兀的應(yīng)用330 第四章 人機(jī)對(duì)話(huà)通道接口技術(shù)3334.1 單片機(jī)鍵盤(pán)接口設(shè)計(jì)3344.2 由電話(huà)機(jī)集成電路構(gòu)成的單片機(jī)鍵盤(pán)接口電路3364.3 用 GAL設(shè)計(jì)的一種編碼鍵盤(pán)接口3384.4 用 CMOS電路構(gòu)成的非編碼觸摸鍵盤(pán)3424.5 設(shè)計(jì)薄膜開(kāi)關(guān)應(yīng)注意的一些問(wèn)題3454.6 觸摸式電子開(kāi)關(guān)集成電路 5G673及其應(yīng)用3504.7 8279用于撥碼盤(pán)及顯示器的接口設(shè)計(jì)3544.8 LED數(shù)碼管的構(gòu)造與特點(diǎn)3584.9 LED數(shù)碼管的集成驅(qū)動(dòng)器及配套器件3624.10 8279芯片的顯示接口分析及32位數(shù)碼管顯示驅(qū)動(dòng)電路設(shè)計(jì)366  4.11 用三端可調(diào)穩(wěn)壓塊代替LED顯示器的限流電阻3704.12 液晶顯示器件的構(gòu)造與特點(diǎn)3714.13 LCD七段顯示器與單片機(jī)的接口3744.14 液晶顯示器與單片機(jī)的接口技術(shù)3764.15 可編程LCD控制驅(qū)動(dòng)器PPD72253814.16 微機(jī)總線(xiàn)兼容的四位 LCD驅(qū)動(dòng)電路 TSC7211AM3874.17 使用8255的雙極性歸零脈沖驅(qū)動(dòng)液晶顯示器接口3914.18 DMC16230型 LCD顯示模塊的接口技術(shù)3954.19 點(diǎn)陣式液晶顯示器原理及應(yīng)用4034.20 實(shí)用液晶顯示電路4094.21 8031控制的 CRT顯示控制接口4144.22 用 8031控制多臺(tái)彩色顯示器的實(shí)現(xiàn)方法4194.23 高級(jí)語(yǔ)言處理器--T6668的結(jié)構(gòu)與典型電路4234.24 延長(zhǎng) T6668語(yǔ)言電路錄放時(shí)間的方法4294.25 T6668高級(jí)語(yǔ)音開(kāi)發(fā)站4324.26 語(yǔ)言處理器 T6668在電話(huà)報(bào)警系統(tǒng)中的應(yīng)用4354.27 新型語(yǔ)音處理器YYH16439 第五章 網(wǎng)絡(luò)、通訊控制與多機(jī)系統(tǒng)4415.1 IBM-PC/XT和單片機(jī)通訊系統(tǒng)的設(shè)計(jì)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ì)算機(jī)的通訊4735.7 多片 MCS-51系統(tǒng)的一種串行通訊方式4775.8 多單片機(jī)處理系統(tǒng)并行通訊的實(shí)現(xiàn)4815.9 半雙工遠(yuǎn)距離電流環(huán)多機(jī)通訊接口電路4855.10 多微機(jī)系統(tǒng)共享 RAM電路4905.11 串行通訊中的波特率設(shè)置4925.12 在MCS-51單片機(jī)的串行通訊中實(shí)現(xiàn)波特率的自動(dòng)整定4965.13 J274和 J275在微機(jī)分布式測(cè)控系統(tǒng)中的應(yīng)用5005.14 單電纜傳送雙向數(shù)據(jù)5045.15 新穎的多路遙控兀編譯碼器5055.16 DTMF在單片機(jī)無(wú)線(xiàn)數(shù)據(jù)通訊中的應(yīng)用5085.17 MCS-8031單片機(jī)在紅外遙控裝置中的應(yīng)用5155.18 一種實(shí)用光纖數(shù)字遙測(cè)系統(tǒng)5185.19 智能儀表通訊系統(tǒng)中一種冗余通道的設(shè)計(jì)5245.20 EIARS-232-C接口使用中的幾個(gè)問(wèn)題528 第六章 電源、電源變換與電源監(jiān)視5316.1 電源擴(kuò)展電路5326.2 一種簡(jiǎn)單的直流三倍壓電路533 6.3 直流電源變換集成電路5356.4 直流電壓變換器ICL7660的應(yīng)用5376.5 一種廉價(jià)高精密基準(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簡(jiǎn)介5606.11 電源電壓監(jiān)視用芯片TL7700簡(jiǎn)介5646.12 WMS7705B電源監(jiān)視用芯片簡(jiǎn)介5676.13 具有HMOS結(jié)構(gòu)的MCS-51系列單片機(jī)提供后備電源的方法570 第七章 系統(tǒng)抗于擾技術(shù)5757.1 微型計(jì)算機(jī)系統(tǒng)的抗干擾措施5767.2 計(jì)算機(jī)應(yīng)用系統(tǒng)抗干擾問(wèn)題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ī)實(shí)時(shí)控制軟件抗干擾編程方法的探討6077.9 一種簡(jiǎn)單實(shí)用的微機(jī)死機(jī)自復(fù)位抗干擾技術(shù)6107.10 單片機(jī)程序的監(jiān)視保護(hù)6127.11 軟件 WATCHDOG系統(tǒng)615 7.12 一種實(shí)用的"看門(mén)狗"電路6187.13 高電壓下測(cè)量系統(tǒng)的抗干擾措施619 第八章 應(yīng)用實(shí)例6218.1 單片機(jī)在多功能函數(shù)發(fā)生器中的應(yīng)用6228.2 單片機(jī)波形發(fā)生器6298.3 單片機(jī)控制的調(diào)幅波發(fā)生器6338.4 用 8031單片機(jī)解調(diào)時(shí)統(tǒng)信號(hào)6368.5 具有 114DB動(dòng)態(tài)范圍的浮點(diǎn)數(shù)據(jù)采集系統(tǒng)6418.6 電熱恒溫箱單片微機(jī)控制系統(tǒng)6468.7 智能 I一、C丑測(cè)試儀的原理及設(shè)計(jì)6528.8 采用 LMS算法的單片機(jī)數(shù)字交流電橋6568.9 單片微機(jī)的數(shù)字相位測(cè)試儀6598.10 單片機(jī)的氣體流量測(cè)量6628.11 單片機(jī)的相關(guān)流量?jī)x6688.12 723型可見(jiàn)分光光度計(jì)6758.13 多功能微電腦電子秤6798.14 智能路面回彈檢測(cè)儀6838.15 使用 CCD的單片機(jī)動(dòng)態(tài)布面檢測(cè)系統(tǒng)6878.16 使用 CCD的單片機(jī)激光衍射測(cè)徑系統(tǒng)6908.17 使用 CCD的單片機(jī)動(dòng)態(tài)線(xiàn)徑測(cè)量?jī)x6958.18 使用CCD的單片機(jī)中型熱軋圓鋼直徑檢測(cè)儀7018.19 用 MCS-51單片微機(jī)實(shí)現(xiàn)織布機(jī)的監(jiān)測(cè)7058.20 單片機(jī)在工頻參量測(cè)試中的應(yīng)用7098.21 單片機(jī) 8098在直線(xiàn)電機(jī)控制中的應(yīng)用715?

    標(biāo)簽: 單片機(jī) 應(yīng)用技術(shù)

    上傳時(shí)間: 2014-12-28

    上傳用戶(hù):liufei

  • 匯編+保護(hù)模式+教程

    九.輸入/輸出保護(hù)為了支持多任務(wù),80386不僅要有效地實(shí)現(xiàn)任務(wù)隔離,而且還要有效地控制各任務(wù)的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護(hù)。 這里下載本文源代碼。 <一>輸入/輸出保護(hù)80386采用I/O特權(quán)級(jí)IPOL和I/O許可位圖的方法來(lái)控制輸入/輸出,實(shí)現(xiàn)輸入/輸出保護(hù)。 1.I/O敏感指令輸入輸出特權(quán)級(jí)(I/O Privilege Level)規(guī)定了可以執(zhí)行所有與I/O相關(guān)的指令和訪問(wèn)I/O空間中所有地址的最外層特權(quán)級(jí)。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)級(jí)執(zhí)行的程序所訪問(wèn)。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地址寫(xiě)數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫(xiě)字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱(chēng)為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿(mǎn)足所列條件時(shí)才可以執(zhí)行,所以把它們稱(chēng)為I/O敏感指令。從表中可見(jiàn),當(dāng)前特權(quán)級(jí)不在I/O特權(quán)級(jí)外層時(shí),可以正常執(zhí)行所列的全部I/O敏感指令;當(dāng)特權(quán)級(jí)在I/O特權(quán)級(jí)外層時(shí),執(zhí)行CLI和STI指令將引起通用保護(hù)異常,而其它四條指令是否能夠被執(zhí)行要根據(jù)訪問(wèn)的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿(mǎn)足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿(mǎn)足實(shí)際要求需要。因?yàn)檫@樣做會(huì)使得在特權(quán)級(jí)3執(zhí)行的應(yīng)用程序要么可訪問(wèn)所有I/O地址,要么不可訪問(wèn)所有I/O地址。實(shí)際需要與此剛好相反,只允許任務(wù)甲的應(yīng)用程序訪問(wèn)部分I/O地址,只允許任務(wù)乙的應(yīng)用程序訪問(wèn)另一部分I/O地址,以避免任務(wù)甲和任務(wù)乙在訪問(wèn)I/O地址時(shí)發(fā)生沖突,從而避免任務(wù)甲和任務(wù)乙使用使用獨(dú)享設(shè)備時(shí)發(fā)生沖突。 因此,在IOPL的基礎(chǔ)上又采用了I/O許可位圖。I/O許可位圖由二進(jìn)制位串組成。位串中的每一位依次對(duì)應(yīng)一個(gè)I/O地址,位串的第0位對(duì)應(yīng)I/O地址0,位串的第n位對(duì)應(yīng)I/O地址n。如果位串中的第位為0,那么對(duì)應(yīng)的I/O地址m可以由在任何特權(quán)級(jí)執(zhí)行的程序訪問(wèn);否則對(duì)應(yīng)的I/O地址m只能由在IOPL特權(quán)級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)。如果在I/O外層特權(quán)級(jí)執(zhí)行的程序訪問(wèn)位串中位值為1的位所對(duì)應(yīng)的I/O地址,那么將引起通用保護(hù)異常。 I/O地址空間按字節(jié)進(jìn)行編址。一條I/O指令最多可涉及四個(gè)I/O地址。在需要根據(jù)I/O位圖決定是否可訪問(wèn)I/O地址的情況下,當(dāng)一條I/O指令涉及多個(gè)I/O地址時(shí),只有這多個(gè)I/O地址所對(duì)應(yīng)的I/O許可位圖中的位都為0時(shí),該I/O指令才能被正常執(zhí)行,如果對(duì)應(yīng)位中任一位為1,就會(huì)引起通用保護(hù)異常。 80386支持的I/O地址空間大小是64K,所以構(gòu)成I/O許可位圖的二進(jìn)制位串最大長(zhǎng)度是64K個(gè)位,即位圖的有效部分最大為8K字節(jié)。一個(gè)任務(wù)實(shí)際需要使用的I/O許可位圖大小通常要遠(yuǎn)小于這個(gè)數(shù)目。 當(dāng)前任務(wù)使用的I/O許可位圖存儲(chǔ)在當(dāng)前任務(wù)TSS中低端的64K字節(jié)內(nèi)。I/O許可位圖總以字節(jié)為單位存儲(chǔ),所以位串所含的位數(shù)總被認(rèn)為是8的倍數(shù)。從前文中所述的TSS格式可見(jiàn),TSS內(nèi)偏移66H的字確定I/O許可位圖的開(kāi)始偏移。由于I/O許可位圖最長(zhǎng)可達(dá)8K字節(jié),所以開(kāi)始偏移應(yīng)小于56K,但必須大于等于104,因?yàn)門(mén)SS中前104字節(jié)為T(mén)SS的固定格式,用于保存任務(wù)的狀態(tài)。 1.I/O訪問(wèn)許可檢查細(xì)節(jié)保護(hù)模式下處理器在執(zhí)行I/O指令時(shí)進(jìn)行許可檢查的細(xì)節(jié)如下所示。 (1)若CPL<=IOPL,則直接轉(zhuǎn)步驟(8);(2)取得I/O位圖開(kāi)始偏移;(3)計(jì)算I/O地址對(duì)應(yīng)位所在字節(jié)在I/O許可位圖內(nèi)的偏移;(4)計(jì)算位偏移以形成屏蔽碼值,即計(jì)算I/O地址對(duì)應(yīng)位在字節(jié)中的第幾位;(5)把字節(jié)偏移加上位圖開(kāi)始偏移,再加1,所得值與TSS界限比較,若越界,則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(6)若不越界,則從位圖中讀對(duì)應(yīng)字節(jié)及下一個(gè)字節(jié);(7)把讀出的兩個(gè)字節(jié)與屏蔽碼進(jìn)行與運(yùn)算,若結(jié)果不為0表示檢查未通過(guò),則產(chǎn)生出錯(cuò)碼為0的通用保護(hù)故障;(8)進(jìn)行I/O訪問(wèn)。設(shè)某一任務(wù)的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;對(duì)應(yīng)I/O端口00H—3FH                        DB      10000000B      ;對(duì)應(yīng)I/O端口40H—47H                        DB      01100000B      ;對(duì)用I/O端口48H—4FH                        DB      8182 DUP(0ffH) ;對(duì)應(yīng)I/O端口50H—0FFFFH                        DB      0FFH           ;位圖結(jié)束字節(jié)TSSLen                  =       $TSSSEG                  ENDS 再假設(shè)IOPL=1,CPL=3。那么如下I/O指令有些能正常執(zhí)行,有些會(huì)引起通用保護(hù)異常:                         in      al,21h  ;(1)正常執(zhí)行                        in      al,47h  ;(2)引起異常                        out     20h,al  ;(3)正常實(shí)行                        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é)可見(jiàn),不論是否必要,當(dāng)進(jìn)行許可位檢查時(shí),80386總是從I/O許可位圖中讀取兩個(gè)字節(jié)。目的是為了盡快地執(zhí)行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個(gè)字節(jié)。例如,上面的第(8)條指令要對(duì)I/O位圖中的兩個(gè)位進(jìn)行檢查,其低位是某個(gè)字節(jié)的最高位,高位是下一個(gè)字節(jié)的最低位。可見(jiàn)即使只要檢查兩個(gè)位,也可能需要讀取兩個(gè)字節(jié)。另一方面,最多檢查四個(gè)連續(xù)的位,即最多也只需讀取兩個(gè)字節(jié)。所以每次要讀取兩個(gè)字節(jié)。這也是在判別是否越界時(shí)再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節(jié)時(shí)產(chǎn)生越界,必須在I/O許可位圖的最后填加一個(gè)全1的字節(jié),即0FFH。此全1的字節(jié)應(yīng)填加在最后一個(gè)位圖字節(jié)之后,TSS界限范圍之前,即讓填加的全1字節(jié)在TSS界限之內(nèi)。 I/O許可位圖開(kāi)始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當(dāng)TSS的界限大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖的有效部分就有8K字節(jié),I/O許可檢查全部根據(jù)全部根據(jù)該位圖進(jìn)行。當(dāng)TSS的界限不大于I/O許可位圖開(kāi)始偏移加8K時(shí),I/O許可位圖有效部分就不到8K字節(jié),于是對(duì)較小I/O地址訪問(wèn)的許可檢查根據(jù)位圖進(jìn)行,而對(duì)較大I/O地址訪問(wèn)的許可檢查總被認(rèn)為不可訪問(wèn)而引起通用保護(hù)故障。因?yàn)檫@時(shí)會(huì)發(fā)生字節(jié)越界而引起通用保護(hù)異常,所以在這種情況下,可認(rèn)為不足的I/O許可位圖的高端部分全為1。利用這個(gè)特點(diǎn),可大大節(jié)約TSS中I/O許可位圖占用的存儲(chǔ)單元,也就大大減小了TSS段的長(zhǎng)度。 <二>重要標(biāo)志保護(hù)輸入輸出的保護(hù)與存儲(chǔ)在標(biāo)志寄存器EFLAGS中的IOPL密切相關(guān),顯然不能允許隨便地改變IOPL,否則就不能有效地實(shí)現(xiàn)輸入輸出保護(hù)。類(lèi)似地,對(duì)EFLAGS中的IF位也必須加以保護(hù),否則CLI和STI作為敏感指令對(duì)待是無(wú)意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對(duì)EFLAGS中的這三個(gè)字段的處理比較特殊,只有在較高特權(quán)級(jí)執(zhí)行的程序才能執(zhí)行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權(quán)級(jí)下對(duì)這三個(gè)字段的處理情況。 不同特權(quán)級(jí)對(duì)標(biāo)志寄存器特殊字段的處理 特權(quán)級(jí) VM標(biāo)志字段 IOPL標(biāo)志字段 IF標(biāo)志字段 CPL=0 可變(初POPF指令外) 可變 可變 0  不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見(jiàn),只有在特權(quán)級(jí)0執(zhí)行的程序才可以修改IOPL位及VM位;只能由相對(duì)于IOPL同級(jí)或更內(nèi)層特權(quán)級(jí)執(zhí)行的程序才可以修改IF位。與CLI和STI指令不同,在特權(quán)級(jí)不滿(mǎn)足上述條件的情況下,當(dāng)執(zhí)行POPF指令和IRET指令時(shí),如果試圖修改這些字段中的任何一個(gè)字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標(biāo)志中的VM位總為0。 <三>演示輸入輸出保護(hù)的實(shí)例(實(shí)例九)下面給出一個(gè)用于演示輸入輸出保護(hù)的實(shí)例。演示內(nèi)容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權(quán)指令引起的異常;使用段間調(diào)用指令CALL通過(guò)任務(wù)門(mén)調(diào)用任務(wù),實(shí)現(xiàn)任務(wù)嵌套。 1.演示步驟實(shí)例演示的內(nèi)容比較豐富,具體演示步驟如下:(1)在實(shí)模式下做必要準(zhǔn)備后,切換到保護(hù)模式;(2)進(jìn)入保護(hù)模式的臨時(shí)代碼段后,把演示任務(wù)的TSS段描述符裝入TR,并設(shè)置演示任務(wù)的堆棧;(3)進(jìn)入演示代碼段,演示代碼段的特權(quán)級(jí)是0;(4)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門(mén)調(diào)用測(cè)試任務(wù)4。測(cè)試任務(wù)4演示特權(quán)指令如何引起通用保護(hù)異常;(8)從演示代碼轉(zhuǎn)臨時(shí)代碼,準(zhǔn)備返回實(shí)模式;(9)返回實(shí)模式,并作結(jié)束處理。

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

    上傳時(shí)間: 2013-12-11

    上傳用戶(hù):nunnzhy

  • 基于DSP的開(kāi)關(guān)磁阻電機(jī)調(diào)速系統(tǒng)研究

    為對(duì)開(kāi)關(guān)磁阻電機(jī)調(diào)速進(jìn)行實(shí)時(shí)控制,設(shè)計(jì)了一款基于DSP的TMS320F2812數(shù)字信號(hào)處理器為控制核心,設(shè)計(jì)開(kāi)發(fā)了開(kāi)關(guān)磁阻電機(jī)調(diào)速系統(tǒng)。以模塊化的思想設(shè)計(jì)了MCU控制系統(tǒng)、位置檢測(cè)系統(tǒng)、不對(duì)稱(chēng)功率電路等模塊。給出了軟件設(shè)計(jì)的思想和方法,完成了嵌入式軟件系統(tǒng)的開(kāi)發(fā)。該調(diào)速系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、成本低廉、起動(dòng)轉(zhuǎn)矩大及調(diào)速范圍寬等優(yōu)點(diǎn),具有很好的發(fā)展前景。

    標(biāo)簽: DSP 開(kāi)關(guān)磁阻電機(jī) 調(diào)速 系統(tǒng)研究

    上傳時(shí)間: 2014-12-28

    上傳用戶(hù):啊颯颯大師的

  • 通過(guò)FPGA提高工業(yè)應(yīng)用靈活性的5種方法

      可編程邏輯器件(PLD)是嵌入式工業(yè)設(shè)計(jì)的關(guān)鍵元器件。在工業(yè)設(shè)計(jì)中,PLD已經(jīng)從提供簡(jiǎn)單的膠合邏輯發(fā)展到使用FPGA作為協(xié)處理器。該技術(shù)在通信、電機(jī)控制、I/O模塊以及圖像處理等應(yīng)用中支持 I/O 擴(kuò)展,替代基本的微控制器 (MCU) 或者數(shù)字信號(hào)處理器 (DSP)。   隨著系統(tǒng)復(fù)雜度的提高,F(xiàn)PGA還能夠集成整個(gè)芯片系統(tǒng)(SoC),與分立的 MCU、DSP、ASSP,以及 ASIC解決方案相比,大幅度降低了成本。不論是用作協(xié)處理器還是SoC,Altera FPGA在您的工業(yè)應(yīng)用中都具有以下優(yōu)點(diǎn):   1. 設(shè)計(jì)集成——使用FPGA作為協(xié)處理器或者SoC,在一個(gè)器件平臺(tái)上集成 IP和軟件堆棧,從而降低成本。   2. 可重新編程能力——在一個(gè)公共開(kāi)發(fā)平臺(tái)的一片 FPGA中,使工業(yè)設(shè)計(jì)能夠適應(yīng)協(xié)議、IP以及新硬件功能的發(fā)展變化。   3. 性能調(diào)整——通過(guò)FPGA中的嵌入式處理器、定制指令和IP模塊,增強(qiáng)性能,滿(mǎn)足系統(tǒng)要求。   4. 過(guò)時(shí)保護(hù)——較長(zhǎng)的 FPGA 產(chǎn)品生命周期,通過(guò) FPGA 新系列的器件移植,延長(zhǎng)工業(yè)產(chǎn)品的生命周期,保護(hù)硬件不會(huì)過(guò)時(shí)。   5. 熟悉的工具——使用熟悉的、功能強(qiáng)大的集成工具,簡(jiǎn)化設(shè)計(jì)和軟件開(kāi)發(fā)、IP集成以及調(diào)試。

    標(biāo)簽: FPGA 工業(yè)應(yīng)用

    上傳時(shí)間: 2014-12-28

    上傳用戶(hù):rnsfing

  • Verilog_HDL的基本語(yǔ)法詳解(夏宇聞版)

            Verilog_HDL的基本語(yǔ)法詳解(夏宇聞版):Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語(yǔ)言。用Verilog HDL描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語(yǔ)言也是一種結(jié)構(gòu)描述的語(yǔ)言。這也就是說(shuō),既可以用電路的功能描述也可以用元器件和它們之間的連接來(lái)建立所設(shè)計(jì)電路的Verilog HDL模型。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類(lèi)型共有以下五種:   系統(tǒng)級(jí)(system):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。   算法級(jí)(algorithm):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。   RTL級(jí)(Register Transfer Level):描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。   門(mén)級(jí)(gate-level):描述邏輯門(mén)以及邏輯門(mén)之間的連接的模型。   開(kāi)關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。   一個(gè)復(fù)雜電路系統(tǒng)的完整Verilog HDL模型是由若干個(gè)Verilog HDL模塊構(gòu)成的,每一個(gè)模塊又可以由若干個(gè)子模塊構(gòu)成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶(hù)所設(shè)計(jì)的模塊交互的現(xiàn)存電路或激勵(lì)信號(hào)源。利用Verilog HDL語(yǔ)言結(jié)構(gòu)所提供的這種功能就可以構(gòu)造一個(gè)模塊間的清晰層次結(jié)構(gòu)來(lái)描述極其復(fù)雜的大型設(shè)計(jì),并對(duì)所作設(shè)計(jì)的邏輯電路進(jìn)行嚴(yán)格的驗(yàn)證。   Verilog HDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語(yǔ)言具有以下功能:   · 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。   · 用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。   · 通過(guò)命名的事件來(lái)觸發(fā)其它過(guò)程里的激活行為或停止行為。   · 提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。   · 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。   · 提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。   · 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。   · Verilog HDL語(yǔ)言作為一種結(jié)構(gòu)化的語(yǔ)言也非常適合于門(mén)級(jí)和開(kāi)關(guān)級(jí)的模型設(shè)計(jì)。因其結(jié)構(gòu)化的特點(diǎn)又使它具有以下功能:   - 提供了完整的一套組合型原語(yǔ)(primitive);   - 提供了雙向通路和電阻器件的原語(yǔ);   - 可建立MOS器件的電荷分享和電荷衰減動(dòng)態(tài)模型。   Verilog HDL的構(gòu)造性語(yǔ)句可以精確地建立信號(hào)的模型。這是因?yàn)樵赩erilog HDL中,提供了延遲和輸出強(qiáng)度的原語(yǔ)來(lái)建立精確程度很高的信號(hào)模型。信號(hào)值可以有不同的的強(qiáng)度,可以通過(guò)設(shè)定寬范圍的模糊值來(lái)降低不確定條件的影響。   Verilog HDL作為一種高級(jí)的硬件描述編程語(yǔ)言,有著類(lèi)似C語(yǔ)言的風(fēng)格。其中有許多語(yǔ)句如:if語(yǔ)句、case語(yǔ)句等和C語(yǔ)言中的對(duì)應(yīng)語(yǔ)句十分相似。如果讀者已經(jīng)掌握C語(yǔ)言編程的基礎(chǔ),那么學(xué)習(xí)Verilog HDL并不困難,我們只要對(duì)Verilog HDL某些語(yǔ)句的特殊方面著重理解,并加強(qiáng)上機(jī)練習(xí)就能很好地掌握它,利用它的強(qiáng)大功能來(lái)設(shè)計(jì)復(fù)雜的數(shù)字邏輯電路。下面我們將對(duì)Verilog HDL中的基本語(yǔ)法逐一加以介紹。

    標(biāo)簽: Verilog_HDL

    上傳時(shí)間: 2013-11-23

    上傳用戶(hù):青春給了作業(yè)95

主站蜘蛛池模板: 湖口县| 延安市| 泸水县| 三原县| 富蕴县| 永济市| 通山县| 石首市| 恩平市| 高清| 巩义市| 青州市| 合山市| 三明市| 都昌县| 满洲里市| 三明市| 将乐县| 区。| 武清区| 灵武市| 吐鲁番市| 鄄城县| 乐陵市| 江源县| 迁西县| 遂川县| 元江| 台江县| 昌都县| 宝应县| 陆良县| 焉耆| 云阳县| 香格里拉县| 辽阳县| 逊克县| 衡水市| 滦平县| 庄浪县| 华宁县|