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

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

位定時

  • 一種8位單片機中ALU的改進設計

    文章提出了一種精簡指令集8 位單片機中, 算術邏輯單元的工作原理。在此基礎上, 對比傳統PIC 方案、以及在ALU 內部再次采用流水線作業的332 方案、44 方案, 并用Synopsys 綜合工具實現了它們。綜合及仿真結果表明, 根據該單片機系統要求, 44 方案速度最高, 比332 方案可提高43.9%, 而面積僅比最小的332 方案增加1.6%。在分析性能差異的根本原因之后, 闡明了該方案的優越性。關鍵詞: 單片機, 精簡指令集, 算術邏輯單元, 流水線 Abstract: Work principle for ALU in an 8_bit RISC Singlechip microcomputer is described. The traditional PIC scheme, 332 Pipeline scheme and 44 Pipeline scheme are compared on the base of the principle, which are implemented using Synopsys design tools. Results from synthesis and simulation shows that 44 scheme operates the fast, which is 43.9% faster and only 1.6% larger than 332 scheme. The essential reason why the performance is so different is analyzed.Then the advantage of 44 scheme is clarified.Key words: Singlechip, Microcomputer, RISC, ALU, Pipeline

    標簽: ALU 8位單片機

    上傳時間: 2013-10-18

    上傳用戶:xiaoyaa

  • 用PIC16C73 單片機實現十二位A/D轉換器

    介紹用PIC16C73 自帶的八位A/D 轉換器擴展為十二位A/D 轉換器,給出了具體的設計方案和程序流程。它是用以 PIC16C73 為MCU 構成的海水有機磷測控儀A/D 轉換部分的一種解決方案。為監測海洋生態環境,研制了用于海水有機磷農藥現場監測的生物傳感器。為測定生物傳感器的信號,使傳感器可用于船載及臺站的海洋生態環境現場自動監測,需要對整個的采樣和排液裝置進行控制以及對傳感器來的信號進行實時采集處理,形成有機磷的濃度傳給上位機。為此,開發了以PIC16C73 單片機為核心的小型測控儀器,很好的完成了上述功能。PIC1673 單片機自帶8 位的A/D 轉換器,但不能滿足系統對精度的要求,本設計在單片機自帶8 位A/D 基礎上加少量的硬件和軟件開銷,使其擴展為十二位A/D 轉換器,滿足了系統的要求。

    標簽: PIC 16C C73 16

    上傳時間: 2013-10-30

    上傳用戶:a296386173

  • 基于中穎SH79F164單片機的電子血壓計應用

    基于中穎SH79F164單片機的電子血壓計應用:電子血壓計因具有無創性、操作簡單、攜帶方面等優點,目前得到廣泛的應用和推廣。無創檢測血壓的方法很多,如柯氏音法,測振法,超聲法、雙袖帶法、恒定袖帶法、逐拍跟蹤法、張力定測法和恒定容積法等。其中測振法就是我們常說的示波法,由于具有較好的抗干擾能力,能比較可靠地判斷血壓、實現血壓的自動檢測而成為無創血壓的主流。目前國內外大多數電子血壓計都采用示波法。示波法的原理同柯氏音法,也需要充氣袖套來阻斷動脈流,但在放氣過程中不是檢測柯氏音,而是檢測氣袖內氣體的振蕩波(測振法由此得名),這些振蕩波是袖帶與動脈耦合的結果,源于心血管周期內血管壁由于收縮舒張引起的壓力脈動。理論計算和實踐均證明此振蕩波的幅度有一定的規律,與動脈收縮壓、平均壓以及舒張壓有一定的函數關系。針對示波法,本文將詳細介紹基于中穎電子SH79F164 單片機的血壓計系統方案與軟硬件實現。 在硬件電路設計方面,筆者參考了大量的資料,最終選定SH79F164 單片機作為主控IC。其理由是SH79F164 內建資源豐富,既能節省大量外圍器件,又方便系統調試。SH79F164 內建資源主要有:可編程儀表放大器(PGA)、帶通濾波器、固定增益放大器、恒流源放大器、10 位A/D 轉換器、時基定時器(RTC)。硬件部分構成:壓力傳感器、SH79F164 單片機、LCD、袖套、充氣泵、放氣閥、按鍵等(見圖3)。

    標簽: F164 164 79F SH

    上傳時間: 2013-10-23

    上傳用戶:muhongqing

  • 抽樣z變換頻率抽樣理論

    抽樣z變換頻率抽樣理論:我們將先闡明:(1)z變換與DFT的關系(抽樣z變換),在此基礎上引出抽樣z變換的概念,并進一步深入討論頻域抽樣不失真條件。(2)頻域抽樣理論(頻域抽樣不失真條件)(3)頻域內插公式一、z變換與DFT關系 (1)引入連續傅里葉變換引出離散傅里葉變換定義式。離散傅里葉變換看作是序列的傅里葉變換在 頻 域 再 抽 樣 后 的 變 換 對.在Z變換與L變換中,又可了解到序列的傅里葉 變換就是單位圓上的Z 變 換.所以對序列的傅里葉變換進行頻域抽樣時, 自 然可以看作是對單位圓上的 Z變換進行抽樣. (2)推導Z 變 換 的 定 義 式 (正 變 換) 重 寫 如 下:  取z=ejw 代 入 定 義 式,  得 到 單 位 圓 上 Z 變 換 為w是 單 位 圓 上 各 點 的 數 字 角 頻 率.再 進 行 抽 樣-- N 等 分.這 樣w=2kπ/N, 即w值為0,2π/N,4π/N,6π/N…, 考慮到x(n)是N點有限長序列, 因而n只需0~N-1即可。將w=2kπ/N代入并改變上下限,  得 則這正是離散傅里葉變換 (DFT)正變換定義式.

    標簽: 抽樣 變換 頻率

    上傳時間: 2014-12-28

    上傳用戶:zhaistone

  • 單片機音樂中音調和節拍的確定方法

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

    標簽: 單片機 音調

    上傳時間: 2013-10-20

    上傳用戶:哈哈haha

  • 單片機復位標志位的設置與應用研究

    設置復位標志位便于區分不同原因引發的復位,作為一種新技術被越來越多的新型單片機所采納。例如Philips公司的P87LPC700和 P89LPC900系列、Freescale公司(原Motorola半導體部)的MC68HC05系列和MC68HC08系列、Sunplus公司的 SPMC65系列、Microchip公司的PIC系列等,內部都設計了專門用于記錄各種復位標志的狀態寄存器。MC68HC08系列有一個復位狀態寄存器,負責記錄6種復位標志位:上電復位、引腳復位、看門狗復位、非法指令復位、非法地址復位和欠壓復位。SPMC65系列有一個系統控制寄存器,負責記錄5種復位標志位:上電復位、外部復位、看門狗復位、非法地址復位和欠壓復位。51兼容的P89LPC900系列有一個復位源寄存器,負責記錄6種復位標志位:欠壓復位、上電復位、外部復位、看門狗復位、軟件復位和UART收到間隔字符復位(主要作為進入ISP監控程序的途徑之一)。就連初學者很常用的 AT89S51/52和P89C52X2,也在其電源控制寄存器PCON中增設了一個上電標志位POF。1、 復位標志位的設置方法傳統的80C51單片機沒有設計復位標志位的記錄功能,這應該說是一種遺憾,那么能否通過一定的技術手段來彌補這個缺憾呢?這里給廣大80C51單片機用戶提供一種啟示和引導。實現復位標志位的記錄肯定需要一定的硬件電路支持,而這種電路的設計不存在固定模式。筆者利用一片MAX813L設計了一種支撐電路,如圖1所示,僅供讀者參考。

    標簽: 單片機復位 標志位 應用研究

    上傳時間: 2013-10-21

    上傳用戶:lhw888

  • 定時器/計數器基礎

    15-1.實現定時的方法15-2.定時器/計數器的結構和工作原理 15-3.定時器/計數器的控制15-4.定時器/計數器的工作方式 15-5.定時器/計數器應用 軟件定時軟件延時不占用硬件資源,但占用了CPU時間,降低了CPU的利用率。例如延時程序。采用時基電路定時例如采用555電路,外接必要的元器件(電阻和電容),即可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能由軟件進行控制和修改,即不可編程,且定時時間容易漂移。可編程定時器定時最方便的辦法是利用單片機內部的定時器/計數器。結合了軟件定時精確和硬件定時電路獨立的特點。定時器/計數器的結構  定時器/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時器/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啟動和停止及設置溢出標志。

    標簽: 定時器 計數器

    上傳時間: 2014-12-28

    上傳用戶:rnsfing

  • 單片機應用技術選編1

    單片機應用技術選編(1) 第一章 單片機系統綜合應用技術 11.1 且使用 8098單片機的幾點體會 2 1.2 單片機的冷啟動與熱啟動 31.3 大容量動態存儲器在單片機系統中的應用111.4 MCS-51單片機系統中動態 RAM的刷新技巧141.5 MCS-51單片機系統中外RAM空間超64KB的擴展方法161.6 8031單片機P0口和P2口的應用開發 181.7 74LS164在 8031單片機中的兩種用法261.8 用于 8031單片機的快速I/O接口281.9 MCS-51定時器定時常數初值的精確設定法301.10 8253的翻轉問題及 MC6840的替代方法321.11 MCS-51單片機外部中斷源的擴展設計351.12 MCS-51單片機多外中斷擴展方法401.13 用優先權編碼器74LS348擴展51系列單片機的外中斷源421.14 用優先權編碼器74LS148擴展51系列單片機的外中斷源471.15 8031單片機與 BG5119A漢字庫的接口方法521.16 可背插 SRAM的日歷時鐘 DS1216及其應用551.17 實時日歷時鐘集成電路MSM5832及其時序601.18 實時日歷時鐘集成電路MSM5832的接口技術631.19 實時時鐘/日歷芯片MC146818及其應用671.20 與 SICE仿真器通訊的IBM-PC機通訊程序的改進741.21 代碼形式參數匯編子程序的應用821.22 單片機應用系統中的查表程序設計861.23 用狀態綜合法設計鍵盤監控程序901.24 單片機系統程序的加密技術961.25 MCS-96單片機程序保密的幾種方法1001.26 GAL輸出宏單元原理及使用105 1.27 通用陣列邏輯 GAL應用于步進電機控制實例110 第二章 傳感器與前向通道接口技術1172.1 集成溫度傳感器 LM134及其應用1182.2 AD590集成溫度一電流傳感器原理及應用1242.3 集成溫度傳感器 AD590的應用1292.4 GS-800和 GS-130可燃氣體傳感器1332.5 集成化霍爾開關傳感器1352.6 一種新穎實用的氧氣/頻率轉換電路1392.7 MCS-51單片機與數字式溫度傳感器的接口設計1422.8 數字式溫度傳感器 SWC與 8031的接口及應用1452.9 低成本高精度壓力傳感器微機接口設計1472.10 峰值檢測電路原理及應用1512.11 用 LF398制作的實用峰值和谷值保持電路1532.12 AD637集成真有效值轉換器1562.13 傳感器信號調理模塊 ZB311622.14 2B31模塊在稱重智能儀表中的應用1662.15 傳感器信號調理模塊 2B30/2B31及其應用1692.16 高精度光纖位移測量系統的電路設計1752.17 集成電壓一電流轉換器 XTR100的工作原理及應用1792.18 傳感器信號變送器 F693及其應用1852.19 一種用兩片 VFC32構成的隔離放大器電路1912.20 實用線性隔離放大器1922.21 電橋放大電路中 7650的一些應用問題1942.22 A/D轉換器 ICL7109的應用研究1962.23 5G14433模數轉換器的啟停控制2002.24 ADC1130模數轉換器及其使用2042.25 16位 A/D轉換器 ADC1143及其與 80C31單片機的接口2082.26 串行 I/O D/A A/D轉換器與單片機的接口2132.27 單片機應用系統中的數字化傳感器接口技術2162.28 ADVFC32 A/D轉換接口技術2202.29 V/F和 F/V轉換器 TD650原理與應用2242.30 AD650與 MC-51單片機的接口技術2302.31 利用VCO電路與單片機接口實現A/D轉換2352.32 LM2907/2917系列F/V變換器在汽車檢測中的應用2382.33 單信號多通道輸入法改善 A/D轉換器性能2412.34 用多片 A們轉換芯片提高 A/D轉換速度2452.35 實時數控增益調整與浮點 ADC電路2492.36 電荷耦合器件的單片機驅動2532.37 電荷耦合器件的結構原理與單片機的軟件定時驅動2582.38 利用模數轉換器提高轉換信號的線性度2622.39 利用微型機解決轉換中的非線性問題2682.40 利用非線性曲線存儲實現線性化的方法2702.41 輸出無非線性誤差的可變電壓源單臂電橋274 第三章 控制系統與后向通道接口技術2793.1 DAC1231與單片機 8031的接口技術2803.2 單路及多路 D八的光電隔離接口技術2843.3 光電隔離高壓驅動器2903.4 TRAIC型光耦在 8031后向通道接口的應用分析2913.5 GD-L型光控晶閘管輸出光耦合器2963.6 用于晶閘管過零觸發的幾種方式3003.7 固態繼電器3043.8 固態繼電器在交流電子開關中的應用3083.9 JCG型參數固態繼電器3123.10 JCG型參數固態繼電器的應用315 3.11 介紹幾種適用于印刷電路板的超小型電磁繼電器3193.12 用TWH8751集成電路構成微機控制的三步進電機驅動電源3223.13 3-4相步進電機控制器 5G87133253.14 5G0602報警電路及應用3283.15 兩種新型溫控光控兀的應用330 第四章 人機對話通道接口技術3334.1 單片機鍵盤接口設計3344.2 由電話機集成電路構成的單片機鍵盤接口電路3364.3 用 GAL設計的一種編碼鍵盤接口3384.4 用 CMOS電路構成的非編碼觸摸鍵盤3424.5 設計薄膜開關應注意的一些問題3454.6 觸摸式電子開關集成電路 5G673及其應用3504.7 8279用于撥碼盤及顯示器的接口設計3544.8 LED數碼管的構造與特點3584.9 LED數碼管的集成驅動器及配套器件3624.10 8279芯片的顯示接口分析及32位數碼管顯示驅動電路設計366  4.11 用三端可調穩壓塊代替LED顯示器的限流電阻3704.12 液晶顯示器件的構造與特點3714.13 LCD七段顯示器與單片機的接口3744.14 液晶顯示器與單片機的接口技術3764.15 可編程LCD控制驅動器PPD72253814.16 微機總線兼容的四位 LCD驅動電路 TSC7211AM3874.17 使用8255的雙極性歸零脈沖驅動液晶顯示器接口3914.18 DMC16230型 LCD顯示模塊的接口技術3954.19 點陣式液晶顯示器原理及應用4034.20 實用液晶顯示電路4094.21 8031控制的 CRT顯示控制接口4144.22 用 8031控制多臺彩色顯示器的實現方法4194.23 高級語言處理器--T6668的結構與典型電路4234.24 延長 T6668語言電路錄放時間的方法4294.25 T6668高級語音開發站4324.26 語言處理器 T6668在電話報警系統中的應用4354.27 新型語音處理器YYH16439 第五章 網絡、通訊控制與多機系統4415.1 IBM-PC/XT和單片機通訊系統的設計4425.2 IBM-PC/XT微機與單片機的兩種通訊接口4485.3 MCS-51單片機與 IBMPC微機的串行通訊4525.4 中央控制端與 MCS-51單片機間的數據通訊4595.5 IBMPC機與 MCS-51單片機的快速數據通訊4665.6 8031單片機與 PC-1500計算機的通訊4735.7 多片 MCS-51系統的一種串行通訊方式4775.8 多單片機處理系統并行通訊的實現4815.9 半雙工遠距離電流環多機通訊接口電路4855.10 多微機系統共享 RAM電路4905.11 串行通訊中的波特率設置4925.12 在MCS-51單片機的串行通訊中實現波特率的自動整定4965.13 J274和 J275在微機分布式測控系統中的應用5005.14 單電纜傳送雙向數據5045.15 新穎的多路遙控兀編譯碼器5055.16 DTMF在單片機無線數據通訊中的應用5085.17 MCS-8031單片機在紅外遙控裝置中的應用5155.18 一種實用光纖數字遙測系統5185.19 智能儀表通訊系統中一種冗余通道的設計5245.20 EIARS-232-C接口使用中的幾個問題528 第六章 電源、電源變換與電源監視5316.1 電源擴展電路5326.2 一種簡單的直流三倍壓電路533 6.3 直流電源變換集成電路5356.4 直流電壓變換器ICL7660的應用5376.5 一種廉價高精密基準電壓源5406.6 精密可調基準電壓源及其應用5416.7 引腳可編程精密基準電壓源AD584及其應用5496.8 幾種新型恒流源集成電路5536.9 CW334三端可調恒流源及應用5576.10 電源電壓監視用芯片TL7705CP簡介5606.11 電源電壓監視用芯片TL7700簡介5646.12 WMS7705B電源監視用芯片簡介5676.13 具有HMOS結構的MCS-51系列單片機提供后備電源的方法570 第七章 系統抗于擾技術5757.1 微型計算機系統的抗干擾措施5767.2 計算機應用系統抗干擾問題5797.3 微機在工業應用中的抗干擾措施5867.4 利用電源監視TL7705芯片的抗電源于擾新方法5917.5 利用電源監視芯片WMS7705的抗電源干擾新方法5947.6 具有浪涌抑制能力的 TVP 6017.7 瞬變電壓抑制M極管TVP的特性及應用6047.8 單片機實時控制軟件抗干擾編程方法的探討6077.9 一種簡單實用的微機死機自復位抗干擾技術6107.10 單片機程序的監視保護6127.11 軟件 WATCHDOG系統615 7.12 一種實用的"看門狗"電路6187.13 高電壓下測量系統的抗干擾措施619 第八章 應用實例6218.1 單片機在多功能函數發生器中的應用6228.2 單片機波形發生器6298.3 單片機控制的調幅波發生器6338.4 用 8031單片機解調時統信號6368.5 具有 114DB動態范圍的浮點數據采集系統6418.6 電熱恒溫箱單片微機控制系統6468.7 智能 I一、C丑測試儀的原理及設計6528.8 采用 LMS算法的單片機數字交流電橋6568.9 單片微機的數字相位測試儀6598.10 單片機的氣體流量測量6628.11 單片機的相關流量儀6688.12 723型可見分光光度計6758.13 多功能微電腦電子秤6798.14 智能路面回彈檢測儀6838.15 使用 CCD的單片機動態布面檢測系統6878.16 使用 CCD的單片機激光衍射測徑系統6908.17 使用 CCD的單片機動態線徑測量儀6958.18 使用CCD的單片機中型熱軋圓鋼直徑檢測儀7018.19 用 MCS-51單片微機實現織布機的監測7058.20 單片機在工頻參量測試中的應用7098.21 單片機 8098在直線電機控制中的應用715?

    標簽: 單片機 應用技術

    上傳時間: 2014-12-28

    上傳用戶:liufei

  • 4位八段數碼管的十進制加計數仿真實驗(含電路圖和仿真文件)

    4位八段數碼管的十進制加計數仿真實驗,程序采用匯編語言編寫。此程序在仿真軟件上與EDN-51實驗板上均通過。仿真圖中的數碼管位驅動采用74HC04,如按EDN-51板上用想同的PNP三極管驅動在仿真軟件上則無法正常顯示。程序共分5塊,STAR0為數據初始化,STAR2為計數子程序,STAR3為4位數碼管動態顯示子程序,STAR4為按鍵掃描子程序,STS00是延時子程序。由于EDN-51實驗板上沒裝BCD譯碼器,所以編寫程序比較煩瑣。 程序如下: ORG 0000H                LJMP STAR0                        ;轉程序 SRAR0ORG 0200H                                          ;程序地址 0200HSTAR0:   CLR 00                                  ;位 00 清 0               MOV P1,#0FFH                    ;#0FFH-->P1               MOV P2,#0FH                      ;#0FH-->P2               MOV P0,#0FFH                    ;#0FFH-->P0               MOV 30H,#00H                    ;#00H-->30H               MOV 31H,#00H                    ;#00H-->30H               MOV 32H,#00H                    ;#00H-->30H               MOV 33H,#00H                    ;#00H-->30H               LJMP STAR3                        ;轉程序 SRAR3STAR2:   MOV A,#0AH                       ;#0AH-->A               INC 30H                                ;30H+1               CJNE A,30H,STJE                 ;30H 與 A 比較,不等轉移 STJE               MOV 30H,#00H                    ;#00H-->30H               INC 31H                                ;31H+1               CJNE A,31H,STJE                 ;31H 與 A 比較,不等轉移 STJE               MOV 31H,#00H                    ;#00H-->31H               INC 32H                                ;32H+1               CJNE A,32H,STJE                 ;32H 與 A 比較,不等轉移 STJE               MOV 32H,#00H                    ;#00H-->32H               INC 33H                                ;33H+1               CJNE A,33H,STJE                 ;33H 與 A 比較,不等轉移 STJE               MOV 33H,#00H                    ;#00H-->33H               MOV 32H,#00H                    ;#00H-->32H               MOV 31H,#00H                    ;#00H-->31H               MOV 30H,#00H                    ;#00H-->30HSTJE:      RET                                        ;子程序調用返回STAR3:   MOV R0,#30H                      ;#30H-->R0                MOV R6,#0F7H                   ;#0F7H-->R6SMG0:    MOV P1,#0FFH                    ;#0FFH-->P1                MOV A,R6                            ;R6-->A                MOV P1,A                            ;A-->P1                RR A                                     ;A向右移一位                MOV R6,A                           ;A-->R6                MOV A,@R0                       ;@R0-->A                ADD A,#04H                        ;#04H-->A                MOVC A,@A+PC               ;A+PC-->                MOV P0,A                            ;A-->P0                AJMP SMG1                        ;轉程序 SMG1SDATA:   DB 0C0H,0F9H,0A4H,0B0H,99H                DB 92H,82H,0F8H,80H,90H SMG1:     LCALL STAR4                    ;轉子程序 SRAR4                LCALL STS00                     ;轉子程序 STS00                INC R0                                 ;R0+1                CJNE R6,#07FH,SMG0       ;#07FH 與 R6 比較,不等轉移 SMG0                AJMP STAR3                       ;轉程序 SRAR3STAR4:    JNB P2.0,ST1                      ;P2.0=0 轉 ST1                CLR 00                                 ;位 00 清 0                SJMP ST3                            ;轉ST3ST1:         JNB 00,ST2                          ;位 00=0 轉 ST2                SJMP ST3                            ;轉 ST3ST2:         LCALL STAR2                    ;調子程序 STAR2                SETB 00                               ;位 00 置 1ST3:         RET                                      ;子程序調用返回ORG 0100H                                         ;地址 0100HSTS00:     MOV 60H,#003H                ;#003H-->60H  (211)DE001:     MOV 61H,#0FFH               ;#0FFH-->61H (255)DE002:     DJNZ 61H,DE002               ;61H 減 1 不等于 0 轉 DE002                 DJNZ 60H,DE001               ;60H 減 1 不等于 0 轉 DE001                 RET                                     ;子程序調用返回                 END                                    ;結束 上次的程序共有293句,經小組成員建議,本人經幾天的研究寫了下面的這個程序,現在的程序用了63句,精簡了230句。功能沒有減。如誰有更簡練的程序,請發上來,大家一起學習。 4位八段數碼管的十進制加計數仿真實驗(含電路圖和仿真文件)

    標簽: 數碼管 十進制 仿真實驗 仿真

    上傳時間: 2013-10-11

    上傳用戶:sssl

  • 匯編+保護模式+教程

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

    標簽: 匯編 保護模式 教程

    上傳時間: 2013-12-11

    上傳用戶:nunnzhy

主站蜘蛛池模板: 湾仔区| 呈贡县| 宣城市| 乐亭县| 顺平县| 黔西县| 泸溪县| 灌阳县| 邻水| 宜川县| 江西省| 宁德市| 丰顺县| 定襄县| 谷城县| 屏东市| 开封市| 广饶县| 武冈市| 平果县| 陆良县| 孟村| 库尔勒市| 财经| 三河市| 凤庆县| 兴宁市| 贞丰县| 方正县| 繁昌县| 吉林市| 东城区| 茌平县| 民和| 仙游县| 博客| 南充市| 剑阁县| 张家港市| 驻马店市| 南京市|