




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、西華大學電氣信息學院智能化測控應用系統設計報告 1前言22總體方案設計32.1方案對比32.1.1 方案一32.1.2 方案二42.2方案論證42.3方案選擇53單元模塊設計63.1各單元模塊功能介紹及電路設計63.1.1 單元模塊功能介紹64軟件設計124.1軟件設計原理及設計所用工具124.1.1 制圖軟件Altium Designer Winter 09124.1.2 Keil仿真軟件134.2系統程序設計134.2.1 主程序流程圖144.2.2 主程序設計流程155系統調試166結論177總結與體會188謝詞199參考文獻20附錄121附錄222附錄323附錄4241前言 自行車被發
2、明及使用到現在已有兩百多年的歷史,這兩百年間人類在不斷的嘗試與研發過程中,將玩具式的木馬車轉換到今日各式新穎休閑運動自行車,自行車發展的目的也從最早的交通代步的工具轉換成休閑娛樂運動的用途。 隨著居民生活水平的不斷提高,自行車不再僅僅是普通的運輸、代步的工具,而是成為人們娛樂、休閑、鍛煉的首選。因此,人們希望自行車的功用更強大,能給人們帶來更多的方便。自行車里程速度表作為自行車的一大輔助工具也正是隨著這個要求而迅速發展的,其功能也逐漸從單一的里程顯示發展到速度、時間顯示,甚至有的還具有測量騎車人的心跳、顯示騎車人熱量消耗等功能。本設計采用了MCS-51系列單片機設計一種體積小、操作簡單的便攜式
3、自行車的速度里程表,它能自動地顯示當前自行車行走的距離及運行的速度。2總體方案設計根據本系統所要實現的功能為:1、設計以單片機和速度感器為核心的速度過高報警裝置。2、能實現自行車輪子圈數信號的檢測、傳輸和處理功能。3、當自行車速度超過一定值時報警。4、具有實時顯示速度值或里程值和速度超高報警功能。所以根據設計要求制定了以下兩種方案。2.1方案對比兩種方案的設計思路是相同的,只是在某些模塊上采用的形式不同,以下為兩種不同的設計方案的具體實現形式: 2.1.1 方案一89C52 共陰數碼管顯示選擇輪圈大小里程/速度顯示的選擇報警器 傳感器 復位電路時鐘信號圖2.1 方案一的原理框圖方案一中首先是對
4、自行車輪圈大小的選擇,再傳感器對自行車車輪圈數進行檢測;將檢測信號直接送進單片機,復位電路使單片機所有部位處于一個確定的初始狀態,并從這個狀態開始工作;時鐘電路為CPU提供時鐘脈沖;根據里程和速度的選擇來顯示電路用于顯示所測得的里程或速度,報警器是當速度超過預定值時報警。2.1.2 方案二信號復位電路89C52傳感器共陰數碼管顯示報警器時鐘信號圖2.2 方案二的原理框圖方案二系統工作時,傳感器采集到信號傳輸給單片機,單片機計數器統計脈沖個數,定時器記錄相應時間長度,經過運算,將行駛里程、平均速度送給共陰數碼管顯示。報警器是當速度超過預定值時報警。2.2方案論證測量一定時間間隔t里自行車車輪轉過
5、的圈數q。假設車輪周長為c,則速度V=c*q/t測量自行車車輪轉過一圈的時間t,則速度V=c/t本里程表是根據第一個原理計算速度的。方案一采用了傳感器具體的給出信號采集的方案,而且還增加了了輪圈大小的選擇,可以測量多種型號的輪圈,并且對里程顯示或者速度顯示有選擇,使使用者能自由選擇顯示里程還是速度,方案二比較的簡單沒有輪子大小的選擇,也就說這個系統只能測量一個型號的自行車。其中在傳感器方面我們也做出了比較和選擇紅外光電傳感器。把紅外對管分別安裝在自行車車輪的兩側,當車輪轉動時,輻條會阻擋紅外對管的光路,接收管輸出低電平,單片機根據此信號可計算里程、速度等。紅外對管的優點是測量精度高,缺點是安裝
6、比較復雜和容易受外來光線、灰塵等的影響。開關型霍爾傳感器。霍爾傳感器是利用霍爾效應把磁輸入信號轉換成電信號的器件。把開關型霍爾傳感器安裝在自行車貼近車輪的支架上,磁鋼安裝在輻條上,當磁鋼靠近霍爾傳感器的時候,傳感器輸出一個無抖動的低電平,單片機根據此信號可計算里程、速度等。霍爾傳感器的優點是穩定和安裝簡易,缺點是成本較高。干簧管。干簧管是一種磁敏的有觸點無源電子開關元件,應用在里程表上的原理與開關型霍爾傳感器類似,把干簧管安裝在自行車貼近車輪的支架上,磁鋼安裝在輻條上,當磁鋼靠近霍爾傳感器的時候,干簧管閉合,單片機根據此信號可計算里程、速度等。干簧管的優點是成本低廉和安裝簡易,缺點是比較脆弱和
7、不夠穩定。本里程表選用干簧管,穩定、安裝簡易。2.3方案選擇比較兩種方案可以看出,方案一和方案二的大概思路都差不多,只是單片機選擇和顯示模塊不同,而方案一的設計比較具體使用一些,他可以對多種型號的自行車進行檢測,二方案二只能測量一種型號的自行車,此外在里程和速度的顯示上方案一給出了比較明確的選擇,而方案二沒有,所以我們選擇了方案一做為本次課題的主要研究對象,本文也將注重介紹方案一的設計方法。3單元模塊設計 采用STC89C52為控制核心,主要功能模塊有:數據采集模塊選用干簧管傳感器,數據顯示選用共陰數碼管,里程和速度顯示的選擇以及輪子大小的設置用開關按鈕,超速報警選用蜂鳴器和發光二極管。3.1
8、各單元模塊功能介紹及電路設計 為完成自行車里程和速度顯示的設計,本系統采用單片機為控制核心,以實現便攜式里程速計儀的基本控制功能。系統主要功能內容包括:數據采集、數據處理、超速報警、數據顯示等。本系統設計采用功能模塊化的設計思想,系統主要分為總硬件和軟件的設計兩大部分。3.1.1 單元模塊功能介紹1 單片機最小系統電路在課題設計的速度控制系統設計中,控制核心是STC89C52單片機,該單片機為51系列增強型8位單片機,它有32個I/O口,片內含4K FLASH工藝的程序存儲器,便于用電的方式瞬間擦除和改寫,而且價格便宜,其外部晶振為12MHz,一個指令周期為1S。使用該單片機完全可以完成設計任
9、務,其最小系統主要包括:復位電路、震蕩電路以及存儲器選擇模式(EA腳的高低電平選擇),電路如下圖3.1所示:圖3.1 單片機最小系統(1)晶振電路單片機工作的過程中各指令的微操作在時間上有嚴格的次序,這種微操作的時間次序稱作時序,單片機的時鐘信號用來為單片機芯片內部各種微操作提供時間基準,89c52的時鐘產生方式有兩種,一種是內部時鐘方式,一種是外部時鐘方式。內部時鐘方式即在單片機的外部接一個晶振電路與單片機里面的振蕩器組合作用產生時鐘脈沖信號,外部時鐘方式是把外部已有的時鐘信號引入到單片機內,此方式常用于多片89C52單片機同時工作,以便于各單片機的同步,一般要求外部信號高電平的持續時間大于
10、20ns.且為頻率低于12MHz的方波。對于CHMOS工藝的單片機,外部時鐘要由XTAL1端引入,而XTAL2端應懸空。本系統中為了盡量降低功耗的原則,采用了內部時鐘方式。在89C52單片機的內部有一個震蕩電路,只要在單片機的XTAL1和XTAL2引腳外接石英晶體(簡稱晶振)就構成了自激振蕩器并在單片機內部產生時鐘脈沖信號,圖中電容器C1和C2穩定頻率和快速起振,電容值在530pF,典型值是22pF,晶振CYS選擇的是12MHz。(2)復位電路 復位的意義單片機開始工作的時候,必須處于一種確定的狀態,否則,不知哪是第一條程序和如何開始運行程序。端口線電平和輸入輸出狀態不確定可能使外圍設備誤動作
11、,導致嚴重事故的發生;內部一些控制寄存器(專用寄存器)內容不確定可能導致定時器溢出、程序尚未開始就要中斷及串口亂傳向外設發送數據。因此,任何單片機在開始工作前,都必須進行一次復位過程,使單片機處于一種確定的狀態。復位電路原理當在89C52單片機的RST引腳引入高電平并保持2個機器周期時,單片機內部就執行復位操作(若該引腳持續保持高電平,單片機就處于循環復位狀態)。2 里程和速度顯示的選擇以及輪子大小的選擇模塊(1)輪圈大小的選擇電路 圖3.2 輪圈大小的選擇電路通過對車輪大小的設計,就可以對不同型號的車子的數據進行檢測,特別是在硬件設計是原想通過按鈕來實現對尺寸大小的選擇,但是通過按鈕來實現的
12、方式比較復雜,本次設計使用的是雙排針來設置,通過P1.4,P1.5,P1.6,P1.7四個口來分別設置輪圈的大小,假設車輪周長為c,則速度V=c*q/t測量自行車車輪轉過一圈的時間t,則速度V=c/t本里程表是根據第一個原理計算速度的。通過圈數來統計里程。(2) 里程/速度顯示選擇電路 圖3.3 里程/速度顯示選擇電路通過一個六腳開關對里程還是速度顯示進行準確的選擇,P2.6口的開關來確定顯示的方式,當開關選擇在低電平是時即接地則是共陰數碼管顯示速度,當開關選擇在高電平時即接電源則共陰數碼管顯示里程。3 測量電路測量電路由干簧管傳感器和磁鐵組成。干簧管是一種磁敏的特殊開關。它的兩個觸點由特殊材
13、料制成,被封裝在真空 的玻璃管里。只要用磁鐵接近它,干簧管兩個節點就會吸合在一起,使電路導通。因此可以作為傳感器用,用于計數,限位等等。有一種自行車公里計,本次設計是在輪胎上粘上磁鐵,在一旁固定上干簧管構成的把磁鐵固定在自行車輪子上及跟隨輪子的轉動而轉動,再將干簧管固定在車輪旁邊,能與磁鐵反應的距離但是不能跟隨車輪轉動,不然不能計數,每當車輪的磁鐵經過干簧管的時候就將干簧管的開關吸合,產生一個數據信號給單片機,這就是對車輪圈數進行采集,通過單片機對此數據信號進行分析計算。4 數據顯示電路 圖3.4 數據顯示電路本次設計使用的是3位的共陰數碼管顯示器,在設計是注意區分這兩種不同的接法。為了顯示數
14、字或字符,必須對數字或字符進行編碼。七段數碼管加上一個小數點,共計8段。因此為顯示器提供的編碼正好是一個字節。本實驗板用共陰顯示器。 LED顯示器工作方式有兩種:靜態顯示方式和動態顯示方式。靜態顯示的特點是每個數碼管的段選必須接一個8位數據線來保持顯示的字形碼。當送入一次字形碼后,顯示字形可一直保持,直到送入新字形碼為止。這種方法的優點是占用CPU時間少,顯示便于監測和控制。缺點是硬件電路比較復雜,成本較高。 動態顯示的特點是將所有位數碼管的段選線并聯在一起,由位選線控制是哪一位數碼管有效。選亮數碼管采用動態掃描顯示。所謂動態掃描顯示即輪流向各位數碼管送出字形碼和相應的位選,利用發光管的余輝和
15、人眼視覺暫留作用,使人的感覺好像各位數碼管同時都在顯示。動態顯示的亮度比靜態顯示要差一些,所以在選擇限流電阻時應略小于靜態顯示電路中的。本次設計使用的是靜態顯示方式。 5 報警和儲存電路(1)報警電路 圖3.5報警電路 當自行車速度超過預設值時應及時采取報警措施,實現單頻音報警的接口電路比較簡單,其發音元件通常可采用壓電蜂鳴器,當在蜂鳴器兩引腳上加315V直流工作電壓,就能產生3kHZ左右的蜂鳴振蕩音響。壓電式蜂鳴器結構簡單、耗電少,更適于在單片機系統中應用。壓電式蜂鳴器,約需10mA的驅動電流,可在某端口接上一只三極管和電阻組成的驅動電路來驅動,如圖3.5所示。P2.7接三極管基極輸入端,當
16、P2.7輸出高電平“1”時,三極管導通,蜂鳴器的通電而發音,當P2.7輸出低電平“0”時,三極管截止,蜂鳴器停止發音。同時本次設計還將發光二極管放在報警電路中,當報警器發聲是同時發光二極管也導通而發光亮起來,起到更好的報警效果。(2) 存儲電路 圖3.6 存儲器電路 本次設計使用的是24C01存儲器,用于P1.0和P1.1EEPROM的存取控制。CAT24WC01/02/04/08/16 支持I2C 總數據傳送協議,I2C 總線協議規定,任何將數據傳送到總線的器件作為發送器。任何從總線接收數據的器件為接收器。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發送
17、器或接收器,但由主器件控制傳送數據發送或接收的模式,通過器件地址輸入端A0 A1 和A2 可以實現將最多8 個24WC01 和24WC02 。 這些輸入腳用于多個器件級聯時設置器件地址,當這些腳懸空時默認值為0 24WC01 除外。當使用24WC01 或24WC02 時最大可級聯8 個器件。如果只有一個24WC02 被總線尋址,這三個地 址輸入腳A0 A1 A2 可懸空或連接到電源, 如果只有一個24WC01 被總線尋址,這三個地址輸入腳A0,A1,A2 必須連接到電源。當使用24WC04 時最多可連接4個器件,該器件僅使用A1、 A2 地址管腳。A0 管腳未用,可以連接到電源或懸空。如果只有
18、一個24WC04 被總線尋址,A1 和A2 地址管腳可懸空或連接到電源。 當使用24WC16 時最多只可連接1 個器件,所有地址管腳A0 A1 A2 都未用,管腳可以連接到電源或懸空主器件通過發送一個起始信號啟動發送過程,然后發送它所要尋址的從器件的地址。接下來的3 位(A2 A1 A0)為器件的地址位,用來定義哪個器件以及器件的哪個部分被主器件訪問,1個CAT24WC16 可單獨被系統尋址。從器件8 位地址的最低位,作為讀寫控制位1,表示對從器件進行讀操作,0表示對從器件進行寫操作。在主器件發送起始信號和從器件地址字節后,CAT24WC01/02/04/08/16 監視總線并當其地址與發送的
19、從地址相符時響應一個應答信號(通過SDA 線)。CAT24WC01/02/04/08/16 再根據讀寫控制位R/W 的狀態進行讀或寫操作。4軟件設計本節將介紹本次設計中用到的Altium Designer Winter 09軟件、Keil軟件4.1軟件設計原理及設計所用工具 我們運用Altium Designer Winter 09軟件進行PCB制圖,用Keil軟件進行軟件程序編寫。4.1.1 制圖軟件Altium Designer Winter 09 Altium Designer Winter 09 提供了唯一一款統一的應用方案,其綜合電子產品一體化開發所需的所有必須技術和功能。Altiu
20、m Designer Winter 09 在單一設計環境中集成板級和FPGA系統設計、基于FPGA和分立處理器的嵌入式軟件開發以及PCB版圖設計、編輯和制造。并集成了現代設計數據管理功能,使得Altium Designer Winter 09成為電子產品開發的完整解決方案一個既滿足當前,也滿足未來開發需求的解決方案Altium 創新電子設計平臺集成了廣受好評的 Altium Designer Winter 09 一體化電子設計軟件和 Altium 可重構硬件平臺 NanoBoard 系列。 該方法將器件智能置于設計流程的核心。由此形成了一個完整的一體化電子設計環境,以全新的方式創建和推出智能型
21、關聯電子產品。 電子產品開發不再是獨立的流程。Altium Designer Winter 09 統一了整個設計流程,可在單一、集成的設計流環境中管理開發的所有方面。Altium發布了其新一代電子設計解決方案Altium Designer的最新版本Winter 09。Altium持續在市場上推出一系列設計新概念和新技術,開發先進技術,幫助電子產品設計人員更快更好地將設計轉化為產品。在最新版本Winter 09中,原來已有的三維PCB設計功能被提升到了一個更高速的新境界。新功能可以讓工程師管理從產品設計到制造的過程轉換,嘗試新的設計技術并得以深度挖掘可編程器件的潛力。新增加的應用控制面板幫助工程
22、師解決了FPGA測試上的難題,并可以遠程監控FPGA內的設計。新的即插即用型軟件平臺搭建器讓系統的整合更容易,同時提供在可編程器件的“軟”硬件環境里的一系列標準服務以供使用 Altium在最新的版本里擴充了其實時三維PCB設計功能。最新的版本支持三維建模的紋理映射,使設計師能過對設計板和元件進行表面處理。Altium提供增強的過孔功能,并允許在不同信號層上使用不同尺寸的焊盤。過孔的疊加可以支持更高的跟蹤密度。工程師還可以通過元件焊盤來實現過孔的偏移。所有上述的增強型功能都提高了PCB設計的精確性,并為設計板布線和可視化提供了新的設計思路通過Altium NanoBoard可重構硬件平臺,工程師
23、可以很容易地“整合”出硬件平臺上所需的軟件服務。這包括了電子設計中常見的設計元素:例如外設,通信模塊,和支持正常工作所需要的各種驅動規則(由NanoBoard提供)。這樣,基本但是必要的軟件模塊設計被簡化成拖放預先配置軟件模塊到設計中,工程師得到了解放,能夠真正地專注于核心的產品智能設計。軟件平臺搭建器提供一系列的驅動和軟件規則來支持通過NanoBoard設計平臺運行的外設。4.1.2 Keil仿真軟件Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發系統,與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。Keil提供了包
24、括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案,通過一個集成開發環境(uVision)將這些部分組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統。1.系統概述 Keil C51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。下面詳細介紹Keil C51開發系統各部分功能和使用。2.Keil C51單片機軟件開發系統的整體
25、結構C51工具包的整體結構,uVision與Ishell分別是C51 for Windows和for Dos的集成開發環境(IDE),可以完成編輯、編譯、連接、調試、仿真等整個開發流程。開發人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及C51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創建生成庫文件,也可以與庫文件一起經L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉換成標準的Hex文件,以供調試器dScope51或tScope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如EPROM中。4.2系統
26、程序設計硬件是控制系統的物質基礎,是軟件賴以生存的空間和活動場所,沒有硬件就沒有軟件的支持,軟件的功能就無從談起。同樣,軟件是控制系統的靈魂,其邏輯關系的正確與否直接關系到整個系統是否正確工作。設計硬件后并不意味著設計工作的大功告成,還必須去設計控系統的軟件,是硬件能夠“活”起來,能夠正常的完成既定的控制要求。軟件的編寫一般根據控制系統既定方案和控制要求來設計程序流程圖,這一步是必須的,這樣可以使后面程序的編寫更具方向性。下面簡單介紹一下該程序流程圖的編寫。4.2.1 主程序流程圖系統主程序流程圖如圖4.1所示:開始初始化設置特殊寄存器、置定時定時常數開中斷等待中斷設置計數器關鍵字刷新里程、速
27、度時間等INT0T0定時器秒自加1是否到1秒依次秒、分、時進位中斷開始否是中斷返回圖4.1 主程序流程圖4.2.2 主程序設計流程(1) 初始化程序 在本系統初始化程序中,主要完成,將部分內存單元清零,設置輪子周長值,開中斷及定時器,將EEPROM中的數據調入內存等。(2) 主程序主程序根據P2.7口的開關狀態選擇里程顯示或速度顯示,對14腳輸入的圈數脈沖進行計數,為十六進制計數器。每計數一次后,對里程數據進行一次存儲操作。(3) EEPROM存儲程序本系統使用歸一化IC串口存取子程序,使用一條數據線和時鐘線,采用ATMEL公司的24C01串口存儲器,應用簡單方便。(4) 顯示子程序當顯示里程
28、時,要先將圈數計數器中的數據進行運算,求出里程。當要顯示速度時,要將輪子的周長和轉一圈的時間相除,然后換算成Km/h單位。最后進行數據的顯示5系統調試 進行完硬件設計和軟件設計后,剩下的工作就是對所設計的控制系統進行調試了。系統的調試一般也分為兩步走,即軟件調試和軟硬件聯合調試。 第一步:軟件調試。對于編輯好的軟件程序,首先應在編輯的環境下進行編譯,檢查一下所編輯的程序是否存在語法上的錯誤。如果有語法方面的錯誤,一定要認真修改,直到編譯結果顯示零錯誤為止。應當指出,盡管最后編譯的程序提示沒有錯誤,也不能保證程序完全正確。是否還存在邏輯功能上的錯誤?能否讓控制系統實現預定的功能要求?要想驗證這兩
29、點就得進行下面第二部的調試。 第二部:軟硬件聯合調試。前面已指出,硬件是軟件的載體,軟件是硬件的靈魂,只有兩者結合才能實現我們想要的控制功能。首先應該認真檢查一遍硬件的線路,如檢查一下傳感器是否能正常檢測,LCD能否正常顯示等。這些沒有問題后,通過編程器將編譯好的程序下載到單片機中去,然后給系統上電,此時系統開始運行。將傳感器置于磁鐵旁引起傳感器反應,然后再經過一段時間在讓傳感器與磁鐵反應,讓其有數據信號輸出,在系統調試構成中,如果顯示部分部分不能正常工作,要認真的從硬件和軟件兩個方面著手進行故障排查工作,看是軟件與硬件邏輯不匹配還是硬件的連接問題,直到問題解決為止。如果顯示電路部分工作正常,
30、說明硬件部分設計合理,軟件部分設計滿足硬件的邏輯控制要求,達到了任務最初既定的控制要求,任務得以成功。6結論 自行車里程/速度計是自行車的功能更齊全和完善,避免因速度過快而引發的安全事故發,它是使生活和鍛煉更加有計劃的儀器,具有廣闊的市場空間與發展前景。 此次設計在對傳感器和報警技術進行深入研究的基礎上,全面比較國內外同類產品的技術特點,合理地確定系統的設計方案。并對儀器的整體設計和各個組成部分進行了詳細的分析和設計。 該里程/速度計是由信號采集電路與單片機控制電路兩大部分構成。根據設計要求、使用情況、成本等因素,選用干簧管傳感器。該傳感器是磁敏感器件。它的靈敏度適中,具有響應與恢復特性好,長
31、期工作穩定性、重現性、不易受環境影響及抗溫濕度影響等優點。 在系統單片機控制電路的設計上,采用了 STC89C52 單片機作為核心芯片,充分利用了其高速數據處理能力和豐富的片內外設,實現了儀器的小型化和智能化。使儀器具有結構簡單、性能穩定、體積小、成本低等優點。由于傳感器需要在運動狀態下工作,溫度越高,反應越快,響應時間和恢復時間就越快。為提高響應時間,保證傳感器準確地、穩定地工作,需要將傳感器的位置加固,避免數據檢測不靈敏和不能檢測。 在里程/速度計的設計中我們還特意加了報警器,當自行車速度超過一定值時候,發出聲音報警。 在此基礎上,可以再做適當的功能擴展,如還可以增加GPS導航功能,使自行
32、車在行駛中更加方便于知道自身的位置。7總結與體會 通過這次的課程設計我學到了很多,我們進行了一次較為完整、較規范的課程設計實踐,比較系統的鞏固了以前所學過的知識,由理論聯系實際并結合單片機原理課程來解決實際設計問題,鞏固、加深和擴展了有關單片機設計方面的理論知識。在這次的設計中很好的體現了團隊合作的重要性,由于這次的設計又要進行實物制作,還要編寫程序,也要制作設計報告,一個人完成這一系列的工作是比較困難的,這時,團隊的重要性就體現出來了,我們經過分工合作,一人負責一個部分,很快本次設計任務就圓滿的實現了。更加重要的是讓我們養成了進行科學實驗的習慣,在設計過程中一定要注意掌握設計進度,按預定計劃
33、完成階段性的目標,在原理圖設計階段,注意設計計算與結構設計畫圖交替進行,采用正確的設計方法。在整個設計過程中注意對設計資料和計算數據的保存和積累,保持記錄的完整性。 由于這一次設計的實踐,我們了解到,知識上的收獲重要,精神上的收獲更重要,讓我們明白了學無止境的道理。我們永遠都不應滿足于現有的成果,要一次一次的勇攀高峰,通過這次課程設計的實踐,我想在我們以后接觸類似設計的時候我們會有更好的表現,現在的我已經不再局限于只敢嘗試簡單的設計了,我會向更加有難度、有深度的設計方向發展,使自己得實踐動手能力和本身的知識面不斷的提升。 最后,在此衷心感謝謝老師對我們的幫助,從課題的選擇,電路的制作,元器件的
34、確定到電路板的制作,程序的編寫,功能的實現,老師一步一步指導我們前進,以完成這次的設計工作。8謝詞該課程設計是在我們的指導老師密切關心和悉心指導下完成的。老師在課題開題期間、實物制作和報告寫作的過程中給予了我們許多指導,他總是以認真負責、一絲不茍的工作態度指出我們不足的地方,他優良的作風和嚴謹治學的態度深深影響著我,至此,向古老師致以最真摯的感謝和最崇高的敬意!同時我們的組員也是很努力的在完成這次的設計,我們一起在這一個月里一起成長,一起學習,這然讓我們再一次懂得了團隊合作的重要性。9參考文獻1 李光飛、樓然苗.51系列單片機設計實例M.北京航空航天大學出版社,2003年3月 2 張毅剛.單片
35、機原理及應用M.高等教育出版社,20103 王幸之.AT89系列單片機原理與接口技術M.北京航空航天大學出版社,2004年5月 4 朱定華.單片機原理及接口技術M.電子工業出版社,2001年4月 5 趙茂泰.智能儀器原理及應用M.電子工業出版社,2004年2月 6 童詩白.模擬電子技術基礎(第四版)M.高等教育出版社,20067 周明德.微型計算機系統原理及應用(第四版) M.清華大學出版社, 2002 8 張洪潤.電子線路及應用M.北京:科學出版社, 2002 9 楊寶清.實用電路手冊M.北京:機械工業出版社, 200210杜樹春.單片機C語言和匯編語言混合編程實例詳解M.北京航空航天大學出
36、版社,200611宋素萍、睢丹.基于單片機的室內多功能檢測儀的研究J.微計算機信息,2007附錄1原理圖附錄2PCB圖附錄3實物圖附錄4主要程序33 頁 第#include "iic.h"/對uchar的宏定義/*Function: void write_byte(uchar add,uchar dat)Description:在24c02某一地址寫一位數據Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:add,datOutput;無Return:無Others:*/void write_byte(uchar
37、add,uchar dat);/*Function: write_page(uchar *buff,uchar n,uchar add)Description:在24c02某一地址開始,連續寫一數組Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:*buff(數組名),n(要寫數組的個數),add(開始寫的地址)Output;無Return:無Others:采用指針進行數組的讀操作*/void write_page(uchar *buff,uchar n,uchar add);/*Function: uchar read_byte(
38、uchar add)Description:從24c02中任一地址讀取一位數據(隨機讀)Calls:iic_star(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:add(讀數據的地址)Output;無Return:iOthers:使用隨機讀的方式,可對芯片內任一地址直接讀操作*/uchar read_byte(uchar add);/*Function: uchar read_page(uchar *buff,uchar n,uchar add)Description:從24c02中任一地址開始連續讀操作Calls:iic_sta
39、r(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:*buff(數組名),n(要讀數組的個數),add(開始讀的地址)Output;buffReturn:無Others:此函數之前需要定義一個合適大小的數組,調用本函數后,將24c02中數據讀進數組中*/void read_page(uchar *buff,uchar n,uchar add); #include <reg52.h>#include "iic.h"#include "24c02.h"/*Function: void w
40、rite_byte(uchar add,uchar dat)Description:在24c02某一地址寫一位數據Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:add,datOutput;無Return:無Others:*/void write_byte(uchar add,uchar dat)scl = 1; /初始化iic總線sda = 1;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);/寫地址上iic_ack();iicwr_byte(dat);/要寫的數據i
41、ic_ack();iic_stop();/*Function: write_page(uchar *buff,uchar n,uchar add)Description:在24c02某一地址開始,連續寫一數組Calls:iic_star(),iic_ack(),iicwr_byte(),iic_stop()Input:*buff(數組名),n(要寫數組的個數),add(開始寫的地址)Output;無Return:無Others:采用指針進行數組的讀操作*/void write_page(uchar *buff,uchar n,uchar add)uint i; iic_start();iicw
42、r_byte(0xa0);iic_ack();iicwr_byte(add);iic_ack();for(i=0;i<n;i+)iicwr_byte(buffi);/要寫的數據iic_ack(); iic_stop(); /*Function: uchar read_byte(uchar add)Description:從24c02中任一地址讀取一位數據(隨機讀)Calls:iic_star(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:add(讀數據的地址)Output;無Return:iOthers:使用隨機讀的方式,可對
43、芯片內任一地址直接讀操作*/uchar read_byte(uchar add)/隨機讀uchar i;scl = 1; /初始化iic總線sda = 1;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);iic_ack();iic_start();iicwr_byte(0xa1);iic_ack();i = iicre_byte();iic_noack();iic_stop();return i;/*Function: uchar read_page(uchar *buff,uchar n,uchar add)Description
44、:從24c02中任一地址開始連續讀操作Calls:iic_star(),iic_ack(),iicwr_byte(),iicre_byte(),iic_stop()Input:*buff(數組名),n(要讀數組的個數),add(開始讀的地址)Output;buffReturn:無Others:此函數之前需要定義一個合適大小的數組,調用本函數后,將24c02中數據讀進數組中*/void read_page(uchar *buff,uchar n,uchar add)uint i;iic_start();iicwr_byte(0xa0);iic_ack();iicwr_byte(add);iic_
45、ack();iic_start();iicwr_byte(0xa1);iic_ack();for(i=0;i<n;i+)buffi = iicre_byte();if(i!=n-1)iic_ack(); else iic_noack();iic_stop(); #include "reg52.h"#include "smg.h"unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c ,0x39 ,0x5e,0x79,0x71;/sbit
46、 wei4 = P10;sbit wei3 = P23;sbit wei2 = P22;sbit wei1 = P21;void delayn(unsigned int xx)unsigned int x,y;for(x=xx;x>0;x-)for(y=110;y>0;y-);void display(unsigned char num)/*wei4 = 0; P0 = tablenum/1000%10;delayn(10);wei4 = 1; */wei3 = 0; P0 = tablenum/100%10;delayn(5);wei3 = 1;wei2 = 0; P0 = ta
47、blenum/10%10;delayn(5);wei2 = 1;wei1 = 0; P0 = tablenum%10;delayn(5);wei1 = 1; #ifndef _smg_H_#define _smg_H_void delay_nms(unsigned int xx);void display(unsigned char num);#endif #include <reg52.h>#include "24c02.h"#include "smg.h"uchar code shuzu=0x0f,0x12,0x14,0x19; /用數組
48、 /內圈大小unsigned char hour,minute,second;unsigned char n,count;unsigned long lengthbuf,lengthvalue;sbit moshi=P26;sbit q1=P14;sbit q2=P15;sbit q3=P16;sbit q4=P17;sbit LED=P27;int timer();void Delay0(int Time);void delay1(void)/大約1ms延時,對24C02每讀or寫操作都有個過程,需要一個短延時uint a=1000;while(a-);void main(void)/uch
49、ar i;unsigned char i=0 ;unsigned int v=0; /運行速度unsigned char l; /內圈大小 unsigned int vnow; /當前速度/unsigned int a,b,c,d; /分別顯示速度的十位,個位,十分位,百分位unsigned long quanshu; /定義車輪轉動圈數unsigned long length;/length1,length2,length3,length4,length5,length6; /定義運行長度以及長度的各個進位,/unsigned int second1,second2,minute1,minute2,hour1,hour2;TMOD=0x51; /定時器T0,計數器T1,允許外部中斷,T1工作方式01,T0工作方式01 TH1=0x00; /計數器T1高位裝初值 TL1=0x00; /計數器T1低位裝初值 ET1=1; /計數器0開中斷 TR1=1; /計數器0開始工作 TH0=0XD8; /T0設置時間常數TL0=0XF0;ET0=1;EA=1;TR0=1;IT1=1; /外部中斷1請求觸發方式EX1=1;P0=0X00; /P0口裝初值,用于
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 60730-2-8:2025 EXV EN Automatic electrical controls - Part 2-8: Particular requirements for electrically operated water valves,including mechanical requirements
- 【正版授權】 IEC 60530:1975 EN-D Methods for measuring the performance of electric kettles and jugs for household and similar use
- 【正版授權】 IEC 60335-2-4:2023 EXV-RLV EN Household and similar electrical appliances - Safety - Part 2-4: Particular requirements for spin extractors
- 產品開發進度跟蹤表-新產品開發流程
- 薪資詳情與獎金補助證明書(6篇)
- 移民招聘考試試題及答案
- 醫院中級考試試題及答案
- 六一創意集體活動方案
- 六一夾珠子活動方案
- 醫學考試試題及答案詳解
- 《老年人認知記憶訓練》課件
- 一年級家長會課件2024-2025學年
- 2024年廣東省中考生物+地理試卷(含答案)
- 基于單片機的PWM直流電機調速系統設計
- 思想政治理論綜合實踐智慧樹知到答案章節測試2023年太原理工大學
- 資產托管業務流程
- 13.人物描寫一組《摔跤》說課稿
- 變態心理學習題答案完整版
- GB/T 19632-2005殯葬服務、設施、用品分類與代碼
- GA/T 850-2021城市道路路內停車位設置規范
- DB32T 4112-2021 建筑墻體內保溫工程技術規程
評論
0/150
提交評論