版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、-學(xué) 號:1434060103畢業(yè)設(shè)計說明書GRADUATEDESIGN設(shè)計題目:基于單片機(jī)的自行車?yán)锍趟俣缺碓O(shè)計與實現(xiàn)學(xué)生:程曉鋒專業(yè)班級:2021自升本1班學(xué) 院:繼續(xù)教育學(xué)院指導(dǎo)教師:邸志剛 副教授2021年11月30日. z-摘 要隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。自行車的速度里程表能夠滿足人們最根本的需求,讓人們能清楚地知道當(dāng)前的速度、里程等物理量。本論文主要闡述一種基于霍爾元件的自行車的速度里程表的設(shè)計。以 AT89C52 單片機(jī)為核心,霍爾傳感器測轉(zhuǎn)數(shù),實現(xiàn)對自行車?yán)锍?速度的測量統(tǒng)計,采用 1302 實現(xiàn)在系
2、統(tǒng)掉電的時候保存里程信息,并能將自行車的里程數(shù)及速度用LCD實時顯示。文章詳細(xì)介紹了自行車的速度里程表的硬件電路和軟件設(shè)計。硬件局部利用霍爾元件將自行車每轉(zhuǎn)一圈的脈沖數(shù)傳入單片機(jī)系統(tǒng),然后單片機(jī)系統(tǒng)將信號經(jīng)過處理送顯示。軟件局部用C語言進(jìn)展編程,采用模塊化設(shè)計思想。該系統(tǒng)硬件電路簡單,子程序具有通用性。關(guān)鍵詞:里程/速度;霍爾元件;單片機(jī);LCD顯示. z-AbstractWith the developing of peoples life, the bicycle is not only the universal tool of transportation and substitute
3、 for walking, but bees the first choice of entertainment and e*ercising. The bicycle mileage/speed can fulfill the basic need of peoples life, so that they can learn the speed and the mileage of the bicycle. In this paper, the bicycle mileage/speed design based on the Hall element is elaborated. By
4、AT89C52 as kernel, using Hall element to measure revolution, the measure and statistic are achieved. The range information is saved by when the power is off, the bicycle speed can be displayed on LCD. In this article, the hardware circuit and software design of bicycle mileage/speed instrument are i
5、ntroduced in detail. About the hardware, the pulse number is transmitted of one cycle of the bicycle into Single Chip Microputer system. Then the signal processed by Single Chip Microputer system is sent to display scream. About the software, in assemble language; the program is designed in the mode
6、 of modules. The system has simple hardware, mon sub-program.KEY WORDS:Mileage / speed; Hall element; Single chip microputer; LCDdisplay. z-前 言1第1章緒論21.1 課題背景21.2 設(shè)計的主要容及技術(shù)指標(biāo)2第2章自行車?yán)锍瘫砜傮w方案設(shè)計32.1任務(wù)分析與實現(xiàn)32.2自行車?yán)锍瘫碛布桨冈O(shè)計32.3自行車?yán)锍瘫碥浖桨冈O(shè)計4第3章自行車?yán)锍瘫碛布K設(shè)計53.1 里程表的硬件設(shè)計53.1.1 霍爾傳感器電路模塊設(shè)計53.1.2 按鍵電路模塊設(shè)計63.1.
7、3 電源電路模塊設(shè)計63.1.4 時鐘電路模塊設(shè)計73.1.5 LCD顯示模塊電路模塊設(shè)計73.1.6 串口下載電路模塊設(shè)計83.1.7 復(fù)位電路模塊設(shè)計93.1.8 晶振電路模塊設(shè)計10第4章軟件的設(shè)計114.1 里程表的軟件設(shè)計114.1.1 里程速度功能模塊實現(xiàn)114.1.2 日歷時鐘模塊功能144.1.3 LCD1602液晶顯示模塊17第5章軟件調(diào)試215.1 程序的檢測與調(diào)試215.1.1 Keil軟件簡介215.1.2 編制單片機(jī)應(yīng)用程序的步驟和難點215.2 系統(tǒng)仿真調(diào)試245.2.1程序的查錯手段25第6章結(jié)論27第7章辭28參考文獻(xiàn)29附錄1 硬件設(shè)計原理圖30附錄2 硬件電
8、路仿真圖31附錄3 軟件程序32譯文69C語言69. z-前 言本文介紹里程表設(shè)計以單片機(jī)和霍爾傳感器為核心?;魻杺鞲衅鲗⒌絹淼牡碗娖矫}沖信號輸入到單片機(jī)進(jìn)展控制與計算,再采用LCD模塊進(jìn)展顯示,使得自行車的里程數(shù)據(jù)能直觀的顯示給使用者。自行車?yán)锍瘫硎怯糜谶h(yuǎn)距離連續(xù)測量自行車行駛距離的儀表。它分為電源、霍爾傳感器和顯示器3局部。隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強(qiáng)大,能給人們帶來更多的方便。自行車?yán)锍趟俣缺碜鳛樽孕熊嚨囊淮筝o助工具也正是隨著這個要求而迅速開展的,其功能也逐漸從單一的里程顯示開展到速
9、度、時間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。本文介紹的自行車?yán)锍瘫硎怯呻娫捶€(wěn)壓系統(tǒng)供電,AT89C52單片機(jī)為中央處理器,結(jié)合高精度的控制電路,方便地實現(xiàn)了智能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計,并且使用方便。里程表以單片機(jī)AT89C52為核心,由系統(tǒng)輸入、單片機(jī)局部和系統(tǒng)輸出組成。. z-第1章 緒論單片機(jī)自從推出以來,以其超小型化、構(gòu)造緊湊、可靠性高、本錢低等優(yōu)點被人們廣泛承受,從而應(yīng)用于工業(yè)、電訊、數(shù)據(jù)處理、儀器儀表等多方面。自行車?yán)锍瘫硎亲孕熊嚨闹匾浼?,在自行車儀表中占重要位置,但幾十年來其開展變化并不大,現(xiàn)在國外很多車中使用了數(shù)字里程表,但
10、在國還并不多見。1.1 課題背景里程表的原理很簡單,車輪的圓周長是恒定不變的。由此可以計算出每走一里路車輪要轉(zhuǎn)多少圈,這個數(shù)也是恒定不變的。因此只要能夠自動把車輪的轉(zhuǎn)數(shù)積累下來,然后除以每一里路對應(yīng)的轉(zhuǎn)數(shù)就可以得到行駛的里程了。這樣簡單的原理古人就已經(jīng)發(fā)現(xiàn),并且開場使用了?!坝浝锕能嚲褪沁@樣的裝置,它是利用上述原理,再加上巧妙的機(jī)構(gòu)使得車輪每轉(zhuǎn)一定圈數(shù)就自動敲一下鼓,此時只要有專人把它記下了,就可以得到所走里程。此裝置十分巧妙無論白天、黑夜均可使用,而且盲人也可使用,表達(dá)出了我國古代勞動人民的聰明才智。不過,如果車上沒有人默記鼓聲數(shù)目的話,單靠記里鼓車本身還不能累計一共走了多少里。而且車停下來
11、之后誰也不知道這車曾經(jīng)走過多少里路,這是美中缺乏之處。從保護(hù)環(huán)境和經(jīng)濟(jì)條件許可等因素綜合來看,自行車目前乃至今后都有著廣闊的開展空間。目前市面上自行車的速度表和里程表都是機(jī)械的,看起來不夠直觀與方便。如果能用LCD直接顯示出來里程數(shù)或速度值,就可節(jié)省用戶的時間及精力處理自行車行進(jìn)過程中的突發(fā)事件。1.2 設(shè)計的主要容及技術(shù)指標(biāo)單片機(jī)軟件設(shè)計程序主要包括里程設(shè)計模塊;存儲歷史里程數(shù)據(jù)設(shè)計模塊;里程的顯示設(shè)計模塊;里程公里數(shù)的累計設(shè)計模塊;里程公里數(shù)的清0設(shè)計模塊。里程計數(shù)時有一盞指示燈閃爍;用LCD1602進(jìn)展顯示公里數(shù);用個開關(guān)實現(xiàn)對里程公里數(shù)的清0功能;用霍爾傳感器實現(xiàn)對里程車輪圈數(shù)的累計功
12、能。主要技術(shù)指標(biāo):一. 完成里程的顯示功能二能存貯歷史里程數(shù)據(jù)三能夠去除歷史數(shù)據(jù)四有一盞指示燈. z-第2章自行車?yán)锍瘫砜傮w方案設(shè)計2.1任務(wù)分析與實現(xiàn)本設(shè)計的任務(wù)是:以STC89C52單片機(jī)為處理核心,用傳感器將車輪的轉(zhuǎn)數(shù)轉(zhuǎn)換為電脈沖,進(jìn)展處理后送入單片機(jī)。里程及速度的測量,是經(jīng)過STC89C52測出總的脈沖數(shù)和每一秒所轉(zhuǎn)的圈數(shù),再經(jīng)過單片機(jī)的計算得出,其結(jié)果通過1602LCD顯示屏顯示出來。本系統(tǒng)總體思路如下:假定車輪的周長為L,在車輪上安裝m個磁鋼,則測得的里程值最大誤差為L/m。經(jīng)綜合分析,本設(shè)計中取m=1。車輪每轉(zhuǎn)一圈,開關(guān)型霍爾傳感器就會采集到一個脈沖信號,并從引腳端輸入,傳感器每
13、獲取一個脈沖信號代表車輪轉(zhuǎn)動一圈,即圈數(shù)qs加1,圈數(shù)qs與設(shè)置的自行車車輪的周長L的乘積即為當(dāng)前所走里程。同時可以從定時器TI知道在1秒單片機(jī)收到的脈沖個數(shù),即車輪所轉(zhuǎn)的圈數(shù),而自行車車輪周長與車輪所轉(zhuǎn)圈數(shù)的乘積即為這1秒自行車所走的距離,距離除以1秒的時間,即為瞬時速度。平均速度的計算大體上與瞬時速度一樣,從計數(shù)器T1知道在t秒車輪所轉(zhuǎn)的圈數(shù)后,與自行車車輪周長相乘得到t秒自行車所走的距離,距離除以t即為平均速度。另一個定時器T0則可以用來實現(xiàn)秒表的計時。最后LCD顯示屏顯示容的切換可以由鍵盤的輸入來實現(xiàn),而秒表計時的開場、暫停、清零及里程的清零也可以用鍵盤的輸入來實現(xiàn)。設(shè)計時,應(yīng)綜合考慮
14、測速精度和系統(tǒng)反響時間。本設(shè)計采用的脈沖計數(shù)方法,用來計算速度具有較高的測速精度。在計算里程時取了自行車的理想狀態(tài)。實際中,誤差控制在幾米之,相對于整個里程來說不是很大。另外,還應(yīng)盡量保證其他子模塊在編程時的通用性和高效性。最終實現(xiàn)目標(biāo):采用單片機(jī)作控制,自行車?yán)锍瘫砭哂欣锍獭⑺俣扰c秒表計時顯示功能。通過不同按鍵的按下切換里程、速度、秒表三者之間的顯示,也可以實現(xiàn)秒表計時的開場、暫停、清零及里程清零的功能,方便地實現(xiàn)了智能化、高精度、高可靠性、高效率的自行車?yán)锍瘫淼脑O(shè)計,并且使用方便。2.2自行車?yán)锍瘫碛布桨冈O(shè)計根據(jù)本設(shè)計的要求,經(jīng)研究和分析,硬件局部主要分為信息采集、信息處理、鍵盤輸入和信
15、息顯示四大模塊,其中的核心是信息處理,所用芯片為STC89C52單片機(jī)。系統(tǒng)硬件框圖如圖2-1所示:外部信號信息采集STC89C52顯示信息鍵盤輸入圖2-1系統(tǒng)硬件框圖2.3自行車?yán)锍瘫碥浖桨冈O(shè)計通過軟件控制單片機(jī)的功能是單片機(jī)的主要特點和優(yōu)點,程序的設(shè)計要考慮合理性和可讀性,遵循模塊化設(shè)計的原則,采用自頂向下的設(shè)計方法。模塊化設(shè)計使程序的可讀性好、修改及完善方便。軟件設(shè)計包括顯示子程序、數(shù)據(jù)處理子程序分為里程子程序、速度子程序、秒表計時子程序、脈沖接收子程序等等。顯示子程序是通過編程將數(shù)據(jù)處理的結(jié)果送給顯示器顯示。數(shù)據(jù)處理子程序是將得到的車輪所轉(zhuǎn)的圈數(shù)與實際要顯示值之間有一定的對應(yīng)關(guān)系,經(jīng)
16、過軟件編程顯示所需要的值。秒表計時子程序是采用計數(shù)器T0通過編程實現(xiàn)秒表計時工作。脈沖接收子程序是通過編程實現(xiàn)脈沖的計數(shù),即對車輪所轉(zhuǎn)的圈數(shù)計數(shù)。系統(tǒng)軟件框圖如圖2-2所示:外部信號脈沖接收鍵盤輸入數(shù)據(jù)處理顯示信息定時器1中斷定時器0中斷外部中斷0圖2-2系統(tǒng)軟件框圖. z-第3章自行車?yán)锍瘫碛布K設(shè)計3.1 里程表的硬件設(shè)計本次里程表的設(shè)計,硬件電路主要由霍爾傳感器電路,按鍵電路,電源電路,時鐘電路,LCD顯示電路,串口下載電路,復(fù)位電路,晶振電路構(gòu)成。 霍爾傳感器電路模塊設(shè)計A44E集成霍爾開關(guān)由穩(wěn)壓器A、霍爾電勢發(fā)生器(即硅霍爾片)B、差分放大器 C、施密特觸發(fā)器D和OC門輸出E五個根
17、本局部組成,如圖3-1所示。(1)、(2)、(3)代表集成霍爾開關(guān)的三個引出端點。在電源端加電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾電勢發(fā)生器的兩端,根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處在磁場中時,在垂直于磁場的方向通以電流,則與這二者相垂直的方向上將會產(chǎn)生霍爾電勢差VH輸出,該VH信號經(jīng)放大器放大后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。當(dāng)施加的磁場到達(dá)工作點時,觸發(fā)器輸出高電壓(相對于地電位),使三極管導(dǎo)通,此時OC門輸出端輸出低電壓,通常稱這種狀態(tài)為開 。當(dāng)施加的磁場到達(dá)釋放點時,觸發(fā)器輸出低電壓,三極管截止,使OC門輸出高電壓,這種狀態(tài)為關(guān) 。這樣兩次電壓變換,使霍爾開關(guān)完成了一次開關(guān)動
18、作。工作點與釋放點的差值一定,此差值稱為磁滯,在此差值,V0保持不變,因而使開關(guān)輸出穩(wěn)定可靠,這也就是集電成霍爾開關(guān)傳感器優(yōu)良特性之一。傳感器主要特性是它的輸出特性,即輸入磁感應(yīng)強(qiáng)度B與輸出電壓V0之間的關(guān)系。測量時,在1、2兩端加5V直流電壓,在輸出端3與1之間接一個負(fù)載電阻,輸出端3接單片機(jī)INT0/P3.2,如圖3-2所示。圖3-1 集成開關(guān)型霍爾傳感器圖3-2 霍爾傳感電路 按鍵電路模塊設(shè)計鍵盤在單片機(jī)應(yīng)用系統(tǒng)中,實現(xiàn)輸入數(shù)據(jù)、傳送命令的功能,是人工干預(yù)的主要手段。鍵盤是單片機(jī)系統(tǒng)設(shè)計中一種主要的信息輸入接口,合理的設(shè)計,不僅可以節(jié)省系統(tǒng)的設(shè)計本錢,更可使儀器設(shè)備的操作變得更為簡單、方
19、便,很大程度上提高系統(tǒng)綜合性能。本次設(shè)計過按鍵來更改自行車車輪半徑,并控制顯示自行的車?yán)锍毯推骄俣?,s3刷屏,s1加數(shù)據(jù),s2減數(shù)據(jù)。圖3-3 按鍵電路電源電路模塊設(shè)計為整個電路提供電源。電路由7805三端穩(wěn)壓集成電路、電容、LED燈、1千歐姆的電阻、開關(guān)和直流電源組成。7805三端穩(wěn)壓集成電路部還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價格廉價。本卷須知:電源不要超過20V,3A,防止意外。圖3-4 電源電路 時鐘電路模塊設(shè)計DS1302與單片機(jī)的連接也僅需要3條線:RST引腳(高電平時啟動數(shù)據(jù)傳送、SCLK串行時鐘引腳、I/O串行數(shù)據(jù)引腳,Vcc2為備用電源,外接32.7
20、68kHz晶振,為芯片提供計時脈沖。圖3-5 時鐘電路 LCD顯示模塊電路模塊設(shè)計 LCD1602引腳介紹:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:VEE為液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高。第4腳:RS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)展讀操作,低電平(0)時進(jìn)展寫操作。第6腳:E(或EN)端為使能(enable)端,高電平1時讀取信息,負(fù)跳變時執(zhí)行指令。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。圖3-6 顯示電
21、路 串口下載電路模塊設(shè)計串行通信是指使用一條數(shù)據(jù)線,將數(shù)據(jù)一位一位地依次傳輸,每一位數(shù)據(jù)占據(jù)一個固定的時間長度。其只需要少數(shù)幾條線就可以在系統(tǒng)間交換信息,特別使用于計算機(jī)與計算機(jī)、計算機(jī)與外設(shè)之間的遠(yuǎn)距離通信。單片機(jī)的串行通信可用于與計算機(jī)之間傳送數(shù)據(jù),一般采用RS232接口,但是由于TTL電平和RS232電平不兼容,所以兩者對接時,必須進(jìn)展電平轉(zhuǎn)換,其原理圖如圖2-9。RS232與電平轉(zhuǎn)換最常用的芯片有MC1488、MC1489和MA*232,各廠家生產(chǎn)的此類芯片雖然不同,但原理都一樣。在本次設(shè)計選用的是美國MA*IM公司的MA*232芯片,由此構(gòu)成程序下載電路,以便調(diào)試燒寫程序。它是RS2
22、32雙工發(fā)送器/接收器接口電路芯片,由于芯片部有自升壓的電平倍增電路,將+5V轉(zhuǎn)換成-10+10V,滿足RS232標(biāo)準(zhǔn)對邏輯1和邏輯0的電平要求,工作時僅需要單一的+5V電源。圖3-7 串口下載電路 復(fù)位電路模塊設(shè)計上電時,剛接通電源,電容C相當(dāng)于瞬間短路,+5V立即加到RET/VPD端,該高電平使89C52全機(jī)自動復(fù)位,這就是上電復(fù)位;假設(shè)運行過程中需要程序從頭執(zhí)行,只需按動按鈕即可。按下按鈕,則直接把+5V加到了RET/VPD端從而復(fù)位稱為手動復(fù)位。電路圖如圖3-8所示。圖3-8 復(fù)位電路 晶振電路模塊設(shè)計晶振電路用于產(chǎn)生單片機(jī)工作時所需的時鐘控制信號。通過單片機(jī)的引腳*TAL1,*TAL
23、2跨接石英晶體振蕩器和微調(diào)電容,構(gòu)成一個穩(wěn)定的自激振蕩器。時鐘頻率直接影響單片機(jī)的速度,晶振電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。晶振電路電路圖如圖3-9所示。圖3-9 晶振電路. z-第4章 軟件的設(shè)計4.1 里程表的軟件設(shè)計 本自行車?yán)锍瘫碥浖捎媚K化設(shè)計方法。整個系統(tǒng)由初始化模塊、頻率測量模塊、LCD顯示模塊、速度計算與顯示模塊、里程計算與與顯示模塊、數(shù)據(jù)存儲、讀取模塊、定時器中斷效勞模塊、時鐘模塊以及其他功能模塊組成。本設(shè)計的主要容是自行車?yán)锍趟俣缺?,日歷時鐘為附加功能,在此進(jìn)展簡單介紹。 里程速度功能模塊實現(xiàn)里程速度功能程序流程圖如圖4-1所示。開場讀取EEPROM數(shù)據(jù)檢測按鈕處
24、理直徑設(shè)置初始化設(shè)置特殊功能存放器、置定時常數(shù)、開中斷、清屏等等待中斷刷新累計行駛時間刷新里程、速度存儲里程數(shù)據(jù)等切換屏幕顯示內(nèi)容INT0INT1圖4-1 里程速度功能程序流程圖程序代碼如下:void main()EEPROM_L*RD(0*43,0,3,number);qs=number0;as=number1;. z-bs=number2;init_LCD(); 初始化dispmore(1,1,"-Digital Meter-",16);for(i=0;i<25000;i+);dispmore(2,1," Wele ",16);顯示歡迎信息fo
25、r(i=0;i<25000;i+);dispmore(2,1," Wele. ",16);for(i=0;i<25000;i+);dispmore(2,1," Wele. ",16);for(i=0;i<25000;i+);dispmore(2,1," Wele. ",16);for(i=0;i<25000;i+);dispmore(2,1," Wele. ",16);for(i=0;i<25000;i+);dispmore(2,1," Wele. ",16);fo
26、r(i=0;i<30000;i+);W1302(0*90,0*a5);/翻開充電二級管 一個二級管串聯(lián)一個2K電阻 W1302(0*8e,0*80);/寫保護(hù),制止寫操作 wr(0*01);MODE=0;P2=0*ff;qs2=0;tr1=5;tr2=5;wr(0*01);dispmore(1,1,"Set Bike Tire L=",16);wr(0*c9);dispone('c');wr(0*ca);dispone('m');P2=0*ff;wr(0*c6);dispone(tr1+0*30);wr(0*c7);dispone(tr
27、2+0*30);while(1)if(K1=0)for(i=0;i<4000;i+);if(K1=0)if(+tr1>9)tr1=0;wr(0*c6);dispone(tr1+0*30);for(i=0;i<32000;i+);if(K2=0)for(i=0;i<4000;i+);if(K2=0)if(+tr2>9)tr2=0;wr(0*c7);dispone(tr2+0*30);for(i=0;i<32000;i+);if(K3=0)for(i=0;i<4000;i+);if(K3=0)break;tc=3.14*(10*tr1+tr2);TMOD=
28、0*11;TH0=0*3c;置定時常數(shù)TL0=0*b0;TH1=0*b1;TL1=0*df;IT0=1;外部中斷觸發(fā)方式均是邊緣觸發(fā)IT1=1;IE=0*9f; 開中斷IP=0*02;TR0=1;和開場計時TR1=1;P33=1;IE0=0;wr(0*01); 日歷時鐘模塊功能 時鐘顯示模塊可以通過按鍵來校準(zhǔn)時間。當(dāng)K3按鍵按下時,電子日歷停頓走時,此時可以進(jìn)展年的校準(zhǔn),年調(diào)好之后,再按一下校準(zhǔn)時間便可以調(diào)整月,同理可以對日、小時、分、秒進(jìn)展設(shè)置。對應(yīng)有K1、K2鍵,可以加與減的操作。都調(diào)整好之后就將按照新時間開場走時。具體流程圖如下。開場始終開場工作是否顯示時間設(shè)置鍵是否按下選中要修改的加鍵
29、是否按下減鍵是否按下修改時間和日期返回是是. z- 圖4-2 校準(zhǔn)時間流程圖程序代碼如下:while(1)if(ag=1)if (K1|K2)=0) /初始化Delay5Ms();if (K1|K2)=0) Set1302(inittime);if (K3=0) / 設(shè)置和選擇工程鍵Delay5Ms();if(K3=0)id+;if(id>7) id=0;while(K3=0);switch(id)case 0:sec=0;Disp_line1();Disp_line2();break;case 1:/年year=1;Disp_line1(); Disp_line2(); id_case
30、1_key();break;case 2:/月year=0;mon=1;Disp_line1(); Disp_line2(); id_case1_key();break;case 3:/日mon=0;day=1;Disp_line1(); Disp_line2();id_case1_key();break; case 4:/星期day=0;weekk=1;Disp_line1(); Disp_line2(); id_case1_key(); LCD1602液晶顯示模塊 LCD1602液晶顯示器屬于字符型液晶顯示器,其部自帶有字符庫,所以只要向顯示器輸送字符的ASCII碼,就可以顯示該字符了。對
31、于1602顯示程序的編寫最主要的是掌握好1602的讀寫操作的時序。1602顯示器的控制端分別為RS、RW和E,當(dāng)寫指令時RS為低電平,RW為低電平,E首先為高電平,然后將數(shù)據(jù)送出,在延時一定時間后E變?yōu)榈碗娖?。這樣就把命令寫到了1602中。當(dāng)寫數(shù)據(jù)時RS為高電平,RW為低電平,E首先為高電平,然后將數(shù)據(jù)送出,在延時一定的時間后E變?yōu)榈碗娖?。這樣就把數(shù)據(jù)寫到了1602中。在實際應(yīng)用1602時,要先將顯示器初始化,初始化的容包括清屏、設(shè)置顯示模式,首字符的位置、光標(biāo)的有無和閃爍等,然后才能顯示具體容。開場進(jìn)展LCD的初始化進(jìn)展數(shù)據(jù)的處理調(diào)用寫指令子函數(shù)調(diào)用寫數(shù)據(jù)子函數(shù)顯示圖4-3 LCD顯示程序流
32、程圖該函數(shù)的作用是對LCD進(jìn)展檢測,看LCD是否處于忙的狀態(tài).當(dāng)bflag=1時表示忙,此時不可以向LCD進(jìn)展讀寫操作.而當(dāng)busy=0時,表示可以向它讀寫數(shù)據(jù).程序代碼:void wait()P2=0*ff;RW=1; RS=0; doE=0;E=1;while(busy=1);void dispone(dat)寫數(shù)據(jù),并顯示出來P2=dat;RW=0; RS=1; E=0; E=1; wait();void wr()向LCD寫入控制字P2=;RW=0; RS=0; E=0; E=1; wait();void init_LCD() 初始化LCDwr(0*01); 顯示清零,數(shù)據(jù)指針清零wr(
33、0*06); 寫一個字后指針加一wr(0*38); 設(shè)置16*2顯示,5*7點陣,8位數(shù)據(jù)接口wr(0*0c); 設(shè)置開顯示,不顯示光標(biāo)void dispmore(line,row,uchar dat,i) /格式為dispmore(第幾行,第幾列,開場要顯示的字符地址,顯示幾個字符;uchar ;s=dat;if(line=1) =0*80+row-1; / 第一行第一列對應(yīng)的RAM的地址位為0*80H wr();while(i-)!=0&&<=0*8f) dispone(*s);+;s+;else =0*c0+row-1; wr();while(i-)!=0&
34、&<=0*cf) dispone(*s);+;s+;. z-第5章 軟件調(diào)試5.1 程序的檢測與調(diào)試 Keil軟件簡介Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、構(gòu)造性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時
35、更能表達(dá)高級語言的優(yōu)勢。單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,我們寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種Keil軟件圖標(biāo)是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方法了。機(jī)器匯編是通過匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷開展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機(jī)的開發(fā)軟件也在不斷開展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機(jī)的軟件,這從近年來各仿真機(jī)廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在的
36、完整開發(fā)方案,通過一個集成開發(fā)環(huán)境uVision將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WIN*P等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機(jī)的愛好者來說是十分必要的,如果你使用C語言編程,則Keil幾乎就是你的不二之選目前在國你只能買到該軟件、而你買的仿真機(jī)也很可能只支持該軟件,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會令你事半功倍。 編制單片機(jī)應(yīng)用程序的步驟和難點如何編寫單片機(jī)應(yīng)用程序,這是一個實踐性很強(qiáng)的題目,也是一項艱辛而細(xì)
37、致的工作。如果按照一定的步驟并且找出難點,事先對這些難點加以處理,能夠收到事半功倍的效果。下面是開發(fā)中必經(jīng)的幾個步驟和可能遇到的難點的處理。編制步驟:1搞清功能和編寫方案接到一個單片機(jī)工程設(shè)計之后,并不是馬上動手編寫程序,而是仔細(xì)研究技術(shù)要求或者技術(shù)說明,根據(jù)這些技術(shù)要求和技術(shù)說明,把程序應(yīng)該具備的主要功能寫清楚,寫仔細(xì),這是最關(guān)鍵的工作,否則在設(shè)計完成以后會發(fā)現(xiàn)有些功能由于事先沒有考慮清楚再重新設(shè)計將會很麻煩,可能有些需要重新增加的功能很容易補(bǔ)充,而有些可能由于沒有事先考慮周全而無法實現(xiàn)。2編寫總流程圖和各功能模塊流程圖根據(jù)要完成的程序功能寫出總流程圖,根據(jù)總流程圖把整個程序劃分成幾個主要的
38、功能模塊,每個功能模塊都要寫出根本流程圖,這主要是為以后的程序編寫起到一個指導(dǎo)作用。當(dāng)然,在實際的程序編寫過程中肯定會有一些改動,一個根本的流程會指導(dǎo)寫程序的過程中不會出現(xiàn)太大的偏差。3準(zhǔn)備編程所需的資料 這些資料主要是編程語言方面的書籍、雜志等。因為程序語言的有些資料不可能記得太清楚,如每條指令的含義,具體操作每條指令所牽涉的硬件電路等。如果資料準(zhǔn)備得比較充分,可以放在案邊,假設(shè)有需要,順手查閱。4分析編程的難點和技術(shù)解決方案為了能比較順利地完成程序設(shè)計,應(yīng)根據(jù)程序所完成的功能和程序流程對整個程序的框架分析一下,并根據(jù)自己掌握的技能定位整個程序的難點,然后找到最正確的算法。5寫程序在上面的準(zhǔn)
39、備工作完成后,就可以著手編寫程序。因為有了明確的程序流程,有了充足的資料,可能遇到的難點根本上找到了解決方法。這樣,事先準(zhǔn)備得比較充分,即使在以后的程序編寫過程中遇到困難,也較易解決。這樣就可以節(jié)省很多時間,以便靜下心來認(rèn)真按照方案和流程編寫程序。另外,一般寫完一個功能程序就進(jìn)展調(diào)試,通過后再編寫另外一個功能代碼,這樣可以防止全部代碼編寫完畢后再調(diào)試可能帶來的相互影響,從而可以搞清楚到底是哪局部程序有問題。7程序調(diào)試單擊Project菜單項,選擇New Project項;此時彈出Create New Project對話框,選擇適宜的路徑口,在文件名一欄中填入新工程的名字。單擊保存;根據(jù)所用的器
40、件,選擇CPU的型號,單擊確定;Keil51詢問是否生成默認(rèn)的配置文件,這個可選可不選,這里選定。單擊Yes,觀察工程文件管理窗口的變化;在File菜單下單擊New選項,新建文件。此時在代碼窗口出現(xiàn)一“Te*t1空白文檔;在“Te*t1中編輯完代碼后,單擊File菜單中的保存項,彈出保存對話框。保存名寫為te*t.c。單擊保存。注意在對文件命名時必須加擴(kuò)展名; 在工程導(dǎo)航欄中Source Group 上單擊右鍵,選Add File to Group Source Group 1;此時彈出Add File 對話框。選中剛剛保存的te*t.c文件。單擊Add。 此時在工程文件管理窗口中就會出現(xiàn)剛剛
41、所添加的文件te*t.c;單擊快捷菜單欄中的編譯按鈕 ,可以編譯程序;單擊Project菜單項,選擇Option for Target Target 1選項。 在彈出的對話框中可以對Project進(jìn)展總體配置;選擇Output 選項卡,單擊Create HE* File ,代碼輸出格式應(yīng)為HE*-80 ; 單擊確定后,并重新編譯??梢钥吹骄幾g成功之后,Build 選項卡里又多了一項。這是生成的HE* 文件;單擊Debug 菜單項中的Start/Stop Debug Session 命令或工具欄中的進(jìn)入調(diào)試界面;單擊調(diào)試界面Debug 菜單項中的Go命令或工具欄中的運行 程序,單擊Stop Ru
42、nning 命令或完畢程序。觀察運行結(jié)果。圖5-1 程序運行調(diào)試圖5.2 系統(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è)計流程如圖5-2所示。當(dāng)完成原理圖布線后,利用PROTEUS ISIS編輯環(huán)境所提
43、供的電器規(guī)則檢查命令對設(shè)計進(jìn)展檢查,并根據(jù)系統(tǒng)提供的錯誤檢查報告修改原理圖。直到通過電器規(guī)則檢查為止。單片機(jī)系統(tǒng)的仿真是PROTEUS VSM的一大特色,同時,本仿真系統(tǒng)將源代碼的編輯和編譯整合到同一設(shè)計環(huán)境中,這樣使得用戶可以在設(shè)計中直接編輯代碼,并且很容易地查看到用戶對源程序修改后對仿真結(jié)果的影響。源代碼通過編譯無誤后,就可以進(jìn)展仿真,在仿真過程中不斷完善電路和程序的功能最后到達(dá)本次設(shè)計的目的。新建立計文檔設(shè)置編輯環(huán)境原理圖布線放置元器件電器檢查建立網(wǎng)絡(luò)表是否合格.完畢Y存盤、報表輸出調(diào)整N開場圖5-2 原理圖設(shè)計流程圖程序的查錯手段 單片機(jī)的應(yīng)用系統(tǒng)均需借助對應(yīng)的開發(fā)系統(tǒng)或裝置進(jìn)展在線仿
44、真,對應(yīng)用系統(tǒng)的軟,硬件進(jìn)展全面地檢測與調(diào)試。各種開發(fā)系統(tǒng)或裝置均提供以下查錯手段。1單步執(zhí)行采用單步執(zhí)行操作可對應(yīng)用程序每步執(zhí)行一條指令,可逐條檢查這一段程序的執(zhí)行過程是否符合原設(shè)計要求??芍苯硬槌鲥e誤所在。宏單步可執(zhí)行一段程序,如一步就可執(zhí)行完整個循環(huán)程序段。2斷點設(shè)置全速運行可在程序有疑慮的地方設(shè)置斷點,從設(shè)置的起始地址開場,以全速或非全速方式向設(shè)定的斷點處運行。如果這段程序無語法或邏輯上的錯誤,則連續(xù)運行到設(shè)置的斷點處停頓運行,返回監(jiān)控狀態(tài)。如果有錯誤,則在錯誤處停頓運行,如果進(jìn)入死循環(huán)或者程序跑飛,就會永不停頓運行。全速斷點運行為檢查實時性及中斷響應(yīng)處理等提供了方便。3顯示器窗口檢查
45、4實時跟蹤記錄除上述之外,還有以下功能:l 符號化調(diào)試。在原程序中一般均以符號地址,標(biāo)號等出現(xiàn),通過匯編自動進(jìn)展變換和調(diào)整,偏移量等均可自動換算和填入。l 程序的運行。l 自動生成目標(biāo)代碼和固化。調(diào)試仿真電路圖見附錄2. z-第6章 結(jié)論該設(shè)計通過對設(shè)計出來的板子進(jìn)展調(diào)試,驗證了理論分析結(jié)果的正確性。此次課程設(shè)計經(jīng)過為期一段時間的不懈努力,到達(dá)了預(yù)期的要求。通過對整個系統(tǒng)的調(diào)試,可得到如下結(jié)論:本系統(tǒng)是一個可測量自行車?yán)锍毯推骄俣鹊淖孕熊嚴(yán)锍瘫怼@斫饬俗孕熊嚴(yán)锍碳捌淦骄俣鹊挠嬎?。里程與速度分別根據(jù)以下公式求得:里程=脈沖總數(shù)×車輪周長速度=車輪周長/車輪轉(zhuǎn)一圈所用的時間通過實驗證
46、明本次設(shè)計符合設(shè)計的要求,能實現(xiàn)對里程、速度的顯示,功能性較強(qiáng),具有一定的實踐意義,將會在許多場合應(yīng)用。不過,這個設(shè)計還是有它的缺乏之處。首先就是電路設(shè)計有些復(fù)雜,元器件種類有點多,它們會消耗掉一定的電力。另外就是對自行車的控制不是很全面,對測定自行車的瞬時速度等方面我們還未做到。第7章辭本次畢業(yè)設(shè)計是在指導(dǎo)老師江教師的指導(dǎo)下完成的。忙碌了兩個多月,我的畢業(yè)設(shè)計課題也終將告一段落。編譯程序時點擊運行,也根本到達(dá)預(yù)期的效果,虛榮的成就感在沒人的時候也總會冒上心頭。但由于能力和時間的關(guān)系,總是覺得有很多不盡人意的地方,可是,我又會有點自戀式地?fù)嵛孔约海鹤鲆患虑椋槐剡^于在乎最終的結(jié)果,可貴的是過
47、程中的收獲。以此語言來安撫我尚沒平復(fù)的心。畢業(yè)設(shè)計,也許是我大學(xué)生涯交上的最后一個作業(yè)了。想籍次時機(jī)感在校期間二年以來給我?guī)椭乃薪處?、同學(xué),你們的友誼是我人生的財富,是我生命中不可或缺的一局部。我的畢業(yè)指導(dǎo)老師江教師,她不僅是我的任課教師,還是我的畢業(yè)指導(dǎo)教師,在課堂上教會了我很多知識,畢業(yè)設(shè)計還不厭其煩的指導(dǎo),并提供了很多與該設(shè)計相關(guān)的重要信息,培養(yǎng)了我們對做事認(rèn)真嚴(yán)謹(jǐn),積極進(jìn)取的精神。這將非常有利于我們今后的學(xué)習(xí)和工作。在此表示衷心的感!本次畢業(yè)設(shè)計還得到了課題組的各位教師的大力協(xié)助,在此一并表示我們的感!. z-參考文獻(xiàn)1友德,志英,涂時亮. 單片微型機(jī)原理、應(yīng)用與實驗M.;復(fù)旦大學(xué)
48、,2000.12-142勒達(dá). 單片機(jī)應(yīng)用系統(tǒng)開發(fā)實例導(dǎo)航M.:人民郵電,2003.54-563薛鈞義,彥斌. 單片微型計算機(jī)及其應(yīng)用D.:交通大學(xué),2001.104-1064田漢波.一種基于霍爾傳感器的直流電機(jī)轉(zhuǎn)速測量方法J.機(jī)械與電子,2007(1).31-335繼生.霍爾傳感器A44E在車輪測速中的應(yīng)用研究J.電子測量技術(shù),2021,(10).100-1026何立民.單片機(jī)應(yīng)用技術(shù)選編M.:航空航天大學(xué),1996.47-487蔡美琴.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用M.:高等教育, 1992.54-578偉斌.8051系列單片機(jī)應(yīng)用手冊M.:科學(xué), 1997.76-799馬家辰.MCS
49、-51單片機(jī)原理及接口技術(shù)M.:工業(yè)大學(xué),1997.123-12510藏海河.單片機(jī)原理及應(yīng)用M.:大學(xué),2004.35-3711文秀.單片機(jī)仿真J.中國學(xué)術(shù)期刊,2004,6(5).56-61.12雪梅.單片機(jī)軟件的抗干擾設(shè)計J.中國學(xué)術(shù)期刊,2006,3(8).18-25.13Joseph.A method of developing 80C552 microcontroller on MCS-51 deviceJ.East China Institute of Metallurgy,1998 ,14(27).101-125.14Intel.Interfacing an MCS-51 Mi
50、crocontronller to an 82527 CAN ControllerJ. IondonMacmillan PRESS LTD,1996,5(80).32-40.15Philips Semiconductors.The IC-Bus Specification Version(2.1)J.USA,2000,17(35).71-83.附錄1 硬件設(shè)計原理圖附錄2 硬件電路仿真圖附錄3 軟件程序*include <reg52.h>*include <string.h>*include <intrins.h>*define uchar unsigned
51、 char*define uint unsigned int sfr ISP_DATA=0*e2; sfr ISP_ADDRH=0*e3; sfr ISP_ADDRL=0*e4; sfr ISP_CMD=0*e5; sfr ISP_TRIG=0*e6; sfr ISP_CONTR=0*e7; sbit C_sound=P34;void delay(uint z);sbit K1=P10;sbit K2=P11;sbit K3=P12;sbit K4=P13;sbit P33=P33;sbit RS=P37;sbit RW=P36;sbit E=P35;sbit busy=P27;unsigne
52、d int i,qsls;unsigned long sj,totallc,pjsd,qs2,ssji,sji,sd2,m*sd,m*sd2,tc;uchar *s,qs,as,bs,cs,gw,sw,bw,qw,ww,sww,ssj,MODE,tr1,tr2,number3=0;void EEPROM_ERASE(uchar addr_h)ISP_ADDRH=addr_h;. z-ISP_ADDRL=0*00;EA=0;ISP_CONTR=0*81;ISP_CMD=0*03;ISP_TRIG=0*46;ISP_TRIG=0*b9;_nop_();_nop_();ISP_CONTR=0*00;ISP_CMD=0*00;ISP_TRIG=0*00;EA=1;void EEPROM_L*RD(uchar addr_h,uchar a
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技產(chǎn)業(yè)園區(qū)發(fā)展與城市經(jīng)濟(jì)影響研究
- 2025年度智慧農(nóng)業(yè)工程款代付三方協(xié)議4篇
- 教育行業(yè)技術(shù)創(chuàng)新實踐分享
- 智能化辦公環(huán)境下的創(chuàng)新思維提升
- 二零二五版臨時臨時施工現(xiàn)場租賃協(xié)議4篇
- 海鹽二手房買賣合同2025年度房屋質(zhì)量保證合同3篇
- 二零二五版回遷房購買合同及物業(yè)服務(wù)合同3篇
- 二零二五年度直播平臺主播服務(wù)合同2篇
- 水電安裝工程2025年度承包協(xié)議2篇
- 個性化小吃店承包協(xié)議模板2024年版版
- 我的家鄉(xiāng)瓊海
- (2025)專業(yè)技術(shù)人員繼續(xù)教育公需課題庫(附含答案)
- 《互聯(lián)網(wǎng)現(xiàn)狀和發(fā)展》課件
- 【MOOC】計算機(jī)組成原理-電子科技大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年上海健康醫(yī)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- 2024年湖北省武漢市中考語文適應(yīng)性試卷
- 非新生兒破傷風(fēng)診療規(guī)范(2024年版)解讀
- EDIFIER漫步者S880使用說明書
- 皮膚惡性黑色素瘤-疾病研究白皮書
- 從心理學(xué)看現(xiàn)代家庭教育課件
- C語言程序設(shè)計PPT(第7版)高職完整全套教學(xué)課件
評論
0/150
提交評論