




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄展。1系統(tǒng)基本方案選擇1.1單片機的選擇51系列單片機源于Intel公司的MCS-51系列,在Intle公司將MCS-51系列單片機實行技術開放政策之后,諸如Atmel,STC,Dallas,華邦,LG,Siemens等都以MCS-51中的基礎結構8051為基準推出各種型號的兼容型單片機統(tǒng)稱為51系列單片機[1]。1.1.1AVR系列簡介AVR單片機是Atmel公司推出的較為新穎的單片機,特點是高性能,高速度,低功耗,取消了機器周期,以時鐘周期為指令周期,實行流水作業(yè)。大部分指令為單周期指令,而單周期的指令既可以執(zhí)行本指令功能,同時完成下一條指令的讀取,時鐘頻率用4-8MHz,故最短指令執(zhí)行時間為250-125ms。主要類型有以下三種:AT90s2313(簡裝型),AT90S8515,AT90S8535(帶A/D轉換)[2]。在51系列中,所有的邏輯運算都必須在A中進行,而AVR卻可以在任意兩個寄存器中進行,省去了在A中的反復,這些都比51系列強。1.1.2PIC系列簡介PIC單片機系列是美國微芯公司(Microship)的產品,是當前市場份額增長最快的單片機之一。CPU采用RISC結構,分別有33,35,38條指令(視單片機的級別而定),屬精簡指令集。而51系列有111條指令,AVR有118條指令,都比前者復雜。采用Harvard雙總線結構,運行速度快,屬于指令流水線結構,在一個周期完成執(zhí)行指令和從程序存儲器取出下一條指令。具有低工作電壓,低功耗,驅動能力強等特點。在編程過程中,少不了要與專用寄存器打交道,得反復選擇對應的存儲體,給編程帶來了一定的麻煩[3]。1.1.351系列應用最為廣泛的八位單片機當屬Intel的51系列,由于產品硬件結構合理,指令系統(tǒng)規(guī)范,世界有許多著名芯片公司購買了51系列芯片的核心專利技術,并在其基礎上進行性能上的擴充,使得芯片得到進一步的完善,形成了一個龐大的體系。51系列優(yōu)點之一是它從內部的硬件到軟件有一套完整的按位操作系統(tǒng),統(tǒng)稱為位處理器,或布爾處理器它的處理對象不是字或字節(jié)而是位。它不光能對片內某些特殊功能寄存器的某位進行處理,如傳送,置位,清零,測試等,還能進行位的邏輯運算,其功能十分完備。在一個較復雜的程序在運行工程中會遇到許多的分支,因而需要建立許多標志位,在運行過程中,需對有關標志位進行置位,清零,或者檢測,以確定程序的運行方向。而實施這一處理(包括前面所有的位功能),只需用一條位操作指令即可。51系列的另一個優(yōu)點是乘法和除法指令,八位除以八位的除法指令,商為八位,而八位乘八位的乘法指令,其值為十六位,精度可以滿足大多數的要求,用的較多。考慮到大學所開課程,曾系統(tǒng)的學習過51單片機原理,以及其成本低,所設計的電子指南針處理速率的要求,所以選擇51單片機來做主控制器。在市場上選擇了主流的STC公司的89C52來做開發(fā)。1.2磁阻傳感器的選擇1.2.1Honeywell三軸磁阻傳感器HMC5883L[4]。如圖1.1。圖1.1HMC5883L實物圖特點:(1)數字量輸出:I2C數字量輸出接口,設計使用非常方便。(2)尺寸小:3x3x0.9mmLCC封裝,適合大規(guī)模量產使用。(3)適用于消費類電子設備應用中通用雙線串行數據接口。 (4)符合RoHS標準。(5)可獲得羅盤航向、硬磁、軟磁以及制自動校準庫。(6)精度高:1-2度,內置12位A/D,OFFSET,SET/RESET電路,不會出現磁飽和現象,不會有累加誤差。(7)支持自動校準程序,簡化使用步驟,終端產品使用非常方便,有相應軟件及算法支持。(8)最大輸出頻率可達160Hz。(9)內置自測試電路,方便量產測試,無需增加額外昂貴的測試設備。(10)帶有設置/復位和偏置驅動器用于消磁、自測和偏移補償。(11)功耗低:供電電壓1.8V,功耗睡眠模式--2.5mA測量模式--0.1mA。(12)價格在7到10元之間。1.2.2Honeywell磁阻傳感器HMC1501,如圖1.2。圖1.2HMC1501實物圖特點:(1)永磁產生材料不需稀土磁鋼,只要用鋁鎳鈷或陶瓷型磁鋼,價格便宜。(2)具有寬角度量程(±45°),0.07°的最小分辨率。(3)8mm的有效線性區(qū),多個器件時可以增加區(qū)間。絕對靈敏,不用于增量“編碼”器件,HMC1501可以精確走位,無需遍索引。非接觸,無磨損,不會因轉動機械傳感器磨損而降低訊號。小包裝,8腳表面貼裝,尺寸5×4×1.2mm,可以在小于6mm的空間工作。大訊號輸出:在5伏電源時有120mV的滿量程輸出。價格在30元左右。1.2.3HoneywellHMC1001/1002單、雙軸磁阻傳感器。如圖1.3。圖1.3HMC1501實物圖特點:磁場范圍高至6高斯(地磁場=0.5高斯)。封裝尺寸小。設計成單軸和雙軸可組合在一起工作從而提供3軸(xyz)傳感。單軸傳感器封裝在8針SIP或8針SOIC,或陶瓷8針DIP內。雙軸傳感器封裝在16針或20針SOIC封裝內。這類小型裝置相比于機械磁通門大大降低了裝配成本并提高了可靠性和耐用性。價格便宜,這類傳感器經專門設計對于大批量的OEM應用價格合適,市場價格100-500元。考慮到所選擇的單片機為51系列,課程設計所要求的精度及成本問題,所以選擇了Honeywell公司的HMC5883L磁阻傳感器來做課程設計。2主要元器件介紹2.1主控制器STC89C52介紹STC89C52是STC公司生產的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。STC89C52使用經典的MCS-51內核,兼容標準MCS-51指令系統(tǒng)及80C51引腳結構,高性能8位單片機AT89C52是一個低功耗,高性能CMOS8位單片機,片內含8kBytes的可反復擦寫1000次的Flash只讀程序存儲器,,做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。具有以下標準功能:8k字節(jié)Flash,512字節(jié)RAM,32位I/O口線,看門狗定時器,內置4KBEEPROM,MAX810復位電路,3個16位定時器/計數器,4個外部中斷,一個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口。另外STC89C52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時器/計數器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。2.2磁阻傳感器HMC5883L介紹霍尼韋爾HMC5883L是一種表面貼裝的高集成模塊,并帶有數字接口的弱磁傳感器芯片,應用于低成本羅盤和磁場檢測領域。HMC5883L包括最先進的高分辨率HMC118X系列磁阻傳感器,并附帶霍尼韋爾專利的集成電路包括放大器、自動消磁驅動器、偏差校準、能使羅盤精度控制在1°~2°的12位模數轉換器.簡易的I2C系列總線接口。HMC5883L是采用無鉛表面封裝技術,帶有16引腳,尺寸為3.0*3.0*0.9mm。HMC5883L的所應用領域有手機、筆記本電腦、消費類電子、汽車導航系統(tǒng)和個人導航系統(tǒng)。霍尼韋爾HMC5883L磁阻傳感器電路是三軸傳感器并應用特殊輔助電路來測量磁場。通過施加供電電源,傳感器可以將量測軸方向上的任何入射磁場轉變成一種差分電壓輸出。磁阻傳感器是由一個鎳鐵(坡莫合金)薄膜放置在硅片上,并構成一個帶式電阻元件。在磁場存在的情況下,橋式電阻元件的變化將引起跨電橋輸出電壓的相應變化。這些磁阻元件兩兩對齊,形成一個共同的感應軸(如圖2.1所示),隨著磁場在感應方向上不斷增強,電壓也會正向增長。因為輸出只與沿軸方向上的磁阻元件成比例,其他磁阻電橋也放置在正交方向0上,就能精密測量其他方向的磁場強度。箭頭標明磁場方向,該磁場在正常測量模式下產生正向輸出可讀。2.2.1I2C通信HMC5883LL通過兩線I2C總線系統(tǒng)作為一個從機裝置進行通信。HMC5883LL使用是一個I2C協(xié)議所定義的簡化后的通信接口協(xié)議,通過這一文件,。數據傳輸速率是標準模式100kbps或400kbps速率,如I2C總線規(guī)格中所規(guī)定。總線位格式是一個8位數據/地址傳送和1位應答位。格式的數據字節(jié)(有效載荷)應區(qū)分HMC5883L從機上的大小寫的ASCII字符或二進制數據,以及返回的二進制數據。負二進制值將是以二進制的補碼形式。默認(出廠)HMC5883LL7位從機地址為0x3C的寫入操作,或0x3D的讀出操作。圖2.1HMC5883L-頂視圖HMC5883L引腳配置表,如表1所示。表1HMC5883L引腳配置表引腳名稱描述1SCL串行時鐘-I2C主從時鐘2VDD供電端2.16V-3.6V3NC空引腳4S1與電源供電引腳相連5NC空引腳6NC空引腳7NC空引腳8SETP與S/R電容器C2相連,連驅動端9GND接地10C1與儲能電容器C1相連11GND接地12SETC與S/R電容器C2相連-驅動端13VDDIOI/O口供電14NC空引腳15DRDY數據準備,中斷引腳。內部拉高。可選的連接。保持250μ秒時,數據被放置在數據輸出寄存器。16SDA串行數據–I2C主從數據圖2.2HMC5883L外圍電路圖2.3實際尺寸的由HMC5883L構成的傳感器模塊HMC5883LL串行時鐘(SCL)和串行數據(SDA)線需要主機(通常是主機微處理器)和HMC588LL之間裝有上拉電阻(Rp)。在標稱VDDIO電壓下建議負載電阻值約為10千歐姆。其他電阻值也可以由I2C總線規(guī)格定義后連接到VDDIO上。總線規(guī)格的SCL和SDA線可以連接到多個裝置上。總線可以是一個單一主機到多個從機,也可以是一個多個主機配置。所有數據傳輸均由產生時鐘信號的主機發(fā)起,數據傳輸是8位進行。所有裝置都由I2C唯一的7位地址標注。在每8位傳輸之后,主機裝置產生一個第9個時鐘脈沖,并釋放SDA的線。接收裝置(指向的從機)將SDA線拉至低位確認(ACK)傳輸成功或使SDA線處于高位表示否定確認(NACK)。按I2C規(guī)格,所有SDA線中的傳輸必須發(fā)生在SCL低時。但當SCL處于高位時,在總線上與SDA傳送時這一要求會導致兩種特別的情況。主機將拉SDA拉低,而SCL線是高,表明開始(S)的條件;當SDA的線被拉高而SCL處于高位,這是停止(P)的情況。I2C總線協(xié)議還允許重新啟動的條件,這時主機發(fā)出第二次啟動條件還沒有叫停。所有總線傳送從主機發(fā)出啟動序列開始,然后發(fā)出從機地址字節(jié)。地址字節(jié)包含從機地址;先7位和最低有效位。如果指定的運作是一個讀出或寫入,地址的LSb字節(jié)會標志出來。在第9個時鐘脈沖,接收的從機裝置會發(fā)出ACK。這些總線事件以后,主機將發(fā)送數據字節(jié)以便寫入操作,或從機在讀出操作時進行時鐘輸出。所有總線的傳送在主機發(fā)出停止序列時終止。2.2.2連續(xù)測量模式連續(xù)測量模式,在客戶所選擇的速率下進行連續(xù)的測量,并所測量的更新數據輸出寄存器。如果有必要,數據可以從數據輸出寄存器重新讀取,但是,如果主機并不能確保在下次測量完成之前可以訪問數據寄存器,數據寄存器上的舊的數據會被新的測量數據取代。為了保存測量之間的電流,該裝置被放置在一個類似閑置模式的狀態(tài),但模式寄存器沒有改變成空閑模式。即MD[n]位不變。配置寄存器A的設置在連續(xù)測量模式時會影響數據輸出速率(比特DO[n]),測量配置(bitsMS[n]),和增益(bitsGN[n])。所有寄存器在連續(xù)測量模式中保留數值。在連續(xù)測量模式下I2C總線可被網絡內的其他裝置啟用[5]。2.2.3數據處理HMC5883L能測量X,Y,Z三個方向的數據,這三個方向是正交的,對這三個方向的數據進行處理可以得到磁場的角度,每個方向擁有兩個八位的數據寄存器A和B,寄存器A中儲存一個測量結果中的高位數據,寄存器B中儲存一個自測量結果的低位數據,這兩個寄存器中的值是以二進制補碼形式存在的十六位,其范圍是0XF800到0X07FF。因為Z軸垂直于磁場,所里理論上等于零,只需要X,Y的值就可以算出角度來,公式為angle=arctan(X/Y)[6]。2.31602LCD液晶顯示器1602LCD工業(yè)字符型液晶,能夠顯示16*2即32個字符。即16列兩行。是一種專門用來顯示字母,數字,符號等的點陣型液晶。由若干個5*7或者5*11等點陣字符位組成,每個字符位都可以顯示一個字符,每位之間有一個點陣的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。圖2.41602LCD實物圖1602LCD主要技術參數:顯示容量:16×2個字符芯片工作電壓:4.5—5.5V
工作電流:2.0mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95×4.35(W×H)mm引腳功能說明1602LCD采用標準的16腳(帶背光)接口,各引腳接口說明如表2所示。表21602LCD引腳功能編號符號引腳說明編號符號引腳說明1VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選擇12D5數據5R/W讀/寫選擇13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極3程序流程圖程序流程圖如圖3.1所示初始化系統(tǒng)初始化系統(tǒng)開始讀完?IC寫信號發(fā)設備地址IC停止連續(xù)讀取磁場數據IC讀信號發(fā)讀取單元地址是否顯示數據圖3.1程序流程圖4設計思路角度算法:angle1=arctan(2y/x)*(180/∏)+180指南針的角度指向正南方時為0度,指針的角度隨x軸順時針方向進行遞增,角度從0度到359度[7,8]。如圖4.1所示正南0度正東270度正西90度正北180度圖4.1指南針四方位正角5內部主要程序//*********************************************************//主程序********//*********************************************************voidmain(){unsignedinti,j;intx,y,z;doubleangle;InitLcd();Init_HMC5883();while(1){Multiple_Read_HMC5883();//連續(xù)讀出數據,存儲在BUF中x=BUF[0]<<8|BUF[1];//CombineMSBandLSBofXDataoutputregisterz=BUF[2]<<8|BUF[3];//CombineMSBandLSBofZDataoutputregistery=BUF[4]<<8|BUF[5];//CombineMSBandLSBofYDataoutputregisterangle=atan2((double)y,(double)x)*(180/3.14159265)+180;//angleindegrees//顯示方位 if((angle<22.5)||(angle>337.5)) //South { DisplayOneChar(2,0,'S'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'u'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); Clear_char(); }if((angle>22.5)&&(angle<67.5)) //South-west { DisplayOneChar(2,0,'S'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'u'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); DisplayOneChar(7,0,'-'); DisplayOneChar(8,0,'W'); DisplayOneChar(9,0,'e'); DisplayOneChar(10,0,'s'); DisplayOneChar(11,0,'t'); Clear_char(); }if((angle>67.5)&&(angle<112.5)) //West { DisplayOneChar(2,0,'W'); DisplayOneChar(3,0,'e'); DisplayOneChar(4,0,'s'); DisplayOneChar(5,0,'t'); Clear_char(); }if((angle>112.5)&&(angle<157.5)) //North-West { DisplayOneChar(2,0,'N'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'r'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); DisplayOneChar(7,0,'-'); DisplayOneChar(8,0,'W'); DisplayOneChar(9,0,'e'); DisplayOneChar(10,0,'s'); DisplayOneChar(11,0,'t'); Clear_char(); }if((angle>157.5)&&(angle<202.5)) //North { DisplayOneChar(2,0,'N'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'r'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); Clear_char(); }if((angle>202.5)&&(angle<247.5)) //North-East { DisplayOneChar(2,0,'N'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'r'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); DisplayOneChar(7,0,'-'); DisplayOneChar(8,0,'E'); DisplayOneChar(9,0,'a'); DisplayOneChar(10,0,'s'); DisplayOneChar(11,0,'t'); Clear_char(); }if((angle>247.5)&&(angle<292.5)) //East { DisplayOneChar(2,0,'E'); DisplayOneChar(3,0,'a'); DisplayOneChar(4,0,'s'); DisplayOneChar(5,0,'t'); Clear_char(); }if((angle>292.5)&&(angle<337.5)) //South-East { DisplayOneChar(2,0,'S'); DisplayOneChar(3,0,'o'); DisplayOneChar(4,0,'u'); DisplayOneChar(5,0,'t'); DisplayOneChar(6,0,'h'); DisplayOneChar(7,0,'-'); DisplayOneChar(8,0,'E'); DisplayOneChar(9,0,'a'); DisplayOneChar(10,0,'s'); DisplayOneChar(11,0,'t'); Clear_char(); } angle*=10;//計算數據和顯示 conversion(angle); DisplayOneChar(2,1,'A'); DisplayOneChar(3,1,'n'); DisplayOneChar(4,1,'g'); DisplayOneChar(5,1,'l'); DisplayOneChar(6,1,'e');DisplayOneChar(7,1,':');DisplayOneChar(8,1,qian);DisplayOneChar(9,1,bai);DisplayOneChar(10,1,shi);DisplayOneChar(11,1,'.'); DisplayOneChar(12,1,ge);//延時for(i=0;i<50000;i++) for(j=0;j<10;j++);}}6實物演示圖6.1實物顯示度數56°指南針以正北方向為準,當顯示為0°時即為正北方。如圖6.1所示顯示為56°
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國脫毒紅薯木薯種植項目創(chuàng)業(yè)計劃書
- 中國計算機咨詢項目創(chuàng)業(yè)計劃書
- 中國境外通信設備項目創(chuàng)業(yè)計劃書
- 中國動脈壓迫止血器項目創(chuàng)業(yè)計劃書
- 中國電子商務采購項目創(chuàng)業(yè)計劃書
- 中國端游項目創(chuàng)業(yè)計劃書
- 畢業(yè)生個人簡歷表
- 畢業(yè)審計實習報告八篇
- 樂清保安考試題綱及答案
- 雞肉品質提升-洞察闡釋
- 配件供應技術服務和質保期服務計劃方案
- 《濟南市城鎮(zhèn)燃氣領域重大隱患判定指導手冊》
- 圖文高中英語語法if條件句If - Clauses
- 四川省安全員《A證》考試題庫及答案
- 職業(yè)生涯規(guī)劃書成長賽道
- 林木育種的種質與材質性狀評價
- 大模型在航空航天領域的應用:智能探索宇宙的無限可能
- 《直流電源》課件
- 內燃機車柴油機 課件 2-1-1 16V280型柴油機 固定件認知
- FMECA方法及工程應用案例
- 2023年專業(yè)英語四級真題試卷及答案(二)
評論
0/150
提交評論