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

正文內(nèi)容

基于at89c52單片機的光電式傳感器測轉(zhuǎn)速系統(tǒng)(編輯修改稿)

2025-02-14 14:56 本頁面
 

【文章內(nèi)容簡介】 所以只需要4位數(shù)碼管即可。4位共陰極顯示器和AT89C52的接口邏輯如圖214所示。AT89C52的P0口作為段數(shù)據(jù)口,接上拉電阻到顯示器的各個段;P2口作為掃描口,經(jīng)同相驅(qū)動器7407接顯示器公共極。對于圖214中的4位顯示器,在AT89C52RAM存貯器中設(shè)置4個顯示緩沖器單元30H-34H,分別存放4位顯示器的顯示數(shù)據(jù),AT89C52的P2口掃描輸出總是只在一位為低電平,即4位顯示器中僅有一位公共陰極為低電平,其它位為高電平,AT89C52的P0口相應(yīng)位(陰極為低)的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個字符,其它們?yōu)榘?,依次地改變P2口輸出為高的位,P0口輸出對應(yīng)的段數(shù)據(jù),4位顯示器就顯示出由緩沖器中顯示數(shù)據(jù)所確定的字符。顯示電路部分如圖214:圖214顯示電路部分第3章 系統(tǒng)軟件的設(shè)計 硬件電路完成以后,進行系統(tǒng)軟件設(shè)計。首先要分析系統(tǒng)對軟件的要求,然后進行軟件的總體設(shè)計,包括程序的總體設(shè)計和對程序的模塊化設(shè)計。按整體功能分為多個不同的模塊,單獨設(shè)計、編程、調(diào)試,然后將各個模塊裝配聯(lián)調(diào),組成完整的軟件。根據(jù)設(shè)計的要求,單片機的任務(wù)是:內(nèi)部進行計數(shù),在計算出速度后顯示。軟件編程用C語言完成的。以下便是各程序流程圖以及單片機程序。主程序流程圖如圖31所示:圖31 主程序流程圖顯示子程序流程圖如圖32所示:圖32顯示子程序流程圖定時計數(shù)子程序流程圖如圖33所示:開始開定時器開始計數(shù)定時10s讀出計數(shù)器值并清零計數(shù)器定時重新裝初始值并啟動定時器計數(shù)10s圖33 定時計數(shù)子程序流程圖 單片機程序見附件2第4章 程序的編譯與仿真 程序的編譯本部分主要在單片機開發(fā)板上對程序進行改寫后燒入單片機進行的。此部分要反復進行多次才能完全調(diào)試出來。程序的匯編通過使用Keill uVision4 開發(fā)軟件中最常用的軟件完成,它支持大部分不同公司的MCS51架構(gòu)的芯片,它集編輯、編譯、仿真等于一體,同時還支持PLM、C語言的程序設(shè)計,它的界面友好,易學易用,在調(diào)試程序,軟件仿真方面也有很強大功能。首先運行KEIL51軟件,按下面的步驟建立一個項目。雙擊Keil uVision 4的圖標,啟動Keil uVision 4程序,你就會得到如圖41所示的Keil uVision 4的主界面。通過Project菜單中的New Project命令建立項目文件,過程如圖41。 圖41 Keil uVision 4的主界面點擊Project 菜單,選擇 New Project,接著彈出一個標準Windows 文件對話窗口,在“文件名”中輸入C或者ASM程序項目名稱,“保存”后的文件擴展名為uv2 。圖42 Create New Project 對話框選擇所要的單片機,這里我們選用Atcml 公司的AT89C52。 圖43 單片機型號選擇窗口首先要在項目中創(chuàng)建新程序文件或舊程序文件。如果沒有現(xiàn)成的程序,那么就要新建一個程序文件。圖44 新建源程序文件界面用菜單FileSave 或快捷鍵Ctrl+S進行保存。因是新文件所以保存時會彈出文件操作窗口, 保存在項目所在的目錄中,這時會發(fā)現(xiàn)程序單詞有了不同的顏色,說明KEIL的匯編語法檢查生效了。鼠標在屏幕左邊的Source Group1 文件文件夾圖標上右擊彈出菜單,在這里可以做在項目中增加減少文件等操作。選“Add File to Group Source Group1 ”彈出文件窗口,選擇剛剛保存的文件,按Add按鈕,關(guān)閉文件窗口,程序文件已加到項目中了。圖45 Add Files to Group‘Source Group1’對話框當匯編程序文件加入到項目中了,就開始下面的編譯工作。然后右擊Target1的項目文件夾,彈出項目功能菜單,選Options for Target Target1 ,彈出項目選項設(shè)置窗口,同樣先選中項目文件夾圖標,這時在Project 菜單中也有一樣的菜單可選。打開項目選項窗口,轉(zhuǎn)到Output選項頁,選擇編譯輸出的路徑,設(shè)置編譯輸出生成的文件名決定是否要創(chuàng)建HEX文件,選中它就可以輸出HEX文件到指定路徑中。圖46 Options for Target Target1 項目選項窗口將生成HEX文件通過燒寫器燒入仿真軟件進行仿真、演示即可。 電路的仿真仿真部分運用Proteus仿真軟件來實現(xiàn),Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.HEX,如圖421圖421 調(diào)入目標代碼文件本設(shè)計以經(jīng)過信號調(diào)理電路的脈沖信號為輸入信號,借由信號發(fā)生器模擬轉(zhuǎn)盤向單片機輸送信號,在Frequency欄設(shè)定一個頻率如圖422圖422:頻率設(shè)置界面經(jīng)過10s得出轉(zhuǎn)圈數(shù),模擬結(jié)果如圖423圖423:模擬結(jié)果圖中用方波發(fā)生器模擬光電開關(guān)產(chǎn)生脈沖(頻率為10Hz,約1ms產(chǎn)生一個脈沖),由單片機控制T1進行計數(shù),同時定時器T0每10ms產(chǎn)生中斷對數(shù)碼管進行刷新,當中斷100次(即10s)后,對計數(shù)脈沖進行計算處理,得出轉(zhuǎn)速,并用數(shù)碼管顯示??偨Y(jié)本設(shè)計介紹了一種基于單片機的光電測轉(zhuǎn)速系統(tǒng)。給出了硬件和軟件的設(shè)計方案并通過仿真軟件進行仿真。光電傳感器是本系統(tǒng)的核心器件,本論文詳細地介紹了光電傳感器的原理,結(jié)構(gòu),檢測方式以及它的一些特性。只有深入地了解光電傳感器的工作原理,才能更好的設(shè)計測速電路。本系統(tǒng)電路由信號整形處理電路、數(shù)碼顯示電路、晶振電路、復位電路及其他的附屬電路組成。系統(tǒng)在硬件設(shè)計上也充分考慮了可擴展性,經(jīng)過簡單的修改程序,很容易實現(xiàn)功能的擴展。本課題對于電機轉(zhuǎn)速進行精度監(jiān)控,以實現(xiàn)精度控制為工業(yè)的進步提供了一塊墊腳石。通過本次畢業(yè)設(shè)計,使我近一步熟悉了一個系統(tǒng)的設(shè)計過程,通過查閱大量的資料、反復論證可行性、反復進行試驗、最終實現(xiàn)了整個設(shè)計過程。致謝首先感謝我的導師鄭老師。本文從開題、寫作直至最終定稿,鄭老師給予了諸多建設(shè)性建議,并在百忙之中三閱其稿。恩師嚴謹?shù)闹螌W態(tài)度、科學的治學方法、淵博的學識、誨人不倦的精神和平易近人的工作作風令我景仰和敬慕,并將使我終生受益。 感謝母校內(nèi)所有教過我的老師和使我受教的老師們,他(她)們無私的傳道、授業(yè)、解惑,讓我能辨事理、明是非,讓我在人生的長路上向前邁進一大步。還要感謝長期以來給我諸多幫助的同學們,你們的友情將是我一生最值得珍惜的財富和最值得懷念的情感。 附錄一 光電傳感器測轉(zhuǎn)速原理圖:附錄二 光電傳感器測轉(zhuǎn)速主程序: include define uchar unsigned chardefine uint unsigned intdefine ulong unsigned longdefine LED_DAT P1sbit pin_SpeedSenser = P3^5。 //光電傳感器信號接在T1上define TIME_CYLC 500//12M晶振,定時器10ms 中斷一次 我們5秒計算一次轉(zhuǎn)速 // define PLUS_PER 10 //風扇的扇葉數(shù),為方便計算,這里假定風扇有十片扇葉,即傳感器檢測到10個脈沖,認為1圈unsigned char code table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。uchar data Disbuf[4]。// 顯示緩沖區(qū)uint Tcounter = 0。 //時間計數(shù)器bit Flag_Fresh = 0。 // 刷新標志bit Flag_clac = 0。 //計算轉(zhuǎn)速標志//在數(shù)碼管上顯示一個四位數(shù)void DisplayFresh()。//計算轉(zhuǎn)速,并把結(jié)果放入數(shù)碼管緩沖區(qū)void ClacSpeed()。//初始化定時器T0void init_timer0()。//初始化定時器T1void init_timer1()。//延時函數(shù)void Delay(uint ms)。void it_timer0() interrupt 1 /* interrupt address is 0x000b */{TF0 = 0。 //d定時器 T0用于數(shù)碼管的動態(tài)刷新 //TH0 = 0xC0。 /* init values */TL0 = 0x00。Flag_Fresh = 1。Tcounter++。if(TcounterTIME_CYLC){ Flag_clac = 1。//周期到,該重新計算轉(zhuǎn)速了}}void main(void){Disbuf[0] = 0。 //開機時,初始化為0000Disbuf[1] = 0。Disbuf[2] = 0。Disbuf[3] = 0。 init_timer0()。init_timer1()。while(1){ DisplayFresh()。 // 定時刷新數(shù)碼管顯示 if(Flag_clac) { Flag_clac = 0。 ClacSpeed()。 //計算轉(zhuǎn)速,并把結(jié)果放入數(shù)碼管緩沖區(qū) Tcounter = 0。//周期定時 清零 TH1=TL1 = 0x00。//脈沖計數(shù)清零 }}}//在數(shù)碼管上顯示一個四位數(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[
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1