版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
-.z四相步進(jìn)電機(jī)定位控制系統(tǒng)四相步進(jìn)電機(jī)定位控制系統(tǒng)功能概述步進(jìn)電機(jī)每接收到一組脈沖數(shù)字信號,便旋轉(zhuǎn)一個角度,成為步進(jìn)角。不同規(guī)格的步進(jìn)電機(jī)的步進(jìn)角不同,這決定于其內(nèi)部的線圈數(shù)量。線圈中的供給電流可以決定線圈所產(chǎn)生的磁場方向。假設(shè)有兩組線圈A和B,如圖一所示。A線圈如果提供A點(diǎn)低電位而A′點(diǎn)高電位,電流由A′螺旋向上流到A,形成向上的磁場方向;同理,提供B點(diǎn)低電位而B′點(diǎn)高電位,電流由B′螺旋流到B,形成向左的磁場方向。A和B這兩組線圈形成的總磁場方向即為左上方。如果將電動機(jī)的轉(zhuǎn)子置于線圈所產(chǎn)生的磁場中,便會受到磁場的作用而產(chǎn)生與磁場方向一致的力,轉(zhuǎn)子便開場轉(zhuǎn)動,直到轉(zhuǎn)子的磁場方向與線圈的磁場方向一致為止。如圖二所示。由A和B兩組線圈電流方向的排列組合,最多可以產(chǎn)生8種磁場方向,分別是0°、45°、90°、135°、180°、225°、270°、315°。這些方向的電流方向列于表一。圖一圖二由表一可知,假設(shè)電動機(jī)轉(zhuǎn)子刻度原先在0°的位置,想讓其轉(zhuǎn)到180°,就必須讓端口信號依次由0001、0011、0010、0110到0100變化。但是是否有更快的方法,是否一定要經(jīng)過4個信號過程呢.其實(shí)有更快更省電的方式讓電動機(jī)從0°到達(dá)180°的位置。這就是所謂的激磁方式的不同。四相電動機(jī)可以分為3種激磁方式。表一:四相步進(jìn)電機(jī)的8個方向和電流以及電壓信號的關(guān)系磁場方向0°45°90°135°180°225°270°315°電流方向A線圈B線圈A→A′A→A′0A←A′A←A′A←A′0A→A′0B→B′B→B′B→B′0B←B′B←B′B←B′端口信號000100110010011001001100100010011-相激磁法:當(dāng)目標(biāo)角度是90的整數(shù)倍時,采用這種方法。例如要從0轉(zhuǎn)到270,只要讓端口信號的順序?yàn)?000,0001,0010,0100,1000即可。2-相激磁法:當(dāng)目標(biāo)角度是45而非90的整數(shù)倍時,可采用這種方法。例如要從0轉(zhuǎn)到225,只要讓端口信號的順序?yàn)?000,0011,0110,1100即可。1-2-相混合激磁法:按照表二中所列的信號順序。表二:四相步進(jìn)電機(jī)3種不同激磁方式對應(yīng)提供的端口信號磁場方向0°45°90°135°180°225°270°315°端口信號000100110010011001001100100010011-相激磁√√√√2-相激磁√√√√1-2-相激磁√√√√√√√√四相步進(jìn)電機(jī)定位控制系統(tǒng)的VHDL源碼及注釋--四相步進(jìn)電機(jī)例如程序libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entitystep_motorisport(reset:inSTD_LOGIC;--系統(tǒng)復(fù)位信號dir:inSTD_LOGIC;--步進(jìn)電機(jī)正反轉(zhuǎn)方向控制開關(guān)〔0:逆時針;1:順時針〕clk:inSTD_LOGIC;--系統(tǒng)時鐘〔FPGA內(nèi)部提供的4MHz的時鐘信號〕ini:inSTD_LOGIC;--使能開關(guān)manner:inSTD_LOGIC_VECTOR(1downto0);--激磁方式的選擇開關(guān)〔00:自動選擇激磁方式;--01:1-相激磁;10:2-相激磁;11:1-2-相激磁〕angle:inSTD_LOGIC_VECTOR(7downto0);--步進(jìn)角的倍數(shù)設(shè)定輸入鍵baBA:outSTD_LOGIC_VECTOR(3downto0));--步進(jìn)電機(jī)的狀態(tài)輸出endstep_motor;architecturestepmotor_archofstep_motorissignalcount:INTEGERrange0to7;--內(nèi)部電路的計數(shù)累加器,用于產(chǎn)生輸出所需對應(yīng)的狀態(tài)signaltInc:INTEGERrange-2to2;--設(shè)定累加器所需的累加/減計數(shù)值signaltIni:INTEGERrange-1to0;--設(shè)定累加器所需的計數(shù)初值signalangleDnCount:INTEGERrange255downto0;--設(shè)定步進(jìn)角所需的計數(shù)次數(shù)signalangleDntDec:INTEGERrange2downto1;--設(shè)定步進(jìn)角所需的累減計數(shù)值begin--步進(jìn)電機(jī)方向設(shè)定電路模塊該模塊的功能是設(shè)定步進(jìn)電機(jī)的旋轉(zhuǎn)方向〔順時針或逆時針〕,并設(shè)定電機(jī)在順時針轉(zhuǎn)動或逆時針轉(zhuǎn)動時所需的初值與累加/減值。process(dir,manner,angle)beginifdir='0'then casemanneriswhen"01"=>--1-相激磁tIni<=0;tInc<=2;angleDntDec<=2;when"10"=>--2-相激磁tIni<=-1;tInc<=2;angleDntDec<=2;when"11"=>--1-2-相激磁tIni<=0;tInc<=1;angleDntDec<=1;whenothers=>--自動選擇激磁方式--angle為偶數(shù)即角度為90的倍數(shù)時,采用1-相激磁,否則2-相激磁 if(angle(0)='1')then--2-相激磁 tIni<=-1;tInc<=2;angleDntDec<=2;else--1-相激磁 tIni<=0;tInc<=2;angleDntDec<=2;endif;endcase;elsecasemanneriswhen"01"=>--1-相激磁tIni<=0;tInc<=-2;angleDntDec<=2;--"10";when"10"=>--2-相激磁tIni<=-1;tInc<=-2;angleDntDec<=2;--"10";when"11"=>--1-2-相激磁tIni<=0;tInc<=-1;angleDntDec<=1;--"01";whenothers=>--自動選擇激磁方式if(angle(0)='1')then--2-相激磁tIni<=-1;tInc<=-2;angleDntDec<=2;else--1-相激磁tIni<=0;tInc<=-2;angleDntDec<=2;endif;endcase;endif;endprocess;--步進(jìn)電機(jī)步進(jìn)移動與定位控制電路模塊該模塊的主要功能是利用ini〔使能開關(guān)〕,將數(shù)值傳到該模塊中,并配合輸入的clk〔系統(tǒng)時鐘〕作為同步控制信號,進(jìn)展步進(jìn)電機(jī)的步進(jìn)移動與定位控制。counting_reset:process(reset,ini,angle,clk)begin ifreset='1'then--復(fù)位低電平有效count<=0;angleDnCount<=0;elsifclk'eventandclk='1'thenifini='0'then--使能高電平有效count<=0+tIni;angleDnCount<=CONV_INTEGER(angle);elsecount<=count+tInc;ifangleDnCount>angleDntDecthen--判斷是否已到達(dá)設(shè)定位置angleDnCount<=angleDnCount-angleDntDec;elseangleDnCount<=0;endif;endif;endif;endprocess;--編碼輸出電路模塊該模塊的功能是將count與angledncount產(chǎn)生的數(shù)值經(jīng)過編碼,并利用baBA輸出連線信號,將結(jié)果輸出顯示。baBA<="0000"whenangleDnCount=0else"0001"whencount=0else"0011"whencount=1else"0010"whencount=2else"0110"whencount=3else"0100"whencount=4else"1100"whencount=5else"1000"whencount=6else"1001";--whencount>=7;endstepmotor_arch;四相步進(jìn)電機(jī)定位控制系統(tǒng)的模塊圖四相步進(jìn)電機(jī)定位控制系統(tǒng)的仿真結(jié)果⑴自動模式,順時針,旋轉(zhuǎn)角為45*11的情況:⑵自動模式,順時針,旋轉(zhuǎn)角為45*16的情況:⑶1-相激磁,逆時針,旋轉(zhuǎn)角為45*7的情況:⑷1-相激磁,順時針,旋轉(zhuǎn)角為45*7的情況:⑸2-相激磁,逆時針,旋轉(zhuǎn)角為45*17的情況:⑹2-相激磁,逆時針,旋轉(zhuǎn)角為45*17的情況:⑺1-2-相激磁,順時針,旋轉(zhuǎn)角為45*11的情況:⑻1-2-相激磁,順時針,旋轉(zhuǎn)角為45*8的情況:直流電機(jī)速度控制系統(tǒng)直流電機(jī)速度控制系統(tǒng)功能概述驅(qū)動電路稱為橋式驅(qū)動或是H型驅(qū)動電路〔如右圖所示〕,采用的控制方法稱為脈沖寬度調(diào)制法〔PWM〕,即利用晶體管on-off〔導(dǎo)通-不導(dǎo)通〕進(jìn)展控制的方法。使用FPGA純數(shù)字式的控制時,假設(shè)電機(jī)速度從靜止開場加速,首先Q1、Q2必須維持導(dǎo)通一段時間,此時電機(jī)所承受的電壓約為供電電壓U,稱之為強(qiáng)加速。待速度接近目標(biāo)速度時,加速可以減緩,此時Q1、Q2和Q3、Q4輪流導(dǎo)通,只是Q1、Q2在一個周期內(nèi)所導(dǎo)通的時間ton比Q3、Q4導(dǎo)通的時間toff長一些,此時稱為弱加速。任何時候,電機(jī)所承受的平均電壓U0可表示為U0=U*〔ton-toff〕〔ton+toff〕。如果速度已經(jīng)到達(dá)目標(biāo),便可以調(diào)整ton和toff的時間比例使之相等,此時平均電壓為零,稱為定速控制。由此可知,平均電壓假設(shè)為正值,是加速控制;負(fù)值時是減速控制;為0時即到達(dá)勻速。當(dāng)然,還涉及到確定電機(jī)目前的速度是多少,比目標(biāo)速度快還是慢,也就是速度檢測的問題,常用的方法是光遮斷法,在此就不再論述了。在程序仿真時只簡單的輸入固定的速度模擬一下。直流電機(jī)速度控制系統(tǒng)的VHDL源碼及注釋libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entitymotorctrlisport(clk:inSTD_LOGIC;--FPGA內(nèi)部提供的4MHZ的時鐘信號reset:inSTD_LOGIC;--系統(tǒng)內(nèi)部自復(fù)位信號speed_now:inSTD_LOGIC_VECTOR(7downto0);--速度檢測編碼器檢測到的當(dāng)前速度target_speed:inSTD_LOGIC_VECTOR(7downto0);--設(shè)定電機(jī)預(yù)定到達(dá)的目標(biāo)速度th_speed:inSTD_LOGIC_VECTOR(7downto0);--設(shè)定電機(jī)進(jìn)入弱加速時的臨界速度差值pwme:outSTD_LOGIC);--脈寬調(diào)制的輸出,負(fù)責(zé)控制電機(jī)轉(zhuǎn)動的信號end;architecturemotorctrl_archofmotorctrlis--definethesignal_structureandflowofthedevice定義內(nèi)部信號signalt125:INTEGERrange0to124;--125個時鐘的計數(shù)器signalt375:INTEGERrange0to374;--375個時鐘的計數(shù)器signalt500:INTEGERrange0to499;--500個時鐘的計數(shù)器signaldth:STD_LOGIC_VECTOR(7downto0);--設(shè)定電機(jī)進(jìn)入弱加速時的臨界值〔dth=target_speed-th_speed〕signalpwm:STD_LOGIC;--負(fù)責(zé)產(chǎn)生脈寬調(diào)制的信號,提供正確的輸出--相位類型,負(fù)責(zé)產(chǎn)生正反轉(zhuǎn)兩種狀態(tài)信號,用來控制電機(jī)的加速和減速phase有2種狀態(tài):狀態(tài)0:phase<=phb1,電機(jī)正轉(zhuǎn)〔加速狀態(tài)〕;狀態(tài)1:phase<=phb2,電機(jī)反轉(zhuǎn)〔減速狀態(tài)〕。typephase_typeis(phB1,phB2);signalphase:phase_type;----------------------------------------------速度類型,負(fù)責(zé)產(chǎn)生加速、弱加速、減速與定速4種狀態(tài)信號,以控制電機(jī)的轉(zhuǎn)速speeding4種狀態(tài):狀態(tài)0:speeding<=upa,電機(jī)進(jìn)展加速動作; 狀態(tài)1:speeding<=upb,電機(jī)進(jìn)展弱加速動作; 狀態(tài)2:speeding<=dn,電機(jī)進(jìn)展減速動作;狀態(tài)3:speeding<=final,電機(jī)進(jìn)展定速動作;typespeeding_typeis(UPA,UPB,Dn,final);signalspeeding:speeding_type;-----------------------------------------------begin--速度控制模塊該模塊實(shí)現(xiàn)以下的控制功能:如果speed_now=target_speed,則定速控制,即ton=toff=ktclk,on-off的時間均等于clk的k倍周期時間;如果speed_now>=target_speed–th_speed,則進(jìn)展弱加速控制,ton=(3/4)ktclk,toff=(1/4)ktclk;如果speed_now<target_speed–th_speed,進(jìn)展強(qiáng)加速控制,pwme=1;如果speed_now>target_speed,則減速控制,ton=(1/4)ktclk,toff=(3/4)ktclk;另外,方向控制通過將pwme信號的輸出反向。根據(jù)上面的分析,需要3個分頻器,分別產(chǎn)生ktclk,(1/4)ktclk和(3/4)ktclk的周期信號。假設(shè)時鐘周期tclk為10MHz,電機(jī)頻率為20kHz,因此k=10MHz/20kHz=500,(1/4)k=125,(3/4)=375,這也就是定義t125,t375,t500三個計數(shù)器的原因。peeding_machine:process(reset,clk)beginifreset='1'then--復(fù)位高電平有效speeding<=UPA;dth<="00000000";elsif(clk'eventandclk='1')thendth<=target_speed-th_speed;--弱加速的臨界值casespeedingis--速度控制狀態(tài)機(jī)whenUPA=>--情況1 if(speed_now=target_speed)then speeding<=final; elsif(speed_now>target_speed)then speeding<=Dn; elsif(speed_now<dth)then speeding<=UPA; elsif(speed_now>=dth)and(speed_now<target_speed)thenUPA加速UPA加速UPB弱加速Dn減速Final勻速現(xiàn)速=限速speed_now=target_speed現(xiàn)速>弱加速臨界速度&<限速speed_now>=dth&speed_now<target_speed現(xiàn)速>限速speed_now>target_speed現(xiàn)速<弱加速臨界速度speed_now<dth endif; whenUPB=>--情況2 if(speed_now=target_speed)then speeding<=final; elsif(speed_now<dth)then speeding<=UPA; elsif(speed_now>=dth)and(speed_now<target_speed)then speeding<=UPB; elsif(speed_now>target_speed)then speeding<=Dn; endif;UPAUPA加速UPB弱加速Dn減速Final勻速現(xiàn)速=限速speed_now=target_speed現(xiàn)速<弱加速臨界速度speed_now<dth現(xiàn)速>限速speed_now>target_speed現(xiàn)速>弱加速臨界速度&<限速speed_now>=dth&speed_now<target_speedwhenDn=>--情況3 if(speed_now=target_speed)then speeding<=final; elsif(speed_now<dth)then speeding<=UPA; elsif(speed_now>target_speed)then speeding<=Dn; elsif(speed_now>=dth)and(speed_now<target_speed)then speeding<=UPB; endif;UPAUPA加速UPB弱加速Dn減速Final勻速現(xiàn)速=限速speed_now=target_speed現(xiàn)速<弱加速臨界速度speed_now<dth現(xiàn)速>限速speed_now>target_speed現(xiàn)速>弱加速臨界速度&<限速speed_now>=dth&speed_now<target_speed whenfinal=>--情況4 if(speed_now>target_speed)then speeding<=Dn; elsif(speed_now>=dth)and(speed_now<target_speed)then speeding<=UPB; elsif(speed_now=target_speed)then speeding<=final; elsif(speed_now<dth)then speeding<=UPA; endif; UPAUPA加速UPB弱加速Dn減速Final勻速現(xiàn)速=限速speed_now=target_speed現(xiàn)速<弱加速臨界速度speed_now<dth現(xiàn)速>限速speed_now>target_speed現(xiàn)速>弱加速臨界速度&<限速speed_now>=dth&speed_now<target_speed whenothers=> null;endcase;endif;endprocess;--相位控制模塊該模塊具有以下控制功能:如果希望正向轉(zhuǎn)動〔即Q1,Q2導(dǎo)通〕,則使用狀態(tài)0:phb1;如果希望反向移動〔即Q3,Q4導(dǎo)通〕,則使用狀態(tài)1:phb2;上面的速度設(shè)定模塊只是對有關(guān)的輸入信號進(jìn)展判斷,告知FPGA用何種模式進(jìn)展速度控制,并不產(chǎn)生輸出信號〔pwm〕。因此,必須設(shè)計第二個狀態(tài)判別器“phase〞,負(fù)責(zé)計數(shù)與產(chǎn)生pwm〔脈寬調(diào)制〕信號。phase相位控制器的設(shè)計原理如下:phb1狀態(tài)為Q1,Q2開啟〔即pwme=1〕,而Q3,Q4關(guān)閉〔即pwme=0〕的狀態(tài),phb2狀態(tài)為Q1,Q2關(guān)閉,而Q3,Q4開啟。三極管的開關(guān)時間依據(jù)所激活的計數(shù)器而定。phase_machine:process(reset,clk)beginifreset='1'then--復(fù)位高電平有效t500<=0;t375<=0;t125<=0;pwm<='0';pwme<='0';phase<=phB1;elsif(clk'eventandclk='1')thenpwme<=pwm;casephaseis whenphB1=> if(speeding=UPA)then t375<=374; t125<=124; t500<=499; pwm<='1';--加速狀態(tài)pwm恒為1,不用計數(shù)器 elsif(speeding=UPB)then t500<=499; t375<=t375-1; t125<=124; pwm<='1';--弱加速狀態(tài)pwm輸出為1是375個時鐘,0為125個時鐘 elsif(speeding=Dn)then t500<=499; t375<=t375-1; t125<=124; pwm<='0';--減速狀態(tài)pwm輸出0是375個時鐘,1為125個時鐘 elsif(speeding=final)then t500<=t500-1; t375<=374; t125<=124; pwm<='1';--勻速狀態(tài)下,pwm輸出1和0的時間均為500個時鐘 else t500<=0; t375<=0; t125<=0; pwm<='0'; endif; if(t375=0ort500=0)then--計數(shù)器記滿后,相位轉(zhuǎn)換 t500<=499; t375<=374; phase<=phB2; endif; whenphB2=> if(speeding=UPA)then t375<=374; t125<=124; t500<=499; pwm<='1'; elsif(speeding=UPB)then t500<=499; t375<=374; t125<=t125-1; pwm<='0'; elsif(speeding=Dn)then t500<=499; t375<=374; t125<=t125-1; pwm<='1'; elsif(speeding=final)then t500<=t500-1; t375<=374; t125<=124; pwm<='0'; else t500<=0; t375<=0; t125<=0; pwm<='0'; endif; if(t125=0or t500=0)then--計數(shù)器記滿后,相位轉(zhuǎn)換 t500<=499; t125<=124; phase<=phB1; endif; whenothers=> null;endcase;endif;endprocess;endmotorctrl_arch;直流電機(jī)速度控制系統(tǒng)的模塊圖直流電機(jī)速度控制系統(tǒng)的仿真結(jié)果⑴加速情況⑵弱加速情況⑶勻速情況⑷減速情況按鍵脈沖寬度處理電路設(shè)計原理在時鐘上升沿檢測按鍵脈沖,并設(shè)置一計數(shù)器,記錄按鍵脈沖的持續(xù)時間。假設(shè)計數(shù)器在按鍵脈沖變?yōu)?(即按鍵松開)時,計數(shù)值小于10,則按鍵無效,輸出保持低電平;計數(shù)值大于9(計數(shù)從0開場)且小于100,則按鍵有效,輸出一個時鐘脈沖的高電平;計數(shù)值大于99,則超出按鍵應(yīng)持續(xù)的時間,err輸出高電平用以報錯。VHDL源程序及簡要注釋libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entityditheringisport(clk:inSTD_LOGIC;--FPGA內(nèi)部提供時鐘信號 reset:inSTD_LOGIC;--復(fù)位信號put:inSTD_LOGIC;--輸入按鍵脈沖 err:outSTD_LOGIC;--錯誤指示(題目規(guī)定脈沖寬度可能為10-100個時鐘寬度,超過則報錯〕get:outSTD_LOGIC);--輸出脈沖end;architecturearchofditheringissignalt:integer;--計數(shù)器beginprocess(reset,clk)begin ifreset='1'then--復(fù)位信號高電平有效 t<=0; get<='0'; err<='0'; elsif(clk'eventandclk='1')then if(put='1')then--按鍵高電平時,計數(shù) t<=t+1; get<='0'; err<='0'; else--按鍵松開〔釋放〕時,查看計數(shù)值 if(t<10)then--計數(shù)值<10〔即脈沖寬度小于10〕,按鍵無效 get<='0'; err<='0'; elsif(t<100)then--計數(shù)值>10&&<100〔即脈沖寬度為10-100個時鐘寬度之間〕,按鍵有效 get<='1'; err<='0'; else get<='0';--計數(shù)值>=100〔即脈沖寬度多于100個時鐘寬度〕,報錯 err<='1'; endif; t<=0; endif; endif;endprocess;endarch;仿真結(jié)果⑴少于10個時鐘脈沖的情況⑵10個時鐘脈沖的情況⑶多于10個但少于100個時鐘脈沖的情況⑷多于100個時鐘脈沖的情況幀同步檢測電路設(shè)計原理利用一個狀態(tài)機(jī),根據(jù)收到的位寬1位的二進(jìn)制序列來進(jìn)展?fàn)顟B(tài)之間的轉(zhuǎn)換,從而完成幀同步檢測。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換如以下圖所示:TType0Type0Type0Type0Type0Type0000000111111到達(dá)狀態(tài)5(type5)后,輸出一個時鐘周期的高電平。VHDL源程序及簡要注釋libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entitysynchroisport(clk:inSTD_LOGIC;--FPGA內(nèi)部時鐘信號reset:inSTD_LOGIC;--復(fù)位信號put:inSTD_LOGIC;--位寬1位的二進(jìn)制序列輸入get:outSTD_LOGIC);--檢測結(jié)果輸出end;architecturearchofsynchrois--定義狀態(tài)typesynchro_typeis(type0,type1,type2,type3,type4,type5);signalphase:synchro_type;beginprocess(reset,clk)begin ifreset='1'then--復(fù)位信號高電平有效 phase<=type0; get<='0'; elsif(clk'eventandclk='1')then casephaseis--狀態(tài)機(jī) whentype0=> get<='0'; if(put='0')then phase<=type1; else phase<=type0; endif; whentype1=> get<='0'; if(put='1')then phase<=type2; else phase<=type1; endif; whentype2=> get<='0'; if(put='0')then phase<=type3; else phase<=type0; endif; whentype3=> get<='0'; if(put='1')then phase<=type4; else phase<=type1; endif; whentype4=> get<='0'; if(put='1')then phase<=type5; else phase<=type1; endif; whentype5=> get<='1'; if(put='0')then phase<=type1; else phase<=type0; endif; whenothers=> null;endcase;endif;endprocess;endarch;仿真結(jié)果賽跑計時用秒表的設(shè)計設(shè)計原理利用一個狀態(tài)機(jī),根據(jù)key的輸入來進(jìn)展?fàn)顟B(tài)之間的轉(zhuǎn)換,從而完成計時及顯示功能。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換如以下圖所示:圖示代表輸入(key)/輸出(second)T圖示代表輸入(key)/輸出(second)Type0Type0Type0Type0Type01/count1/count1/count11/count21/0其中,count指當(dāng)前計數(shù)值,count1,count2分別是第二、三次按下key時記錄的時間。VHDL源程序及簡要注釋libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entitystopwatchisport(clk:inSTD_LOGIC;--時鐘信號(為了便于仿真,假設(shè)100Hz〕reset:inSTD_LOGIC;--復(fù)位信號key:inSTD_LOGIC;--按鍵信號〔已經(jīng)經(jīng)過防抖動和脈沖寬度處理〕second:outSTD_LOGIC_vector(5downto0));--輸出記錄時間endstopwatch;architecturearchofstopwatchissignalc:std_logic_vector(7downto0);--分頻計數(shù)器signalcount,count1,count2:std_logic_vector(5downto0);--存放器用來暫存中間數(shù)據(jù)signalsec:std_logic;--分頻后周期1s的信號--定義狀態(tài)typestopwatch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024音樂錄制協(xié)議范本關(guān)鍵內(nèi)容更新版
- 2024版市場營銷代理協(xié)議模板版B版
- 2025年度新能源儲能產(chǎn)品銷售與租賃合作協(xié)議4篇
- 2024版臨時采購協(xié)議3篇
- 基于2025年度合作的模特與攝影棚居間合同
- 2025年度打字員與旅游公司勞動合同范本4篇
- 2025版智能倉儲物流中心運(yùn)營合作協(xié)議書4篇
- 2025年度個人股權(quán)變更與登記服務(wù)合同4篇
- 二零二五年度瓷泥原料國際貿(mào)易代理合同4篇
- 2025年度門窗定制項目工程監(jiān)理與質(zhì)量控制合同4篇
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項目建議書
- 濕瘡的中醫(yī)護(hù)理常規(guī)課件
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
- 蘇教版六年級數(shù)學(xué)上冊集體備課記載表
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 22S702 室外排水設(shè)施設(shè)計與施工-鋼筋混凝土化糞池
- 2013日產(chǎn)天籟全電路圖維修手冊45車身控制系統(tǒng)
評論
0/150
提交評論