freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于at89s52單片機(jī)的光電開(kāi)關(guān)測(cè)速系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-07-04 00:20 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 10000脈沖,則電機(jī)的轉(zhuǎn)速就為1000r/min。 (a)傳感器 (b)轉(zhuǎn)盤(pán) 傳感器及轉(zhuǎn)盤(pán) 轉(zhuǎn)速測(cè)量原理在此采用頻率測(cè)量法,其測(cè)量原理為,在固定的測(cè)量時(shí)間內(nèi),計(jì)取轉(zhuǎn)速傳感器發(fā)生的脈沖個(gè)數(shù)(即頻率),從而算出實(shí)際轉(zhuǎn)速。設(shè)固定的測(cè)量時(shí)間T (min),計(jì)數(shù)器計(jì)取的脈沖個(gè)數(shù)m1,假定脈沖發(fā)生器每轉(zhuǎn)輸出p個(gè)脈沖,對(duì)應(yīng)被測(cè)轉(zhuǎn)速為N(r/min),就可算出實(shí)際轉(zhuǎn)速值N = 60m1/ pT。本檢測(cè)裝置中發(fā)動(dòng)機(jī)的轉(zhuǎn)速傳感器信號(hào)盤(pán)安裝在曲軸上,工作時(shí)傳感器輸出信號(hào)經(jīng)整形后可得到相應(yīng)的方波脈沖信號(hào)。利用AT89S52單片機(jī)的輸入捕捉功能,可得到相鄰的兩個(gè)負(fù)跳變的時(shí)間差,即可算出當(dāng)前轉(zhuǎn)速N。公式為[14]: ()式中,i—轉(zhuǎn)速信號(hào)盤(pán)每轉(zhuǎn)輸出信號(hào)數(shù);j—信號(hào)盤(pán)轉(zhuǎn)1圈發(fā)動(dòng)機(jī)轉(zhuǎn)的圈數(shù)(信號(hào)盤(pán)安裝在曲軸上時(shí)j=1,裝在凸輪軸上則j=2); T—單片機(jī)輸入捕捉所計(jì)算出的相鄰兩個(gè)負(fù)跳變的時(shí)間差值。 檢測(cè)裝置安裝 此檢測(cè)裝置按照發(fā)動(dòng)機(jī)上傳感器的實(shí)際安裝位置進(jìn)行安裝。,將信號(hào)盤(pán)固定在電動(dòng)機(jī)轉(zhuǎn)軸上,光電轉(zhuǎn)速傳感器正對(duì)著信號(hào)盤(pán)。光電轉(zhuǎn)速傳感器接有4根導(dǎo)線(xiàn),用于連接發(fā)光二極管和光敏三極管,其中發(fā)光二極管的紅線(xiàn)連接其正極,綠線(xiàn)連接其負(fù)極,光敏三級(jí)管的紅線(xiàn)連接其集電極,綠線(xiàn)連接其發(fā)射極。測(cè)量頭由光電轉(zhuǎn)速傳感器組成,而且測(cè)量頭兩端的距離與信號(hào)盤(pán)的距離相等。測(cè)量用器件封裝后,固定裝在貼近信號(hào)盤(pán)的位置,當(dāng)信號(hào)盤(pán)轉(zhuǎn)動(dòng)時(shí),光電元件即可輸出正負(fù)交替的周期性脈沖信號(hào)。信號(hào)盤(pán)旋轉(zhuǎn)一周產(chǎn)生的脈沖數(shù),等于其上的齒數(shù)。因此,脈沖信號(hào)的頻率大小就反映了信號(hào)盤(pán)轉(zhuǎn)速的高低。該裝置的優(yōu)點(diǎn)是輸出信號(hào)的幅值與轉(zhuǎn)速無(wú)關(guān),而且可測(cè)轉(zhuǎn)速范圍大,一般為1r/s~104 r/s以上,精確度高。 轉(zhuǎn)速檢測(cè)裝置 信號(hào)處理電路 被測(cè)物理量經(jīng)過(guò)傳感器變換后,變?yōu)殡娮?、電流、電壓、電感等某種電參數(shù)的變化值。為了進(jìn)行信號(hào)的分析、處理、顯示和記錄,須對(duì)信號(hào)作放大、運(yùn)算、分析等處理,這就引入了中間變化電路。 所示的中間變換電路。其中,RR4 起限流作用,R2 起分流作用,R3 為輸出電阻。當(dāng)轉(zhuǎn)盤(pán)上的梯形孔旋轉(zhuǎn)至與光電開(kāi)關(guān)的透光位置重合時(shí),輸出低電平;當(dāng)通光孔被遮住時(shí),輸出高電平。 信號(hào)處理電路 單片機(jī)處理電路設(shè)計(jì)如下圖所示,X1為12MHz的晶振,9口為復(fù)位接口,通過(guò)開(kāi)關(guān)控制。,用AT89S52的定時(shí)計(jì)數(shù)器T1對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),用定時(shí)計(jì)數(shù)器T0進(jìn)行定時(shí),每10ms產(chǎn)生一個(gè)中斷對(duì)數(shù)碼管進(jìn)行刷新,產(chǎn)生500個(gè)中斷后(即5s),進(jìn)行一次轉(zhuǎn)速處理,再通過(guò)單片機(jī)對(duì)T1的脈沖數(shù)進(jìn)行運(yùn)算轉(zhuǎn)換后,用四連數(shù)碼管顯示電機(jī)的轉(zhuǎn)速。: AT89S52單片機(jī)處理電路 時(shí)鐘電路 單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘控制信號(hào)為基準(zhǔn),有條不紊地一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。本設(shè)計(jì)中此采用內(nèi)部時(shí)鐘方式,以石英晶體振蕩器和兩個(gè)片電容組成外部振蕩源。片內(nèi)的高增益反相放大器通過(guò)XTALXTAL2外接,作為反饋元件的片外晶體振蕩器與電容組成的并聯(lián)諧振回路構(gòu)成一個(gè)自激振蕩器,向內(nèi)部時(shí)鐘電路提供振蕩時(shí)鐘。振蕩器的頻率取決于晶振的振蕩頻率,—12MHz。工程應(yīng)用時(shí)通常采用6MHz或12MHz。圖中X1為12MHz,電容CC4為33pF,它們一起構(gòu)成此單片機(jī)的自激振蕩器。 時(shí)鐘電路連接圖 復(fù)位電路單片機(jī)的RST引腳為復(fù)位(Reset)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的低電平,就可以實(shí)現(xiàn)系統(tǒng)復(fù)位,使單片機(jī)回到初始狀態(tài)。,本設(shè)計(jì)采用手動(dòng)復(fù)位,用一個(gè)電容與一個(gè)10K電阻串聯(lián)組成,電阻接VCC,電容接地,RESET腳接在它們中間,RC選擇10uF,按鍵與200R電阻串聯(lián),在電容兩端并聯(lián),就成了按鍵復(fù)位電路,未上電時(shí),RST端為高電平,只要按下這個(gè)按鍵,RST端轉(zhuǎn)換為低電平,經(jīng)過(guò)兩個(gè)機(jī)器周期后,單片機(jī)就能復(fù)位。 AT89S52單片機(jī)處理電路 定時(shí)與計(jì)數(shù)設(shè)計(jì) 根據(jù)設(shè)計(jì)需要選擇方式1比較合適,當(dāng)MM0為01時(shí),定時(shí)器/計(jì)數(shù)器工作于方式1,這時(shí)定時(shí)器/: 定時(shí)/計(jì)數(shù)器方式1邏輯結(jié)構(gòu)框圖 此時(shí),定時(shí)/計(jì)數(shù)器為16位的計(jì)數(shù)器,由TLX(X=0,1)的低5位和THX的高8位組成。TLX低5位溢出則向THX進(jìn)位,THX計(jì)數(shù)溢出則置位TCON中的溢出標(biāo)志位TFX。系統(tǒng)選擇定時(shí)/計(jì)數(shù)方式1,以T1作為計(jì)數(shù)器對(duì)光電開(kāi)關(guān)產(chǎn)生的脈沖進(jìn)行計(jì)數(shù),用T0作為定時(shí)器,每10ms產(chǎn)生一定時(shí)中斷對(duì)數(shù)碼管進(jìn)行刷新,產(chǎn)生500次中斷后,對(duì)T1接受到的脈沖數(shù)進(jìn)行計(jì)算處理,得出轉(zhuǎn)速。(1)用于定時(shí)工作方式,其定時(shí)時(shí)間為: T=(216t1的初值)振蕩周期12此設(shè)計(jì)采用的是12MHz的晶振,定時(shí)器T0定時(shí)為10ms,將參數(shù)帶入公式 :有,t1=6553610000=55536;換成十六進(jìn)制,則t1=0xd8f0 ; 所以對(duì)于定時(shí)器T0有,TMOD = 0x01;TH0 = 0xd8;TL0 = 0xf0;(2)用于計(jì)數(shù)工作方式,計(jì)數(shù)長(zhǎng)度為: 216=65536(個(gè)外部脈沖)由此可知規(guī)定時(shí)間(5s)內(nèi)外部脈沖個(gè)數(shù)不超過(guò)65536即可。 顯示部分LED靜態(tài)顯示的亮度高,占用CPU的時(shí)間短,但它的成本高。為了簡(jiǎn)化硬件電路,降低成本,在單片機(jī)應(yīng)用系統(tǒng)中常采用動(dòng)態(tài)掃描的方法,解決多位LED顯示的問(wèn)題。動(dòng)態(tài)掃描顯示的硬件接口簡(jiǎn)單,只需一個(gè)公共的七段碼輸出口(字形口),即所有顯示位的段選線(xiàn)并聯(lián)在一起,由一個(gè)8位I/O口控制。一個(gè)選擇顯示為的數(shù)位選擇口(字位口),由其它的I/O口控制。顯示時(shí),從左到右輪流點(diǎn)亮每位顯示器,由于視覺(jué)的暫留,只要保證掃描周期不超過(guò)一定的限度(一般在20ms以下),即每一時(shí)刻位選只選通一個(gè)顯示位,同時(shí)段選控制口輸出顯示字符對(duì)應(yīng)的段選碼,使該位顯示的字符,一定時(shí)間后,再選其他顯示位,如此循環(huán),使每個(gè)顯示器件顯示該位相應(yīng)的字符。則可達(dá)到“同時(shí)”顯示各位不同的數(shù)字或字符的目的。如下圖所示為四連數(shù)碼管,其中A、B、C、D、E、F、G、DP分別對(duì)應(yīng)數(shù)碼管的8段,連接單片機(jī)的I/O口(P1口)。4從左至右分別是4位數(shù)碼管的位選,~。 數(shù)碼管連接電路第4章 軟件設(shè)計(jì) 語(yǔ)言的選用 本設(shè)計(jì)中采用的處理器是AT89S52單片機(jī),由此可采用面向MCS51的程序設(shè)計(jì)語(yǔ)言,包括ASM51匯編語(yǔ)言和C51高級(jí)語(yǔ)言,這兩種語(yǔ)言各有特點(diǎn)。匯編語(yǔ)言更接近機(jī)器語(yǔ)言,常用來(lái)編制與系統(tǒng)硬件相關(guān)的程序,如訪(fǎng)問(wèn)I/O端口、中斷處理程序、實(shí)時(shí)控制程序、實(shí)時(shí)通信程序等;而數(shù)學(xué)運(yùn)算程序則適合用C51高級(jí)語(yǔ)言編寫(xiě),因?yàn)橛酶呒?jí)語(yǔ)言編寫(xiě)運(yùn)算程序可提高編程效率和應(yīng)用程序的可靠性[15]。 C語(yǔ)言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,在國(guó)際上十分流行,它即可用來(lái)編寫(xiě)計(jì)算機(jī)系統(tǒng)程序,也可以用來(lái)編寫(xiě)一般的應(yīng)用程序。以前計(jì)算機(jī)的系統(tǒng)軟件主要是用匯編語(yǔ)言編寫(xiě)的,對(duì)于單片機(jī)應(yīng)用系統(tǒng)來(lái)說(shuō)更是如此。由于匯編語(yǔ)言程序的可讀性和可移植性都較差,采用匯編語(yǔ)言編寫(xiě)單片機(jī)應(yīng)用程序的周期長(zhǎng),而且調(diào)試和排錯(cuò)也比較困難。C語(yǔ)言具有很好的可移植性和硬件控制能力,表達(dá)和運(yùn)算能力也較強(qiáng)。它具有以下特點(diǎn):1. 語(yǔ)言簡(jiǎn)潔,使用方便靈活。2. 可移植性好。3. 表達(dá)能力強(qiáng)。4. 表達(dá)方式靈活。5. 可進(jìn)行架構(gòu)化程序設(shè)計(jì)。6. 可以直接操作計(jì)算機(jī)硬件。7. 生成的目標(biāo)代碼質(zhì)量高。為了提高編制計(jì)算機(jī)系統(tǒng)和應(yīng)用程序的效率,改善程序的可讀性和可移植性,在此采用高級(jí)語(yǔ)言編程[16]。 程序設(shè)計(jì)流程圖本系統(tǒng)用計(jì)數(shù)程序采集信號(hào)脈沖,用定時(shí)器產(chǎn)生中斷,對(duì)數(shù)碼管刷新和緩沖區(qū)數(shù)據(jù)進(jìn)行更新,輔以數(shù)碼管進(jìn)行顯示。;。開(kāi)始初始化計(jì)數(shù)器T1計(jì)數(shù)脈沖按公式:轉(zhuǎn)速=60*脈沖數(shù)/(齒輪數(shù)*T)計(jì)算數(shù)據(jù)Flag_clac=1?數(shù)據(jù)緩沖區(qū) N Y 更新數(shù)據(jù) 脈沖計(jì)數(shù)程序流程圖程序說(shuō)明:將定時(shí)器設(shè)置為方式1,對(duì)外部脈沖進(jìn)行計(jì)數(shù),并判斷Flag_clac的值。當(dāng)Flag_calc=1時(shí),將脈沖的數(shù)值由十六進(jìn)制轉(zhuǎn)換成十進(jìn)制,按轉(zhuǎn)速轉(zhuǎn)換公式轉(zhuǎn)換后,載入數(shù)據(jù)緩沖區(qū)。初始化定時(shí)10ms?T=500?Flag_clac=1數(shù)據(jù)緩沖區(qū)顯示時(shí)間計(jì)數(shù)清零T=0產(chǎn)生定時(shí)中斷開(kāi)始時(shí)間計(jì)數(shù)T++ 更新數(shù)據(jù) N Y N Y 定時(shí)顯示程序流程圖程序說(shuō)明:定時(shí)器設(shè)置為方式1,定時(shí)10ms。當(dāng)定時(shí)達(dá)到10ms時(shí),產(chǎn)生中斷,對(duì)數(shù)碼管進(jìn)行刷新,顯示轉(zhuǎn)速,并使時(shí)間計(jì)數(shù)標(biāo)志T加1。當(dāng)時(shí)間計(jì)數(shù)標(biāo)志T=500時(shí),使Flag_calc置1,取出計(jì)數(shù)器在此時(shí)間內(nèi)計(jì)算的脈沖數(shù),通過(guò)轉(zhuǎn)速計(jì)算程序計(jì)算得出轉(zhuǎn)速值后,存入數(shù)據(jù)緩沖區(qū),供數(shù)碼管顯示使用。 原程序代碼 采用MCS—52C語(yǔ)言編寫(xiě)源程序:include define uchar unsigned chardefine uint unsigned intdefine ulong unsigned longdefine LED_DAT P1sbit pin_SpeedSenser = P3^5。 //光電傳感器信號(hào)接在T1上define TIME_CYLC 500//12M晶振,定時(shí)器10ms 中斷一次 我們5秒計(jì)算一次轉(zhuǎn)速 // define PLUS_PER 10 //碼盤(pán)的齒數(shù) ,這里假定碼盤(pán)上有10個(gè)齒,即傳感器檢測(cè)到10個(gè)脈沖,認(rèn)為1圈unsigned char code table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。uchar data Disbuf[4]。// 顯示緩沖區(qū)uint Tcounter = 0。 //時(shí)間計(jì)數(shù)器bit Flag_Fresh = 0。 // 刷新標(biāo)志bit Flag_clac = 0。 //計(jì)算轉(zhuǎn)速標(biāo)志//在數(shù)碼管上顯示一個(gè)四位數(shù)void DisplayFresh()。//計(jì)算轉(zhuǎn)速,并把結(jié)果放入數(shù)碼管緩沖區(qū)void ClacSpeed()。//初始化定時(shí)器T0void init_timer0()。//初始化定時(shí)器T1void init_timer1()。//延時(shí)函數(shù)void Delay(uint ms)。void it_timer0() interrupt 1 /* interrupt address is 0x000b */{TF0 = 0。 //d定時(shí)器 T0用于數(shù)碼管的動(dòng)態(tài)刷新 //TH0 = 0xC0。 /* init values */TL0 = 0x00。Flag_Fresh = 1。Tcounter++。if(TcounterTIME_CYLC){ Flag_clac = 1。//周期到,該重新計(jì)算轉(zhuǎn)速了}}void main(void){Disbuf[0] = 0。 //開(kāi)機(jī)時(shí),初始化為0000Disbuf[1] = 0。Disbuf[2] = 0。Disbuf[3] = 0。 init_timer0()。init_timer1()。while(1){ DisplayFresh()。 // 定時(shí)刷新數(shù)碼管顯示 if(Flag_clac) { Flag_clac = 0。 ClacSpeed()。 //計(jì)算轉(zhuǎn)速,并把結(jié)果放入數(shù)碼管緩沖區(qū) Tcounter = 0。//周期定時(shí) 清零 TH1=TL1 = 0x00。//脈沖計(jì)數(shù)清零 }}}//在數(shù)碼管上顯示一個(gè)四位數(shù)void DisplayFresh(){P2=P2amp。0x7f。LED_DAT = table[Disbuf[0]]。Delay(1)。P2=P2|0xf0。P2=P2amp。0xbf。 LED_DAT = table[Disbuf[1]]。Delay(1)。 P2=P2|0xf0。 P2=P2amp。0xdf。 LED_DAT = table[Disbuf[2]]。Delay(1)。 P2=P2|0xf0。 P2=P2amp。0xef。LED_DAT = table[Disbuf[3]]。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1