歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

畢業(yè)設(shè)計(jì)-基于AT89S52單片機(jī)的自行車?yán)锍瘫碓O(shè)計(jì).doc

  • 資源ID:116815186       資源大小:765.52KB        全文頁數(shù):38頁
  • 資源格式: DOC        下載積分:20積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要20積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

畢業(yè)設(shè)計(jì)-基于AT89S52單片機(jī)的自行車?yán)锍瘫碓O(shè)計(jì).doc

CHANGZHOU INSTITUTE OF TECHNOLOGY題目:基于單片機(jī)的自行車?yán)锍瘫碓O(shè)計(jì)二級(jí)學(xué)院(直屬學(xué)部): 延陵學(xué)院 專業(yè): 電氣工程及其自動(dòng)化 班級(jí): 10電Y3 學(xué)生姓名: 學(xué)號(hào): 10124508 指導(dǎo)教師姓名: 范力旻 職稱: 副教授 2013年12月30日至2014年1月10日目 錄第1章 緒論21.1課題的背景21.2課題的主要任務(wù)及設(shè)計(jì)內(nèi)容3第2章 總體方案的設(shè)計(jì)32.1任務(wù)分析與實(shí)現(xiàn)32.2 自行車?yán)锍瘫碛布桨冈O(shè)計(jì)42.3 自行車?yán)锍瘫碥浖桨冈O(shè)計(jì)4第3章 自行車?yán)锍瘫碥浖绦蛟O(shè)計(jì)53.1 自行車?yán)锍瘫砜傮w程序設(shè)計(jì)5第4章 自行車?yán)锍瘫碥浖映绦蛟O(shè)計(jì)64.1 中斷子程序設(shè)計(jì)64.2 延時(shí)程序84.3 按鍵掃描84.4 數(shù)據(jù)處理子程序設(shè)計(jì)94.5 顯示子程序的設(shè)計(jì)114.6 存儲(chǔ)芯片的選擇13第5章 軟件仿真145.1 Keil軟件的使用145.2 Keil軟件仿真14第6章 系統(tǒng)調(diào)試與分析166.1 調(diào)試故障及原因分析16第7章 總結(jié)16附錄17參考文獻(xiàn)17元器件清單18原理圖20程序清單20實(shí)物圖33第1章 緒論1.1課題的背景自行車被發(fā)明及使用到現(xiàn)在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發(fā)過程中,將玩具式的木馬車轉(zhuǎn)換到今日各式新穎休閑運(yùn)動(dòng)自行車。我國是自行車大國,隨著人們生活水平的不斷提高,自行車已經(jīng)不僅僅是運(yùn)輸、代步的工具,其輔助功能也變得越來越重要。因此,人們希望自行車的娛樂、休閑、鍛煉的功能越來越多,能帶來大家更多的健康與快樂。在這個(gè)背景下,自行車?yán)锍瘫碜鳛樽孕熊嚨囊淮筝o助工具迅速發(fā)展起來。本次設(shè)計(jì)主要闡述一種基于霍爾元件的自行車?yán)锍瘫淼脑O(shè)計(jì)。以 AT89S52 單片機(jī)為核心,A44E 霍爾傳感器測(cè)轉(zhuǎn)數(shù),實(shí)現(xiàn)對(duì)自行車?yán)锍?速度的測(cè)量統(tǒng)計(jì),采用 24C02 實(shí)現(xiàn)在系統(tǒng)掉電的時(shí)候保存里程信息,并能將自行車的里程數(shù)及速度用LCD實(shí)時(shí)顯示。文章詳細(xì)介紹了自行車?yán)锍瘫淼挠布娐泛蛙浖O(shè)計(jì)。硬件部分利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機(jī)系統(tǒng),然后單片機(jī)系統(tǒng)將信號(hào)經(jīng)過處理送顯示。軟件部分用C語言進(jìn)行編程,采用模塊化設(shè)計(jì)思想。1.2課題的主要任務(wù)及設(shè)計(jì)內(nèi)容本文介紹的自行車?yán)锍瘫硎且訟TC89S52單片機(jī)為核心,用開關(guān)型霍爾傳感器將到來的脈沖信號(hào)輸入到單片機(jī)進(jìn)行控制與計(jì)算,再采用LCD液晶屏進(jìn)行顯示,直觀的顯示給使用者,方便地實(shí)現(xiàn)了智能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計(jì),并且使用方便。本文主要介紹了自行車?yán)锍瘫淼脑O(shè)計(jì)思想、方案論證等內(nèi)容,整體上分為硬件部分設(shè)計(jì)和軟件部分設(shè)計(jì)。首先對(duì)該課題進(jìn)行任務(wù)分析,包括硬件和軟件方案的設(shè)計(jì),然后具體的介紹里程表的硬件設(shè)計(jì)(傳感器的選擇、單片機(jī)的選擇、顯示電路的設(shè)計(jì)),軟件設(shè)計(jì)(單片機(jī)的選擇、存儲(chǔ)器的選擇、中斷子程序設(shè)計(jì)、數(shù)據(jù)處理子程序設(shè)計(jì)、顯示子程序的設(shè)計(jì)),最后進(jìn)行軟件仿真,系統(tǒng)調(diào)試,然后分析解決問題,對(duì)這次設(shè)計(jì)進(jìn)行總結(jié)。軟件設(shè)計(jì)采用C語言編寫,主要思想是自頂向下,模塊化設(shè)計(jì)。第2章 總體方案的設(shè)計(jì)2.1任務(wù)分析與實(shí)現(xiàn)本設(shè)計(jì)的任務(wù)是:以ATC89S52單片機(jī)為處理核心,用傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,進(jìn)行處理后送入單片機(jī)。里程及速度的測(cè)量,是經(jīng)過ATC89S52測(cè)出總的脈沖數(shù)和轉(zhuǎn)一圈所需的時(shí)間,再經(jīng)過單片機(jī)的計(jì)算得出,其結(jié)果通過LCD顯示屏顯示出來。本系統(tǒng)總體思路如下:設(shè)計(jì)時(shí),應(yīng)綜合考慮測(cè)速精度和系統(tǒng)反應(yīng)時(shí)間。本設(shè)計(jì)采用的脈沖計(jì)數(shù)方法,用來計(jì)算速度具有較高的測(cè)速精度。在計(jì)算里程時(shí)取了自行車的理想狀態(tài)。里程和速度傳感器采用霍爾元件。自行車?yán)锍痰臏y(cè)量是通過霍爾元件輸出端的電壓發(fā)生變化產(chǎn)生脈沖,通過計(jì)數(shù)器,根據(jù)脈沖數(shù)計(jì)算里程。自行車速度的測(cè)量是通過定時(shí)器測(cè)出車輪轉(zhuǎn)一周所用的時(shí)間t,車輪周長L除以時(shí)間t就是自行車的速度。本次科研設(shè)計(jì)要求達(dá)到的各項(xiàng)指標(biāo)和實(shí)現(xiàn)方法:1、用霍爾傳感器產(chǎn)生脈沖信號(hào),對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),這個(gè)指標(biāo)的實(shí)現(xiàn)是利用單片機(jī)自帶的計(jì)數(shù)器T0對(duì)霍爾傳感器脈沖信號(hào)進(jìn)行計(jì)數(shù)的。2、對(duì)數(shù)據(jù)進(jìn)行處理,用LCD顯示里程總數(shù)和速度。這個(gè)功能的實(shí)現(xiàn)是利用編程軟件,對(duì)數(shù)據(jù)進(jìn)行處理得到需要的數(shù)值。最終本次課題需要實(shí)現(xiàn)的目標(biāo)是:自行車?yán)锍瘫砭哂欣锍獭⑺俣葴y(cè)試與顯示功能,采用單片機(jī)作控制,顯示電路可顯示里程及速度,可以通過按鍵設(shè)定報(bào)警速度,自行車超速,系統(tǒng)發(fā)出報(bào)警提示。通過不同按鍵復(fù)位及里程清零的功能,方便地實(shí)現(xiàn)了智能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計(jì)。2.2 自行車?yán)锍瘫碛布桨冈O(shè)計(jì)自行車?yán)锍瘫淼睦锍碳八俣仍O(shè)計(jì),采用的是霍爾傳感器進(jìn)行檢測(cè)。當(dāng)自行車轉(zhuǎn)過一圈時(shí)產(chǎn)生一個(gè)脈沖,根據(jù)脈沖數(shù)計(jì)算里程,然后計(jì)算自行車車輪轉(zhuǎn)過一圈所需的時(shí)間,用總的里程除以時(shí)間即可得到速度。在設(shè)計(jì)的時(shí)候還要設(shè)計(jì)系統(tǒng)的輸入部分(按鍵電路、存儲(chǔ)電路等),輸出部分(顯示電路、報(bào)警等)。2.3 自行車?yán)锍瘫碥浖桨冈O(shè)計(jì)通過軟件控制單片機(jī)的功能是單片機(jī)的主要特點(diǎn)和優(yōu)點(diǎn),程序的設(shè)計(jì)要考慮合理性和可讀性,遵循模塊化設(shè)計(jì)的原則,采用自頂向下的設(shè)計(jì)方法。模塊化設(shè)計(jì)使程序的可讀性好、修改及完善方便。軟件設(shè)計(jì)包括主程序、中斷子程序、延時(shí)程序、按鍵掃描、存儲(chǔ)芯片的選擇、數(shù)據(jù)處理子程序(分為里程子程序、速度子程序)、顯示子程序。中斷子程序是將傳感器產(chǎn)生的信號(hào)接入計(jì)數(shù)器的T0口,然后計(jì)數(shù)器開始計(jì)數(shù),當(dāng)計(jì)數(shù)到一定數(shù)目后,計(jì)數(shù)器就產(chǎn)生溢出中斷。數(shù)據(jù)處理子程序是將得到的車輪所轉(zhuǎn)的圈數(shù)與實(shí)際要顯示值之間有一定的對(duì)應(yīng)關(guān)系,經(jīng)過軟件編程顯示所需要的值。秒表計(jì)時(shí)子程序是采用計(jì)數(shù)器T0通過編程實(shí)現(xiàn)秒表計(jì)時(shí)工作。脈沖接收子程序是通過編程實(shí)現(xiàn)脈沖的計(jì)數(shù),即對(duì)車輪所轉(zhuǎn)的圈數(shù)計(jì)數(shù)。顯示子程序是通過編程將數(shù)據(jù)處理的結(jié)果送給顯示器顯示。系統(tǒng)軟件總體流程圖如圖2.3所示:初始化P3.2檢測(cè)到中斷計(jì)算速度計(jì)算里程顯示里程顯示速度開始YN圖2.3 軟件總體流程圖第3章 自行車?yán)锍瘫碥浖绦蛟O(shè)計(jì) 3.1 自行車?yán)锍瘫砜傮w程序設(shè)計(jì)在整個(gè)設(shè)計(jì)過程中,軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密地結(jié)合在一起。軟件部分設(shè)計(jì)是設(shè)計(jì)中最核心和最為主要的?;诨魻杺鞲衅髯孕熊?yán)锍瘫淼能浖O(shè)計(jì)包括計(jì)數(shù)子程序、計(jì)時(shí)子程序、LED顯示子程序等幾大部分。由于要實(shí)現(xiàn)很多功能,所以采用模塊化設(shè)計(jì),下面就其主要部分分別加以分析。在主程序模塊中,需要完成對(duì)各接口芯片的初始化、自行車?yán)锍毯退俣鹊某跏蓟?、中斷向量的設(shè)計(jì)以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動(dòng)/清除標(biāo)志寄存器、里程寄存器、速度寄存器,并對(duì)它們進(jìn)行初始化。然后主程序?qū)⒏鶕?jù)各標(biāo)志寄存器的內(nèi)容,分別完成啟動(dòng)、清除、計(jì)程和計(jì)速等不同的操作。P1.2和P1.3口分別指示報(bào)警。主程序流程圖如圖3.5所示。開始LCD、定時(shí)器初始化開中斷脈沖接收數(shù)字處理顯示信息結(jié)束鍵盤輸入?NY鍵盤掃描NY圖3.5 主程序流程圖第4章 自行車?yán)锍瘫碥浖映绦蛟O(shè)計(jì)4.1 中斷子程序設(shè)計(jì)定時(shí)中斷是為滿足定時(shí)或計(jì)數(shù)的需要而設(shè)置的。為此在單片機(jī)內(nèi)部有兩個(gè)定時(shí)/計(jì)數(shù)器,以對(duì)其中的計(jì)數(shù)結(jié)構(gòu)進(jìn)行計(jì)數(shù)的方法,來實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能。當(dāng)結(jié)構(gòu)發(fā)生計(jì)數(shù)溢出時(shí),即表明定時(shí)時(shí)間或計(jì)數(shù)值已滿,這時(shí)就以計(jì)數(shù)溢出信號(hào)作為中斷請(qǐng)求,去置位一個(gè)溢出標(biāo)志,作為單片機(jī)接受中斷請(qǐng)求的標(biāo)志。這種中斷請(qǐng)求是在單片機(jī)芯片內(nèi)部發(fā)生的,因此無須在芯片上設(shè)置引入端。定時(shí)/計(jì)數(shù)器控制寄存器TCON是8位寄存器,地址為88H,可以按位尋址。其高4位用于定時(shí)/計(jì)數(shù)器中斷控制,低4位借給外部中斷,用做中斷標(biāo)志和觸發(fā)方式選擇位。TF0/TF1:定時(shí)器計(jì)數(shù)溢出標(biāo)志位。可用于申請(qǐng)中斷或供CPU查詢。這里用作中斷請(qǐng)求。(由硬件自動(dòng)置位)。=0:定時(shí)器未溢出; =1:定時(shí)器溢出(由全“1”變成全“0”)時(shí)由硬件自動(dòng)置位,申請(qǐng)中斷, 中斷被CPU響應(yīng)后由硬件自動(dòng)清零。TR0/TR1:定時(shí)器運(yùn)行啟??刂莆唬捎捎脩敉ㄟ^軟件設(shè)置 )。 =0:定時(shí)器停止運(yùn)行; =1:定時(shí)器啟動(dòng)運(yùn)行。本設(shè)計(jì)采用定時(shí)中斷,對(duì)自行車的里程和速度進(jìn)行計(jì)數(shù)。自行車開始運(yùn)行,定時(shí)器0為1,開始計(jì)時(shí),當(dāng)自行車轉(zhuǎn)過一圈產(chǎn)生一個(gè)脈沖時(shí),定時(shí)器溢出,外部中斷0響應(yīng),此時(shí)由脈沖數(shù)和時(shí)間可以計(jì)算出里程和速度。中斷程序流程圖如圖4.1所示。 圖 4.1 中斷程序流程圖4.2 延時(shí)程序自行車?yán)锍瘫淼脑O(shè)計(jì)中延時(shí)有按鍵延時(shí)(速度加、減、里程清0)、LCD顯示延時(shí)、AT24C02存儲(chǔ)的延時(shí),本次設(shè)計(jì)的延時(shí)全部采用延時(shí)5ms。,程序編寫時(shí)是采用延時(shí)1ms,然后調(diào)用5次。延時(shí)流程圖如圖4.2所示。4.3 按鍵掃描本次設(shè)計(jì)中的按鍵分為獨(dú)立式按鍵和矩陣式按鍵,這里采用的是獨(dú)立式按鍵。主要有速度加按鍵、速度減按鍵、里程清0按鍵,在運(yùn)用按鍵的時(shí)候需要去抖來使系統(tǒng)運(yùn)行更加穩(wěn)定。去抖的方法有硬件去抖和軟件去抖。這里采用的是軟件去抖。這里去抖是分別在按下和松開后加一小段延時(shí),當(dāng)按鍵按下后在05ms內(nèi)出現(xiàn)抖動(dòng),所以這里采用的延時(shí)時(shí)間是5ms。按鍵對(duì)應(yīng)的接口如下:sbit KEY1=P35;/速度加按鍵sbit KEY2=P36;/速度減按鍵sbit KEY3=P37;/里程清0按鍵按鍵具體程序見附錄。開始掃描鍵盤是否有鍵盤按下并判斷鍵號(hào)延時(shí)去抖動(dòng)YN再次判斷相應(yīng)鍵是否被按下加速子程序減速子程序里程清0子程序NY圖4.2 延時(shí)流程圖4.4 數(shù)據(jù)處理子程序設(shè)計(jì)自行車?yán)锍瘫砝锍?、速度子程序設(shè)計(jì)定時(shí)器的初值的計(jì)算如下:在定時(shí)器模式下,計(jì)數(shù)器的計(jì)數(shù)脈沖來自于晶振脈沖的12分頻信號(hào),即對(duì)機(jī)器周期進(jìn)行計(jì)數(shù)。選擇12MHZ晶振,則定時(shí)器的計(jì)數(shù)頻率為1MHZ。定時(shí)時(shí)間為1000ms,機(jī)器周期為1us,即12/晶振頻率。X為定時(shí)器初值。則 X=(2n-T)/T1。方式0,n=13,方式1時(shí),n=16,方式2和方式3,n=8TMOD=0X01;TH0=(65536-1000)/256;TH0=TL0=(65536-1000)%256;外中斷0服務(wù)程序用于對(duì)單片機(jī)輸入的圈脈沖進(jìn)行計(jì)數(shù),為十六進(jìn)制計(jì)數(shù)器。60H為低位,62H為高位。每次計(jì)數(shù)一次后,對(duì)里程數(shù)據(jù)進(jìn)行一次存儲(chǔ)操作。當(dāng)車輪每轉(zhuǎn)一圈,通過霍爾元件將脈沖數(shù)輸入單片機(jī)內(nèi),通過計(jì)數(shù)器計(jì)出脈沖數(shù),再用乘法子程序算出里程數(shù)。設(shè)定自行車車輪周長為30mm,脈沖數(shù)為m,則總的里程數(shù)=0.030*m,在速度子程序的設(shè)計(jì)中,使用單片機(jī)的定時(shí)器T0,10ms計(jì)數(shù)一次,其初值X經(jīng)計(jì)算得出,X=D8F0,即應(yīng)將D8H送入TH0中,F(xiàn)0送入TL0中。具體的設(shè)計(jì)思路是:定時(shí)器T0每10ms中斷一次,當(dāng)中斷次數(shù)達(dá)到100,即時(shí)間剛好為1秒的時(shí)候,調(diào)用脈沖接收子程序中當(dāng)前的圈數(shù)變量,然后與設(shè)置好的自行車車輪周長相乘之后,再除以1s即為瞬時(shí)速度,每次計(jì)算完之后將此圈數(shù)變量置0。本次設(shè)計(jì)的報(bào)警采用聲光報(bào)警。聲音部分采用的是蜂鳴報(bào)警器,當(dāng)自行車的速度超過預(yù)設(shè)的15km/h,L2燈亮,蜂鳴器報(bào)警。蜂鳴器是高電平有效,即當(dāng)速度超過預(yù)設(shè)值時(shí),蜂鳴器輸入信號(hào)由0變?yōu)?,蜂鳴器開始工作。Led燈采用的是共陽極接法即低電平有效。當(dāng)自行車的行駛速度低于15km/h時(shí),此時(shí)L1接收到低電平(0),L1常亮,當(dāng)速度超過預(yù)設(shè)的值時(shí),L1的信號(hào)由低電平調(diào)為高電平(由0變?yōu)?),燈熄滅不亮,此時(shí)L2由高電平變?yōu)榈碗娖剑ㄓ?變?yōu)?),L2常亮報(bào)警,直到解除報(bào)警。里程處理子程序流程圖如圖4.3(a)所示,速度處理子程序流程圖如圖4.3(b)所示。 圖4.3(a) 里程處理子程序流程圖速度處理子程序開中斷每10ms中斷次數(shù)加1,計(jì)數(shù)為100?計(jì)算瞬時(shí)速度是否超速?報(bào)警關(guān)報(bào)警顯示速度YY返回圖4.3(b) 速度處理子程序流程圖4.5 顯示子程序的設(shè)計(jì)DDRAM顯示數(shù)據(jù)RAM地址和屏幕的對(duì)應(yīng)關(guān)系如表4.1所示。表4.1 DDRAM地址和顯示位置的對(duì)應(yīng)關(guān)系顯示位置12345640DDRAM地址第一行00H01H02H03H04H05H27H第二行40H41H42H43H44H45H67H也就是說想要在LCD1602屏幕的第二行第一列顯示一個(gè)M字,就要向DDRAM的40H地址寫入“M”字的代碼就行了。那就是向DDRAM的的40H地址寫入“M”字的代碼4DH。同樣,在LCD模塊上也固化了字模存儲(chǔ)器,這就是CGROM和CGRAM。下圖4.4說明了CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系。圖4.4 CGROM和CGRAM與字符的對(duì)應(yīng)關(guān)系從上圖可以看出,“M”字的對(duì)應(yīng)上面高位代碼為0100,對(duì)應(yīng)左邊低位代碼為1101,合起來就是01001101,也就是4DH。LCD屏幕上顯示一個(gè)字符的過程:初始化、寫指令、寫函數(shù)、在某個(gè)屏幕位置上顯示一個(gè)字符、檢查忙函數(shù)、延時(shí)函數(shù)。速度的顯示運(yùn)用程序定位到第一行第十列,找到顯示對(duì)應(yīng)的位置為09H,通過速度調(diào)節(jié)鍵設(shè)定輸入速度為16km/h,所以要在09H中輸入1,所以1對(duì)應(yīng)的高位代碼為0011,對(duì)應(yīng)的地位代碼為0001H,合起來是00110001,也就是1,然后光標(biāo)右移一位(用程序?qū)崿F(xiàn)),用同樣的方法寫出6.簡而言之?dāng)?shù)據(jù)顯示就是顯示的時(shí)候先送要顯示的地址,然后再送要顯示的數(shù)據(jù)。顯示程序流程圖如圖4.4所示。開始液晶初始化光標(biāo)定位送顯示數(shù)據(jù)顯示結(jié)束圖4.4 顯示子程序流程圖4.6 存儲(chǔ)芯片的選擇本次設(shè)計(jì)采用的儲(chǔ)存芯片是24C02,AT24C02是一個(gè)2K位串行CMOS E2PROM, 內(nèi)部含有256個(gè)8位字節(jié),有一個(gè)專門的寫保護(hù)功能,可以實(shí)現(xiàn)掉電存儲(chǔ)。起始條件起始調(diào)教必須在所有操作命令之前發(fā)送。時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低跳變作為I2C總線的啟動(dòng)信號(hào)。CAT24Cxxx一直監(jiān)視SDA和SCL電平信號(hào),直到條件滿足時(shí)才響應(yīng)。停止條件時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高跳變作為I2C總線的停止信號(hào)。器件地址的約定主器件在發(fā)送啟動(dòng)命令后開始傳送數(shù)據(jù),主器件發(fā)送相應(yīng)的從器件地址,8位從器件地址的高四位固定為1010,接下來的3位用來定義存儲(chǔ)器的地址,最后一位為讀寫控制位,“1”表示對(duì)從器件進(jìn)行讀寫操作,“0”表示寫操作。在主器件發(fā)送啟動(dòng)命令和一字節(jié)從器件地址后,如果與從器件地址吻合,CAT24C02將發(fā)送一個(gè)應(yīng)答信號(hào),然后再根據(jù)讀/寫控制為進(jìn)行讀或?qū)懖僮?。?yīng)答信號(hào)每次數(shù)據(jù)傳送成功后,接收器件將發(fā)送一個(gè)應(yīng)答信號(hào)。當(dāng)?shù)诰艂€(gè)時(shí)鐘信號(hào)產(chǎn)生時(shí),產(chǎn)生應(yīng)答型號(hào)的器件將SDA下拉為低,通知已經(jīng)接受到8位數(shù)據(jù),接收到起始條件和從器件地址后,CAT24C02發(fā)送一個(gè)應(yīng)答信號(hào),如果為寫操作,每接收到一個(gè)字節(jié)數(shù)據(jù),CAT24C02發(fā)送一個(gè)應(yīng)答信號(hào)。如果為讀操作,CAT24C02發(fā)送一個(gè)字節(jié)數(shù)據(jù)后釋放總線等待應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),它將繼續(xù)發(fā)發(fā)送數(shù)據(jù),如果接收到主器件發(fā)送非應(yīng)答信號(hào),將結(jié)束數(shù)據(jù)傳送等待停止條件。寫操作在寫字節(jié)模式下,助器件發(fā)送起始命令和從器件地址信息給從器件,在從器件響應(yīng)應(yīng)答信號(hào)后,主器件將要寫入的數(shù)據(jù)地址發(fā)送到CAT24C02的地址指針,主器件收到從器件的應(yīng)答信號(hào)后再送數(shù)據(jù)到相應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)地址,CAT24C02再響應(yīng)一個(gè)應(yīng)答信號(hào),主器件產(chǎn)生一個(gè)停止信號(hào),然后CAT24C02啟動(dòng)內(nèi)部寫周期,在內(nèi)部寫周期期間,CAT24C02不再響應(yīng)主器件任何請(qǐng)求。寫操作時(shí)序讀如讀操作CAT24C02讀操作的初始化方式和寫操作一樣,僅把R/W位置1,讀操作有三種方式:立即地址讀、選擇地址讀、連續(xù)讀。選擇地址讀操作時(shí)序圖第5章 軟件仿真5.1 Keil軟件的使用 在keil中輸入編寫好的c語言程序,在編譯運(yùn)行沒有的錯(cuò)誤的情況下,在project中找到options for targettarget1在output選項(xiàng)中勾選create HEX file,即可生成.hex文件。5.2 Keil軟件仿真主程序仿真圖如圖5.1所示圖5.1 主程序仿真圖LCD顯示仿真如圖5.2所示圖5.2 LCD顯示仿真圖AT24C02仿真如圖5.2所示圖5.2 AT24C02仿真圖第6章 系統(tǒng)調(diào)試與分析6.1 調(diào)試故障及原因分析這次的科研項(xiàng)目實(shí)訓(xùn)中,我主要負(fù)責(zé)自行車?yán)锍瘫淼能浖糠郑晕业恼{(diào)試主要側(cè)重在軟件的調(diào)試。首先查閱相關(guān)資料,在同學(xué)的幫助下完成C語言程序的編寫。編寫好程序后我利用keil軟件進(jìn)行編譯調(diào)試。一開始由于平時(shí)C語言的書寫習(xí)慣會(huì)出現(xiàn)很多語法和字符用錯(cuò)的問題,在軟件的提示下一步步修改程序,直到程序沒有錯(cuò)誤。在C語言程序完成后,利用proteus仿真軟件開始繪制仿真圖,查找好所有型號(hào)的器件,并用線連接起來,然后用keil軟件實(shí)現(xiàn)兩者的聯(lián)調(diào)。一開始會(huì)出現(xiàn)速度調(diào)節(jié)按鈕無效的問題,在檢查完線路沒有問題后,開始查找程序的問題,在同學(xué)的幫助下終于找出程序問題所在,然后對(duì)程序進(jìn)行修改,重新編譯,重新調(diào)試,直到所有功能實(shí)現(xiàn)。第7章 總結(jié)經(jīng)過這一段時(shí)間的努力最終按要求完成本設(shè)計(jì),所完成的設(shè)計(jì)能實(shí)現(xiàn)任務(wù)要求的各項(xiàng)功能。對(duì)總體相應(yīng)的軟、硬件進(jìn)行了設(shè)計(jì)、制作及調(diào)試,并貫穿至設(shè)計(jì)的全過程。本課題的主要任務(wù)是開發(fā)一個(gè)以AT89S52單片機(jī)為核心的自行車的速度里程表,主要由脈沖接收,LCD顯示等模塊組成。本設(shè)計(jì)主要分為硬件部分和軟件部分,硬件部分著重考慮硬件電路的簡單性,故盡可能簡化硬件電路,節(jié)省線路板的空間,達(dá)到硬件電路最優(yōu)化設(shè)計(jì)。軟件采用C語言編寫,采用模塊化設(shè)計(jì)思想,程序可讀性強(qiáng)。通過對(duì)程序的燒錄、實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可行,能滿足設(shè)計(jì)要求,達(dá)到設(shè)計(jì)的指標(biāo),實(shí)現(xiàn)對(duì)自行車?yán)锍?速度的計(jì)算功能,并用LCD液晶屏顯示,功能性較強(qiáng)。這次科研實(shí)踐讓我對(duì)自己以后的畢業(yè)設(shè)計(jì)方面也有了更深的了解。這次實(shí)踐,同學(xué)們也幫了我很大的忙,讓我知道一個(gè)項(xiàng)目的完成不是一件容易的事情,團(tuán)隊(duì)合作還是比較重要的。附錄參考文獻(xiàn)1 ATMEL新型AT89S52系列單片機(jī)及其應(yīng)用 清華大學(xué)出版社2 范力旻.單片機(jī)原理及應(yīng)用技術(shù).電子工業(yè)出版社3 樓然苗, 李光飛. 51系列單片機(jī)設(shè)計(jì)實(shí)例. 北京航空航天大學(xué)出版社, 20064 李朝青. 單片機(jī)原理及接口技術(shù). 北京航空航天大學(xué)出版社, 19945張毅剛, 劉杰. MCS-51單片機(jī)原理及應(yīng)用. 哈爾濱工業(yè)大學(xué)出版社,20046李勛, 劉源, 李靜東. 單片機(jī)實(shí)用教程. 北京航空航天大學(xué)出版社, 2006元器件清單序號(hào)文字標(biāo)號(hào)名稱數(shù)量規(guī)格型號(hào)備注1R2、R3、R6電阻4102R1、R9-R10R14-R16、R23電阻71K3R17電阻14.7K4R13電組110K5Q1三極管185506C6、C8瓷片電容20.01uF103瓷片電容7U3霍爾元件1A44E8磁鐵兩個(gè)29D1、D2二極管2IN400710C10瓷片電容10.1uF103瓷片電容11C4瓷片電容1470uf12LS1蜂鳴器1GPC1407YB有源13L1、L2、L3發(fā)光二極管3SL-H302314C6、C8瓷片電容230pf15Y1晶振112M16Q10三極管1S855017B1電機(jī)1RF-300CA-0858518K2自鎖按鍵1LCD-37AX537BX519R10電位器11K20K1、K3-K5按鍵4TD-03B21U2定時(shí)器1555芯片22P2插座2DIP23R2電位器11K24U1單片機(jī)1AT89S5225插座1DIP4026P1液晶顯示屏1LCD160227U4PROM1AT24C02原理圖程序清單#include#define uchar unsigned char#define uint unsigned intuint num=0; /外部中斷次數(shù)uchar num1=0;uint Speed_dat=0;uint Total_Dis=0;uchar Beep_speed=40;sbit KEY1=P35;/速度加按鍵sbit KEY2=P36;/速度減按鍵sbit KEY3=P37;/里程清0按鍵void delayms(uint xms)uint i,j;for(i=xms;i0;i-)/xms延時(shí)子程序for(j=110;j0;j-);#includeLCD1602.H#includeAT24C02.Hvoid keyscan()if(!KEY1)delayms(5);if(!KEY1)if(Beep_speed0)Beep_speed-;while(!KEY2);else if(!KEY3)delayms(5);if(!KEY3)Write_AT24C02_Byte(0,0);Write_AT24C02_Byte(1,0);/里程清0Total_Dis=0;dis_Mileage();while(!KEY3);void main()uchar dat=0;float M_dat=0.0;init_1602();Init_AT24C02();dat=Read_AT24C02_Random(0);Total_Dis=dat*256+Read_AT24C02_Random(1);dis_Mileage();TMOD=0X01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;ET0=1;TR0=1;IT0=1; /邊沿觸發(fā)中斷EX0=1;EA=1;while(1)if(num199)num1=0;M_dat+=(float)(Cur_Speed/3.60);/每0.1s走的米數(shù)if(M_dat1000.0) /路程每增加100m儲(chǔ)存一次M_dat-=1000.0;Total_Dis+=1;Write_AT24C02_Byte(0,Total_Dis/256);Write_AT24C02_Byte(1,Total_Dis%256);dis_Mileage();display();keyscan();void T0_time() interrupt 1 /定時(shí)器0TH0=(65536-1000)/256;TL0=(65536-1000)%256;if(num500)num+;elseSpeed_dat=0;if(num1100)num1+;void ex_0() interrupt 0 /外部中斷0Speed_dat=(500/num); num=0;#define uchar unsigned char#define uint unsigned int sbit EN=P27;sbit RS=P25;sbit RW=P26;sbit BEEP=P20;sbit LED1=P12;/正常顯示sbit LED2=P13;/報(bào)警uchar LCD1602_Table=0123456789;/LCD1602顯示標(biāo)尺 /0123456789abcdefuchar code DIS_TAB1= Speed:-Km/h ;/顯示速度uchar code DIS_TAB2=M: Km-Km/h;/顯示里程 uint sum_dat=0;uchar Cur_Speed=0;extern uint Speed_dat;extern uint Total_Dis;extern void delayms(uint xms);void WRITE_LCD1602_DAT(uchar date)EN=0;RS=1;/寫數(shù)據(jù)P0=date;EN=0;delayms(5);EN=1;void WRITE_LCD1602_COM(uchar date)EN=0;RS=0;/寫命令P0=date;EN=0;delayms(5);EN=1;void init_1602() unsigned char i;RW=0; WRITE_LCD1602_COM(0 x38);/設(shè)定使用8位總線、2行顯示使用5X7字符,初始化WRITE_LCD1602_COM(0 x0c);/開顯示,不顯示光標(biāo)WRITE_LCD1602_COM(0 x06); /地址加1,當(dāng)寫入數(shù)據(jù)的時(shí)候光標(biāo)右移WRITE_LCD1602_COM(0 x01);/清屏WRITE_LCD1602_COM(0 x80); P0口的地址for(i=0;i16;i+)WRITE_LCD1602_DAT(DIS_TAB1i);WRITE_LCD1602_COM(0 x80+0 x40);/第一行、第二行顯示for(i=0;i16;i+)WRITE_LCD1602_DAT(DIS_TAB2i);void display()static uint dat=0;static uchar i=0;if(i0)WRITE_LCD1602_DAT(LCD1602_Tabledat%1000/100);elseWRITE_LCD1602_DAT( );if(dat/100)WRITE_LCD1602_DAT(LCD1602_Tabledat%100/10);elseWRITE_LCD1602_DAT( );WRITE_LCD1602_DAT(LCD1602_Tabledat%10);WRITE_LCD1602_COM(0 x80+9+0 x40);if(Beep_speed/1000)WRITE_LCD1602_DAT(LCD1602_TableBeep_speed%1000/100);elseWRITE_LCD1602_DAT( );if(Beep_speed/100)WRITE_LCD1602_DAT(LCD1602_TableBeep_speed%100/10);elseWRITE_LCD1602_DAT( );WRITE_LCD1602_DAT(LCD1602_TableBeep_speed%10);if(datBeep_speed)if(i0)WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%10000/1000);elseWRITE_LCD1602_DAT( );if(Total_Dis/1000)WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%1000/100);elseWRITE_LCD1602_DAT( );WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%100/10);WRITE_LCD1602_DAT(.);WRITE_LCD1602_DAT(LCD1602_TableTotal_Dis%10);#include#defineAT24C02_OP_READ0 xa1/ AT24C02器件地址以及讀取操作#defineAT24C02_OP_WRITE 0 xa0/ AT24C02器件地址以及寫入操作/#defineAT24C02_MAX_ADDR 0 xff/ AT24C02最大地址/unsigned char code dis_code=0 x7e,0 xbd,0 xdb,0 x7e,0 xdb,0 xbd,0 x7e,0 xff;/ 寫入到AT24C02的數(shù)據(jù)串sbit AT24C02_SDA=P11;sbit AT24C02_SCL=P10;/sbit AT24C02_WP=P33; /寫保護(hù) “=0”讀寫 “=1” 只讀/*延時(shí)子程序*/void Delay_1ms(unsigned int xms) unsigned int i,j; for(i=xms;i0;i-) for(j=122;j0;j-);/*24C02初始化子程序*/void Init_AT24C02() AT24C02_SDA=1; /總線空閑時(shí),因各設(shè)備都是集電極或漏極開路,上拉電阻使SDA和SCL線都保持高電平。/AT24C02_WP=1; AT24C02_SCL=1; _nop_(); _nop_(); _nop_(); _nop_();/*24C02起始信號(hào)子程序*/void AT24C02_Start()AT24C02_SDA=1;_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();AT24C02_SDA=0;_nop_();_nop_();_nop_();_nop_();AT24C02_SCL=0;/*24C02停止信號(hào)子程序*/void AT24C02_Stop()AT24C02_SDA=0;_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();_nop_();_nop_();AT24C02_SDA=1;_nop_();_nop_();/*24C02應(yīng)答子程序*/void AT24C02_ACK()AT24C02_SDA=1;/ 讀取應(yīng)答_nop_();_nop_();AT24C02_SCL=1;_nop_();_nop_();_nop_();_nop_();while(AT24C02_SDA);/等待應(yīng)答信號(hào)AT24C02_SCL=0;_nop_();_nop_();/*讀出24C02數(shù)據(jù)子程序*/unsigned char Read_AT24C02_DATA()unsigned char i,read_data;for(i=0;i8;i+)AT24C02_SCL=1;_nop_();_nop_();_nop_();_nop_();read_data=1; /從高位到底位read_data|=(unsigned char)AT24C02_SDA;AT24C02_SCL=0;_nop_();_nop_();_nop_();_nop_();return(read_data);/*寫入24C02數(shù)據(jù)子程序*/void Write_AT24C02_DATA(unsigned char write_data)unsigned char i;for(i=0;i8;i+)/ 循環(huán)移入8個(gè)位AT24C02_SDA=(bit)(write_data&0 x80);_nop_();AT24C02_SCL=1;_nop_();_nop_();AT24C02_SCL=0;write_data=1;/*字節(jié)寫入24C02數(shù)據(jù)子程序*/void Write_AT24C02_Byte(unsigned char addr, unsigned char write_data) / 在指定地址addr處寫入數(shù)據(jù)write_dataAT24C02_Start();/發(fā)起始命令Write_AT24C02_DATA(AT24C02_OP_WRITE);/從機(jī)地址寫命令A(yù)T24C02_ACK();Write_AT24C02_DATA(addr); /發(fā)送AT24C02的字節(jié)地址AT24C02_ACK();Write_AT24C02_DATA(write_data); /發(fā)送數(shù)據(jù)到被尋址的存儲(chǔ)單元AT24C02_ACK();AT24C02_Stop();/停止信號(hào)Delay_1ms(10);/延時(shí)等待AT24C02內(nèi)部數(shù)據(jù)的擦寫unsigned char Read_AT24C02_Current()/ 在當(dāng)前地址讀取unsigned char read_data;AT24C02_Start();Write_AT24C02_DATA(AT24C02_OP_READ);AT24C02_ACK();read_data = Read_AT24C02_DATA();AT24C02_Stop();return read_data;unsigned char Read_AT24C02_Random(unsigned char addr)/ 在指定地址讀取AT24C02_Start();Write_AT24C02_DATA(AT24C02_OP_WRITE);AT24C02_ACK();Write_AT24C02_DATA(addr);AT24C02_ACK();return(Read_AT24C02_Current();實(shí)物圖g an employment tribunal claimEmployment tribunals sort out disagreements between employers and employees.You may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismissed unfairly.For more information about dismissal and unfair dismissal, seeDismissal.You can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. However, if you win your case, the tribunal may reduce any compensation awarded to you as a result of your failure to appeal.Remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. If your application is received after this time limit, the tribunal will not usually accept it.If you are worried about how the time limits apply to you, take advice from one of the organisations listed underFurther help.Employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.Most people find making a claim to an employment tribunal challenging. If you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed underFurther help.If you are being represented by a solicitor at the tribunal, they may ask you to sign an agreement where you pay their fee out of your compensation if you win the case. This is known as adamages-based agreement. In England and Wales, your solicitor cant charge you more than 35% of your compensation if you win the case.If you are thinking about signing up for a damages-based agreement, you should make sure youre clear about the terms of the agreement. It might be best to get advice from an experienced adviser, for example, at a Citizens Advice Bureau. To find your nearest CAB, including those that give advice by e-mail, click onnearest CAB.For more information about making a claim to an employment tribunal, seeEmployment tribunals.The (lack of) air up there Watch mCayman Islands-based Webb, the head of Fifas anti-racism taskforce, is in London for the Football Associations 150th anniversary celebrations and will attend Citys Premier League match at Chelsea on Sunday.I am going to be at the match tomorrow and I have asked to meet Yaya Toure, he told BBC Sport.For me its about how he felt and I would like to speak to him first to find out what his experience was.Uefa hasopened disciplinary proceedings against CSKAfor the racist behaviour of their fans duringCitys 2-1 win.Michel Platini, president of European footballs governing body, has also ordered an immediate investigation into the referees actions.CSKA said they were surprised and disappointed by Toures complaint. In a statement the Russian side added: We found no racist insults from fans of CSKA.Age has reached the end of the beginning of a word. May be guilty in his seems to passing a lot of different life became the appearance of the same day; May be back in the past, to oneself the paranoid weird belief disillusionment, these days, my mind has been very messy, in my mind constantly. Always feel oneself should go to do something, or write something. Twenty years of life trajectory deeply shallow, suddenly feel something, do it.一字開頭的年齡已經(jīng)到了尾聲?;蛟S是愧疚于自己似乎把轉(zhuǎn)瞬即逝的很多個(gè)不同的日子過成了同一天的樣子;或許是追溯過去,對(duì)自己那些近乎偏執(zhí)的怪異信念的醒悟,這些天以來,思緒一直很凌亂,在腦海中不斷糾纏??傆X得自己自己似乎應(yīng)該去做點(diǎn)什么,或者寫點(diǎn)什么。二十年的人生軌跡深深淺淺,突然就感覺到有些事情,非做不可了。The end of our life,

注意事項(xiàng)

本文(畢業(yè)設(shè)計(jì)-基于AT89S52單片機(jī)的自行車?yán)锍瘫碓O(shè)計(jì).doc)為本站會(huì)員(good****022)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!