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

正文內(nèi)容

基于單片機(jī)的自行車速度里程表的畢業(yè)設(shè)計-資料下載頁

2024-11-29 11:02本頁面

【導(dǎo)讀】而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車功用更強(qiáng)大,給。人們帶來更多方便。設(shè)計一個自行車速度里程表使其有測量準(zhǔn)確、性能穩(wěn)定、攜帶方便等。優(yōu)點,還用于測速、里程計算等各個領(lǐng)域有著非?,F(xiàn)實的意義。數(shù)轉(zhuǎn)換為電脈沖,處理后送人單片機(jī)。里程及速度的測量是經(jīng)過單片機(jī)的定時/計數(shù)器測出??偟拿}沖,再經(jīng)過單片機(jī)計算得出。其結(jié)果通過LED顯示器顯示出來。程總數(shù)和即時速度。設(shè)計應(yīng)給出方案設(shè)計與論證、硬件電路原理圖、PCB板圖、調(diào)試軟件。辯;2.5-6周對總體設(shè)計方案確定;3.7-12周設(shè)計硬件電路并繪制系統(tǒng)硬件原理圖。說明:1本表一式二份,一份由學(xué)生裝訂入冊,一份教師自留。隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,本的需求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。硬件電路簡單,子程序具有通用性,完全符合設(shè)計要求。

  

【正文】 概述 在硬件設(shè)計完畢之后,接下來就是設(shè)計中最核心和最為主要的軟件部分設(shè)計。所謂軟件設(shè)計就是把軟件需求變換成軟件的具體設(shè)計方案(即模塊結(jié)構(gòu))的過程。模塊化 結(jié)構(gòu)設(shè)計即是根據(jù)要求和硬件設(shè)計的結(jié)構(gòu),將整個系統(tǒng)的功能分成許多小的功能模塊,再根據(jù)這些小的功能模塊進(jìn)行程序編寫的過程。這樣的設(shè)計方法,使得系統(tǒng)的整個功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設(shè)置找出問題的根源,從而更快地解決問題。所以說,在整個設(shè)計過程中,軟件設(shè)計必須與硬件設(shè)計緊密地結(jié)合在一起。 基于霍爾傳感器自行車的速度里程表的軟件設(shè)計包括上電初始化程序、中斷子程序、速度調(diào)用子程序、里程調(diào)用子程序、 LED 顯示子程序、延時子程序等幾大部分。由于要實現(xiàn)很多功能,所以采用模塊化設(shè)計,下 面就其主要部分分別加以分析。 自行車的速度里程表總體程序設(shè)計 在主程序模塊中,需要完成對各接口芯片的初始化、自行車?yán)锍毯退俣鹊某跏蓟?、中斷向量的設(shè)計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動 /清除標(biāo)志寄存器、里程寄存器、速度寄存器,并對它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動、清除、計程和計速等不同的操作。 在單片機(jī)的各個拐角中, 和 口分別用于顯示里程狀態(tài)和速度狀態(tài)。、 、 和 口分別用于設(shè)置輪圈的大小,低電平有效。 在 本次設(shè)計中其分別代表了 1m、 、 、和 。 是用于里程和速度切換的,低電平為顯示速度,高電平為顯示里程。中斷 0 用于對輪子圈數(shù)的計數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計算和判斷出行駛里程數(shù)。中斷 1 用于控制定時器 T1 的啟 /停,當(dāng)輸入為 0 時關(guān)閉定時器。此控制信號是將輪子圈數(shù)的計數(shù)經(jīng)二分頻后形成。這樣,每次定時器 T1 的開啟時間剛好為轉(zhuǎn)一圈的時間,根據(jù)輪子的周長就可以計算出自行車的速度。其程序流程如圖 所示 。 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 21 圖 主程序流程圖 開始 初始化 =1? N =1? =1? =1? 出錯提示 將車圈周長調(diào)入 21H 開中斷,啟動定時器 =1? 調(diào)用里程處理子程序 調(diào)用速度處理子程序 N N N Y Y Y Y N Y 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 22 數(shù)據(jù)處理子程序的設(shè)計 里程計算子程序 外中斷 0 服務(wù)程序用于對單片機(jī) 口輸入的圈脈沖進(jìn)行計數(shù),為十六進(jìn)制計數(shù)器。 60H 為低位, 62H 為高位。每次計數(shù)一次后,對里程數(shù)據(jù)進(jìn)行一次存儲操作。當(dāng)車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過計數(shù)器計出脈沖數(shù),再用乘法子程序算出里程數(shù)。里程處理子程序流程圖如圖 所示 。 圖 里程處理子程序流程圖 里程計算程序相關(guān)代碼 void timer0_int() interrupt 1 { TH0 = 0x3c。 TL0 = 0xaf。 //設(shè)定 50ms 定時初始值 timer0_num++。 if(timer0_num==20) { timer0_num = 0。 //定時 1s 后重新定時 distance_10m_num = distance_num / N。 //求行駛了多少個 10 米的距離 // 其中, N=10/( *R/N*dst_one_sec) distance_num = distance_num % N。 distance = distance + distance_10m_num。 //每秒刷新一次行駛距離 if(time_key) {v_distance = v_distance + distance_10m_num。} //如果啟動計時器每秒刷新一次累積距離 點亮里程指示燈 開始 將車圈數(shù)轉(zhuǎn)換成里程 顯示里程值 返回 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 23 if(distance=65000) {distance = 0。} if(v_distance=65000) {v_distance = 0。} if(dst_one_sec2) { n++。 if(n10) { n = 1。 speed = 0。 //10s 內(nèi)檢測到卡片數(shù)小于 2,速度為 0 sleep = on。 //開啟睡眠模式 } } else { sleep = off。 //關(guān)閉睡眠模式 速度計算子程序 外中斷 1 服務(wù)程序用于處理輪子轉(zhuǎn)動一圈后的計時數(shù)據(jù)。當(dāng)標(biāo)志位 (00H)為1 時,計數(shù)溢出, 放 入最大時間值 (0FFH);當(dāng)標(biāo)志位為 0 時,將計數(shù)單元 (TLTH 6CH、 6DH)的值放入 68H~ 6BH 單元。定時器計出每 轉(zhuǎn)一圈所用的時間,用自行車車輪的周長除以時間就得出自行車的速度, 速度子程序 如圖 所示 。 圖 速度處理子程序流程圖 開始 開速度指示燈 計算速度 報警 顯示速度 N Y 是否超速? 返回 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 24 速度計算子程序 相關(guān)代碼 void timer0_int() interrupt 1 { TH0 = 0x3c。 TL0 = 0xaf。 //設(shè)定 50ms 定時初始值 timer0_num++。 if(timer0_num==20) speed = speed_n * dst_one_sec。 // 計算速度, speed=**R/N*dst_one_sec/speed_n*100, speed n 為刷新一次速度的時間 . //其中, R 為車輪的半徑 ,N為車輪內(nèi)安裝的卡片數(shù), // m/s轉(zhuǎn)化為 km/h的因子,100 表示顯示到小數(shù)點后兩位 //最高時速為 160km/h,超過此速度時 dst_one_sec 溢出 n = 1。 //每刷新一次速度重新確定刷新周期 dst_one_sec = 0。 //重新檢測 1s 內(nèi)的行車距離 } 顯示子程序的設(shè)計 概述 采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的 8 個筆劃段 ah 同名端連在一起,而每一個顯示器的公共極 COM 各自獨立地受 I/O 線控制。 CPU 向字段輸出口送出字型碼時,所有 顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于 COM 端??梢圆捎梅謺r的方法,輪流控制各個顯示器的 COM 端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮?xí)r間是極為短暫的(約 1ms),由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。 本設(shè)計 、 、 、 信號一起組成位選通的位選信號, ~ 信號一起組成段碼選通的段選信號,通過軟件編程,先把所要顯示的數(shù) 據(jù)放入存儲單元,然后把數(shù)據(jù)送入段選通對應(yīng)的地址,再選通某一個 LED,逐步完成四個 LED 的顯示。 顯示子程序流程圖如圖 所示。 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 25 圖 顯示子程序流程圖 顯示子程序相關(guān)代碼 while(1) { P0 = 0xff。 P2 = 0xff。 if((dis_key==on)amp。amp。(!sleep)) { if (dis_mod==speed_mod) {dis_value = speed。} //里程模式,顯示路程 if (dis_mod==distance_mod) {dis_value = distance。} //速度模式,顯示速度 if (dis_mod==v_speed_mod) 開始 顯示單元首址 取顯示數(shù)據(jù) 送段碼到 P0口 取段碼表首址 調(diào)用延時 送位選到 P2口 4 位顯示結(jié)束 返回 Y N 修改顯示單元地址 求下一位位選碼 西安工業(yè)大學(xué)北方信息工程學(xué)院畢業(yè)設(shè)計(論文) 26 {dis_value = v_speed。} //平均速度模式,顯示平均速度 if (dis_mod==time_mod) {dis_value = time。} //計時器模式,顯示時間 if (dis_mod==v_distance_mod) {dis_value = v_distance。} //特定距離模式,顯示兩個特定地之間的距離 bit4_code = dis_value % 10。 //顯示最低位 dis_value /= 10。 bit3_code = dis_value % 10。 //顯示次低位 dis_value /= 10。 bit2_code = dis_value % 10。 //顯示次高位 dis_value /= 10。 if(dis_value!=0) //最高位滅零 {bit1_code = dis_value % 10。} //顯示最高位 else {bit1_code = 10。} dis_buf[0] = dis_code[bit4_code]。 dis_buf[1] = dis_code[bit2_code]4。 //加小數(shù)點 dis_buf[2] = dis_code[bit3_code]。 dis_buf[3] = dis_code[bit1_code]。 P0 = dis_buf[dis_index]。 P2 = dis_digit。 dis_digit *= 2。 //顯示下一位 if(dis_digit==0xf0) {dis_digit=0xef。} dis_index++。 dis_index amp。= 0x03。 // 4 個數(shù)碼管全部掃描完一遍之后,再回到第一個開始下一次掃描 delayms(1)。 } } } 5 系統(tǒng)調(diào)試與分析 27 5 系統(tǒng)調(diào)試與分析 系統(tǒng)仿真調(diào)試 PROTEUS 系統(tǒng)仿真平臺與開發(fā)平臺是由英國 Labcenter 公司開發(fā)的,是目前世界上最完整的系統(tǒng)設(shè)計與仿真平臺之一。 PROTEUS 可以實現(xiàn)數(shù)字電路、模擬電路及微控制系統(tǒng)與外設(shè)的混合電路系統(tǒng)的電路仿真、系統(tǒng)協(xié)同仿真和 電路圖繪制、 PCB 設(shè)計等全部功能。 PROTEUS 軟件能夠?qū)Ω鞣N處理器進(jìn)行實時仿真、調(diào)試與測試的 EDA 工具,真正實現(xiàn)了在沒有目標(biāo)原形時就可以對系統(tǒng)進(jìn)行調(diào)試與驗證。 在構(gòu)思好電路原理圖和編好程序之后就要對其進(jìn)行系統(tǒng)仿真,原理圖的具體設(shè)計流程如圖 所示。 當(dāng)完成原理圖布線后,利用 PROTEUS ISIS 編輯環(huán)境所提供的電器規(guī)則檢查命令對設(shè)計進(jìn)行檢查,并根據(jù)系統(tǒng)提供的錯誤檢查報告修改原理圖。直到通過電器規(guī)則檢查為止。 單片機(jī)系統(tǒng)的仿真是 PROTEUS VSM 的一大特色,同時,本仿真系統(tǒng)將源代碼的編輯和編譯整合到同一設(shè)計環(huán)境中,這樣使得用戶可以在設(shè)計中直接 編輯代碼,并且很容易地查看到用戶對源程序修改后對仿真結(jié)果的影響 及是否出現(xiàn)錯誤。 源代碼通過編譯無誤后,就可以進(jìn)行仿真,在仿真過程中不斷完善電路和程序的功能最后達(dá)到本次設(shè)計的目的。 調(diào)試故障及原因分 析 在軟件仿真過程中遇到了一些問題, 遇到的 具體故障和解決 所使用的 方法如下: a. 數(shù)碼管不顯示 本次設(shè)計的電路數(shù)碼管采用共陰極接法,在仿真時錯用共陽極數(shù)碼管,導(dǎo)致數(shù)碼管不顯示。 b. P0 口顯示高阻態(tài) 正常情況下 P0 口輸出應(yīng)為高(紅色)低(藍(lán)色)互換,但在實際情況下 P0口出現(xiàn)了高阻態(tài)(灰色),經(jīng)翻閱資料查得 P0 口做 I/O 口是應(yīng)接上拉電阻。在加上上拉電阻后, P0 口輸出正常。 系統(tǒng)硬件原理圖的設(shè)計過程如圖 所示 。 西安工業(yè)大學(xué)北方信息工程學(xué)院畢 業(yè)設(shè)計(論文) 28 圖 原理圖設(shè)計流程圖 新建設(shè)計文檔 設(shè)置編輯環(huán)境 原理圖布線 放置元器件 電器檢查 建立網(wǎng)絡(luò)表 是否合格? 結(jié)束 Y 存盤、報表輸出
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1