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

正文內(nèi)容

基于單片機的自行車速度里程表的設計(編輯修改稿)

2025-07-24 20:04 本頁面
 

【文章內(nèi)容簡介】 。AT89C52單片機定時/計數(shù)器的工作由兩個特殊功能寄存器控制。TMOD用于設置其工作方式;TCON用于控制其啟動和中斷請求。a. 工作方式寄存器TMOD工作方式寄存器TMOD用于設置定時/計數(shù)器的工作方式。GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATE=1時,要用軟件TR0或TR1為1,同時外部中斷引腳或也為高電平時,才能啟動定時/計數(shù)器工作。C/:定時/計數(shù)模式選擇位。C/=0為定時模式;C/=1為計數(shù)模式。M1M2:工作方式設置位。定時/計數(shù)器有4種工作方式,由M1M2進行設置。本次設計TMOD為90H,即選通定時/計數(shù)器定時功能、工作方式1。工作方式16位定時/計數(shù)器。b. 控制寄存器TCONTF1():定時/計數(shù)器T1溢出中斷請求標志位。定時/計數(shù)器T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應中斷后TF1由硬件自動清零。T1工作時,CPU可隨時查詢TF的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清零,同硬件置1或清零的效果一樣。TR1():定時/計數(shù)器T1運行控制位。TR1置1時時,定時/ 計數(shù)器T1開始工作;TR1置0時,定時/計數(shù)器T1停止工作。TR1由軟件置1或清0。TF0():定時/計數(shù)器T0溢出中斷請求標志位。TR0():定時/計數(shù)器T0運行控制位。 外部存儲模塊AT24C02是一個2K位串行CMOSEPROM。內(nèi)部含有256個8 位字節(jié),ATMEL公司的先進CMOS技術(shù)實質(zhì)上減少了器件的功耗。AT24C02有一個16 字節(jié)頁寫緩沖器,該器件通過I2C總線接口進行操作有一個專門的寫保護功能。AT24C02支持I2C總線數(shù)據(jù)傳送協(xié)議。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端 A0、A1和A2可以實現(xiàn)將最多8個24C02器件連接到總線上。 24C02引腳圖SCL串行時鐘:AT24C02串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘。SDA串行數(shù)據(jù)/地址:CAT24WC02雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進行線或。WP寫保護:如果WP管腳連接到Vcc所有的內(nèi)容都被寫保護,只能讀。當WP管腳連接到Vss或懸空,允許器件進行正常的讀/寫操作。本次設計采用的存儲器24C02是為了防止掉電時里程數(shù)據(jù)的丟失,由于24C02的數(shù)據(jù)線和地址線是復用的,采用串口的方式傳輸數(shù)據(jù),所以只用兩根線SCL和SDA與單片機傳輸數(shù)據(jù)。存儲器與控制車輪大小的端口相連接,可以更快捷方便的接受數(shù)據(jù),發(fā)出時鐘脈沖,便于單片機進行存儲控制。 存儲器原理接線圖時鐘是單片機的心臟,單片機各功能部件的運行都是以時鐘頻率為基準,有條不紊地一拍一拍地工作。因此,時鐘頻率直接影響單片機的速度,時鐘電路的質(zhì)量也直接影響單片機系統(tǒng)的穩(wěn)定性。AT89C52片內(nèi)由一個反相放大器構(gòu)成振蕩器,可以由它產(chǎn)生時鐘。常用的時鐘電路有兩種方式,一種是內(nèi)部時鐘方式,另一種為外部時鐘方式。本設計采用前者。單片機內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個引腳跨接石英晶體振蕩器和電容,就構(gòu)成一個穩(wěn)定的自激振蕩器。 單片機片內(nèi)振蕩電路電路中的電容C1和C2常選擇為30P左右。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器的高低、振蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。而外接晶體的振蕩頻率的大小,主要取決于單片機的工作頻率范圍,每一種單片機都有自己的最大工作頻率,外接的晶體振蕩頻率不大于單片機的最大工作頻率即可。此外,如果單片機有串行通信,則應該選擇振蕩頻率除以串行通信頻率可以除盡的晶體。本次設計晶振采用12MHz。 S () 按鍵模塊AT89C52單片機的復位輸入引腳RST為AT89C52提供了初始化的手段。有了它可以使程序從指定處開始執(zhí)行,即從程序存儲器中的0000H地址單元開始執(zhí)行程序。在89C52的時鐘電路工作后,只要在RST引腳上出現(xiàn)兩個機器周期以上的高電平時,單片機內(nèi)部則初始復位。只要RST保持高電平,則89C52循環(huán)復位。只有當RST由高電平變成低電平以后,89C52才從0000H地址開始執(zhí)行程序。本系統(tǒng)的復位電路是采用按鍵復位的電路,是常用復位電路之一。單片機復位通過按動按鈕產(chǎn)生高電平復位稱手動復位。上電時,剛接通電源,電容C相當于瞬間短路,+5V立即加到RST/VPD端,該高電平使89C52全機自動復位,這就是上電復位;若運行過程中需要程序從頭執(zhí)行,只需按動按鈕即可。按下按鈕,則直接把+5V加到了RST/VPD端從而復位稱為手動復位。復位后,P0到P3并行I/O口全為高電平,其它寄存器全部清零,只有SBUF寄存器狀態(tài)不確定,。 按鍵復位電路在本次設計中復位電路主要給單片機提供初始化手段,與單片機RST引腳相連,當RST引腳上出現(xiàn)兩個機器周期以上的高電平時單片機內(nèi)部初始化。使用按鍵復位電路的上電復位和手動復位可以使操作變得更簡單,方便,很大程度上提高系統(tǒng)綜合性能。 復位電路接線原理圖本設計中采用LED數(shù)碼管顯示。在單片機系統(tǒng)中,通常用LED數(shù)碼顯示器來顯示各種數(shù)字或符號。由于它具有顯示清晰、亮度高、使用電壓低、壽命長的特點,因此使用非常廣泛。八段LED顯示器由8個發(fā)光二極管組成。其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆畫段,另一個小數(shù)點為dp發(fā)光二極管。LED顯示器有兩種不同的形式:一種是發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED顯示器;另一種是發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED示器。 七(八)段LED顯示LED顯示方式有動態(tài)顯示和靜態(tài)顯示兩種方式。本系統(tǒng)采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的8個筆劃段ah同名端連在一起,而每一個顯示器的公共極COM各自獨立地受I/O線控制。CPU向字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于COM端。也就是說我們可以采用分時的方法,輪流控制各個顯示器的COM端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1ms),由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。、~,通過軟件編程,先把所要顯示的數(shù)據(jù)放入存儲單元,然后把數(shù)據(jù)送入段選通對應的地址,再選通某一個LED,逐步完成四個LED的顯示。 顯示電路接線原理圖驅(qū)動數(shù)碼管的芯片為74LS244,74LS244為三態(tài)輸出的八位緩沖器和線驅(qū)動器,若單片機輸出口直接接顯示部分電路,則電流太小,會導致顯示部分不能正常工作。所以在單片機輸出口先接入驅(qū)動芯片74LS244,增大電流,使LED能夠正常工作。 74LS244邏輯圖在本次設計中74LS244與LED顯示器相連,起增大電流,使LED正常工作的作用。該芯片由兩組組成,每組由四路輸入,輸出構(gòu)成,每組有一個控制高低電平?jīng)Q定高低電平?jīng)Q定該組數(shù)據(jù)被接通還是斷開。 74LS244接線原理圖 為了能夠安全駕駛,以免危害自己與他人健康,本課題設計了報警電路,在超出預定速度時發(fā)出警報。 報警電路圖本次報警電路采用蜂鳴器報警,當即時速度超過預定值是蜂鳴器響,指示燈閃爍,提示應該減速。 報警電路接線原理圖 電源模塊供電電源分外接交流和USB接口的外接直流。注意事項:電源不要超過20V,3A,防止意外。4 自行車的速度里程表軟件程序設計 概述在硬件設計完畢之后,接下來就是設計中最核心和最為主要的軟件部分設計。所謂軟件設計就是把軟件需求變換成軟件的具體設計方案(即模塊結(jié)構(gòu))的過程。模塊化結(jié)構(gòu)設計即是根據(jù)要求和硬件設計的結(jié)構(gòu),將整個系統(tǒng)的功能分成許多小的功能模塊,再根據(jù)這些小的功能模塊進行程序編寫的過程。這樣的設計方法,使得系統(tǒng)的整個功能和各部分的功能趨于明朗化。當系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設置找出問題的根源,從而更快地解決問題。所以說,在整個設計過程中,軟件設計必須與硬件設計緊密地結(jié)合在一起。 基于霍爾傳感器自行車的速度里程表的軟件設計包括上電初始化程序、中斷子程序、速度調(diào)用子程序、里程調(diào)用子程序、LED顯示子程序、延時子程序等幾大部分。由于要實現(xiàn)很多功能,所以采用模塊化設計,下面就其主要部分分別加以分析。在主程序模塊中,需要完成對各接口芯片的初始化、自行車里程和速度的初始化、中斷向量的設計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設置啟動/清除標志寄存器、里程寄存器、速度寄存器,并對它們進行初始化。然后主程序?qū)⒏鶕?jù)各標志寄存器的內(nèi)容,分別完成啟動、清除、計程和計速等不同的操作。在單片機的各個拐角中。、低電平有效。在本次設計中其分別代表了1m、。,低電平為顯示速度,高電平為顯示里程。中斷0用于對輪子圈數(shù)的計數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個低電平脈沖。將根據(jù)里程寄存器中的內(nèi)容計算和判斷出行駛里程數(shù)。中斷1用于控制定時器T1的啟/停,當輸入為0時關(guān)閉定時器。此控制信號是將輪子圈數(shù)的計數(shù)經(jīng)二分頻后形成。這樣,每次定時器T1的開啟時間剛好為轉(zhuǎn)一圈的時間,根據(jù)輪子的周長就可以計算出自行車的速度。開始初始化=1?N=1?=1?=1?出錯提示將車圈周長調(diào)入21H開中斷,啟動定時器=1?調(diào)用里程處理子程序調(diào)用速度處理子程序NNNYYYYNY 主程序流程圖 里程計算子程序點亮里程指示燈開始將車圈數(shù)轉(zhuǎn)換成里程顯示里程值返回,為十六進制計數(shù)器。60H為低位,62H為高位。每次計數(shù)一次后,對里程數(shù)據(jù)進行一次存儲操作。當車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機內(nèi),通過計數(shù)器計出脈沖數(shù),再用乘法子程序算出里程數(shù)。 里程處理子程序流程圖void timer0_int() interrupt 1{ TH0 = 0x3c。 TL0 = 0xaf。 //設定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。} //如果啟動計時器每秒刷新一次累積距離 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服務程序用于處理輪子轉(zhuǎn)動一圈后的計時數(shù)據(jù)。當標志位(00H)為1時,計數(shù)溢出,放入最大時間值(0FFH);當標志位為0時,將計數(shù)單元(TLTH6CH、6DH)的值放入68H~6BH單元。定時器計出每轉(zhuǎn)一圈所用的時間,用自行車車輪的周長除以時間就得出自行車的速度。開始開速度指示燈計算速度報警顯示速度NY是否超速?返回 速度處理子程序流程圖void timer0_int() interrupt 1{ TH0 = 0x3c。 TL0 = 0xaf。 //設定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ù), //,100表示顯示到小數(shù)點后兩位 //最高時速為160km/h,超過此速度時dst_one_sec溢出 n = 1。 //每刷新一次速度重新確定刷新周期 dst_one_sec = 0。 //重新檢測1s內(nèi)的行車距離} 顯示子程序的設計采用動態(tài)掃描顯示接口電路,動態(tài)顯示接口電路是把所有顯示器的8個筆劃段ah同名端連在一起,而每一個顯示器的公共極COM各自獨立地受I/O線控制。CPU向字段輸出口送出字型碼時,所有顯示器接收到相同的字型碼,但究竟是哪個顯示器亮,則取決于
點擊復制文檔內(nèi)容
高考資料相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1