第一篇:labview紅綠燈課程設(shè)計報告
1.1 課程設(shè)計目的
(1)掌握labview的軟件編程方法;
(2)培養(yǎng)綜合應(yīng)用所學(xué)知識來指導(dǎo)實踐的能力; 1.2 課程設(shè)計的任務(wù)
本次課程設(shè)計要完成一個十字交通燈的設(shè)計,這個交通燈系統(tǒng)能為東西和南北兩個方向行駛的車輛指示能否通行。這個交通路口每一個方向上的紅綠燈按綠—黃—紅的順序循環(huán),每個循環(huán)的時間為60秒,其中紅燈時間為30秒,黃燈時間5秒,綠燈時間25秒,當(dāng)按下停止鍵時,循環(huán)停止。1.3 課程設(shè)計的要求及技術(shù)指標(biāo)
(1)能夠?qū)F(xiàn)實生活中的交通燈出現(xiàn)順序在電腦上面顯示;(2)要有時間現(xiàn)實;(3)具有有好的人機界面; 1.4總體設(shè)計思路
此次設(shè)計可以用12盞燈來指示路口的紅綠燈狀況,他們分別是下文中的東西紅
1、東西紅
2、東西黃
1、東西黃
2、東西綠
1、東西綠
2、南北紅
1、南北紅
2、南北黃
1、南北黃
2、南北綠
1、南北綠2。
信號燈按一定規(guī)律循環(huán)點亮,每盞紅燈亮30秒,每盞黃燈亮5秒,每盞綠燈亮25秒。每個循環(huán)包括四個階段。第一階段:南北綠(1、2)和東西紅(1、2)亮25秒;第二階段:南北黃(1、2)和東西紅(1、2)亮5秒;第三階段:南北紅(1、2)和東西綠(1、2)亮25秒;第四階段:東西黃(1、2)和南北紅(1、2)亮5秒;中間放置一個時間計數(shù)器,用于觀測時間的進行。
用計數(shù)器產(chǎn)生以秒為單位的計時信號,再將信號進行分段,每到一個時間段時時間系統(tǒng)進行相應(yīng)的動作。
總體流程圖如下:
1.5前面板的設(shè)計
前面板是VI的用戶界面。創(chuàng)建VI時,通常應(yīng)先設(shè)計前面板,然后在前面板上創(chuàng)建輸入/輸出任務(wù)。本課程設(shè)計總前面板的設(shè)計比較簡單,需要用到12盞燈、一個時間顯示器、一個停止鍵即可。其中的12盞燈,在控件選板中選擇指示燈,將它放在前面板合適的位置,單擊鼠標(biāo)右鍵,更改指示燈的屬性,改變指示燈的大小并設(shè)定顏色,做出一個合適的指示燈,再用框?qū)⒚拷M燈框起來,做成一個交通燈。在每組交通燈合適的位置放置一個數(shù)值顯示控件作為交通燈的計時器。在前面板合適的位置放置一個開關(guān)按鈕,控制循環(huán)的啟停。這樣交通燈系統(tǒng)的前面板就做好了。
1.6 定時信號的產(chǎn)生
定時信號在程序框圖中右鍵→執(zhí)行過程控制→while循環(huán)中產(chǎn)生
由于i產(chǎn)生的時間頻率過快,所以在程序框圖中右鍵→執(zhí)行過程控制→時間延遲,用于控制i產(chǎn)生時間的頻率,防止過快,或者過慢,可自行控制。選中該圖標(biāo),右鍵屬性,設(shè)置配置時間延遲1秒。
1.7 為了更好的觀察時間的變化,添加數(shù)值顯示器
1.8 時間信號的分段
將得到的時間信號除以每個循環(huán)所用的時間60秒,取余數(shù)。得到的余數(shù)x的范圍為0<=x<60,當(dāng)0<=x<25時,條件滿足,執(zhí)行第一個條件結(jié)構(gòu)里面的程序,東西紅和南北綠燈亮。當(dāng)25<=x<30時,條件滿足,執(zhí)行第二個條件結(jié)構(gòu)里的程序,南北黃河?xùn)|西紅燈亮。當(dāng)30<=x<55時,條件滿足,執(zhí)行第三個條件結(jié)構(gòu)里的程序,東西綠和南北紅燈亮。當(dāng)55<=x<60時,條件滿足,執(zhí)行第四個條件結(jié)構(gòu)里的程序,東西黃和南北紅燈亮。
1.9 總控制程序
本設(shè)計采用的是編程方法控制紅綠燈的亮滅,簡單而又方便。在程序框圖中右鍵→編程→公式節(jié)點,在該公式節(jié)點框中輸入C語言程序,并設(shè)置輸入輸出節(jié)點;
2.0 類型轉(zhuǎn)換
由于控制程序中設(shè)置的變量時整型,而指示燈是布爾型,所以需要在兩者之間添加強制轉(zhuǎn)換,以便于兩者之間的連接。
通過新數(shù)據(jù)類型平化和還原,使x強制轉(zhuǎn)換為某個類型。如函數(shù)無法轉(zhuǎn)換數(shù)據(jù)而必須對其解釋,Labview可使用臨時緩沖區(qū)。2.1 程序框圖總體設(shè)計
2.2 各個工作階段截圖
第一階段:0~25秒內(nèi),東西紅和南北綠燈亮。
第二階段:25~30秒內(nèi),東西紅和南北黃燈亮。
第三階段:30~55秒內(nèi),東西綠和南北紅燈亮。
第四階段:55~60秒內(nèi),東西黃和南北紅燈亮
2.3 心得體會
此次課程設(shè)計圓滿結(jié)束,對于我經(jīng)過努力的結(jié)果,我感到非常滿意。由于大家平時都是學(xué)習(xí)理論知識,沒有過實際開發(fā)設(shè)計的經(jīng)驗,雖然上課的時候講過很多LabVIEW的應(yīng)用,但課后也從沒真正地應(yīng)用過這個軟件,對它一點都不熟悉,拿到這個設(shè)計的時候都不知道怎么做。但通過對LabVIEW進行了幾天的摸索學(xué)習(xí),我終于把課程設(shè)計做好了,并發(fā)現(xiàn)LabVIEW很實用。通過這次課程設(shè)計我基本學(xué)會了虛擬儀器設(shè)計的步驟和基本方法,提高了動手能力,增強了理論聯(lián)系實際的能力。
在這個課程實際中,我真正的感受到了虛擬儀器的優(yōu)越性,“軟件即儀器”,僅僅在LabVIEW上寫入一些圖形程序,就可以實現(xiàn)相應(yīng)的儀器的功能,只需借助一臺計算機,一個LabVIEW軟件,就可以實現(xiàn)很多儀器的功能。
課程設(shè)計的過程中,我遇到不少的問題,但最終我還是戰(zhàn)勝困難,取得了成功,當(dāng)然其中很大一部分功勞都要歸功于指導(dǎo)老師和同學(xué)們,如果沒有指導(dǎo)老師和與同學(xué)們的相互交流學(xué)習(xí),我的課程設(shè)計肯定不會如此輕松??傊?,在這次課程設(shè)計中,我受益匪淺。
第二篇:微機原理紅綠燈課程設(shè)計報告
微機原理紅綠燈課程設(shè)計報告
實驗報告 2009-09-02 18:16:02 閱讀1337 評論2 字號:
大中小
摘要:
介紹了基于8255A的交通燈系統(tǒng)設(shè)計方案,重點論述了軟件系統(tǒng)的編寫方法。實際結(jié)果表明該系統(tǒng)方案切實可行。
近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)
構(gòu)軟硬件結(jié)合,加以完善。
十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用8255A芯片實現(xiàn)了A、B口設(shè)置紅、綠燈點亮?xí)r間的功能;紅綠燈循環(huán)點亮,紅綠燈變換之間,黃燈閃爍5秒
關(guān)鍵字: 交通燈、軟件系統(tǒng)
設(shè)計內(nèi)容 本次課程設(shè)計是交通燈實時控制器,主要是用發(fā)光二極管模擬十字路口的紅綠燈,如下圖所示。交通燈控制器的設(shè)計與實現(xiàn)主要是通過編寫匯編語言程序利用8255的A口和B口對燈的亮與滅進行控制。由于實驗室的儀器上只有16個發(fā)光二極管,所以還得弄清楚是每個發(fā)光二極管所代表的燈的顏色及方向。16個發(fā)光二級管,且從高到低依次為:D15D14D13D12D11D10D9D8 D7D6D5D4D3D2D1D0。在設(shè)計的過程中做了如下的規(guī)定:R表示紅燈,G表示綠燈,Y表示黃燈,E表示方向東,W表示方向西,S表示方向南,N表示方向北,D15D14表示ER,D13D12表示SR,D11D10表示EG,D9D8表示SG,D7D6表示W(wǎng)R,D5D4表示NR,D3D2表示W(wǎng)G,D1D0表示NG,D15D14D11D10表示EY,D7D6D3D2表示W(wǎng)Y,D13D12D9D8表示SY,D5D4D1D0
表示NY。交通燈控制示意圖 具體時間的分配和控制如下:
東西方向綠燈亮,南北方向紅燈亮,時間20秒 東西方向黃燈閃爍,南北方向紅燈亮,時間5秒 東西方向紅燈亮,南北方向綠燈亮,時間20秒 東西方向紅燈亮,南北方向黃燈閃爍,時間5秒
設(shè)計器材設(shè)備 微機、TD-PIT++實驗箱
實驗電路圖 設(shè)計流程圖
總體設(shè)計過程
1.根據(jù)選擇題目的要求,結(jié)合所參考的資料,選擇8255單元芯片以及LED顯示單元電路。
1)
電路元器件的選擇 可編程并行通信接口芯片8255 2)
完成8255單元電路的設(shè)計及參數(shù)計算
8255的A口地址是:IOY0+00H*4
B口地址是:IOY0+01H*4 C口地址是:IOY0+02H*4 控制端口地址是:IOY0+03H*4
2.軟件流程圖的設(shè)計 3.電路接線圖的設(shè)計 4.軟件的設(shè)計(程序見附錄)1)
芯片初始化,寫8255的方式字 2)
延時,延時是通過設(shè)置指令的循環(huán)次數(shù)實現(xiàn)的 3)
東西方向綠燈亮,南北方向紅燈亮,時間20秒 4)
東西方向黃燈閃爍,南北方向紅燈亮,時間5秒 5)
東西方向紅燈亮,南北方向綠燈亮,時間20秒 6)
東西方向紅燈亮,南北方向黃燈閃爍,時間5秒
7)判斷是否有鍵按下 8)
返回到DOS 5.進行軟硬件調(diào)試
因采用了pc機和微機原理實驗箱,硬件電路設(shè)計相對比較簡單,利用微機實驗箱上的8255并行口、發(fā)光二級管,便構(gòu)成了交通燈控制系統(tǒng)。
心得體會
通過這次課程設(shè)計,加強了我的動手、思考和分析解決問題的能力。在整個設(shè)計過程中,我們按照老師給出的總體方案設(shè)計了一套電路原理和電路連接圖。通過查閱各方面資料我們編寫了程序代碼,并通過了調(diào)試,最終證實了該系統(tǒng)
方案確實可行。在設(shè)計過程中,了解了很多元器件的功能,并且對于其在電路中的使用有了更多的認識。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做,難免會遇到過各種各樣的問題,同時也在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢
固。
這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合起來,才能夠真正掌握理論知識,從而提高自己的實際動手能力和獨立思考的能力。
附錄(程序代碼)
IOY0 EQU 0E000H PORTA EQU IOY0+00H*4 PORTB EQU IOY0+01H*4 PORTK EQU IOY0+03H*4 STACK1 SEGMENT STACK DW 256 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE START: MOV AL, 80H MOV DX, PORTK ;8255工作在方式0,A、B口均輸出
OUT DX, AL MOV AL, 3CH MOV DX, PORTA ;A口東方向綠燈亮,南方向紅燈亮
OUT DX, AL MOV AL, 3CH MOV DX, PORTB ;B口西方向綠燈亮,北方向紅燈亮
OUT DX, AL CALL DELAY ;調(diào)用20s延時子程序
MOV CX, 5 START1: MOV AL, 0FCH MOV DX, PORTA ;A口東方向黃燈亮,南方向紅燈亮
OUT DX, AL MOV AL, 0FCH MOV DX, PORTB ;B口西方向黃燈亮,北方向紅燈亮
OUT DX, AL CALL DELAY1 ;調(diào)用0.5s延時子程序
MOV AL, 30H MOV DX, PORTA ;A口東方向黃燈滅,南方向紅燈亮
OUT DX, AL MOV AL, 30H MOV DX, PORTB ;B口西方向黃燈滅,北方向紅燈亮
OUT DX, AL CALL DELAY1 ;調(diào)用延時0.5s子程序
LOOP START1 ;CX≠0則循環(huán)
MOV AL, 0C3H MOV DX, PORTA ;A口東方向紅燈亮,南方向綠燈亮
OUT DX, AL MOV AL, 0C3H MOV DX, PORTB ;B口西方向紅燈亮,北方向綠燈亮
OUT DX, AL CALL DELAY ;調(diào)用20s延時子程序
MOV CX, 5 START2: MOV AL, 0F3H MOV DX, PORTA ;A口東方向紅燈亮,南方向黃燈亮
OUT DX, AL MOV AL, 0F3H MOV DX, PORTB ;B口西方向紅燈亮,北方向黃燈亮
OUT DX, AL CALL DELAY1 ;調(diào)用0.5s延時子程序
MOV AL, 0C0H MOV DX, PORTA ;A口東方向紅燈亮,南方向黃燈滅
OUT DX, AL MOV AL, 0C0H MOV DX, PORTB ;B口西方向紅燈亮,北方向黃燈滅
OUT DX, AL CALL DELAY1 ;調(diào)用0.5s延時子程序
LOOP START2 MOV AH, 1 INT 16H JZ START ;判斷是否有鍵按下,無
按鍵則
QUIT: MOV AX, 4C00H 調(diào)回繼續(xù)循環(huán),有
則退出
INT 21H DELAY PROC NEAR ;20s延時子程序
PUSH CX PUSH DX PUSH BX
MOV BX, 3 MOV DX, 27880 LAB: MOV CX, 0FFFFH
LOOP $ DEC DX JNZ LAB DEC BX JNZ LAB POP BX
POP DX POP CX RET DELAY ENDP PROC NEAR ;0.5s延時子程序 PUSH CX PUSH DX MOV DX, 6970 LAB1: MOV CX, 0FFFFH DELAY1
LOOP $ DEC DX
JNZ LAB1 POP DX POP CX RET DELAY1 ENDP CODE ENDS END START
第三篇:數(shù)字電路課程設(shè)計(紅綠燈)
數(shù)字電路課程設(shè)計
(一)——紅綠燈設(shè)計方案總結(jié)報告
指導(dǎo)教師:
設(shè)計人員:
班級:電信081
日期:2010.4.13
一、設(shè)計任務(wù)書
1、題目:
紅綠燈控制器
2、設(shè)計要求:設(shè)計一個紅綠燈控制器設(shè)計應(yīng)具有以下功能
基本設(shè)計要求:設(shè)計一個紅綠燈控制器控制器設(shè)計應(yīng)具有以下功能(1)東西方向綠燈亮,南北方向紅燈亮。.(2)東西方向黃燈亮,南北方向紅燈亮。
(3)東西方向紅燈亮,南北方向綠燈亮。
(4)東西方向紅燈亮,南北方向黃燈亮。要求有時間顯示(順數(shù)、逆數(shù)皆可),時間自定。(大于15秒以上)
二、設(shè)計框圖及整機概述
本課程設(shè)計在繼承了原有的紅綠燈的基本功能的基礎(chǔ)上,有對其功能進行了很大的完善,其中主要包括:
(1)可以對大小路口的綠燈及黃燈任意置數(shù)。
(2)在倒計時3~0秒期間,當(dāng)時正在點亮的綠燈或黃燈會進行閃爍。
正是由于擁有了這兩個功能,使得電路稍顯復(fù)雜,現(xiàn)在將分別講解其設(shè)計思路。
本電路大體上可以分為四個部分,即:賦值電路部分、控?zé)糸W爍部分、控制部分和核心計數(shù)部分。
其中,賦值電路部分占據(jù)了大量的空間和芯片,其主要原理是數(shù)據(jù)選擇???zé)糸W爍部分的芯片較少,也沒有占用太多空間,控制部分分布在系統(tǒng)的各個部分,可以說是系統(tǒng)的靈魂,它對整個系統(tǒng)進行著控制。核心計數(shù)部分比較簡單,主要是進行計數(shù)并且產(chǎn)生進位信號。
三、各單元電路的設(shè)計方案及原理說明
(一)賦值電路部分
賦值電路的設(shè)計是整個電路設(shè)計最復(fù)雜的一個環(huán)節(jié),其主要問題主要集中在(1)對于一個計數(shù)器的數(shù)據(jù)輸入端,如何使之在不同時刻數(shù)據(jù)不同,即:如果假設(shè)綠燈為30秒,黃燈5秒,在對綠燈倒數(shù)計數(shù)時,則計數(shù)器的輸入端應(yīng)該為30,在置數(shù)信號到達時即可將其置數(shù)到輸出端,并可開始計數(shù)。而當(dāng)這30秒將要倒數(shù)完成時,又要考慮將輸入端數(shù)據(jù)變成05(2)如果設(shè)計成任意輸入數(shù)據(jù),將以何種方式進行輸入。
在設(shè)計這部分的電路時我首先想到的是第二個問題,開始階段我所采用的是74LS151,同時決定給每一位個數(shù)據(jù)分配一個控制開關(guān),但是,問題顯而易見,開關(guān)太多了……粗略估計了一下,大概需要四十個左右……所以顯然方案不行。之后想到了可以用脈沖的方法對計數(shù)器進行計數(shù),即通過對計數(shù)器的CLK端不斷的接高低電平,以達到將想要賦的數(shù)存儲在計數(shù)器中的目的。就是利用的這種不斷開起閉合開關(guān)的方法,從而將需要賦給核心計數(shù)部分的數(shù)據(jù)先儲存起來。完成這部分功能的器件,我選擇了74LS160和開關(guān)若干。
經(jīng)過上面的敘述,已經(jīng)了解了如何將想要實現(xiàn)的大路小路的各種燈的點亮描述輸入進來,以及輸入系統(tǒng)之后的儲存原理。下面所要講述的是如何將已經(jīng)輸入到系統(tǒng)中,并暫時儲存的數(shù)據(jù),分時段賦給計數(shù)部分份的原理。
從我的原理圖可以看到,左側(cè)有四個模塊,每個模塊由若干個74LS160和74LS153組成,且線路是相互垂直連接的,其中上面兩個模塊負責(zé)的是對黃燈和綠燈時間的計數(shù),現(xiàn)以這兩部分進行講解。74LS153的作用是對已經(jīng)存儲在74160中的數(shù)據(jù)進行選擇。設(shè)上數(shù)第一個模塊為模塊A,第二個為模塊B。A的作用是對秒的十位進行賦值,B的作用是對秒的個位進行賦值?,F(xiàn)以實例講解:設(shè)要求輸入大路口綠燈25秒,黃燈04秒,小路口綠燈15秒。同時可以得出,小路口紅燈30秒,大路口紅燈20秒。則在模塊AB中的74LS160從上到下所存儲的數(shù)據(jù)為2(0010)、1(0001)、5(0101)、4(0100)、5(0101)。AB中的數(shù)據(jù)選擇器負責(zé)對這些數(shù)據(jù)進行選擇,并輸出給計數(shù)部分。當(dāng)數(shù)據(jù)選擇器中的輸入端AB為00是,即輸出所有AB中的數(shù)據(jù)選擇器的1*0,2*0項,即,A模塊通過兩個153將輸出0010(2),并賦給負責(zé)計秒數(shù)十位的核心計數(shù)部分的74190.B模塊通過兩個153將輸出0101(5),即,此時的核心計數(shù)部分負責(zé)綠燈黃燈秒數(shù)的計數(shù)器74190的輸入端0010 0101(25),只要給一個合適的信號使其置數(shù)到輸出端,即可開始進行倒數(shù)計數(shù),當(dāng)?shù)箶?shù)到3秒時,將會給控制部分一個信號,使之經(jīng)過一系列處理之后會使AB中的74153中的輸入端由00變?yōu)?1,這樣,會使數(shù)據(jù)選擇器中的1*1,2*1項全部輸出,以此類推,就會實現(xiàn)在同一塊計數(shù)器上的不同數(shù)據(jù)計數(shù)。
(二)控?zé)糸W爍部分
控?zé)糸W爍部分可以說是本電路的另一個亮點,本人只用了三個或門和兩個74LS48就完成了這部分的設(shè)計。在設(shè)計之初,問題主要集中在讓其閃爍的信號從哪里來。經(jīng)過思考,我想到,如果能有一種電路,它在使能端為1時能夠正常的將數(shù)據(jù)從輸入送到輸出,而在使能端為零時則能過將輸出端置零。這樣,將6個燈的信號通過這種原件,在平時倒數(shù)計數(shù)時,信號可以正常通過,即對亮燈是沒有影響的,而當(dāng)?shù)箶?shù)計時到達三秒時,則會通過控制部分,使得使能端的信號變?yōu)橐粋€脈沖,即,脈沖為1時,燈照常亮,而當(dāng)脈沖為0時,電路的輸出端被清零,燈熄滅,當(dāng)脈沖再次為1 時,輸出端又將擁有輸入端的數(shù)據(jù),即,剛剛熄滅的等又會亮,由此下去,在3~0秒期間,脈沖不斷的作用于使能端,從而使得燈不斷的亮滅,以達到閃爍的目的。
有了基本的原理后,其主要的問題是(1)選擇那種芯片?(2)使能端的信號怎么來保證?(3)如果只解決了上述的兩個問題的話,會出現(xiàn)一個問題,就是當(dāng)?shù)箶?shù)到3~0期間,所有在該時刻的點亮的燈是都會閃的,這其中也包括了紅燈。而顯示中,紅燈是不需要閃爍的,因此,需要一種控制電路來完成在不同時刻,哪個會閃爍而哪個不會閃爍。
對于問題一,最初,我所想到的芯片是可以異步清零的計數(shù)器芯片,但是,要用其完成在使能端使之正常工作時,輸入輸出相當(dāng)于通路的功能顯而易見十分困難。之后,又想到了74LS48,之所以想到了這塊芯片,主要是因為它能夠滅0。但是,7448的主要功能是一個為LED所搭配使用的譯碼器,這時,如果要想上述的輸入輸出一樣的功能的話,就需要去研究其功能表。經(jīng)過研究發(fā)現(xiàn),確實存在這樣的輸入輸出端,從而使得這塊芯片得以利用。當(dāng)然,研究這個功能表大概花費了我兩個小時的時間。
對于問題二,主要采用的是將一個脈沖信號與一個控制信號通過或門,并將輸出接在使能端的方法,具體是,當(dāng)?shù)箶?shù)計數(shù)不3~0之間時,控制信號為0,即或門的輸出僅僅決定于脈沖信號,這樣,在0~3秒期間,燈會閃爍。而不在這個時間范圍內(nèi)時,控制信號會為1,即輸出到使能端的信號一定為1。這樣,就很好解決了信號問題。
對于問題三,如果按問題二的解決辦法,就會出現(xiàn)紅燈閃爍的現(xiàn)象,我上面之所以會這么說是便于理解的緣故。實際上,還要將或門的輸出端分別連入兩個或門,讓這兩個或門的輸出與兩個芯片的使能端相連接。而這兩個或門的另一個輸入,則是其對應(yīng)芯片紅燈的反饋信號,即,如果這個芯片上的紅燈會點亮,即為高電平時,這個連接在對應(yīng)芯片使能端的或門輸出信號會恒為1,而如果通過這個芯片的紅燈信號為0(黃燈或綠燈亮),即紅燈沒有點亮,輸入到或門的信號為0,這樣,脈沖信號就可以輸入進入使能端,這樣,就完成了合理閃爍的功能。
(三)核心計數(shù)部分
核心計數(shù)部分我采用的是四片74LS190,其中,兩片為一組,分別負責(zé)綠燈黃燈的計數(shù)和紅燈的減法計數(shù),該部分比較簡單,需要注意的是計數(shù)器輸出端在控制電路部分充當(dāng)了反饋的作用,十分重要。
(四)控制部分
對于控制電路,我運用了大量的反饋以及狀態(tài)的擴展。所謂的狀態(tài)的擴展就是說,每當(dāng)特定的端口產(chǎn)生進位信號時,其進位脈沖都會對與其相連的計數(shù)器產(chǎn)生計數(shù)信號,這樣,不同的數(shù)據(jù)就代表了不同的狀態(tài)??刂撇糠志褪歉鶕?jù)這些不同的狀態(tài)對特定電路進行控制的。
四.調(diào)試過程及結(jié)果分析
開始階段,置零開關(guān)是全部打開的,要注意的是,在運行到45秒后,一定要將這7個開關(guān)打開才可以在之后正常工作
由于該設(shè)計的電路過于復(fù)雜,無法采用EWB進行很好的連線,因此我選用了ISIS進行模擬操作。模擬過程中,出現(xiàn)了許多的問題,同時也糾正了我的一些錯誤,例如,在賦數(shù)電路中,開始我所想到的方法存在很大的問題,其設(shè)計并不被軟件所認可。
經(jīng)過我的努力,實驗結(jié)果完全正確,并沒有出現(xiàn)問題,這主要與我的賦值電路的穩(wěn)定,和控制信號的穩(wěn)定有關(guān)。
五.設(shè)計、安裝及調(diào)試中的體會
這次設(shè)計我的收獲頗豐,首先,本人的學(xué)習(xí)宗旨就是實踐,平時的學(xué)習(xí)都是盡可能的以實踐為基礎(chǔ),這次課程設(shè)計,使我的平日所學(xué)知識得到了很好的檢驗,對可以說是對數(shù)字電路課程的一次完整的復(fù)習(xí)。其次,課程設(shè)計絕對不是應(yīng)付差事,而是要給自己設(shè)立一個高標(biāo)準(zhǔn),并且在設(shè)計中不斷的進行完善,就像我的這個紅綠燈一樣,實現(xiàn)能夠隨意置數(shù)和閃爍絕非易事,在不斷的完善自己的設(shè)計方案和不斷的提高要求的過程中,更能鍛煉自己的思維能力。再次,通過這次學(xué)習(xí),使我對數(shù)字電路這門課程有了更加深入的認識,例如,在對于一些芯片的應(yīng)用上,絕對不能只是簡單的按其的基本用法進行操作,而是要通過研究其真值表不斷的挖掘出新的功能,在本設(shè)計中,我就采用了74LS151 74LS138代替了部分門電路的功能,這樣不僅對電路進行了簡化,而且也更加的穩(wěn)定易懂。同時,我對74LS48的應(yīng)用也是十分的巧妙,這些都是通過對其功能表的研究得出的結(jié)論。最后,在設(shè)計的過程中,我充分的感受到了設(shè)計的樂趣,不斷給自己增加難度的過程并不是對自己的苛刻,而是發(fā)自內(nèi)心的希望能夠做的更好,這樣的心理讓我并不急于應(yīng)付差事,從而學(xué)到了更多的知識。
在實際的模擬調(diào)試階段,我感覺到了理論與實際的巨大差距,明明已經(jīng)理論很完美的設(shè)計,在實際仿真時卻漏洞百出。例如,在課堂上。對于計數(shù)器的級聯(lián),課本并沒有涉及太多的知識,而在實際應(yīng)用模擬時,卻總是出現(xiàn)很多問題。還有,對于幾個邏輯門的串聯(lián)也知識停留在理論上的可行階段,實際上在模擬時候就會在輸出變成高阻態(tài)。
總之,這次的課程設(shè)計,尤其是這個紅綠燈的課程設(shè)計,讓我體會到了很多東西,在不斷推敲設(shè)計方案時,不僅對所學(xué)知識有了全新的認識,同時也對設(shè)計產(chǎn)生了濃厚的興趣。還有就是通過這個設(shè)計,我也熟練掌握了ISIS這個軟件。可以說,如果用心去做課程設(shè)計的話,收獲一定會很大。
六.對本次課程設(shè)計的意見及建議
本次課程設(shè)計雖然學(xué)到了很多,但是我仍然覺得課程設(shè)計本身存在一些問題: 1
我個人覺得課程設(shè)計的題目設(shè)計稍有不合理,因為,首先來講,做一個基本功能的紅綠燈應(yīng)該并非難事,如果只是按照基本的要求去做,要是專心的話基本一兩天就搞定,很簡單,例如,控?zé)舻脑?,我只有一塊一位寄存器外加兩個或門就可以完成。對于第二個任意選擇的題目來說,更是比紅綠燈簡單。兩個題目都不是很難,我覺得與其說做兩個都不是很難的題目,還不如去做一個復(fù)雜一點的題目。當(dāng)然,每個人的能力不一樣,因此,我建議可以出三道難度不同的題目由學(xué)生自由選擇,根據(jù)題目的等級和學(xué)生的完成情況對其評分。
本次課程設(shè)計要求的軟件為EWB,但是EWB操作起來并不是很方便,尤其是對復(fù)雜電路的布線,如果出現(xiàn)錯誤,那么亂的線,根本無法進行檢查。
總的來說,本次課程設(shè)計使我學(xué)到了很多東西。在今后的學(xué)習(xí)中我將再接再厲,爭取取得更好的成績!
附錄:原件清單:74LS160 11
74LS153 8
74LS190 4
74LS138 1
74LS48
74LS151 3
第四篇:課程設(shè)計論文--基于labview的定時器程序設(shè)計
基于labview的定時器程序設(shè)計
目錄
1.程序設(shè)計背景??????????????????????????3
1.1.labview定時器的介紹?????????????????????3
2.程序介紹????????????????????????????3
a、主要用途和功能???????????????????????4
b、前面板圖和主要部件的功能???????????????????5
c、程序框圖???????????????????????????6
3.程序改進????????????????????????????8
4.程序界面及層次關(guān)系??????????????????????9
5.存在的一些問題????????????????????????10
6.程序來源說明??????????????????????? 10
1.程序設(shè)計背景
定時器在家用電器中經(jīng)常用于延時自動關(guān)機、定時。延時自動關(guān)機用于:收音機、電視機、錄音機、催眠器、門燈、路燈、汽車頭燈、轉(zhuǎn)彎燈以及其他電器的延時斷電及延時自停電源等。定時可用于:照相機曝光、定時閃光、定時放大、定時調(diào)速、定時烘箱、冰箱門開定時報警、水位定時報警、延時催眠器、延時電鈴、延時電子鎖、觸摸定時開關(guān)等。例如空調(diào)中的定時器,在工作一段時間后便能自動切斷電源停止工作。夏季夜間使用,入睡前先設(shè)好預(yù)定時間,等睡熟后到了預(yù)定時間,空調(diào)自動關(guān)機。方便節(jié)能。定時器除了應(yīng)用于家電之外 還廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)和服務(wù)設(shè)施,軍事等。發(fā)展前景
傳統(tǒng)的定時器大多數(shù)是發(fā)條驅(qū)動式、電機傳動式或電鐘式等機械定時器,部分電子器械中也有試用時間繼電器的。相對于傳統(tǒng)的定時器,電子定時器的體積小,重量輕。造價低。精度高、壽命長,而且安全可靠,調(diào)整方便,適于頻繁的使用。同時隨著現(xiàn)代電子技術(shù)的不斷發(fā)展,定時器也在不斷更新,朝著更多用途,更高精度,更小體積發(fā)展著。
Labview的定時器:
1.為什么要使用定時: 一般來說在循環(huán)中,我們都會添加一個定時器。他們的作用主要有2 個:
1.控制代碼執(zhí)行的速率:簡單的來說,如果在循環(huán)中添加了定時,就可以控制循環(huán)以一定間隔重復(fù)執(zhí)行;或者在串口通信中,在發(fā)送指令后等待指定的時間再讀返回值。
2.降低CPU 占用率:如果沒有設(shè)置定時,CPU 的大部分資源會一直被該線程占用,而無法執(zhí)行其他線程。2.定時VI 用法:
在LabVIEW 中的常用定時有等待(ms)倍毫秒
1. 等待(ms)
該VI 的輸入端為整型,單位是ms。指定代碼執(zhí)行的時間間隔。舉例來說,連入VI 的輸入為10ms,如果循環(huán)中代碼的運行時間是3ms,那么每次循環(huán)的時間是10ms;如果循環(huán)中代碼的運行時間是14 毫秒(大于10ms),那么每次的循環(huán)的時間是14ms。
(Windows 下軟件定時的精度在1 個ms 左右,所以實際的情況會有1ms 左右的誤差)
2. 等待到下一個整數(shù)倍毫秒
該VI 輸入為整型,單位是ms。該VI 將定時和系統(tǒng)的時鐘對應(yīng)起來,使用該定時VI 后,代碼將在系統(tǒng)時鐘為定時時間的整數(shù)倍執(zhí)行。使用該定時VI 的第一次運行時間間隔是不確定的。比如設(shè)定定時為1000ms,對于第一次運行,無論當(dāng)前時間是50ms 還是850ms,都將在下一次1000ms 的整數(shù)倍時間第二次運行該代碼,那么實際的間隔分別是950ms 和150ms。
3.定時的精度: 對于上面提到的定時VI,輸入的單位都是ms,但是實際運行的最小間隔在2ms 以上。這是因為Windows 操作系統(tǒng)中,對線程的操作最小的間隔是2ms。
4.使用定時的注意事項:
在使用等待到下一個整數(shù)倍毫秒時需要注意,當(dāng)該VI 處于等待狀態(tài)時,整個線程都將處于等待狀態(tài)。在對時間要求較高的實時系統(tǒng)中,往往不可以簡單的將該定時VI 和代碼并行的放置。
,和等待到下一個整數(shù)程序介紹
a、主要用途和功能 在測量過程中,有時需要測量、記錄數(shù)據(jù)在2小時內(nèi)的分布情況(穩(wěn)定性、波動性);有時需要每10分鐘測量一次數(shù)據(jù)并保存結(jié)果。這就需要有一個定時器或倒計時器來控制測量的過程,利用“已用時間”快速vi做了一個既有“定時”功能又有“倒計時”功能的vi,基本上滿足應(yīng)用程序的設(shè)計要求。
該vi的定時精度不是很高,大概在正、負1s左右,基本上可以滿足工程上的使用要求。
b、前面板圖和主要部件的功能
定時時間選擇——這是一個枚舉控件,用來選擇定時或倒計時的時間間隔。設(shè)計時定義了一些常用時間的數(shù)據(jù)列表。
定時器(倒計時器)——這是一個開關(guān)控件,用來選擇是定時功能還是倒計時功能。開始計時后將被灰化(運行時不可再操作)。
停止(開始)——這是一個開關(guān)控件,用來控制是否開始計時。開始計時后將被灰化(運行時不可再操作)。
定時持續(xù)時間——這是一個字符顯示控件,用來實時顯示定時或倒計時的時間間隔數(shù)值。
強行停止計時——這是一個開關(guān)控件,用來強行停止計時過程(退出計時)。
c、程序框圖
整個程序框圖
程序在執(zhí)行時,首先通過選擇按鈕,選擇是定時器模式還是倒計時模式,然后經(jīng)過每局按鈕確定定時時間,再按下開始,若在定時器模式下,則定時顯示時間從0遞增到枚舉選擇的時間,此過程中按鈕變灰,不可用,到點時,由開始轉(zhuǎn)為停止,所有鍵可用。倒計時器模式與此過程大致相同,唯一不同便是計數(shù)從預(yù)設(shè)值遞減為0。程序在執(zhí)行過程中可用確定強制退出鍵退出。
計時的功能由“已用時間”實現(xiàn),枚舉的數(shù)值為其上限,在定時器模式,已用時間直接輸出到格式化日期,再到時間顯示控件。在倒計數(shù)器模式,已用時間輸出數(shù)據(jù)先與枚舉數(shù)做減法運算,在輸入到格式化日期。
中斷循環(huán)由已用時間的結(jié)束輸出、強行停止鍵、過程錯誤輸出三者通過邏輯與接到中止鍵。
程序改進
上述程序過于簡單,現(xiàn)做改進如下:
1.將枚舉控件用一個數(shù)值輸入控件代替,這樣就可以自行確定定時或倒計時的時間,從而擴大了程序適用的范圍。(注意輸入的數(shù)值以分鐘記)
2.為了更好的達到倒計時預(yù)警的效果,現(xiàn)加入LED燈進行倒計時小于10時的顯示,從而更加直觀,鮮明,同時為了不影響程序的觀看效果,LED燈只在倒計時的最后10秒出現(xiàn),其余情況皆為不可見。3.在程序設(shè)計中使用屬性節(jié)點,比如本例中:利用屬性節(jié)點將程序運行過程中的操作限定在唯一性上,可以降低操作者的誤操作可能性。本程序運行時,要么等待定時結(jié)束,要么由操作者強行停止計時。
4.新增一個圖片下拉表,它的可視性與LED燈的情況相同。
5當(dāng)定時時間到時,發(fā)出聲音報警。整體程序圖
程序界面
存在的一些問題
本程序的定時顯示精確性不高,例如LED燈的數(shù)字無法做到同步顯示等等。程序來源說明
本文原程序來源于http://tieba.baidu.com/p/1585935847 9
第五篇:labview心得
LABVIEW學(xué)習(xí)心得
這學(xué)期的課程設(shè)計,主要講授了一些LabVIEW的基本操作和編程技巧,LabVIEW作為一門新式的以圖形化編程的語言,不僅提供了簡單易學(xué)的編程方法,而且提供了海量的可調(diào)用的模塊,子vi,涉及到各個方面。
LabVIEW是一種程序開發(fā)環(huán)境,由美國國家儀器(NI)公司研制開發(fā)的,類似于C和BASIC開發(fā)環(huán)境,但是LabVIEW與其他計算機語言的顯著區(qū)別是:其他計算機語言都是采用基于文本的語言產(chǎn)生代碼,而LabVIEW使用的是圖形化編輯語言G編寫程序,產(chǎn)生的程序是框圖的形式。
LABVIEW有很多優(yōu)點,尤其是在某些特殊領(lǐng)域其特點尤其突出。
首先在測試測量方面:LABVIEW最初就是為測試測量而設(shè)計的,因而測試測量也就是現(xiàn)在LABVIEW最廣泛的應(yīng)用領(lǐng)域。經(jīng)過多年的發(fā)展,LABVIEW在測試測量領(lǐng)域獲得了廣泛的承認。至今,大多數(shù)主流的測試儀器、數(shù)據(jù)采集設(shè)備都擁有專門的LabVIEW驅(qū)動程序,使用LabVIEW可以非常便捷的控制這些硬件設(shè)備。同時,用戶也可以十分方便地找到各種適用于測試測量領(lǐng)域的LabVIEW工具包。這些工具包幾乎覆蓋了用戶所需的所有功能,用戶在這些工具包的基礎(chǔ)上再開發(fā)程序就容易多了。有時甚至于只需簡單地調(diào)用幾個工具包中的函數(shù),就可以組成一個完整的測試測量應(yīng)用程序。
控制與測試是兩個相關(guān)度非常高的領(lǐng)域,從測試領(lǐng)域起家的LabVIEW自然而然地首先拓展至控制領(lǐng)域。LabVIEW擁有專門用于控制領(lǐng)域的模塊----LabVIEWDSC。除此之外,工業(yè)控制領(lǐng)域常用的設(shè)備、數(shù)據(jù)線等通常也都帶有相應(yīng)的LabVIEW驅(qū)動程序。使用LabVIEW可以非常方便的編制各種控制程序。
除了以上兩種應(yīng)用領(lǐng)域,LabVIEW還包含了多種多樣的數(shù)學(xué)運算函數(shù),特別適合進行模擬、仿真、原型設(shè)計等工作。在設(shè)計機電設(shè)備之前,可以現(xiàn)在計算機上用LabVIEW搭建仿真原型,驗證設(shè)計的合理性,找到潛在的問題。在高等教育領(lǐng)域,有時如果使用LabVIEW進行軟件模擬,就可以達到同樣的效果,使學(xué)生不致失去實踐的機會。
與C和BASIC一樣,LabVIEW也是通用的編程系統(tǒng),有一個完成任何編程任務(wù)的龐大函數(shù)庫。LabVIEW的函數(shù)庫包括數(shù)據(jù)采集、GPIB、串口控制、數(shù)據(jù)分析、數(shù)據(jù)顯示及數(shù)據(jù)存儲,等等。LabVIEW也有傳統(tǒng)的程序調(diào)試工具,如設(shè)置斷點、以動畫方式顯示數(shù)據(jù)及其子程序(子VI)的結(jié)果、單步執(zhí)行等等,便于程序的調(diào)試
根據(jù)一些項目統(tǒng)計,完成一個功能類似的大型應(yīng)用軟件,熟練的LabVIEW程序員所需的開發(fā)時間,大概只是熟練的C程序員所需時間的1/5左右。所以,如果項目開發(fā)時間緊張,應(yīng)該優(yōu)先考慮使用LabVIEW,以縮短開發(fā)時間。
我對這一門高效簡單的編程語言有很大的興趣。一口氣就把發(fā)的講義看完了,又從圖書館中借了一些高級應(yīng)用的書,還在網(wǎng)上搜過NI公司舉辦的研討會。從中學(xué)到了大量的技巧。也越來越感到,LabVIEW入門很容易,如果要深入做下去,完成一個像樣的工程,就必須懂得各方面的知識,需要了解與電腦通信的各種協(xié)議,pci,pxi,gpib,還有現(xiàn)今流行的USB,就算用別人做的卡,用別人編寫好的驅(qū)動程序,自己也要動各種調(diào)用約定,因為他們的卡并不為LabVIEW一種編程語言所做,好在LabVIEW本身提供了各種方法可以方便的調(diào)用。需要學(xué)會使用數(shù)據(jù)庫,需要用別的編程語言別寫可供LabVIEW能調(diào)用的模塊。
這是一門實踐性很強的課,很多知識是從書上看來的,而且看完之后,自己還覺的不錯,覺得自己已經(jīng)掌握的很好了,但真到實際做東西的時候,就會覺得困難重重,這時再去查書,便有了對知識的更深層次的理解,其實在這方面更應(yīng)該感謝網(wǎng)絡(luò)給我們帶來的方便,有任何問題,上網(wǎng)搜一下,很多問題都可以迎刃而解,而且很多網(wǎng)友都有自己獨特的見解,在他們的討論中看到了很多有用的東西。而且我們能感受到學(xué)院老師對這門課的重視,也能看到這門課的發(fā)展前景,即使我們在以后的工作中不在這方面發(fā)展,這門課留給我們的學(xué)習(xí)思想和技術(shù)技能都是很寶貴的。
學(xué)以促用,用以促學(xué),我們感覺這也是這門課教給我們的重要知識。帶著問題學(xué)習(xí)才能學(xué)到真正的知識。
在這學(xué)期的學(xué)習(xí)中我們學(xué)到了很多,也認識到我們需要學(xué)的東西更多,僅憑現(xiàn)在學(xué)到的東西是遠遠不夠的,要想在這方面作出一些成績,必須繼續(xù)學(xué)下去。