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

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

風(fēng)(fēng)能

  • 單片機(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í),則稱f2比f(wàn)1高一個(gè)倍頻程, 在音樂(lè)中1(do)與 ,2(來(lái))與 ……正好相差一個(gè)倍頻程,在音樂(lè)學(xué)中稱它相差一個(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í)程序,依次類推。通過(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

    上傳用戶:哈哈haha

  • 電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)

    電子密碼鎖的設(shè)計(jì)與實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?nbsp;1.進(jìn)一步掌握鍵盤掃描和LED顯示的程序設(shè)計(jì)。 2.了解按鍵消抖的方法。 3.綜合運(yùn)用微機(jī)原理的軟硬件知識(shí)。 二、實(shí)驗(yàn)內(nèi)容與要求 1.基本要求 (1)具有密碼輸入功能,密碼最多為6位;(2)設(shè)置退格鍵,以便刪除輸入錯(cuò)誤的密碼;(3)在輸入的密碼時(shí)數(shù)碼管上只顯示8,并根據(jù)輸入位數(shù)依次橫移;(4)設(shè)置確認(rèn)鍵,當(dāng)確認(rèn)鍵按下后,判斷輸入密碼是否正確;(5)當(dāng)輸入密碼正確時(shí),點(diǎn)亮發(fā)光二極管;當(dāng)輸入密碼不正確時(shí),發(fā)光二極管不亮并且蜂鳴器報(bào)警,重新輸入,當(dāng)三次密碼輸入不正確時(shí),系統(tǒng)應(yīng)鎖定鍵盤10s。2.提高要求 將用戶分為管理者和使用者,管理者擁有超級(jí)密碼,可以修改其他人的密碼。使用者不能修改密碼。 三、實(shí)驗(yàn)報(bào)告要求 1.設(shè)計(jì)目的和內(nèi)容 2.總體設(shè)計(jì) 3.硬件設(shè)計(jì):原理圖(接線圖)及簡(jiǎn)要說(shuō)明 4.軟件設(shè)計(jì)框圖及程序清單5.設(shè)計(jì)結(jié)果和體會(huì)(包括遇到的問(wèn)題及解決的方法) 四、總體設(shè)計(jì) 電子密碼鎖的原理是:從鍵盤輸入一組密碼,CPU把該密碼和設(shè)置密碼比較,對(duì)則將鎖打開(kāi)(不同鎖的控制方式不一樣,比如加電控制電磁鐵抽回,從而打開(kāi)),錯(cuò)則要求重新輸入,并記錄錯(cuò)誤次數(shù),如果三次錯(cuò)誤,則被強(qiáng)制鎖定并報(bào)警,除非超級(jí)密碼或者其他的手段打開(kāi),比如延時(shí)一段時(shí)間。 初步設(shè)計(jì)思路如下: 1.輸入密碼用矩形鍵盤,包括數(shù)字鍵和功能鍵,功能鍵包括退格鍵和確認(rèn)鍵。 2.LED數(shù)碼管顯示輸入密碼,但是只是輸出顯示符號(hào)8 。采用動(dòng)態(tài)掃描輸出。 3.用發(fā)光二極管模擬鎖的情況,鎖關(guān)時(shí)發(fā)光二極管滅,打開(kāi)時(shí)發(fā)光二極管亮。 4.輸入密碼錯(cuò)誤時(shí)報(bào)警,3次輸入錯(cuò)誤時(shí)鍵盤鎖定10s,鍵盤無(wú)法接收數(shù)據(jù)。 軟件的設(shè)計(jì)主要包括矩形鍵盤鍵值的讀取、LED動(dòng)態(tài)掃描輸出程序、密碼判斷程序和報(bào)警程序。   五、硬件設(shè)計(jì) 根據(jù)設(shè)計(jì)思路,硬件電路可通過(guò)實(shí)驗(yàn)平臺(tái)上的一些功能模塊電路組成,由于實(shí)驗(yàn)平臺(tái)上的各個(gè)功能模塊已經(jīng)設(shè)計(jì)好,用戶在使用時(shí)只要設(shè)計(jì)模塊間電路的連接,因此,硬件電路的設(shè)計(jì)及實(shí)現(xiàn)相對(duì)簡(jiǎn)單。完整系統(tǒng)的硬件連接如圖1所示。硬件電路由LED數(shù)碼管顯示模塊、按鍵模塊、發(fā)光二極管電路和蜂鳴器模塊組成。各個(gè)模塊的詳細(xì)說(shuō)明:1.LED數(shù)碼管模塊實(shí)驗(yàn)平臺(tái)上提供一組六個(gè)LED數(shù)碼管。插孔CS1用于數(shù)碼管段選的輸出選通,插孔CS2用于數(shù)碼管位選信號(hào)的輸出選通。本設(shè)計(jì)用6個(gè)數(shù)碼管來(lái)動(dòng)態(tài)顯示時(shí)分秒,動(dòng)態(tài)顯示的定時(shí)時(shí)間由8253定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)。8253主要是實(shí)現(xiàn)每位顯示時(shí)間1ms,由8253的計(jì)數(shù)器0來(lái)實(shí)現(xiàn)。Clk0接實(shí)驗(yàn)平臺(tái)分頻電路輸出Q6,f=46875hz。GATE0接8255的PA0,由8255的PA0輸出來(lái)控制計(jì)數(shù)器的起停。OUT0接8259的IRQ2,定時(shí)完成請(qǐng)求中斷,進(jìn)入中斷服務(wù)程序。軟件在中斷服務(wù)程序中LED數(shù)碼管顯示。

    標(biāo)簽: 電子密碼鎖

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

    上傳用戶:15070202241

  • 單片機(jī)外圍線路設(shè)計(jì)

    當(dāng)拿到一張CASE單時(shí),首先得確定的是能用什么母體才能實(shí)現(xiàn)此功能,然后才能展開(kāi)對(duì)外圍硬件電路的設(shè)計(jì),因此首先得了解每個(gè)母體的基本功能及特點(diǎn),下面大至的介紹一下本公司常用的IC:?jiǎn)涡酒鉀Q方案• SN8P1900 系列–  高精度 16-Bit  模數(shù)轉(zhuǎn)換器–  可編程運(yùn)算放大器 (PGIA)•  信號(hào)放大低漂移: 2V•  放大倍數(shù)可編程: 1/16/64/128  倍–  升壓- 穩(wěn)壓調(diào)節(jié)器 (Charge-Pump Regulator)•  電源輸入: 2.4V ~ 5V•  穩(wěn)壓輸出: e.g. 3.8V at SN8P1909–  內(nèi)置液晶驅(qū)動(dòng)電路 (LCD Driver)–  單芯片解決方案 •  耳溫槍  SN8P1909 LQFP 80 Pins• 5000 解析度量測(cè)器 SN8P1908 LQFP 64 Pins•  體重計(jì)  SN8P1907 SSOP 48 Pins單芯片解決方案• SN8P1820 系列–  精確的12-Bit  模數(shù)轉(zhuǎn)換器–  可編程運(yùn)算放大器 (PGIA)• Gain Stage One: Low Offset 5V, Gain: 16/32/64/128• Gain Stage One: Low Offset 2mV, Gain: 1.3 ~ 2.5–  升壓- 穩(wěn)壓調(diào)節(jié)器•  電源輸入: 2.4V ~ 5V•  穩(wěn)壓輸出: e.g. 3.8V at SN8P1829–  內(nèi)置可編程運(yùn)算放大電路–  內(nèi)置液晶驅(qū)動(dòng)電路 –  單芯片解決方案 •  電子醫(yī)療器 SN8P1829 LQFP 80 Pins 高速/低功耗/高可靠性微控制器• 最新SN8P2000 系列– SN8P2500/2600/2700 系列– 高度抗交流雜訊能力• 標(biāo)準(zhǔn)瞬間電壓脈沖群測(cè)試 (EFT): IEC 1000-4-4• 雜訊直接灌入芯片電源輸入端• 只需添加1顆 2.2F/50V 旁路電容• 測(cè)試指標(biāo)穩(wěn)超 4000V (歐規(guī))– 高可靠性復(fù)位電路保證系統(tǒng)正常運(yùn)行• 支持外部復(fù)位和內(nèi)部上電復(fù)位• 內(nèi)置1.8V 低電壓偵測(cè)可靠復(fù)位電路• 內(nèi)置看門狗計(jì)時(shí)器保證程序跳飛可靠復(fù)位– 高抗靜電/栓鎖效應(yīng)能力– 芯片工作溫度有所提高: -200C ~ 700C     工規(guī)芯片溫度: -400C ~ 850C 高速/低功耗/高可靠性微控制器• 最新 SN8P2000 系列– SN8P2500/2600/2700 系列– 1T  精簡(jiǎn)指令級(jí)結(jié)構(gòu)• 1T:  一個(gè)外部振蕩周期執(zhí)行一條指令•  工作速度可達(dá)16 MIPS / 16 MHz Crystal–  工作消耗電流 < 2mA at 1-MIPS/5V–  睡眠模式下消耗電流 < 1A / 5V額外功能• 高速脈寬調(diào)制輸出 (PWM)– 8-Bit PWM up to 23 KHz at 12 MHz System Clock– 6-Bit PWM up to 93 KHz  at 12 MHz System Clock– 4-Bit PWM up to 375 KHz  at 12 MHz System Clock• 內(nèi)置高速16 MHz RC振蕩器 (SN8P2501A)• 電壓變化喚醒功能• 可編程控制沿觸發(fā)/中斷功能– 上升沿 / 下降沿 / 雙沿觸發(fā)• 串行編程接口

    標(biāo)簽: 單片機(jī) 線路設(shè)計(jì)

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

    上傳用戶:jiahao131

  • PCB可測(cè)性設(shè)計(jì)布線規(guī)則之建議―從源頭改善可測(cè)率

    P C B 可測(cè)性設(shè)計(jì)布線規(guī)則之建議― ― 從源頭改善可測(cè)率PCB 設(shè)計(jì)除需考慮功能性與安全性等要求外,亦需考慮可生產(chǎn)與可測(cè)試。這里提供可測(cè)性設(shè)計(jì)建議供設(shè)計(jì)布線工程師參考。1. 每一個(gè)銅箔電路支點(diǎn),至少需要一個(gè)可測(cè)試點(diǎn)。如無(wú)對(duì)應(yīng)的測(cè)試點(diǎn),將可導(dǎo)致與之相關(guān)的開(kāi)短路不可檢出,并且與之相連的零件會(huì)因無(wú)測(cè)試點(diǎn)而不可測(cè)。2. 雙面治具會(huì)增加制作成本,且上針板的測(cè)試針定位準(zhǔn)確度差。所以Layout 時(shí)應(yīng)通過(guò)Via Hole 盡可能將測(cè)試點(diǎn)放置于同一面。這樣就只要做單面治具即可。3. 測(cè)試選點(diǎn)優(yōu)先級(jí):A.測(cè)墊(Test Pad) B.通孔(Through Hole) C.零件腳(Component Lead) D.貫穿孔(Via Hole)(未Mask)。而對(duì)于零件腳,應(yīng)以AI 零件腳及其它較細(xì)較短腳為優(yōu)先,較粗或較長(zhǎng)的引腳接觸性誤判多。4. PCB 厚度至少要62mil(1.35mm),厚度少于此值之PCB 容易板彎變形,影響測(cè)點(diǎn)精準(zhǔn)度,制作治具需特殊處理。5. 避免將測(cè)點(diǎn)置于SMT 之PAD 上,因SMT 零件會(huì)偏移,故不可靠,且易傷及零件。6. 避免使用過(guò)長(zhǎng)零件腳(>170mil(4.3mm))或過(guò)大的孔(直徑>1.5mm)為測(cè)點(diǎn)。7. 對(duì)于電池(Battery)最好預(yù)留Jumper,在ICT 測(cè)試時(shí)能有效隔離電池的影響。8. 定位孔要求:(a) 定位孔(Tooling Hole)直徑最好為125mil(3.175mm)及其以上。(b) 每一片PCB 須有2 個(gè)定位孔和一個(gè)防呆孔(也可說(shuō)成定位孔,用以預(yù)防將PCB反放而導(dǎo)致機(jī)器壓破板),且孔內(nèi)不能沾錫。(c) 選擇以對(duì)角線,距離最遠(yuǎn)之2 孔為定位孔。(d) 各定位孔(含防呆孔)不應(yīng)設(shè)計(jì)成中心對(duì)稱,即PCB 旋轉(zhuǎn)180 度角后仍能放入PCB,這樣,作業(yè)員易于反放而致機(jī)器壓破板)9. 測(cè)試點(diǎn)要求:(e) 兩測(cè)點(diǎn)或測(cè)點(diǎn)與預(yù)鉆孔之中心距不得小于50mil(1.27mm),否則有一測(cè)點(diǎn)無(wú)法植針。以大于100mil(2.54mm)為佳,其次是75mil(1.905mm)。(f) 測(cè)點(diǎn)應(yīng)離其附近零件(位于同一面者)至少100mil,如為高于3mm 零件,則應(yīng)至少間距120mil,方便治具制作。(g) 測(cè)點(diǎn)應(yīng)平均分布于PCB 表面,避免局部密度過(guò)高,影響治具測(cè)試時(shí)測(cè)試針壓力平衡。(h) 測(cè)點(diǎn)直徑最好能不小于35mil(0.9mm),如在上針板,則最好不小于40mil(1.00mm),圓形、正方形均可。小于0.030”(30mil)之測(cè)點(diǎn)需額外加工,以導(dǎo)正目標(biāo)。(i) 測(cè)點(diǎn)的Pad 及Via 不應(yīng)有防焊漆(Solder Mask)。(j) 測(cè)點(diǎn)應(yīng)離板邊或折邊至少100mil。(k) 錫點(diǎn)被實(shí)踐證實(shí)是最好的測(cè)試探針接觸點(diǎn)。因?yàn)殄a的氧化物較輕且容易刺穿。以錫點(diǎn)作測(cè)試點(diǎn),因接觸不良導(dǎo)致誤判的機(jī)會(huì)極少且可延長(zhǎng)探針使用壽命。錫點(diǎn)尤其以PCB 光板制作時(shí)的噴錫點(diǎn)最佳。PCB 裸銅測(cè)點(diǎn),高溫后已氧化,且其硬度高,所以探針接觸電阻變化而致測(cè)試誤判率很高。如果裸銅測(cè)點(diǎn)在SMT 時(shí)加上錫膏再經(jīng)回流焊固化為錫點(diǎn),雖可大幅改善,但因助焊劑或吃錫不完全的緣故,仍會(huì)出現(xiàn)較多的接觸誤判。

    標(biāo)簽: PCB 可測(cè)性設(shè)計(jì) 布線規(guī)則

    上傳時(shí)間: 2014-01-14

    上傳用戶:cylnpy

  • 自制微型51/AVR通用編程器

    微型51/AVR 編程器套件裝配說(shuō)明書 請(qǐng)您在動(dòng)手裝配這個(gè)編程器之前,務(wù)必先看完本說(shuō)明書,避免走彎路。 1.收到套件后請(qǐng)對(duì)照元器件列表檢查一下,元件、配件是否齊全? Used  Part Type        Designator ==== ================ ========== 1    1k               R6         1    1uf 50V          C11        5    2k2              R2 R3 R4 R5 R11     1    10K*8            RN1        2    11.0592MHZ       Q1 Q2      1    12V,0.5W         D2         2    15k              R7 R8      2    21k              R9 R10     4    33p              C6 C7 C8 C9         1    47uf 25V         C10        1    74HC164          IC6        2    78L05            IC4 IC5    1    100uf 25V        C12        1    220R             R1         1    AT89C51          IC2        1    B40C800(W02)     D1         2    BS170            T1 T2      1    BS250            T3         1    DB9/F            J2         1    J1X2             J1         1    LED GN5          D3         1    LM317L           IC1        1    TLC2272          IC7        1    ZIF40            IC3        5    1uf              C1 C2 C3 C4 C5 另外,套件配有1.5米串行電纜一根和配套的PCB一塊,不含電源。編程器使用的15V交流電源或12V直流電源需要自己配套。2.裝配要點(diǎn):先焊接阻容元件,3個(gè)集成電路插座(IC2,IC7,IC6)其次是晶振, 全橋,穩(wěn)壓IC 等,然后焊接J2,最后焊接T1,T2,T3三只場(chǎng)效應(yīng)管。焊接場(chǎng)效應(yīng)管時(shí)務(wù)必按照以下方法:拔去電烙鐵的電源,使用電烙鐵余溫去焊接三只場(chǎng)效應(yīng)管,否則靜電很容易損壞管子。這是裝配成功的關(guān)鍵。這三只管子有問(wèn)題,最典型的現(xiàn)象是不能聯(lián)機(jī)。由于電源插座封裝比較特殊,國(guó)內(nèi)無(wú)法配套上,已改用電源線接線柱,可直接焊接在PCB板焊盤上,如下圖1所示(在下圖中兩個(gè)紅色圓圈內(nèi)指示的焊盤),然后在連接到套件中配套的電源插座上。最近有朋友反映用15V交流比較麻煩,還要另外配變壓器。如果要使用12V的直流電,無(wú)需將全橋焊上,將兩個(gè)接線柱分別焊接在全橋的正負(fù)輸出位置的焊盤上即可,如下圖2所示,藍(lán)色圓圈內(nèi)指示的焊盤,連接電源的時(shí)候要注意正負(fù)極,不要接錯(cuò)了。方形焊盤是正極。40腳ZIF插座焊接前,應(yīng)該將BR1飛線焊接好。注意:由于焊盤比較小,注意焊接溫度,不要高溫長(zhǎng)時(shí)間反復(fù)焊接,會(huì)導(dǎo)致焊盤脫落。

    標(biāo)簽: AVR 51 編程器

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

    上傳用戶:caiguoqing

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

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

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

    上傳用戶:sunjet

  • 80C51便攜式產(chǎn)品中的低功耗設(shè)計(jì)

    80C51單片機(jī)由于功能全面、開(kāi)發(fā)工具較為完善、衍生產(chǎn)品豐富、大量的設(shè)計(jì)資源可以繼承和共享,得到廣泛的應(yīng)用。我們?cè)O(shè)計(jì)的一款手持線PDA產(chǎn)品,也選擇80C51單片機(jī)作為主、輔CPU,還具備點(diǎn)陣液晶顯示屏、導(dǎo)電橡膠鍵盤、雙IC卡接口、EEPROM存儲(chǔ)器、實(shí)時(shí)時(shí)鐘和串行通信口。由于使用80C51單片機(jī)開(kāi)發(fā),高級(jí)語(yǔ)言編程,大大降低了設(shè)計(jì)的技術(shù)風(fēng)險(xiǎn),產(chǎn)品在較短的時(shí)間內(nèi)就推向了市場(chǎng)。但是,同一些低速的微控制器(如4位單片機(jī))和高速的RISC處理器相比,80C51單片機(jī)在功耗上沒(méi)有優(yōu)勢(shì)。為了在PDA類產(chǎn)品中發(fā)揮80C51單片機(jī)的上述特長(zhǎng),我們通過(guò)采取軟、硬件配合的一系列措施,加強(qiáng)低電壓、低功耗設(shè)計(jì),取得了良好的效果。該機(jī)使用一顆3V鈕扣式鋰電池,開(kāi)機(jī)時(shí)工作電池小于4mA,瞬間最大工作電流小于20mA,瞬間最大工作電流小于20mA,關(guān)機(jī)電流小于2μA。一顆電池可以使用較長(zhǎng)的時(shí)間,達(dá)到滿意的設(shè)計(jì)指標(biāo)。一、低電壓低功耗設(shè)計(jì)理論在一個(gè)器件中,功耗通常用電流消耗來(lái)表示。下式表明消耗的電池與器件特性之間的關(guān)系:Icc = C ∫ Vda ≈ ΔV · C · f (1)式中:Icc是器件消耗的電流;Δ是電壓變化的幅值;C是器件電容和輸出容性負(fù)載的大小;f是器件運(yùn)行頻率。從公式(1)可以得到降低系統(tǒng)功耗的理論依據(jù)。將器件供電電壓從5V降低3V,可以至少降低40%的功耗。降低器件的工作頻率,也能成比例地降低功耗。

    標(biāo)簽: 80C51 便攜式產(chǎn)品 低功耗設(shè)計(jì)

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

    上傳用戶:shaojie2080

  • 匯編+保護(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地址寫數(shù)據(jù) CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關(guān),并且只有在滿足所列條件時(shí)才可以執(zhí)行,所以把它們稱為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許可位圖情況而定(在下面論述),如果條件不滿足而執(zhí)行,那么將引起出錯(cuò)碼為0的通用保護(hù)異常。 由于每個(gè)任務(wù)使用各自的EFLAGS值和擁有自己的TSS,所以每個(gè)任務(wù)可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實(shí)模式下總是可執(zhí)行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執(zhí)行是很不方便的,不能滿足實(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)門SS中前104字節(jié)為TSS的固定格式,用于保存任務(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ù)。類似地,對(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í)不滿足上述條件的情況下,當(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ù)門調(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ù)門調(diào)用測(cè)試任務(wù)1。測(cè)試任務(wù)1能夠順利進(jìn)行;(5)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)2。測(cè)試任務(wù)2演示由于違反I/O許可位圖規(guī)定而導(dǎo)致通用保護(hù)異常;(6)通過(guò)任務(wù)門調(diào)用測(cè)試任務(wù)3。測(cè)試任務(wù)3演示I/O敏感指令如何引起通用保護(hù)異常;(7)通過(guò)任務(wù)門調(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

    上傳用戶:nunnzhy

  • 微機(jī)原理與接口課件

    微處理器及微型計(jì)算機(jī)的發(fā)展概況  第一代微處理器是以Intel公司1971年推出的4004,4040為代表的四位微處理機(jī)。      第二代微處理機(jī)(1973年~1977年),典型代表有:Intel 公司的8080、8085;Motorola公司的M6800以及Zlog公司的Z80。     第三代微處理機(jī) 第三代微機(jī)是以16位機(jī)為代表,基本上是在第二代微機(jī)的基礎(chǔ)上發(fā)展起來(lái)的。其中Intel公司的8088。8086是在8085的基礎(chǔ)發(fā)展起來(lái)的;M68000是Motorola公司在M6800 的基礎(chǔ)發(fā)展起來(lái)的;     第四代微處理機(jī) 以Intel公司1984年10月推出的80386CPU和1989年4月推出的80486CPU為代表,     第五代微處理機(jī)的發(fā)展更加迅猛,1993年3月被命名為PENTIUM的微處理機(jī)面世,98年P(guān)ENTIUM 2又被推向市場(chǎng)。 INTEL CPU 發(fā)展歷史Intel第一塊CPU 4004,4位主理器,主頻108kHz,運(yùn)算速度0.06MIPs(Million Instructions Per Second, 每秒百萬(wàn)條指令),集成晶體管2,300個(gè),10微米制造工藝,最大尋址內(nèi)存640 bytes,生產(chǎn)曰期1971年11月. 8085,8位主理器,主頻5M,運(yùn)算速度0.37MIPs,集成晶體管6,500個(gè),3微米制造工藝,最大尋址內(nèi)存64KB,生產(chǎn)曰期1976年 8086,16位主理器,主頻4.77/8/10MHZ,運(yùn)算速度0.75MIPs,集成晶體管29,000個(gè),3微米制造工藝,最大尋址內(nèi)存1MB,生產(chǎn)曰期1978年6月. 80486DX,DX2,DX4,32位主理器,主頻25/33/50/66/75/100MHZ,總線頻率33/50/66MHZ,運(yùn)算速度20~60MIPs,集成晶體管1.2M個(gè),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微米制造工藝, 二級(jí)緩存512K),Prescott核心(主頻2.8G起,FSB800MHZ,0.09微米制造工藝,1M二級(jí)緩存,13條全新指令集SSE3),生產(chǎn)曰期2001年7月. 更大的緩存、更高的頻率、 超級(jí)流水線、分支預(yù)測(cè)、亂序執(zhí)行超線程技術(shù) 微型計(jì)算機(jī)組成結(jié)構(gòu)單片機(jī)簡(jiǎn)介單片機(jī)即單片機(jī)微型計(jì)算機(jī),是將計(jì)算機(jī)主機(jī)(CPU、    內(nèi)存和I/O接口)集成在一小塊硅片上的微型機(jī)。 三、計(jì)算機(jī)編程語(yǔ)言的發(fā)展概況 機(jī)器語(yǔ)言  機(jī)器語(yǔ)言就是0,1碼語(yǔ)言,是計(jì)算機(jī)唯一能理解并直接執(zhí)行的語(yǔ)言。匯編語(yǔ)言  用一些助記符號(hào)代替用0,1碼描述的某種機(jī)器的指令系統(tǒng),匯編語(yǔ)言就是在此基礎(chǔ)上完善起來(lái)的。高級(jí)語(yǔ)言  BASIC,PASCAL,C語(yǔ)言等等。用高級(jí)語(yǔ)言編寫的程序稱源程序,它們必須通過(guò)編譯或解釋,連接等步驟才能被計(jì)算機(jī)處理。 面向?qū)ο笳Z(yǔ)言  C++,Java等編程語(yǔ)言是面向?qū)ο蟮恼Z(yǔ)言。 1.3 微型計(jì)算機(jī)中信息的表示及運(yùn)算基礎(chǔ)(一) 十進(jìn)制ND有十個(gè)數(shù)碼:0~9,逢十進(jìn)一。 例 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1加權(quán)展開(kāi)式以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兩個(gè)數(shù)碼:0、1, 逢二進(jìn)一。 例 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3 加權(quán)展開(kāi)式以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十六個(gè)數(shù)碼0~9、A~F,逢十六進(jìn)一。 例:DFC.8=13×162 +15×161 +12×160 +8×16-1 展開(kāi)式以十六為基數(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)位計(jì)數(shù)制之間的轉(zhuǎn)換 (二)二進(jìn)制與十六進(jìn)制數(shù)之間的轉(zhuǎn)換  24=16 ,四位二進(jìn)制數(shù)對(duì)應(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。每除一次取一個(gè)余數(shù),從低位排向高位。舉例: 2. 小數(shù)轉(zhuǎn)換法“乘基取整”:用轉(zhuǎn)換進(jìn)制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0或達(dá)到轉(zhuǎn)換精度要求的位數(shù)。每乘一次取一次整數(shù),從最高位排到最低位。舉例:  三、帶符號(hào)數(shù)的表示方法 機(jī)器數(shù):機(jī)器中數(shù)的表示形式。真值: 機(jī)器數(shù)所代表的實(shí)際數(shù)值。舉例:一個(gè)8位機(jī)器數(shù)與它的真值對(duì)應(yīng)關(guān)系如下:  真值: X1=+84=+1010100B     X2=-84= -1010100B   機(jī)器數(shù):[X1]機(jī)= 01010100    [X2]機(jī)= 11010100(二)原碼、反碼、補(bǔ)碼最高位為符號(hào)位,0表示 “+”,1表示“-”。 數(shù)值位與真值數(shù)值位相同。 例  8位原碼機(jī)器數(shù):  真值:   x1  = +1010100B     x2    =- 1010100B      機(jī)器數(shù): [x1]原  = 01010100  [x2]原 = 11010100原碼表示簡(jiǎn)單直觀,但0的表示不唯一,加減運(yùn)算復(fù)雜。 正數(shù)的反碼與原碼表示相同。       負(fù)數(shù)反碼符號(hào)位為 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、字符編碼    美國(guó)標(biāo)準(zhǔn)信息交換碼ASCII碼,用于計(jì)算      機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)之間傳遞信息。 3、漢字編碼 “國(guó)家標(biāo)準(zhǔn)信息交換用漢字編碼”(GB2312-80標(biāo)準(zhǔn)),簡(jiǎn)稱國(guó)標(biāo)碼。 用兩個(gè)七位二進(jìn)制數(shù)編碼表示一個(gè)漢字 例如“巧”字的代碼是39H、41H漢字內(nèi)碼例如“巧”字的代碼是0B9H、0C1H1·4  運(yùn)算基礎(chǔ) 一、二進(jìn)制數(shù)的運(yùn)算加法規(guī)則:“逢2進(jìn)1”       減法規(guī)則:“借1當(dāng)2”       乘法規(guī)則:“逢0出0,全1出1”二、二—十進(jìn)制數(shù)的加、減運(yùn)算        BCD數(shù)的運(yùn)算規(guī)則 循十進(jìn)制數(shù)的運(yùn)算規(guī)則“逢10進(jìn)1”。但計(jì)算機(jī)在進(jìn)行這種運(yùn)算時(shí)會(huì)出現(xiàn)潛在的錯(cuò)誤。為了解決BCD數(shù)的運(yùn)算問(wèn)題,采取調(diào)整運(yùn)算結(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  三、 帶符號(hào)二進(jìn)制數(shù)的運(yùn)算 1.5 幾個(gè)重要的數(shù)字邏輯電路編碼器譯碼器計(jì)數(shù)器微機(jī)自動(dòng)工作的條件程序指令順序存放自動(dòng)跟蹤指令執(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)管腳特點(diǎn)  1、多功能;2、分時(shí)復(fù)用內(nèi)部結(jié)構(gòu)  1、控制; 2、運(yùn)算; 3、寄存器; 4、地址程序計(jì)數(shù)器堆棧定義 1、定義;2、管理;3、堆棧形式

    標(biāo)簽: 微機(jī)原理 接口

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

    上傳用戶:erkuizhang

  • 基于ARM嵌入式熱熔焊接機(jī)智能控制器的設(shè)計(jì)

    PE管道熱熔對(duì)接焊的工藝參數(shù)隨管道尺度和環(huán)境條件的不同而不同,同時(shí)還受人為因素的影響,對(duì)焊接機(jī)自動(dòng)化程度要求很高。介紹了基于ARM嵌入式熱熔焊接機(jī)智能控制器的硬件和軟件的設(shè)計(jì)方案。此方案符合焊接各個(gè)階段工藝參數(shù)指標(biāo),并具有操作糾錯(cuò)及錯(cuò)誤信息管理功能,最大程度地消除了人為因素的影響,提高焊接質(zhì)量,并具備焊接數(shù)據(jù)的可追溯性,便于管理人員對(duì)焊接工程的管理。

    標(biāo)簽: ARM 嵌入式 熱熔 智能控制器

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

    上傳用戶:515414293

主站蜘蛛池模板: 阳西县| 册亨县| 乐平市| 尚义县| 曲麻莱县| 思茅市| 衡东县| 呼玛县| 漳浦县| 江油市| 肃宁县| 金塔县| 汝州市| 玛纳斯县| 禄劝| 洛川县| 静安区| 项城市| 大城县| 山丹县| 刚察县| 宁陵县| 依兰县| 驻马店市| 西昌市| 通河县| 龙里县| 汉寿县| 梧州市| 长葛市| 崇礼县| 天门市| 肥东县| 阿城市| 安仁县| 浪卡子县| 东辽县| 施秉县| 东安县| 丽江市| 海兴县|