發布日期:2022-10-09 點擊率:46
【資源下載】下載地址如下:
1.本設計采用STC89C51/52(與AT89S51/52、AT89C51/52通用,可任選)單片機作為主控制器
2.采用霍爾傳感器非接觸式測電機轉速
3.LCD1602液晶顯示當前的轉速,轉速單位為轉/分(RPM)。和顯示當前的pwm占空比0~100%。
4.電機的速度可以通過按鍵調整,也可以開始暫停,正轉和反轉。
注意:磁鐵和霍爾元件最近距離在2mm左右,太近可能會在電機轉動時碰到霍爾元件,太遠霍爾元件可能會檢測不到磁鐵。
使用說明:
液晶屏第一行顯示電機轉速,第二行顯示占空比,占空比數值越大,電機轉速越快。
系統一共有6個按鍵,單片機附近的獨立按鍵是系統的復位按鍵,按下單片機會復位。
下面一排是控制按鍵:
1鍵:加速鍵,可以短按,占空比加1,也可長按,占空比連續加;
2鍵:減速鍵,可以短按,占空比減1,也可長按,占空比連續減;
3鍵:正轉切換鍵,按下后電機正轉;
4鍵:反轉切換鍵,按下后電機反轉;
5鍵:開始暫停鍵,按一下開始,再按一下暫停。
?
成績評定:
傳感器技術
課程設計
題 目 基于霍爾傳感器的轉速測量
摘 要
轉速是發動機重要的工作參數之一,也是其它參數計算的重要依據。針對工業上常見的發動機設計了以單片機STC89C51為控制核心的轉速測量系統。系統利用霍爾傳感器作為轉速檢測元件,并利用設計的調理電路對霍爾轉速傳感器輸出的信號進行濾波和整形,將得到的標準方波信號送給單片機進行處理。實際測試表明,該系統能滿足發動機轉速測量要求。
關鍵詞:轉速測量,霍爾傳感器,信號處理,數據處理
目 錄
一 、設計目的 1
二、設計任務與要求 1
2.1設計任務 1
2.2設計要求 1
三、設計步驟及原理分析 1
3.1設計方法 2
3.2設計步驟 2
3.3設計原理分析 16
四、課程設計小結與體會 16
五、參考文獻 16
一 、設計目的
學習基本理論在實踐中綜合運用的初步禁言,掌握模擬電路的設計的基本方法,設計步驟,培養綜合設計與實物調試能力。
學會霍爾傳感器的設計方法和性能指標測試。
進一步了解霍爾傳感器的組成框圖和各個單元的工作原理以及相互之間的聯系。
培養實踐技能,提高分析和解決問題的能力。
提高自己對文獻資料的搜索和信息處理能力。
二、設計任務與要求
2.1設計任務
查閱傳感器有關方面的相關資料,了解此方面的發展狀況。
2、掌握所用器件的特性。
3、采用合理的設計方案。
4、設計、實現該系統。
5、撰寫設計報告。
2.2設計要求
1.掌握霍爾傳感器的使用方法
2.熟悉使用單片機測量轉速
三、設計步驟及原理分析
3.1設計方法
系統由傳感器、信號預處理電路、處理器、顯示器和系統軟件等部分組成。傳感器部分采用霍爾傳感器,負責將電機的轉速轉化為脈沖信號。信號預處理電路包含待測信號放大、波形變換、波形整形電路等部分,其中放大器實現對待測信號的放大,降低對待測信號的幅度要求,實現對小信號的測量;波形變換和波形整形電路實現把正負交變的信號波形變換成可被單片機接受的TTL/CMOS兼容信號。 處理器采用STC89C51單片機,顯示器采用8位LED數碼管動態顯示。系統原理框圖如圖1所示:
圖1
系統軟件主要包括測量初始化模塊、信號頻率測量模塊、浮點數算術運算模塊、浮點數到BCD碼轉換模塊、顯示模塊、按鍵功能模塊、定時器中斷服務模塊。系統軟件框圖如圖2所示。
圖2
3.2設計步驟
1 單片機主控電路設計
系統選用 STC89C51 作為轉速信號的處理核心。STC89C51 包含 2 個16位定時/計數器、4K×8 位片內 FLASH 程序存儲器、4個8位并行I/O口。16 位定時/計數器用于實現待測信號的頻率測量。8位并行口P0、P2用于把測量結果送到顯示電路。4K×8 位片內FLASH程序存儲器用于放置系統軟件。STC89C51與具有更大程序存儲器的芯片管腳兼容,如:89C52(8K×8 位)或 89C55(32K×8 位),為系統軟件升級打下堅實的物質基礎。STC89C51最大的優點是:可直接通過計算機串口線下載程序,而無需專用下載線和編程器。
STC89C51單片機是在一塊芯片中集成了CPU、RAM、ROM、定時器/計數器和多功能I/O口等一臺計算機所需要的基本功能部件。其基本結構框圖如圖3.1,包括:
·一個8位CPU;
·4KB ROM;
·128字節RAM數據存儲器;
·21個特殊功能寄存器SFR;
· 4個8位并行I/O口,其中P0、P2為地址/數據線,可尋址64KB ROM或64KB RAM;
·一個可編程全雙工串行口;
·具有5個中斷源,兩個優先級,嵌套中斷結構;
·兩個16位定時器/計數器;
·一個片內震蕩器及時鐘電路;
計數脈沖輸入
T0 T1
P0 P1 P2 P3 TXD RXD
中斷輸入
圖3 STC89C51單片機結構框圖
STC89C51系列單片機中HMOS工藝制造的芯片采用雙列直插(DIP)方式封裝,有40個引腳。STC89C51單片機40條引腳說明如下:
(1)電源引腳。V正常運行和編程校驗(8051/8751)時為5V電源,V為接地端。
(2)I/O總線。P- P(P0口),P- P(P1口),P- P(
第二章 設計方案
2.1方案簡介
方案為基于紅外傳感器和51單片機的直流電機調速系統的設計,使用C++進行編程,系統一共含有6個模塊,輸入模塊,顯示模塊,測速模塊,51單片機,電機驅動模塊,電源。系統的結構框圖如下圖2.1。
第三章 硬件模塊介紹
3.1 STC12C5A60S2單片機
STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換(250K/S),針對電機控制,強干擾場合。為增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統8051。有EEPROM功能(STC12C5A62S2/AD/PWM無內部EEPROM)。 2個時鐘輸出口,可由T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在P3.5/T1輸出時鐘。具有PWM(2路)/PCA(可編程計數器陣列,2路),可實現八位PWM輸出。
3.2 矩陣鍵盤
在鍵盤中按鍵數量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4*4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數越多,區別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。
3.3 L298N電機驅動
L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅動電機,該芯片可以驅動一臺兩相步進電機或四相步進電機,也可以驅動兩臺直流電機。
3.4 RS385直流電機
RS385直流電機具有,升溫慢,壽命長,效率高,抗干擾,耐損耗的特點。可用于家用電器,通信,教育等領域。是一個標準的小型直流電機。
3.5 紅外對射槽型測速傳感器模塊
紅外對射槽型測速傳感器模塊廣泛用于電機轉速檢測,脈沖計數,位置限位等。
該模塊使用進口槽型光耦傳感器,槽寬度10mm,有輸出狀態指示燈,輸出高電平燈滅,輸出低電平燈亮,使用寬電壓LM393 比較器輸出,信號干凈,波形好,驅動能力強,超過15mA,設有固定螺栓孔,方便安裝。
3.6 LCD1602顯示模塊
LCD1602工業字符型液晶,能夠同時顯示16x02即32個字符。(16列2行)它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
3.7 220v轉12V直流開關電源
開關電源是一種高頻化電能轉換裝置,是電源供應器的一種。其功能是將一個位準的電壓,透過不同形式的架構轉換為用戶端所需求的電壓或電流。開關電源的輸入多半是交流電源(例如市電)或是直流電源,而輸出多半是需要直流電源的設備,而開關電源就進行兩者之間電壓及電流的轉換。
開關電源產品廣泛應用于工業自動化控制、軍工設備、科研設備、LED照明、工控設備、通訊設備、電力設備、儀器儀表、醫療設備、半導體制冷制熱、空氣凈化器,電子冰箱,液晶顯示器,LED燈具,通訊設備,視聽產品,安防監控,LED燈帶,電腦機箱,數碼產品和儀器類等領域。
第四章 軟件設計
4.1 系統流程
單片機一開機,進行PWM,定時器,顯示初始。當進入T0定時器中斷時,重新賦值T0,。進行中斷處理。先檢測鍵盤輸入,若檢測到輸入,則修改設定值。若沒有,則執行下一步。設定值與輸出值相減,得到余差del,余差再進行增量式PI運算,得到輸出值。將余差賦值給上一個余差del_old。最后進行LCD顯示。跳出中斷。
4.2 定時器與計數器
STC12系列定時器與51系列一樣。先對定時器,計數器進行初始化。初始化代碼如圖4.2所示。
進行初始化后,每進行1ms,單片機將進入一次中斷。每進入中斷,tt加1,當tt等于500時,也就是當進行了0.5s的定時后,執行中斷里的程序。程序包括鍵盤檢測,PI運算,PWM輸出,LCD顯示。代碼如圖4.3所示。
4.3 鍵盤檢測
鍵盤檢測使用矩陣鍵盤常見的掃描法。先行后列行線為輸出線,列線為輸入線。一開始單片機將行線全部輸出低電平,此時讀入列線數據,若列線全為高電平則沒有鍵按下,當列線有出現低電平時調用延時程序以此來去除按鍵抖動。延時完成后再判斷是否有低電平,如果此時讀入列線數據還是有低電平,則說明確實有鍵按下。最后一步確定鍵值。代碼如圖4.4所示。
4.4 PI運算
PI運算采用增量式PID運算。增量式PID是指數字控制器的輸出只是控制量的增量Δu(k)。采用增量式算法時,計算機輸出的控制量Δu(k)對應的是本次執行機構位置的增量,而不是對應執行機構的實際位置,因此要求執行機構必須具有對控制量增量的累積功能,才能完成對被控對象的控制操作。
采用增量式是因為算式中不需要累加。控制增量Δu(k)的確定僅與最近3次的采樣值有關,容易通過加權處理獲得比較好的控制效果;計算機每次只輸出控制增量,即對應執行機構位置的變化量,故機器發生故障時影響范圍小、不會嚴重影響生產過程。代碼如圖4.5.
4.5 PWM輸出
STC12系列有PCA模塊PWM輸出。PCA模塊包含兩個捕獲/比較匹配 模塊,可以實現上升沿/下降沿捕獲,及捕獲中斷,或者比較匹配中斷,或者PWM,或者最普通的定時/計數器。在這里我們采用的是8位PWM輸出。PCA模塊的工作模式如圖4.6所示。PWM模式的頻率選擇如圖4.7所示。
利用PCA模塊,進行輸出8位PWM輸出的代碼如圖4.8所示。
4.6 LCD顯示
LCD1602通常為14引腳,16引腳多了兩根背光正負極,正極A(15腳)與負極K(16腳)。16引腳的引腳圖如圖4.9。
LCD1602的初始化為設置顯示模式,光標與閃爍的開關與位置設置,清屏操作。初始化后可進行代碼送入或字符送入。當初始化未完成時,是無法進行代碼如字符送入的。需等待初始化完成后才可執行。代碼如圖4.10所示。
#include
sbit RS=P0^6;
sbit RW=P0^5;
sbit EN=P0^4;
sbit R2=P1^4;
sbit R1=P1^5;
sbit C1=P1^6;
sbit C2=P1^7;
sbit GS=P0^0;
sbit PWMS=P1^2;
int set_speed,act_speed;
int tt=0;
int tho,hun,ten,unit,tho2,hun2,ten2,unit2;
int i;
float KI =0.007;
float KP = 0.005;
int delta=0;
int pwm_now=256;
char set_str[4],act_str[4],PWM[4];
char info_1[]=“set:”;
char info_2[]=“act:”;
char info_3[]=“PWM:”;
void LCD1602_WriteCMD(char cmd);
void LCD1602_WriteDATA(char Data);
void LCD1602_init();
int pi(int del);
int setpwm(int pwm);
void control();
void delay(int k) //延時k ms
{
int m,n;
for(m=0;m<k;m++) {="" for(n="0;n<120;n++);" }="" int="" scan(int="" spe)="" 1.4="" r1="" 1.5="" r2="" 1.6="" c1="" 1.7="" c2="" kten,khun,speout;="" 定義百位,十位,輸出轉速="" khun="spe/100;" 把百位提取出來="" kten="(spe%100)/10;" 把十位提取出來="" void="" scon_t0_init()="" 定時器,計數器初始化="" tmod="0x51;" t0t1工作模式,t0為16位定時器模式,t1為16位計數器模式="" spe_to_arr(int="" spe,char="" *arr)="" arr[0]="0x30+spe/1000;" arr[1]="‘0’+spe%1000/100;" arr[2]="‘0’+spe%100/10;" arr[3]="‘0’+spe%10;" lcd_display()="" lcd1602_writecmd(0x80);="" 第一行顯示="" for(i="0;i<strlen(info_1);i++)" lcd1602_writedata(info_1[i]);="" lcd1602_writedata(set_str[i]);="" lcd1602_writecmd(0x8a);="" lcd1602_writedata(pwm[i]);="" t0_us(void)="" interrupt="" 1="" t0定時器中斷="" th0="0xFC;" 重新賦值t0定時="" tl0="0x18;" pwm_init()="" pwm初始化="" 占空比="(1-CCAPnH/256)*100%" ccapnh="(1" -="" 占空比)*256="" (1-0.875)*256="32" =="" 20h="" pwm頻率="系統時鐘頻率/12/256" 12="" 256="7.2K" cmod="0x80;" 頻率="系統時鐘/12" ccapm0="0x42;" 8位pwm工作模式="" pwm_output(int="" k)="" pwm輸出="" ccap0h="k;//賦值占空比" ccap0l="k;" lcd1602_writecmd(char="" cmd)="" 往lcd1602送入代碼="" en="0;" p2="cmd;" 送入代碼="" rs="0;" rw="0;" 設置為代碼輸入="" delay(50);="" 上跳沿使能="" lcd1602_writedata(char="" data)="" 往lcd1602送字符="" 送入字符="" 設置為數字輸入="" lcd1602_init()="" lcd1602初始化="" lcd1602_writecmd(0x38);="" 置功能,4位總線,雙行顯示,顯示5x7的點陣字符="" lcd1602_writecmd(0x0f);="" 顯示開關控制,開顯示,="" 有光標,閃爍="" lcd1602_writecmd(0x06);="" 光標和顯示位置設置,="" 光標移動方向右移,屏幕上所有文字不動="" lcd1602_writecmd(0x01);="" 清顯示,指令碼01h,光標復位到地址00h位置="" control()="" pi運算="" delta="set_speed" act_speed;="" 余差="" pwm_now="pi(delta);" 增量式pi計算="" pwm_output(pwm_now);="" pi(int="" del)="" static="" delta_old="0;" ea="0;" setpwm(int="" pwm)="" pwm約束="" if(pwm=""
void main(void)
{
PWMS=0;
set_speed =2000;
act_speed =0000;
}
PAGE
PAGE 1
吉林建筑工程學院
電氣與電子信息工程學院
傳感器及檢測技術課程設計報告
設計題目: 霍爾元件小車測速系統設計
專業班級: 電子信息科學與技術081班
學生姓名: 趙越
學 號:
指導教師: 王 超 吳鶴君
設計時間: 2011.12.12-2011.12.23
教師評語:
教師評語:
成績 評閱教師 日期
目 錄
TOC o "1-3" h z 緒 論 1
1.1 設計任務 1
1.2 方案分析論證 1
2 基于霍爾傳感器的電機轉速測量系統硬件設計 2
2.1 電機轉速測量系統的硬件電路設計 2
2.2 霍爾傳感器測量電路設計 4
2.3 單片機AT89C51 8
2.4 顯示電路設計 11
2.5 系統軟件設計 14
3 系統仿真和調試 16
3.1 Proteus軟件 16
3.2 硬件調試 17
3.3 軟件調試 19
3.4 軟硬件聯調 19
4 結 論 21
參考文獻 22
附錄 硬件實物圖 23
1 緒 論
1.1 設計任務
1.1
通過《傳感器及檢測技術》課程設計,掌握傳感器及檢測系統設計的方法和設計原則及相應的硬件調試的方法。進一步理解傳感器及檢測系統的設計和應用。
1.1.2課程設計題目:
霍爾元件小車測速系統設計
1.1.3 課程設計內容:
霍爾元件測速系統設計
霍爾傳感器一般由霍爾元件和磁鋼組成,當霍爾元件和磁鋼相對運動時,就會產生脈沖信號,根據磁鋼和脈沖數量就可以計算轉速,進而求出車速。
現要求設計一個測量系統,在小車的適當位置安裝霍爾元件及磁鋼,使之具有以下功能:
1)LED數碼管顯示小車的行駛距離(單位:cm)。
2)具有小車前進和后退檢測功能,并用指示燈顯示。
3)記錄小車的行駛時間,并實時計算小車的行駛速度。
4)距離測量誤差<2cm。
5)其它。
1.2 方案分析論證
1.2.1 霍爾測速模塊論證與選擇
方案一:采用型號為A3144的霍爾片作為霍爾測速模塊的核心,該霍爾片體積小,安裝靈活,價格合理,可用于測速,可與普通的磁鋼片配合工作。 方案二:采用型號為CHV-20L的霍爾元器件作為霍爾測速模塊的核心,該霍爾器件額定電流為100mA,輸出電壓為5V,電源為12~15V。體積較大,價格昂貴。
因此選擇方案一。
1.2.2 單片機模塊論證與選擇
方案一:采用型號為AT89C51的單片機作為主 控制器,使用霍爾傳感器進行測量的直流電機轉速測量系統。AT89C51是帶4K字節閃爍可編程擦除只讀存儲器的低電壓、高性能CMOS8位微處理器。它將多功能8位CPU和閃爍存儲器組合在單個芯片中,為許多控制提供了靈活性高且價格低廉的方案[3]。
方案二:采用單片機C8051F060作為主 控制器,使用霍爾 傳感器進行測量的直流電機轉速測量系統。C8051F060系列單片機是美國CYGNAL公司推出的一種與51系列單片機內核兼容的單片機[4]。C8051F060作為新一代8051單片機,具有功能強大、體積小、工作穩定等特點,適用于復雜控制系統。
因此選擇方案一。
1.2.3 顯示模塊論證與選擇
方案一:采用LED數碼管動態掃描,LED數碼管價格適中,亮度高,顯示數字合適,但是連接復雜,耗電流大,驅動電路復雜。
方案二:采用點陣式數碼管顯示,點陣式數碼管是由八行八列的發光二極管組成,對于顯示簡單文字比較適合,如果顯示數字則浪費資源,而且價格也相對較高。
方案三:采用LCD液晶顯示屏,液晶顯示屏的顯示功能強大,可顯示大量文字,圖形,顯示多樣,清晰可見,并且連接很方便 ,所以在此設計中采用了LCD液晶顯示屏。
因此選擇方案三。
1.2.4 報警模塊論證與選擇
方案一:采用蜂鳴器與發光二極管作為聲光報警主要器件。該方案不論在硬件焊接方面還是在編寫軟件方面都簡單方便,而且成本低廉。
方案二:采用語音播報系統作為聲光報警的核心。該方案更具人性化、智能化,但是就該設計要求而言,方案過于復雜,相對成本過高,工作量偏大。
因此選擇方案一。
1.2.5 電源模塊論證與選擇
方案一:采用交流220V/50Hz電源轉換為直流5V電源作為電源模塊。該方案
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原