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

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

VHDL中變量賦值與信號賦值的區(qū)(qū)別

  • 單片機入門基礎知識大全免費下載

    單片機入門基礎知識大全免費下載 單片機第八課(尋址方式與指令系統(tǒng)) 通過前面的學習,我們已經(jīng)了解了單片機內(nèi)部的結構,并且也已經(jīng)知道,要控制單片機,讓它為我們干學,要用指令,我們已學了幾條指令,但很零散,從現(xiàn)在開始,我們將要系統(tǒng)地學習8051的指令部份。 一、概述 1、指令的格式 我們已知,要讓計算機做事,就得給計算機以指令,并且我們已知,計算機很“笨”,只能懂得數(shù)字,如前面我們寫進機器的75H,90H,00H等等,所以指令的第一種格式就是機器碼格式,也說是數(shù)字的形式。但這種形式實在是為難我們?nèi)肆?,太難記了,于是有另一種格式,助記符格式,如MOV P1,#0FFH,這樣就好記了。 這兩種格式之間的關系呢,我們不難理解,本質(zhì)上它們完全等價,只是形式不一樣而已。 2、匯編 我們寫指令使用匯編格式,而計算機只懂機器碼格式,所以要將我們寫的匯編格式的指令轉換為機器碼格式,這種轉換有兩種方法:手工匯編和機器匯編。手工匯編實際上就是查表,因為這兩種格式純粹是格式不同,所以是一一對應的,查一張表格就行了。不過手工查表總是嫌麻煩,所以就有了計算機軟件,用計算機軟件來替代手工查表,這就是機器匯編。 二、尋址 讓我們先來復習一下我們學過的一些指令:MOV P1,#0FFH,MOV R7,#0FFH這些指令都是將一些數(shù)據(jù)送到相應的位置中去,為什么要送數(shù)據(jù)呢?第一個因為送入的數(shù)可以讓燈全滅掉,第二個是為了要實現(xiàn)延時,從這里我們可以看出來,在用單片機的編程語言編程時,經(jīng)常要用到數(shù)據(jù)的傳遞,事實上數(shù)據(jù)傳遞是單片機編程時的一項重要工作,一共有28條指令(單片機共111條指令)。下面我們就從數(shù)據(jù)傳遞類指令開始吧。 分析一下MOV P1,#0FFH這條指令,我們不難得出結論,第一個詞MOV是命令動詞,也就是決定做什么事情的,MOV是MOVE少寫了一個E,所以就是“傳遞”,這就是指令,規(guī)定做什么事情,后面還有一些參數(shù),分析一下,數(shù)據(jù)傳遞必須要有一個“源”也就是你要送什么數(shù),必須要有一個“目的”,也就是你這個數(shù)要送到什么地方去,顯然在上面那條指令中,要送的數(shù)(源)就是0FFH,而要送達的地方(目的地)就是P1這個寄存器。在數(shù)據(jù)傳遞類指令中,均將目的地寫在指令的后面,而將源寫在最后。 這條指令中,送給P1是這個數(shù)本身,換言之,做完這條指令后,我們可以明確地知道,P1中的值是0FFH,但是并不是任何時候都可以直接給出數(shù)本身的。例如,在我們前面給出的延時程序例是這樣寫的: MAIN: SETB P1.0     ;(1)    LCALL DELAY ;(2)     CLR P1.0      ;(3)    LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,#250  ??;(6) D1: MOV R6,#250  ?。唬ǎ罚?D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1  ??;(9)    RET       ??;(10)    END       ??;(11)     表1  MAIN: SETB P1.0    ??;(1)    MOV 30H,#255     LCALL DELAY ;     CLR P1.0      ;(3)     MOV 30H,#200     LCALL DELAY   ;(4)     AJMP MAIN    ;(5) ;以下子程序 DELAY: MOV R7,30H  ??;(6) D1: MOV R6,#250   ;(7) D2: DJNZ R6,D2    ;(8)    DJNZ R7,D1  ??;(9)    RET       ?。唬ǎ保埃?   END       ??;(11) 表2    這樣一來,我每次調(diào)用延時程序延時的時間都是相同的(大致都是0.13S),如果我提出這樣的要求:燈亮后延時時間為0.13S燈滅,燈滅后延時0.1秒燈亮,如此循環(huán),這樣的程序還能滿足要求嗎?不能,怎么辦?我們可以把延時程序改成這樣(見表2):調(diào)用則見表2中的主程,也就是先把一個數(shù)送入30H,在子程序中R7中的值并不固定,而是根據(jù)30H單元中傳過來的數(shù)確定。這樣就可以滿足要求。 從這里我們可以得出結論,在數(shù)據(jù)傳遞中要找到被傳遞的數(shù),很多時候,這個數(shù)并不能直接給出,需要變化,這就引出了一個概念:如何尋找操作數(shù),我們把尋找操作數(shù)所在單元的地址稱之為尋址。在這里我們直接使用數(shù)所在單元的地址找到了操作數(shù),所以稱這種方法為直接尋址。除了這種方法之外,還有一種,如果我們把數(shù)放在工作寄存器中,從工作寄存器中尋找數(shù)據(jù),則稱之為寄存器尋址。例:MOV A,R0就是將R0工作寄存器中的數(shù)據(jù)送到累加器A中去。提一個問題:我們知道,工作寄存器就是內(nèi)存單元的一部份,如果我們選擇工作寄存器組0,則R0就是RAM的00H單元,那么這樣一來,MOV A,00H,和MOV A,R0不就沒什么區(qū)別了嗎?為什么要加以區(qū)分呢?的確,這兩條指令執(zhí)行的結果是完全相同的,都是將00H單元中的內(nèi)容送到A中去,但是執(zhí)行的過程不同,執(zhí)行第一條指令需要2個周期,而第二條則只需要1個周期,第一條指令變成最終的目標碼要兩個字節(jié)(E5H 00H),而第二條則只要一個字節(jié)(E8h)就可以了。 這么斤斤計較!不就差了一個周期嗎,如果是12M的晶振的話,也就1個微秒時間了,一個字節(jié)又能有多少? 不對,如果這條指令只執(zhí)行一次,也許無所謂,但一條指令如果執(zhí)行上1000次,就是1毫秒,如果要執(zhí)行1000000萬次,就是1S的誤差,這就很可觀了,單片機做的是實時控制的事,所以必須如此“斤斤計較”。字節(jié)數(shù)同樣如此。 再來提一個問題,現(xiàn)在我們已知,尋找操作數(shù)可以通過直接給的方式(立即尋址)和直接給出數(shù)所在單元地址的方式(直接尋址),這就夠了嗎? 看這個問題,要求從30H單元開始,取20個數(shù),分別送入A累加器。 就我們目前掌握的辦法而言,要從30H單元取數(shù),就用MOV A,30H,那么下一個數(shù)呢?是31H單元的,怎么取呢?還是只能用MOV A,31H,那么20個數(shù),不是得20條指令才能寫完嗎?這里只有20個數(shù),如果要送200個或2000個數(shù),那豈不要寫上200條或2000條命令?這未免太笨了吧。為什么會出現(xiàn)這樣的狀況?是因為我們只會把地址寫在指令中,所以就沒辦法了,如果我們不是把地址直接寫在指令中,而是把地址放在另外一個寄存器單元中,根據(jù)這個寄存器單元中的數(shù)值決定該到哪個單元中取數(shù)據(jù),比如,當前這個寄存器中的值是30H,那么就到30H單元中去取,如果是31H就到31H單元中去取,就可以解決這個問題了。怎么個解決法呢?既然是看的寄存器中的值,那么我們就可以通過一定的方法讓這里面的值發(fā)生變化,比如取完一個數(shù)后,將這個寄存器單元中的值加1,還是執(zhí)行同一條指令,可是取數(shù)的對象卻不一樣了,不是嗎。通過例子來說明吧。    MOV R7,#20    MOV R0,#30H LOOP:MOV A,@R0    INC R0    DJNZ R7,LOOP 這個例子中大部份指令我們是能看懂的,第一句,是將立即數(shù)20送到R7中,執(zhí)行完后R7中的值應當是20。第二句是將立即數(shù)30H送入R0工作寄存器中,所以執(zhí)行完后,R0單元中的值是30H,第三句,這是看一下R0單元中是什么值,把這個值作為地址,取這個地址單元的內(nèi)容送入A中,此時,執(zhí)行這條指令的結果就相當于MOV A,30H。第四句,沒學過,就是把R0中的值加1,因此執(zhí)行完后,R0中的值就是31H,第五句,學過,將R7中的值減1,看是否等于0,不等于0,則轉到標號LOOP處繼續(xù)執(zhí)行,因此,執(zhí)行完這句后,將轉去執(zhí)行MOV A,@R0這句話,此時相當于執(zhí)行了MOV A,31H(因為此時的R0中的值已是31H了),如此,直到R7中的值逐次相減等于0,也就是循環(huán)20次為止,就實現(xiàn)了我們的要求:從30H單元開始將20個數(shù)據(jù)送入A中。 這也是一種尋找數(shù)據(jù)的方法,由于數(shù)據(jù)是間接地被找到的,所以就稱之為間址尋址。注意,在間址尋址中,只能用R0或R1存放等尋找的數(shù)據(jù)。 二、指令 數(shù)據(jù)傳遞類指令 1) 以累加器為目的操作數(shù)的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一條指令中,Rn代表的是R0-R7。第二條指令中,direct就是指的直接地址,而第三條指令中,就是我們剛才講過的。第四條指令是將立即數(shù)data送到A中。 下面我們通過一些例子加以說明: MOV A,R1 ;將工作寄存器R1中的值送入A,R1中的值保持不變。 MOV A,30H ;將內(nèi)存30H單元中的值送入A,30H單元中的值保持不變。 MOV A,@R1 ;先看R1中是什么值,把這個值作為地址,并將這個地址單元中的值送入A中。如執(zhí)行命令前R1中的值為20H,則是將20H單元中的值送入A中。 MOV A,#34H ;將立即數(shù)34H送入A中,執(zhí)行完本條指令后,A中的值是34H。 2)以寄存器Rn為目的操作的指令 MOV Rn,A   MOV Rn,direct   MOV Rn,#data 這組指令功能是把源地址單元中的內(nèi)容送入工作寄存器,源操作數(shù)不變。

    標簽: 單片機 免費下載 基礎知識

    上傳時間: 2013-10-13

    上傳用戶:3294322651

  • 自動檢測80C51串行通訊中的波特率

    自動檢測80C51串行通訊中的波特率:本文介紹一種在80C51 串行通訊應用中自動檢測波特率的方法。按照經(jīng)驗,程序起動后所接收到的第1 個字符用于測量波特率。這種方法可以不用設定難于記憶的開關,還可以免去在有關應用中使用多種不同波特率的煩惱。人們可以設想:一種可靠地實現(xiàn)自動波特檢測的方法是可能的,它無須嚴格限制可被確認的字符。問題是:在各種的條件下,如何可以在大量允許出現(xiàn)的字符中找出波特率定時間隔。顯然,最快捷的方法是檢測一個單獨位時間(single bit time),以確定接收波特率應該是多少??墒牵赗S-232 模式下,許多ASCII 字符并不能測量出一個單獨位時間。對于大多數(shù)字符來說,只要波特率存在合理波動(這里的波特率是指標準波特率),從起始位到最后一位“可見”位的數(shù)據(jù)傳輸周期就會在一定范圍內(nèi)發(fā)生變化。此外,許多系統(tǒng)采用8 位數(shù)據(jù)、無奇偶校驗的格式傳輸ASCII 字符。在這種格式里,普通ASCII 字節(jié)不會有MSB 設定,并且,UART總是先發(fā)送數(shù)據(jù)低位(LSB),后發(fā)送數(shù)據(jù)高位(MSB),我們總會看見數(shù)據(jù)的停止位。在下面的波特率檢測程序中,先等待串行通訊輸入管腳的起始信號(下降沿),然后起動定時器T0。在其后的串行數(shù)據(jù)的每一個上升沿,將定時器T0 的數(shù)值捕獲并保存。當定時器T0溢出時,其最后一次捕獲的數(shù)值即為從串行數(shù)據(jù)起始位到最后一個上升沿(我們假設是停止位)過程所持續(xù)的時間。

    標簽: 80C51 自動檢測 串行通訊 波特率

    上傳時間: 2014-08-22

    上傳用戶:dajin

  • 單片機軟件濾波的幾種方法

    單片機軟件濾波的幾種方法:假定從AD中讀取數(shù)據(jù)的子程序為:unsigned int get_ad();1、限幅濾波法(又稱程序判斷濾波法)A、方法:根據(jù)經(jīng)驗判斷,確定兩次采樣允許的最大偏差值(設為A)。每次檢測到新值時判斷:如果本次值與上次值之差<=A,則本次值有效;如果本次值與上次值之差>A,則本次值無效,放棄本次值,用上次值代替本次值。B、優(yōu)點:能有效克服因偶然因素引起的脈沖干擾C、缺點:無法抑制那種周期性的干擾,平滑度差D、軟件實現(xiàn)://=======================//值A可根據(jù)實際情況調(diào)整,value為有效值,new_value為當前采樣值//濾波程序返回有效的實際值

    標簽: 單片機 軟件濾波

    上傳時間: 2013-10-20

    上傳用戶:xiaojie

  • 基于單片機的蓄電池溫度數(shù)據(jù)采集系統(tǒng)

    為了對蓄電池的溫度進行檢測,數(shù)據(jù)采集是必不可少的手段。程序控制數(shù)據(jù)采集系統(tǒng)是比較先進的采集方式,本文采用熱電偶為溫度檢測元件對蓄電池溫度信號進行采集來構建單片機溫度采集系統(tǒng),較好的實現(xiàn)了所需目的。為了確知某一測試對象的各項特性,我們常常要借助各種儀表和各種手段(直接測量或遙測)來獲得各種各樣的測量結果(數(shù)據(jù))。但這些數(shù)據(jù)中包含有變換誤差、設備誤差以及在傳輸過程中(當采用遙測方式時)引入的各種干擾所造成的誤差等。而且這些數(shù)據(jù)量通常都很大,有意義的部分和無意義的部分混雜在一起,如果不加取舍的直接應用,必然會造成極大不便。另外,很多情況下還需通過再加工(即將數(shù)據(jù)作某種變換)以便提供物理意義更明確更直接的數(shù)據(jù)形式(輸入振動波形的頻譜分析等)。上述這些問題都要靠數(shù)據(jù)采集與處理加以解決。為了對蓄電池的溫度進行檢測,本文采用熱電偶為溫度檢測元件對蓄電池溫度信號進行采集來構建單片機溫度采集系統(tǒng),較好的實現(xiàn)了所需目的。

    標簽: 單片機 蓄電池 溫度數(shù)據(jù)采集

    上傳時間: 2014-12-28

    上傳用戶:CHINA526

  • 同地彈現(xiàn)象的分析和講解

    地彈的形成:芯片內(nèi)部的地和芯片外的PCB地平面之間不可避免的會有一個小電感。這個小電感正是地彈產(chǎn)生的根源,同時,地彈又是與芯片的負載情況密切相關的。下面結合圖介紹一下地彈現(xiàn)象的形成。 簡單的構造如上圖的一個小“場景”,芯片A為輸出芯片,芯片B為接收芯片,輸出端和輸入端很近。輸出芯片內(nèi)部的CMOS等輸入單元簡單的等效為一個單刀雙擲開關,RH和RL分別為高電平輸出阻抗和低電平輸出阻抗,均設為20歐。GNDA為芯片A內(nèi)部的地。GNDPCB為芯片外PCB地平面。由于芯片內(nèi)部的地要通過芯片內(nèi)的引線和管腳才能接到GNDPCB,所以就會引入一個小電感LG,假設這個值為1nH。CR為接收端管腳電容,這個值取6pF。這個信號的頻率取200MHz。雖然這個LG和CR都是很小的值,不過,通過后面的計算我們可以看到它們對信號的影響。先假設A芯片只有一個輸出腳,現(xiàn)在Q輸出高電平,接收端的CR上積累電荷。當Q輸出變?yōu)榈碗娖降臅r候。CR、RL、LG形成一個放電回路。自諧振周期約為490ps,頻率為2GHz,Q值約為0.0065。使用EWB建一個仿真電路。(很老的一個軟件,很多人已經(jīng)不懈于使用了。不過我個人比較依賴它,關鍵是建模,模型參數(shù)建立正確的話仿真結果還是很可靠的,這個小軟件幫我發(fā)現(xiàn)和解決過很多實際模擬電路中遇到的問題。這個軟件比較小,有比較長的歷史,也比較成熟,很容易上手。建議電子初入門的同學還是熟悉一下。)因為只關注下降沿,所以簡單的構建下面一個電路。起初輸出高電平,10納秒后輸出低電平。為方便起見,高電平輸出設為3.3V,低電平是0V。(實際200M以上芯片IO電壓會比較低,多采用1.5-2.5V。)

    標簽:

    上傳時間: 2013-10-17

    上傳用戶:zhishenglu

  • 8051單片機指令系統(tǒng),計算機的指令系統(tǒng)

    計算機的指令系統(tǒng)是表征計算機性能的重要指標,每種計算機都有自己的指令系統(tǒng)。MCS—51單片機的指令系統(tǒng)是一個具有255種代碼的集合,絕大多數(shù)指令包含兩個基本部分:操作碼和操作數(shù)。操作碼表明指令要執(zhí)行的操作的性質(zhì);操作數(shù)說明參與操作的數(shù)據(jù)或數(shù)據(jù)所存放的地址。MCS—51指令系統(tǒng)中所有程序指令是以機器語言形式表示,可分為單字節(jié)、雙字節(jié)、三字節(jié)3種格式。用二進制編碼表示的機器語言由于閱讀困難,且難以記憶。因此在微機控制系統(tǒng)中采用匯編語言指令來編寫程序。本章介紹MCS—51指令系統(tǒng)就是以匯編語言來描述的。 一條匯編語言指令中最多包含4個區(qū)段,如下所示: 標號: 操作碼目的操作數(shù),源源操作數(shù);注釋 標號與操作碼之間“:”隔開; 操作碼與操作數(shù)之間用“空格”隔開; 目的操作數(shù)和源源操作數(shù)之間有“,”分隔; 操作數(shù)與注釋之間用“;”隔開。 標號是由用戶定義的符號組成,必須用英文大寫字母開始。標號可有可無,若一條指令中有標號,標號代表該指令所存放的第一個字節(jié)存儲單元的地址,故標號又稱為符號地址,在匯編時,把該地址賦值給標號。 操作碼是指令的功能部分,不能缺省。MCS—51指令系統(tǒng)中共有42種助記符,代表了33種不同的功能。例如MOV是數(shù)據(jù)傳送的助記符。 操作數(shù)是指令要操作的數(shù)據(jù)信息。根據(jù)指令的不同功能,操作數(shù)的個數(shù)有3、2、1或沒有操作數(shù)。例如MOV A,#20H,包含了兩個操作數(shù)A和#20H,它們之間用“,”隔開。注釋可有可無,加入注釋主要為了便于閱讀,程序設計者對指令或程序段作簡要的功能說明,在閱讀程序或調(diào)試程序時將會帶來很多方便。

    標簽: 8051 指令系統(tǒng) 單片機 計算機

    上傳時間: 2013-11-04

    上傳用戶:kr770906

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

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

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

    上傳時間: 2013-11-08

    上傳用戶:685

  • 單片機開發(fā)工程案例分析與解析

    設計一個單片機控制的簡易定時報警器。要求根據(jù)設定的初始值(1-59秒)進行倒計時,當計時到0時數(shù)碼管閃爍“00”(以1Hz閃爍),按鍵功能如下:(1)設定鍵:在倒計時模式時,按下此鍵后停止倒計時,進入設置狀態(tài);如果已經(jīng)處于設置狀態(tài)則此鍵無效。(2)增一鍵:在設置狀態(tài)時,每按一次遞增鍵,初始值的數(shù)字增1。(3)遞一鍵:在設置狀態(tài)時,每按一次遞減鍵,初始值的數(shù)字減1。(4)確認鍵:在設置狀態(tài)時,按下此鍵后,單片機按照新的初始值進行倒計時及顯示倒計時的數(shù)字。如果已經(jīng)處于計時狀態(tài)則此鍵無效。3.1.2 模塊1:系統(tǒng)設計(1)任務分析與整體設計思路根據(jù)題目的要求,需要實現(xiàn)如下幾個方面的功能。計時功能:要實現(xiàn)計時功能則需要使用定時器來計時,通過設置定時器的初始值來控制溢出中斷的時間間隔,再利用一個變量記錄定時器溢出的次數(shù),達到定時1秒中的功能。然后,當計時每到1秒鐘后,倒計時的計數(shù)器減1。當?shù)褂嫊r計數(shù)器到0時,觸發(fā)另一個標志變量,進入閃爍狀態(tài)。顯示功能:顯示倒計時的數(shù)字要采用動態(tài)掃描的方式將數(shù)字拆成“十位”和“個位”動態(tài)掃描顯示。如果處于閃爍狀態(tài),則可以不需要動態(tài)掃描顯示,只需要控制共陰極數(shù)碼管的位控線,實現(xiàn)數(shù)碼管的滅和亮。鍵盤掃描和運行模式的切換:主程序在初始化一些變量和寄存器之后,需要不斷循環(huán)地讀取鍵盤的狀態(tài)和動態(tài)掃描數(shù)碼管顯示相應的數(shù)字。根據(jù)鍵盤的按鍵值實現(xiàn)設置狀態(tài)、計時狀態(tài)的切換。   (2)單片機型號及所需外圍器件型號,單片機硬件電路原理圖選用MCS-51系列AT89S51單片機作為微控制器,選擇兩個四聯(lián)的共陰極數(shù)碼管組成8位顯示模塊,由于AT89S51單片機驅動能力有限,采用兩片74HC244實現(xiàn)總線的驅動,一個74HC244完成位控線的控制和驅動,另一個74HC244完成數(shù)碼管的7段碼輸出,在輸出口上各串聯(lián)一個100歐姆的電阻對7段數(shù)碼管限流。由于鍵盤數(shù)量不多,選擇獨立式按鍵與P1口連接作為四個按鍵輸入。沒有鍵按下時P1.0-P1.3為高電平,當有鍵按下時,P1.0-P1.3相應管腳為低電平。電路原理圖如圖3-1所示。

    標簽: 單片機開發(fā) 工程 案例分析

    上傳時間: 2013-11-13

    上傳用戶:曹云鵬

  • DA與AD轉換

    計算機應用中,有時需處理的信息不是數(shù)字量,而是一些隨時間連續(xù)變化的模擬量,甚至是一些非電量,如溫度、壓力、速度等。模擬量的存儲處理困難。首先將非電的模擬信號變成與之對應的模擬電信號,這要通過各種傳感器來完成。計算機可處理的信息均是數(shù)字量(電脈沖信號)1和0,必須把要處理的模擬電量轉換成數(shù)字化的電信號,這需要模擬(Analog)與數(shù)字(Digital)轉換電路。數(shù)字到模擬轉換:(Digital to Analog Convert, D/A) D/A轉換電路是模擬電路加上電子開關。D/A轉換電路的核心是一個運算放大器。運算放大器的特性:(Operation Amplifier)    K->無窮大, V和->0  傳遞函數(shù):V0 = -Vi * R0/Ri    Ii->0,  I和=If梯形R-2R電阻網(wǎng)絡D/A轉換器Ki受一個8位二進制代碼控制   某位為1,對應開關K倒向右邊;   某位為0,對應開關K倒向左邊。Ki不論倒向哪邊,均為接地VA-VH 的電位為:     VREF,1/2VREF,..1/128VREFVO= -VREF *(1/2K7+1/4K6+…+1/256K0)V0= -(0-255/256)VREF 8位D/A轉換器DAC0830系列器件國家半導體公司(NS)產(chǎn)品,0830、0831、0832。R-2R梯形電阻網(wǎng)絡D/A轉換器,雙緩沖結構。單電源、低功耗、電流建立時間1uS。與微計算機接口方便。8位D/A轉換器DAC0830系列器件ILE:        輸入鎖存允許;  WR1#:       加載IN REG;  WR2#:        加載DAC REG;    XFER#:       IN REG傳到DAC REG;  Iout1,Iout2: 外接OA輸入;  Rfb:         反饋電阻接OA輸出;  VREF:        參考電源,控制輸出電壓變化范圍。

    標簽: AD轉換

    上傳時間: 2013-10-16

    上傳用戶:lu2767

  • 單片機綜合應用

    單片機綜合應用技術 1.1 單片機技術的發(fā)展與單片機應用的廣泛選擇 1.2 帶A/D轉換的8位微控制器PIC12C67X?? 1.3 SPI串行總線在8031單片機應用系統(tǒng)中的實現(xiàn)?? 1.4 單總線技術在測控系統(tǒng)中的應用?? 1.5 多任務機制在單片機系統(tǒng)中的應用?? 1.6 軟件實現(xiàn)的8031單片微機中斷多優(yōu)先級研究?? 1.7 單片機匯編語言程序設計的變量取值表技術?? 1.8 單片機的代碼優(yōu)化方法?? 1.9 由微機復位引出的問題?? 1.10 一種快速CRC差錯校驗技術?? 1.11 基于單片機的Chebyshev神經(jīng)網(wǎng)絡硬件設計?? 1.12 二維條形碼(PDF417)及其應用?? 1.13 EDA技術的應用?? 1.14 CPLD/FPGA在電子設計中的應用前景?? 1.15 現(xiàn)場可編程模擬ASIC與電子系統(tǒng)設計?? 1.16 用單片PLD器件ispLSI1016實現(xiàn)數(shù)顯頻率計

    標簽: 單片機

    上傳時間: 2014-05-05

    上傳用戶:daxigua

主站蜘蛛池模板: 建瓯市| 临海市| 侯马市| 长汀县| 唐海县| 乐至县| 蒙城县| 莆田市| 太原市| 民乐县| 泾川县| 温州市| 三河市| 水富县| 惠水县| 社会| 辽源市| 皮山县| 岢岚县| 无锡市| 宜黄县| 开封市| 渭南市| 会宁县| 抚顺市| 资溪县| 胶南市| 教育| 大足县| 上饶县| 栾城县| 横山县| 连城县| 司法| 宁远县| 宾川县| 盖州市| 靖江市| 兴宁市| 墨脱县| 英吉沙县|