實用單片機系統是基于MCU8051硬件平臺下開發的一款操作平臺,它不是一個操作系統,而是一個操作平臺,主要借鑒了操作系統、手機的一些概念,比如消息機制、系統時鐘、軟件定時器、平臺等概念。 實用單片機系統的核心理念是:在一個標準化的硬件基礎上(如8051,avr,arm等)擴展一個標準化的軟件平臺,把常規項目常用的一些功能如串口通訊、串口調試、系統定時器、軟件定時器、按鍵界面處理等通過消息機制組織起來,形成一個完整的系統。當一個特定的項目需要增加或者刪除一項具體的功能時,只需要在平臺上增加或者去掉相應的功能即可,這樣項目不需要每次重新構思架構,也不需要從零開始,并且原有的系統通過各個項目沉淀后,更加穩定可靠,這就是平臺的概念,它不是各個子函數的集合。 相對于現在的很多人把RTOS操作系統應用于MCU來說,往往只為了實現任務的調度轉換而不考慮功能的實用、易用性,此外因其較高的資源占用性導致其不適合在MCU類低資源的嵌入式平臺應用,MS系統相對于這些RTOS來說,首先還是保留了編程者的常規前后臺思維,但又加了一些RTOS的優點,如軟件定時器實現的時間片任務系統,類似RTOS的任務,其次為編程者實現了整個程序的框架和一些常用的函數及接口功能如按鍵、串口、時鐘等,讓編程者把精力放在跟項目相關的地方,甚至不需要關心所用MCU的寄存器配置,再次就是代碼非常簡單,容易學習,尤其是建議大家采用SourceInsight查看程序,遠比keil編輯器的功能強,它是C語言下最好的編輯器。而MS3.21版本,建議大家直接在Keil的軟件仿真器下運行學習。 MS資料可以從以下網址下載:http://www.study-bbs.com/thread-46471-1-1.html讀者有什么疑問也可以在這個版面提問,作者將盡力解釋。目前MS3.21版本增加了一個GUI操作框架,相比目前已有的GUI更加簡單易懂,利用一個函數指針代替了復雜的狀態機,每一個界面由一個界面建立函數和一個執行函數構成即可。
上傳時間: 2013-10-29
上傳用戶:txfyddz
提出了采用兩段式同軸波紋慢波結構實現雙頻高功率微波輸出的相對論返波振蕩器, 推導了該結構的TM0n模式色散方程,數值求解了兩段式同軸波紋慢波結構TM0n模色散曲線,分析了該器件X波段雙頻高功率微波輸出的產生機理, 分析中考慮了電子注在慢波結構第二段工作效率不變和下降時的雙頻工作點情況,并運用2.5 維全電磁粒子模擬程序驗證了雙頻微波信號的可靠性。關鍵詞高功率微波;雙頻;X 波段;相對論返波振蕩器 當前, 應用于高功率微波效應的微波器件只有一個主頻率,已有的實驗結果表明,在現有條件下,單頻高功率微波用于攻擊敵方的電子系統所需的功率遠遠大于單只高功率微波源所能產生的功率,即破壞閾值很高[1]。但是,如果用兩個或多個頻率相近的高功率微波波束產生拍頻后用于攻擊電子系統,那么所需的功率密度將大大減小,即效應閾值大大下降, 采用這種方式將有可能在現有的技術下使高功率微波實用化[2],但是雙頻及多頻高功率微波源器件的研究目前是十分前沿的課題,處于剛起步階段,在國內外極少有報道[2~4],因而,用單個微波源器件產生穩定輸出的雙頻甚至多頻高功率微波具有重要的實際應用價值和學術價值,是高功率微波領域又一個新興的研究方向, 在高功率微波武器和新體制雷達等方面將有良好的應用前景。
上傳時間: 2013-10-31
上傳用戶:kxyw404582151
單片機體積小,重量輕,具有很強的靈活性,而且價格不高,越來越得到廣泛的應用。而C語言是一種編譯型設計語言。它兼顧了多種高級語言的特點,并具備匯編語言的功能。用C語言來編寫目標系統軟件,會大大縮短開發周期,且明顯的增加軟件的可讀性,便于改進和擴充,以研制出規模更大、性能更完備的系統。用C語言進行8051單片機程序設計是單片機開發與應用的必然趨勢。單片機的程序設計應該以C語言為主,以匯編語言為輔。而且采用C語言也不必對單片機和硬件接口的結構有很深入的了解,編譯器可以自動完成變量的存儲單元的分配,編程者就可以專注于應用軟件部分的設計,大大加快軟件的開發速度。采用C語言可以很容易地進行單片機的程序移植工作,有利于產品中單片機的重新選型。為此,特開設了單片機的C語言應用程序設計這門選修課。
上傳時間: 2013-10-19
上傳用戶:851197153
本文簡單介紹了MCGS 組態軟件和SPCE061A 單片機的特點,即北京昆侖通態自動化軟件科技有限公司的工控組態軟件MCGS(Monitor and Control Generated System )和臺灣凌陽科技推出的16 位微控制器SPCE061A,重點介紹了如何一步步開發SPCE061A 單片機的驅動程序,并簡單介紹了下位機程序的設計,最后給出了測試情況。計算機技術的飛速發展為工業自動化開辟了廣闊的發展空間,人們可以快捷地開發和組建高效的控制系統。筆者設計的液體點滴監控模型,可以對液體點滴情況實現遠程監控和現場監控,終端和上位機均可人工設定所需的液體點滴速度并動態顯示。在這方面,MCGS 工控組態軟件提供了強有力的支持,它是一套Windows 環境下快速構造和生成上位機監控系統的組態軟件系統,可快速構造和生成數據采集、報警處理、流程控制、動畫顯示、報表輸出等界面,實現各種工程曲線的繪制、報表輸出、遠程通信等功能 [1]。MCGS 作為一種方便有效的通用工控軟件,它提供了國內外各種常用的工控設備的驅動程序。但在實際應用中,因為所用設備的特殊性,允許用戶根據需要來定制設備驅動程序。MCGS 用Active DLL 構件實現設備驅動程序,通過規范的OLE 接口掛接到MCGS 中,使其構成一個整體。鑒于Visual Basic 語言的通用性和簡單性,使用VB 來開發單片機驅動,MCGS 的實現方法和原理與標準的Active DLL 完全一致,但MCGS 規定了一套接口規范,只有遵守這些接口規范的Active DLL 才能用作MCGS 的設備驅動構件。利用具有語音和 DSP 功能的SPCE061A 單片機作為液體點滴監控模型的核心控制器,SPCE061A 是臺灣凌陽科技推出的16 位微控制器,提供了豐富的軟、硬件資源,開發靈活方便。除此之外SPCE061A 的最高時鐘頻率可達到49MHz,具有運算速度高的優勢,這為語音的錄制和播放提供了條件[4]。
上傳時間: 2013-12-19
上傳用戶:leesuper
多功能高集成外圍器件6. 1 多功能高集成外圍器件82371PCI的英文名稱:Peripheral Component Interconnect (外圍部件互聯PCI總線);82371是PCI總線組件。ISA是:Industry Standard Architecture(工業標準體系結構)IDE是 (Integrated Device Electronics)集成電路設備簡稱PIIX4PIIX4器件(芯片)的特點1、是一種支持Pentium和PentiumII微處理器的部件。2、82371對ISA橋來說,是一種多功能PCI總線。3、對可移動性和桌面深綠色環境均提供支持。4、電源管理邏輯。5、被集成化的IDE控制器。6、增強了性能的DMA控制器。(7)基于兩個82C59的中斷控制器。(8)基于82C54芯片的定時器。(9)USB(Universal Serial Bus)通用串行總線。(10)SMBus系統管理總線。(11)實時時鐘(12)順應Microsoft Win95所需的功能其芯片的邏輯框圖如圖6-1所示。 PIIX4芯片邏輯框圖6.1.1 概述PIIX4芯片是一個多功能的PCI器件,圖6-2 是82371在系統中扮演的角色。(續上圖)1. PCI與EIO之間的橋(PIIX4芯片)橋是不對程的,是各類不同標準總線與PCI總線連接,82371AB橋也可理解為一種總線轉換譯碼器和控制器,橋內包含復雜的協議總線信號和緩沖器。(1).在PCI系統內,當PIIX4操作時,它總是作為系統內各種模塊的主控設備,如USB和DMA控制器、IDE總線和分布式DMA的主控設備等,而且總是以ISA主控設備的名義出現。(2). 在向ISA總線或IDE總線進行傳送操作的傳送周期期間作為從屬設備使用,并對內部寄存器譯碼。PIIX4芯片(橋)的配置(1).可以把PIIX4芯片配置成整個ISA總線,或ISA總線的子集,也可擴展成EIO總線。在使用EIO總線時,可以把未使用的信號配置成通用的輸入和輸出。(2).PIIX4可直接驅動5個ISA插槽;(3).能提供字節-交換邏輯、I/O的恢復支持、等待狀態的生成以及SYSCLK的生成。(4).提供X-BUS鍵盤控制器芯片、BIOS芯片、實時時鐘芯片、二級微程序器等的選擇。2. IDE接口(總線主控設備的權利和同步DMA方式)IDE接口為4個IDE的設備提供支持,比如IDE接口的硬盤和CD-ROM等。注意:目前硬盤接口有5類:IDE、SCSI、Fibre Channel、IEEE1394和USB等。IDE口幾乎在PC機最多,因為便宜。SCSI多用于服務器和集群機。IDE的PIO IDE速率:14MB/s;而總線主控設備IDE的速率:33MB/s在PIIX4芯片的IDE系統內,配有兩個各次獨立的IDE信號通道。3. 具有兼容性的模塊—DMA、定時器/計數器、中斷控制器等(1)在PIIX4內的兩各82C37 DMA控制器經邏輯的組合,產生7個獨立的可編程通道。通道[0:3]是通過與8個二進位的硬件連線實現的。通過以字節為單位的計數進行傳送。而通道[5:7]是通過16個二進位的連線實現的,以字為單位的計數進行傳送。(2)DMA控制器還能通過PCI總線,處理舊的DMA的兩個不同的方法提供支持。(3)計數/定時器模塊在功能上與82C54等價。(4)中斷控制器與ISA兼容,其功能是兩個82C59的功能之和。
上傳時間: 2013-11-19
上傳用戶:3到15
微型計算機課程設計論文—通用微機發聲程序的匯編設計 本文講述了在微型計算機中利用可編程時間間隔定時器的通用發聲程序設計,重點講述了程序的發聲原理,節拍的產生,按節拍改變的動畫程序原理,并以設計一個簡單的樂曲評分程序為引子,分析程序設計的細節。關鍵字:微機 8253 通用發聲程序 動畫技術 直接寫屏 1. 可編程時間間隔定時器8253在通用個人計算機中,有一個可編程時間間隔定時器8253,它能夠根據程序提供的計數值和工作方式,產生各種形狀和各種頻率的計數/定時脈沖,提供給系統各個部件使用。本設計是利用計算機控制發聲的原理,編寫演奏樂曲的程序。 在8253/54定時器內部有3個獨立工作的計數器:計數器0,計數器1和計數器2,每個計數器都分配有一個斷口地址,分別為40H,41H和42H.8253/54內部還有一個公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對3個計數器和控制器尋址. 對8353/54編程時,先要設定控制字,以選擇計數器,確定工作方式和計數值的格式.每計數器由三個引腳與外部聯系,見教材第320頁圖9-1.CLK為時鐘輸入端,GATE為門控信號輸入端,OUT為計數/定時信號輸入端.每個計數器中包含一個16位計數寄存器,這個計數器時以倒計數的方式計數的,也就是說,從計數初值逐次減1,直到減為0為止. 8253/54的三個計數器是分別編程的,在對任一個計數器編程時,必須首先講控制字節寫入控制寄存器.控制字的作用是告訴8253/54選擇哪個計數器工作,要求輸出什么樣的脈沖波形.另外,對8253/54的初始化工作還包括,向選定的計數器輸入一個計數初值,因為這個計數值可以是8為的,也可以是16為的,而8253/5的數據總線是8位的,所以要用兩條輸出指令來寫入初值.下面給出8253/54初始化程序段的一個例子,將計數器2設定為方式3,(關于計數器的工作方式參閱教材第325—330頁)計數初值為65536. MOV AL,10110110B ;選擇計數器2,按方式3工作,計數值是二進制格式 OUT 43H,AL ; j將控制字送入控制寄存器 MOV AL,0 ;計數初值為0 OUT 42H,AL ;將計數初值的低字節送入計數器2 OUT 42H,AL ;將計數初值的高字節送入計數器2 在IBM PC中8253/54的三個時鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機上的大多數I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關于8255A的結構和工作原理及應用舉例參閱教材第340—373頁.教材第364頁的”PC/XT機中的揚聲器接口電路”一節介紹了揚聲器的驅動原理,并給出了通用發聲程序.本設計正是基于這個原理,通過編程,控制加到揚聲器上的信號的頻率,奏出樂曲的.2.發聲程序的設計下面是能產生頻率為f的通用發聲程序:MOV AL, 10110110B ;8253控制字:通道2,先寫低字節,后寫高字節 ;方式3,二進制計數OUT 43H, AL ;寫入控制字MOV DX, 0012H ;被除數高位MOV AX, 35DEH ;被除數低位 DIV ID ;求計數初值n,結果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;讀入8255A端口B的內容MOV AH, AL ;保護B口的原狀態OR AL, 03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚聲器,使它發聲
上傳時間: 2013-10-17
上傳用戶:sunjet
子程序庫的使用方法如下:1.將子程序庫全部內容鏈接在應用程序之后,統一編譯即可。優點是簡單方便,缺點是程序太長,大量無關子程序也包含在其中。 2.僅將子程序庫中的有關部分內容鏈接在應用程序之后,統一編譯即可。有些子程序需要調用一些低級子程序,這些低級子程序也應該包含在內。優點是程序緊湊,缺點是需要對子程序庫進行仔細刪節。MCS-51 浮點運算子程序庫及其使用說明本浮點子程序庫有三個不同層次的版本,以便適應不同的應用場合: 1.小型庫(FQ51A.ASM):只包含浮點加、減、乘、除子程序。 2.中型庫(FQ51B.ASM):在小型庫的基礎上再增加絕對值、倒數、比較、平方、開平方、 數制轉換等子程序。 3.大型庫(FQ51.ASM):包含本說明書中的全部子程序。 為便于讀者使用本程序庫,先將有關約定說明如下: 1.雙字節定點操作數:用[R0]或[R1]來表示存放在由R0或R1指示的連續單元中的數 據,地址小的單元存放高字節。如果[R0]=1234H,若(R0)=30H,則(30H)=12H,(31H)=34H。 2.二進制浮點操作數:用三個字節表示,第一個字節的最高位為數符,其余七位為 階碼(補碼形式),第二字節為尾數的高字節,第三字節為尾數的低字節,尾數用雙字節 純小數(原碼)來表示。
上傳時間: 2013-10-15
上傳用戶:wmwai1314
紅外遙控接收;=================================================;; zsMCU51實驗板配套學習例程;; 中山單片機學習網 智佳科技;; 作者:逸風 QQ:105558851;; http://www.zsmcu.com; E-mail:info@zsmcu.com;=================================================ORG 0000HLJMP START;轉入主程序ORG 0010HSTART:MAIN:JNB P2.2,IRLJMP MAIN;以下為進入P3.2腳外部中斷子程序,也就是解碼程序IR:MOV R6,#9SB:ACALL DELAY882 ;調用882微秒延時子程序JB P2.2,EXIT ;延時882微秒后判斷P3.2腳是否出現高電平如果有就退出解碼程序DJNZ R6, SB ;重復10次,目的是檢測在8820微秒內如果出現高電平就退出解碼程序;以上完成對遙控信號的9000微秒的初始低電平信號的識別。JNB P2.2, $ ;等待高電平避開9毫秒低電平引導脈沖ACALL DELAY2400JNB P2.2,IR_Rp ;ACALL DELAY2400 ;延時4.74毫秒避開4.5毫秒的結果碼MOV R1,#1AH ;設定1AH為起始RAM區MOV R2,#4PP:MOV R3,#8JJJJ:JNB P2.2,$ ;等待地址碼第一位的高電平信號LCALL DELAY882 ;高電平開始后用882微秒的時間尺去判斷信號此時的高低電平狀態MOV C,P2.2 ;將P3.2引腳此時的電平狀態0或1存入C中 JNC UUU ;如果為0就跳轉到UUULCALL DELAY1000UUU:MOV A,@R1 ;將R1中地址的給ARRC A ;將C中的值0或1移入A中的最低位MOV @R1,A ;將A中的數暫時存放在R1中DJNZ R3,JJJJ ;接收地址碼的高8位INC R1 ;對R1中的值加1,換下一個RAMDJNZ R2,PP ;接收完16位地址碼和8位數據碼和8位數據,存放在1AH/1BH/1CH/1DH的RAM中MOV P1,1DH ;將按鍵的鍵值通過P1口的8個LED顯示出來!CLR P2.3 ;蜂鳴器鳴響-嘀嘀嘀-的聲音,表示解碼成功LCALL DELAY2400LCALL DELAY2400LCALL DELAY2400SETB P2.3;蜂鳴器停止LJMP MAINIR_Rp:LJMP MAINEXIT:LJMP MAIN ;退出解碼子程序;=============================882DELAY882: ;1.085x ((202x4)+5)=882MOV R7,#202DELAY882_A:NOPNOPDJNZ R7,DELAY882_ARET;=============================1000DELAY1000: ;1.085x ((229x4)+5)=999.285MOV R7,#229DELAY1000_A:NOPNOPDJNZ R7,DELAY1000_ARET;=============================2400
上傳時間: 2013-11-01
上傳用戶:2525775
PLC 以 其 可靠性高、抗干擾能力強、配套齊全、功能完善、適應性強等特點,廣泛應用于各種控制領域。PLC作為通用工業控制計算機,是面向工礦企業的工控設備,使用梯形圖符號進行編程,與繼電器電路相當接近,被廣大工程技術人員接受。但是在實際應用中,如何編程能夠提高PLC程序運行速度是一個值得我們思考研究的問題。1 PLC工作原理PLC 與 計 算機的工作原理基本相同,即在系統程序的管理下,通過運行應用程序完成用戶任務。但兩者的工作方式有所不同。計算機一般采用等待命令的工作方式,而PLC在確定了工作任務并裝人了專用程序后成為一種專用機,它采用循環掃描工作方式,系統工作任務管理及應用程序執行都是用循環掃描方式完成的。PLC 有 兩 種基本的工作狀態,即運行(RUN)與停止(STOP)狀態。在這兩種狀態下,PLC的掃描過程及所要完成的任務是不盡相同的,如圖1所示。 PLC在RUN工作狀態時,執行一次掃描操作所的時間稱為掃描周期,其典型值通常為1一100nis,不同PLC廠家的產品則略有不同。掃描周期由內部處理時間、輸A/ 輸出處理執行時間、指令執行時間等三部分組成。通常在一個掃描過程中,執行指令的時間占了絕大部分,而執行指令的時間與用戶程序的長短有關。用戶 程 序 是根據控制要求由用戶編制,由許多條PLC指令所組成。不同的指令所對應的程序步不同,以三菱FX2N系列的PLC為例,PLC對每一個程序步操作處理時間為:基本指令占0.741s/步,功能指令占幾百微米/步。完成一個控制任務可以有多種編制程序的方法,因此,選擇合理、巧妙的編程方法既可以大大提高程序運行速度,又可以保證可靠性。 提高PLC程序運行速度的幾種編程方法2.1 用數據傳送給位元件組合的方法來控制輸出在 PL C應 用編程中,最后都會有一段輸出控制程序,一般都是用邏輯取及輸出指令來編寫,如圖2所示。在圖2所示的程序中,邏輯取的程序步為1,輸出的程序步為2,執行上述程序共需3個程序步。通常情況下,PLC要控制的輸出都不會是少量的,比如,有8個輸出,在條件滿足時要同時輸出。此時,執行圖2所示的程序共需17個程序步。若我們通過位元件的組合并采用數據傳送的方法來完成圖2所示的程序,就會大大減少程序步驟。在三 菱 PLC中,只處理ON/OFF狀態的元件(如X,Y,M和S),稱為位元件。但將位元件組合起來也可以處理數據。位元件組合由Kn加首元件號來表示。位元件每4bit為一組組合成單元。如KYO中的n是組數,當n=1時,K,Yo 對應的是Y3一Yo。當n二2時,KZYo對應的是Y7一Yo。通過位元件組合,就可以用處理數據的方式來處理位元件,圖2程序所示的功能可用圖3所示的傳送數據的方式來完成。
上傳時間: 2013-11-11
上傳用戶:幾何公差
I2C總線高頻頭控制程序(Keil C51程序 基于芯片TSA5522系列) /*I2C總線高頻頭控制Keil C51程序(PLL芯片為TSA5522系列) *///--------------------------------------------------------------------------//// 源程序大公開 //// (c) Copyright 2001-2003 xuwenjun //// All Rights Reserved //// V1.00 ////--------------------------------------------------------------------------////標 題: I2C總線高頻頭控制程序(PLL芯片為TSA5522系列) ////文件名: xwj_fi1256.c ////版 本: V1.00 ////修改人: 徐文軍 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 首次公開 ////描 述: I2C總線高頻頭控制程序(PLL芯片為TSA5522系列) ////聲 明: //// 以下代碼僅免費提供給學習用途,但引用或修改后必須在文件中聲明出處. //// 如用于商業用途請與作者聯系. E-mail:xuwenjun@21cn.com //// 有問題請mailto xuwenjun@21cn.com 歡迎與我交流! ////--------------------------------------------------------------------------////老版本: 無 老版本文件名: ////創建人: 徐文軍 E-mail:xuwenjun@21cn.com ////日 期: 06-02-26 ////描 述: ////--------------------------------------------------------------------------// /* 頻率單位為KHz */#define FUENCY 38900 /* 中頻頻率 */#define PLLdataH(f) ((f+FUENCY)*16/1000/256) /* 頻率數據高 第1字節*/#define PLLdataL(f) ((f+FUENCY)*16/1000%256) /* 頻率數據低 第2字節*/#define PLLCON1 0x8e /* 控制字1 第3字節*/ /* 控制字2 第4字節*/#define PLLCON2(f) (((f)<(168000))?(0xa0):(((f)<(450000))?(0x90):(0x30)))#define PLLdata3(fchan) PLLdataH (fchan),PLLdataL (fchan),PLLCON2 (fchan)
上傳時間: 2013-11-10
上傳用戶:nanfeicui