前言:中文期刊網精心挑選了stc89c52單片機范文供你參考和學習,希望我們的參考范文能激發你的文章創作靈感,歡迎閱讀。
stc89c52單片機范文1
中圖分類號:TP273文獻標識碼:A文章編號:1009-3044(2011)04-0902-02
A Temperature Control System Based on STC89C52 MCU
WU Jian, HOU Wen, ZHENG Bin
(National Key Laboratory for Electronic Measurement Technology, North University of China, Taiyuan 030051, China)
Abstract: This paper discusses a STC89C52 MCU to increase the technical indexes of accused of temperature control system,Presented the design of the MCU circuitry of system, temperature control output circuit, temperature detecting amplifier circuit and so on. Realized of furnace temperature automatic control and improve the precision temperature control. Be provided with important engineering use value.
Key words: STC89C52 MCU; temperature control; temperature test
隨著工業技術的不斷發展,利用溫度控制表,溫度接觸器的控制方式已不能滿足高精度、高速度的控制要求,其主要缺點是溫度波動范圍大,受儀表本身誤差和交流接觸器壽命的限制,通斷頻率很低。本文設計了一種基于STC89C52單片機控制的溫度控制系統。它使用了較少的器件和較為簡單的電路設計,因此具有成本低、控制方便,實用性強等特點。
1 系統設計
本系統是對電爐爐溫進行控制的微機控制系統。控制方式是單閉環控制形式。溫度控制系統是以STC89C52單片機為控制核心,其系統結構框圖如圖1所示。
鍵盤將溫度設定值和溫度反饋值送入單片機,然后經過運算得到輸出控制量,輸出控制量控制控溫輸出電路得到控制電壓,施加到驅動器上,從而控制電加熱爐內溫度。
2 系統硬件設計
硬件系統由單片機電路,溫度檢測放大電路,A/D、D/A轉換電路,控溫輸出電路等組成。下面分別給予介紹。
2.1 單片機電路
STC89C52是一個低功耗,高性能的51內核的CMOS 8位單片機, 具有在線編程功能,不再需要啟動像STC89C51那樣的12V的VPP編程高壓[1]。 使用簡單且價格非常低廉。故本文使用STC89C52為系統的主控制器。單片機發送溫度設定值和采集溫度反饋值,并據此調節I/O的輸出來控制溫度的值。
2.2 溫度檢測放大電路
溫度檢測電路承擔著檢測電阻爐溫度并將溫度數據傳輸到單片機的任務。鉑電阻最常應用于中低溫區,精度高,穩定性好,具有一定的非線性,溫度越高電阻變化率越小,測量范圍一般為-200~850℃。目前應用最廣泛的是Pt100。Pt100鉑熱電阻與溫度的關系如下:
(1)
其中:Rt――溫度為t℃時鉑電阻的電阻值(Ω);R0――溫度為0℃時鉑電阻的電阻值(Ω);A,B,C――常數,3.96847×10-3 (℃-1);-5.847×10-7 (℃-2);-4.22×10-12(℃-3)。
信號放大電路采用OP07E放大器,溫度信號輸入采用差動放大模式,輸入電壓范圍為+/-14V,輸出電壓范圍為+/-12V。設計電路如圖2所示。
U1放大器放大倍數為:
(2)
2.3 A/D轉換電路
溫度檢測電路采集到的溫度值為模擬信號,需要轉化為數字信號才能被單片機處理。溫度控制系統的A/D轉換模塊采用ADC0804型8位全MOS A/D轉換器。轉換時間約為100μs,轉換時鐘信號可以由內部施密特電路和外接RC電路構成的震蕩器產生,當/CS與/WR同時有效時便啟動A/D轉換,經DATA口送入單片機,再采集第二個模擬量進行轉換。
2.4 D/A轉換電路
溫度控制系統的D/A轉換芯片采用DAC0832。D/A轉換器由8位輸入鎖存器、8位DAC寄存器、8位D/A轉換電路及轉換控制電路構成[2]。DAC0832的主要特性參數:分辨率為8位;電流穩定時間1us;可單緩沖、雙緩沖或直接數字輸入;只需在滿量程下調整其線性度;單一電源供電,電壓范圍為+5V~+15V;低功耗,功耗為200mW。
2.5 可控硅調功控溫電路
溫度控制電路采用可控硅調功率方式。雙向可控硅串在50Hz交流電源和加熱絲電路中,在給定周期里改變可控硅開關的接通時間改變加熱功率,從而實現溫度調節[3]。如圖3所示。
可控硅驅動器MOC3041集光電隔離、過零檢測功能于一身,具有體積小、功耗低、抗干擾能力強,無噪聲等優點[4],RS、CS為吸收電路,起保護作用。經驗公式如下:
Cs=(2~4)IT×10-3(uF)(3)
Rs=10~50Ω(4)
R17是觸發器輸出限流電阻,取51Ω。R16是驅動器的門極電阻,一般取值300-500Ω。
3 PID溫度控制算法
溫度控制技術大致可分為定值開關控溫法,PID線性控溫法。定值開關控溫法通過硬件電路或軟件計算判別,系統溫度上升至設定點時關斷電源,當系統溫度下降至設定點時開通電源,因而無法克服溫度變化過程的滯后性,致使被控溫度波動較大,精度低。當我們不完全了解被控對象,或不能通過有效的測量手段來獲得系統的參數時,最適合用PID控制技術。PID線性控溫法主要取決于比例值、積分值、微分值[5]。只要三參數選取的正確,其控制精度是比較令人滿意的。當執行機構需要的不是控制量的絕對值,而是控制量的增量時,需要用PID的“增量算法”。增量式PID控制算法可以通過(式5)推導出。
(5)
Uk――控制器的輸出值;ek――控制器輸入與設定值之間的誤差;Kp――比例系數;
Ti――積分時間常數;Td――微分時間常數;T――調節時間。由(式5)可以得到控制器的第k-1個采樣時刻的輸出值為:
(6)
將(式5)與(式6)相減并整理,就可以得到增量式PID控制算法公式:
(7)
其中:
由(式7)可以看出,如果計算機控制系統采用恒定的采樣周期T,一旦確定A、B、C,只要使用前后三次測量的偏差值,就可以由(式7)求出控制量。物理模型如圖4所示。
4 系統軟件設計
為了便于程序的調試與維護,系統全部程序采用模塊化結構。由一個主程序和若干子程序組成。子程序主要包括A/D轉換子程序、D/A轉換子程序、LED顯示子程序、增量式PID控制子程序、鍵盤控制子程序等,各子程序均能很快返回主程序,不會發生子程序時間過長等問題,子程序對相關事件的處理依靠標志位和判斷標志位來完成。主程序通過調用各個子程序來完成所有的溫度控制器功能。主程序的流程圖如圖5所示。
5 設計結果
設計的溫度控制系統基于STC89C52單片機,采用了信號放大,可控硅控制等簡單的電路,經過焊接、 組裝、 調試后,可以很好實現控制功能,具有很強的實用性,尤其是具有體積小、 易移動等優點。 該方案也可以在功能上加以擴展,如加上LED電路,當到達我們想要的溫度時綠燈亮,當超過我們想要的溫度一定量程時紅燈亮。
參考文獻:
[1] 張俊謨.單片機中級教程[M].北京:北京航空航天大學出版社,1999:75-86.
[2] 小島郁太郎.實現數字電路與模擬電路及軟件的協調設計[J].電子設計應用,2009(6):15-20.
[3] 王海寧.基于單片機的溫度控制系統的研究[D].合肥:合肥工業大學,2008.
stc89c52單片機范文2
關鍵詞:Protues; 密碼鎖; 單片機; C語言
中圖分類號:TN433-34文獻標識碼:A
文章編號:1004-373X(2010)19-0176-03
Design and Simulation of Electronic Code Lock Using STC89C52 MCU Based on C Language
JIN Gui, XIANG Guo-liang
(Department of Physics & Electronic Information Engineering, Xiangnan University, Chenzhou 423000, China)
Abstract: The implementation of an electronic code lock which was successfully simulated by Protues is introduced. It uses high reliable microcontroller STC89C52 to achieve the unlocking and identification of the code, adopts I2C bus-based E2PROM chip to complete the code′s storage, uses LCD1602 to prompt the program′s running state and working procedures, adopts buzzer to imitate the alarm and LED to imitate the switch. It is convenient to modify and add function by using C language program,which is more transplantable and reliable compared to assembly language.
Keywords: Protues; code lock; single chip microcomputer; C language
0 引 言
電子密碼鎖是現代生活中常用的加密工具。它克服了機械式密碼鎖密碼量少、安全性能差的缺點,尤其是微控制器的智能電子密碼鎖,不僅具有電子密碼鎖的功能,還可引入智能化管理功能,從而使密碼鎖具有更高的安全性和可靠性。
電子密碼鎖通常使用ARM和單片機控制[1],單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的密碼鎖常使用匯編語言編寫程序,顯示器多數用數碼管[2-3]。而本文所介紹的電子密碼鎖使用移植性及可讀性強的高級語言C語言編寫,便于修改和增減功能;同時采用顯示清楚,功率消耗小而且壽命長的1602液晶顯示器,顯示更加直觀,使用更加方便。從經濟實用的角度出發, 采用STC89C52[4]單片機設計出一種具有密碼設置、報警和防止多次試探密碼功能的電子密碼鎖,通過Protues軟件成功地進行了仿真。
1 系統工作原理
本系統以STC89C52單片機為核心,使用4×4矩陣鍵盤作為數據輸入方式,驅動1602顯示器提示程序運行過程和開鎖的步驟。本系統的密碼判斷過程如下:
當使用者輸入6位密碼后按下BESURE鍵,單片機通過密碼逐個比較,如果輸入的6位密碼和設定的密碼完全相同,那么能成功驅動開鎖模擬燈將鎖打開。若輸入6位密碼與設定的密碼不相同,按下BESURE鍵后,模擬燈不亮,可以按BACK鍵重新輸入。由于輸入密碼過程中難免輸入失誤,如果密碼輸錯,可直接按下BACK鍵重新輸入,但是系統不允許無限次地按BACK鍵,以免密碼被套用,當3次密碼輸入都錯誤,單片機將驅動蜂鳴器報警[5]。并且本系統輸入密碼還有時間限制,若在規定的時間內沒有將正確密碼輸入也會報警。
修改密碼功能如下:當密碼輸入正確后,按下SET鍵可新設置密碼。每設定一位新密碼,單片機將其送給E2PROM,當6位新密碼都輸入完畢,系統將自動回到程序開始,重新讀取密碼并保存,使用者需輸入新的密碼才能將鎖打開。
2 系統設計
2.1 硬件支持
使用的元器件有:核心芯片STC89C52、存儲芯片AT24C02、液晶顯示1602、矩陣鍵盤、報警蜂鳴器、獨立按鍵(模擬門的開關)、發光二極管(模擬鎖的開關)和┤極管(放大電流)。
2.2 軟件設計
本系統軟件包括主程序模塊、密碼比較判斷模塊、修改密碼模塊、鍵盤掃描模塊、液晶顯示模塊及定時程序等模塊。系統程序流程如圖1所示。
圖1 系統程序流程圖
2.2.1 主程序模塊
主程序主要用于定義全局變量,給全局變量賦初值,初始化E2PROM,啟動定時器以及從AT24C02[6]中讀取密碼,為整個程序提供數據。
2.2.2 密碼比較判斷模塊
該模塊的功能是將鍵盤輸入的密碼利用if語句與設定的密碼進行逐個比較,若密碼完全正確則開鎖;若不正確,則按下BACK鍵,重新輸入密碼,每按下BACK鍵一次,輸入次數將自加1,當3次都出錯則報警。
2.2.3 密碼修改模塊
在密碼輸入正確情況下,可以按下SET對密碼進行重新設置,每設定一位就將密碼送給AT24C02存儲起來,當設置6位密碼完畢后,系統將自動跳到程序開始,調用新設置的密碼。
STC89C52向AT24C02寫入密碼子程序:
void write_byte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i
{
temp=temp
scl=0;
delay1();
sda=CY;
delay1();
scl=1;
delay1();
}
scl=0;
delay1( );
sda=1;
delay1( );
}
STC89C52從AT24C02讀取密碼子程序:
uchar read_byte()
{
uchar i,k;
scl=0;
delay1();
sda=1;
delay1();
for(i=0;i
{
scl=1;
delay1();
k=(k
scl=0;
delay1( );
}
return k;
}
2.2.4 鍵盤掃描模塊[7]
該模塊具備功能有:逐列掃描鍵盤確定被按鍵的具置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的鍵是否釋放等功能。
2.2.5 定時模塊[8]
本模塊用于對密碼輸入時間控制。在程序開始運行時首先對定時器進行了初始化,從按下PUT IN鍵開始,系統開始計時,當輸入的時間達到規定的時間將立即報警。
2.2.6 液晶顯示模塊[9]
此模塊包括液晶初始化、命令的輸入、顯示數據的輸入。其中命令是用于控制液晶狀態是否顯示光標,光標是否閃爍,是否清除原來數據以及顯示的具置。數據顯示主要是將要顯示的信息按需要準時顯示出來。
3 系統仿真
為了方便程序調試,本文采用了Proteus仿真[10],仿真圖如圖2所示。
圖2 系統仿真圖
3.1 系統介紹
圖2中U1為STC89C52是整個系統的核心,編寫的程序以二進制的文件導入其中;U2為AT24C02,┑5和第6個引腳分別與單片機的P1.2和P1.3相連;LCD1為1602液晶顯示器,引腳連接如圖2所示;獨立按鍵DOOR,當門關上為鍵按下狀態;D1為模擬開鎖燈,當密碼正確,按下BESURE鍵D1將亮;BUZ1為蜂鳴器報警。當程序編寫好并導入到單片機里后,按下┩2最下面的開始按鈕,1602液晶顯示器將提示密碼鎖的運行狀態,系統開始工作。
3.2 開鎖功能
當電源開啟時,1602液晶顯示Welcome歡迎界面,當按下PUT IN鍵后,顯示器顯示PUT IN CODES提示使用者輸入密碼,如圖3所示。幾秒后液晶顯示器上提示將自動消失。此時可輸入正確密碼,且密碼輸入時顯示*而不會將輸入的數據顯示出來。當輸入密碼完畢后,按下BESURE鍵,如果輸入的密碼正確D1將亮(D1作為開鎖的模擬開關)。若密碼錯誤,可以按下BACK鍵,程序將跳到loop(開始界面),重新輸入密碼,同時輸入次數將增加一次。當3次都輸入錯誤則自動報警,并且輸入密碼的時間必須在規定的時間完成,否則也會報警。
圖3 液晶顯示
3.3 密碼設定
在密碼輸入正確后,按下SET鍵可對密碼進行重新設置,液晶顯示器顯示SET CODS。同樣幾秒后提示信息將自動消失,此時開始重設密碼。在密碼設定過程中會將設定的數字顯示出來,每輸入一位密碼需按下YES鍵確定,當設置的密碼達到6位將自動回到啟動界面。
4 結 論
(1) 成功仿真實現了1602液晶顯示,密碼開鎖,密碼設置,防止多次試探,報警等功能。
(2) 采用C語言編寫程序,具有很強的移植性,為系統增減和修改功能帶來了方便。
參考文獻
[1]郭海英.基于單片機的電子安全密碼鎖的設計[J].現代電子技術,2005,28(13):95-97.
[2]趙益丹,徐曉林,周振峰.電子密碼鎖的系統原理、設計程序及流程圖[J].嘉興學院學報,2003(15):103-105.
[3]曾高榮,胡寧,高揚.一種新型電子安全密碼鎖的設計[J].電子科技,2003(8):44-45.
[4]張天凡.完全手冊51單片機C語言開發詳解[M].北京:電子工業出版社,2008.
[5]周功明.基于AT89C2051單片機的防盜自動報警電子密碼鎖系統的設計[J].綿陽師范學院學報,2007(4):112-115.
[6]劉振棟.EPROM芯片的特殊應用[J].電子工程師,1999(6):26-27.
[7]唐德禮,王襄.單片機學習機及編程器的設計與制作[J].現代電子技術,2005,28(12):117-120.
[8]倪淑艷,李曉波,于涵.單片機C8051F303在數字鎖相式頻率合成器中的應用[J].現代電子技術,2006,29(4):19-21.
stc89c52單片機范文3
【關鍵詞】STC89C52RC;智能小車;超車;紅外收發管;光電傳感器
一、系統方案
1.1 功能與要求
1.1.1 功能
甲車車頭緊靠起點標志線,乙車車尾緊靠邊界,甲、乙兩輛小車同時起動,先后通過起點標志線,在行車道同向而行,實現兩車交替超車領跑功能。跑道如圖1-1。
1.1.2 設計要求
(1)甲車和乙車分別從起點標志線開始,在行車道各正常行駛一圈。
(2)甲、乙兩車按圖1所示位置同時起動,乙車通過超車標志線后在超車區內實現超車功能,并先于甲車到達終點標志線,即第一圈實現乙車超過車。
(3)甲、乙兩車在完成(2)時的行駛時間要盡可能的短。
(4)在完成基本要求后,甲、乙兩車繼續行駛第二圈,要求甲車通過超車標志線后要實現超車功能,并先于乙車到達終點標志線,即第二圈完成車超過乙車,實現了交替領跑。甲、乙兩車在第二圈行駛的時間要盡可能的短。
1.2 系統分模塊比較與論證
本系統主要由車體、控制器、電機驅動、紅外收發傳感器、無線收發模塊、測距模塊組成,現做比較分析如下。
1.2.1 車體的選擇比較
方案一:采用四輪雙電機電動車。這種電動車具有靈活性和體積較小的優點。但是一般的說來,它還具有如下缺點:首先,這種電動車結構簡單,車輪較小而且容易與賽道表面打滑,雖然能夠通過兩個電機來實現轉向,但是不容易控制。其次,這種電動車一般都是兩個直流電機通過聯軸器帶動小車,力矩小,空載轉速快,負載性能差,不易調速。
方案二:采用帶舵機的電動小車。前端加舵機的電動小車可以精準的控制其轉彎方向,能較好的完成題目賽道里的轉彎要求。但是舵機小車的轉向需要通過MCU對光電收發器進行信號采集,通過處理分別發送給電機和舵機從而控制小車的前進。其優點是轉彎精確,能較好的完成轉彎路徑的實現,但相對其他類型小車成本高,控制較復雜。
方案三:采用履帶式電動小車。選擇RP5底盤的小車,它是大功率坦克車體,采用帶電感的大扭力260馬達,組合斜齒+金屬齒,形成大扭力系統,具有動力性能強、底盤穩定性高、可原地轉圈、轉彎靈活精確等特點。履帶小車可以完成本次題目的要求,達到轉彎靈活,轉彎角度可調,可滿足小車運行平穩等要求,而且控制兩個直流電機相對簡單。
綜上,選擇方案三,使用RP5底盤履帶式電動小車。
1.2.2 控制器的選擇比較
方案一:采用凌陽公司的16位單片機,它是16位控制器,具有體積小、驅動能力高、集成度高、易擴展、可靠性高、功耗低、結構簡單、中斷處理能力強等特點。處理速度高,尤其適用于語音處理和識別等領域。
方案二:采用宏晶科技公司的STC89C52RC單片機作為主控制器。本款單片機是單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換(250K/S),針對電機控制,強干擾場合。其編程下載使用較方便,而且能夠完成對本題目要求較簡單的控制。
51單片機控制簡單,下載使用方便。其處理能力能夠滿足本題目的要求,故采用方案二。
1.2.3 紅外收發傳感器模塊的選擇比較
方案一:使用紅外發射和接收管制作紅外收發電路,紅外發射管發出紅外線,當發出的紅外線照射到白色的平面后反射,若紅外接收管能接收到反射回的光線則檢測出白線繼而輸出低電平,若接收不到發射管發出的光線則檢測出黑線繼而輸出高電平。輸出的高低電平通過電壓比較器可以得到單片機可以識別的信號,從而進行控制。這樣自己制作組裝的尋跡傳感器基本能夠滿足要求,但是工作不夠穩定,且容易受外界光線的影響。
方案二:采用TCRT5000型光電對管模塊。傳感器的紅外發射二極管不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處于關斷狀態,此時模塊的輸出端為低電平,指示二極管一直處于熄滅狀態;當無檢測黑線出現在檢測范圍內時,紅外線被反射回來且強度足夠大,光敏三極管飽和,此時輸出端為高電平。此紅外收發模塊運行穩定,感應靈敏,可以使單片機采集信號后對小車進行很好的控制。
為使紅外收發管感應黑色膠布線保證靈敏從而控制小車,使用方案二的TCRT5000紅外收發模塊。
1.2.4 電機驅動模塊的選擇比較
方案一:采用專用芯片L298N作為電機驅動芯片。L298N是一個具有高電壓大電流的全橋驅動芯片,它相應頻率高,一片L298N可以分別控制兩個直流電機,而且還帶有控制使能端。用該芯片作為電機驅動,操作方便,穩定性好,性能優良。
方案二:對于直流電機用分立元件構成驅動電路。由分立元件構成電機驅動電路,結構簡單,價格低廉,在實際應用中應用廣泛。但是這種電路工作性能不夠穩定。
為使電機穩定運行,能夠靈活控制小車行進,選用方案一。
1.2.5 避障和牽引模塊的選擇比較
方案一:采用超聲波測距避障。超聲測距是一種非接觸式的檢測方式。與其它方法相比,它不受光線、被測對象顏色等影響。對于被測物處于黑暗、有灰塵、煙霧、電磁干擾、有毒等惡劣的環境下有一定的適應能力。而且超聲波傳感器具有結構簡單、體積小、信號處理可靠等特點。
方案二:采用激光、雷達、攝像等復雜方式測距避障,可以得到精確的距離,但本題并不要求能夠得到兩車間精確距離,而且控制電路過于復雜,較難實現。
方案三:采用E18-D80NK光電傳感器進行避障,這種光電開關具有良好的開關特性,輸出測量障礙物距離可調,可自己設置感知物體的距離。在輸出端上拉10K電阻后得到5V電壓,方便單片機進行控制。
綜上,本系統通過避障模塊實現的功能是防止撞車的發生而且保證兩車間距離,不需要得到精確的距離值,故可以采用方案三,選用E18-D80NK光電傳感器進行避障。
1.2.6 總體方案設計與比較
方案一:利用賽道的固定性,采用單片機控制兩個小車精準轉彎,按賽道和題目要求,嚴格按照規定好的路線進行兩個小車的行進,如轉彎和進、出超車區;同時兩車間利用無線模塊進行通信,通過調節速度實現兩個小車的超車;通過光電開關可以進行避障防止撞車發生。此種方案程序復雜,容易受賽道、小車性能等因素干擾,很難實現。
方案二:利用紅外反射發送接收開關,使小車在賽道內能夠識別邊界線、起點/終點標志線、轉彎標志線等黑膠帶線,從而可以循跡和轉彎行進,完成題目要求。此種方案能控制小車按照賽道邊緣行進,但在超車區進入和外出部分容易掉出賽道,同時兩車進行超車時,單純利用循跡很難實現。
方案三:綜合以上兩種方案,在小車的紅外收發管檢測到轉彎標志線車區的信號時,小車按照固定的程序進行相應的行進如轉固定角度的方向。同時,可利用紅外收發管檢測賽道內、外邊線,防止小車走出賽道。兩車進行超車時,利用無線模塊進行通信,調節各自速度,同時有光電傳感器的保證兩輛車間的距離,使超車安全穩定的完成。此種方案可以完成小車在行車道的行走,并在超車區及附近安全行駛。
綜上所述,方案三能夠相對完整、穩定的完成題目提出的各項要求。
1.2.7 系統方案確定與系統結構
進過反復論證與實際測試,最終確定系統方案如下:
(1)小車車體采用RP5底盤履帶式電動小車兩個;
(2)采用STC89C52RC單片機作為系統控制器;
(3)用TCRT5000紅外傳感器作為光電收發模塊;
(4)L298N作為直流電機的驅動芯片;
(5)E18-D80NK光電傳感器進行避障和牽引;
二、系統理論分析與計算
2.1 信號檢測與控制分析
2.1.1 黑膠帶線的檢測
小車對黑膠帶線的檢測是通過接在前端的三個紅外收發管完成的,分別標記為左、中、右紅外收發管,三個傳感器共同工作完成小車的定位和標記識別。對應信號的小車位置和相應動作如表2-1所示。
表2-1:對應信號的小車位置和相應動作
左管 左中管 右中管 右管 小車位置 小車相應動作
× × × × 行車道 正常前進
√ √ √ √ 起點 不動作
轉彎標志線 進行轉彎
超車標志區(第4條) 進入超車區
√ × × × 跑道內邊界 向右調整
× × × √ 跑道外邊界 向左調整
2.1.2 前車識別檢測與超車
對于小車的超車功能,前車在進過超車標志區后,進行減速緩慢行駛,后車也通過超車標志區后,用光電傳感器E18-D80NK對前車進行檢測,如果單片機識別到10cm距離的前車,則開啟超車程序,在超車區完成超車。
2.2 兩車之間的通信方法
兩車要完成互相超車的行為,必須進行通信,才能即時的對被超過的車進行控制。甲車進入超車標志區后,進行減速前進,待乙車也進入超車標志區,光電傳感器檢測到甲車后,按固定路徑超車;隨后超車完成后,乙車成為前車,再通過甲車前端的光電傳感器使其恢復原速前進,從而完成一個超車的過程。
三、電路與程序設計
3.1 電路設計
3.1.1 紅外收發管電路設計
TCRT5000紅外對管模塊采用高發射功率紅外光電二極管和高靈敏度光電晶體管組成,輸出的高低電平通過電壓比較器可以由單片機識別,從而得到傳感器信號。傳感器的紅外發射二極管不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極管一直處于關斷狀態,此時模塊的輸出端為低電平;被檢測物體出現在檢測范圍內時,紅外線被反射回來且強度足夠大,光敏三極管飽和,此時模塊的輸出端為高電平。
3.1.2 光電傳感器電路
E18-D80NK模塊是開關電路。集發射與接收于一體的光電傳感器。輸出端口接上拉電阻可輸入至單片機I/O口,進行障礙物的信號檢測。
3.1.3 電機驅動電路
電機驅動采用L298N驅動電路,由單片機P1口接四路輸入和兩路使能信號,從而控制兩個電機進行正反轉。
3.2 程序設計
程序流程圖如圖3-1。
四、測試方案與結果
在自制的標準賽道上,將兩只小車分別置于起點,小車啟動后,均可行進,能完成一圈的行走,最后回到起點。通過觀察和測試得到兩個小車直行速度不同,一快一慢。這樣的情況導致甲、乙兩車在多圈互相超車時,不能控制間距,直接導致發生碰撞。因此采用在快車前部、后部和慢車前部安裝光電傳感器,使得兩車間距能夠保持一致。這樣第一圈和第二圈的軟件設計可以得到循環使用,達到多圈互相超車的控制。
測試可得,系統倆只小車能完成各個模塊的功能,如檢測黑線不出賽道、光電傳感開關防止撞車、進入超車區進行超車并繼續行進等,但由于賽道材質等原因,超車動作不能穩定實現。
參考文獻
[1]黃智偉.全國大學生電子設計競賽系統設計(第2版)[M].北京:北京航空航天大學出版社,2011.1
[2]童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2003
[3]閻石.數字電子技術基礎[M].北京:高等教育出版社,1983
[4]韓毅,楊天.基于HCS12單片機的智能尋跡模型車的設計與實現[J].學術期刊,2008,29(18):1535-1955.
[5]張桂香.單片機現場應用中的幾個技術問題[B].湖北:華中科技大學出版,2007.6
[6]吳金戍.沈慶陽,郭庭吉. 8051單片機實踐與應用[M].山東:山東大學出版社,2003.4
作者簡介
薛鵬,男,1989年生,東北大學信息科學與工程學院,檢測技術與自動化裝置碩士研究生,研究方向:生產過程參數測量與優化控制系統
安哲,男,1989年生,東北大學模式識別與智能系統碩士研究生,研究方向:控制系統設計及半實物仿真
stc89c52單片機范文4
關鍵詞:智能小車;STC89C52單片機;定向行駛;指南針;TCRT5000
1引言
近年來智能小車的發展非常迅速,在工業、科研甚至是軍事領域都得到了很廣泛的應用,智能小車能實現在無人操作的情況下,按照人為預先設定的情況工作,也可以根據現場的實際情況進行判斷做出相應的響應,并穩定工作。本文以STC89C52單片機作為微控制器,設計并實現了塊的智能定向循跡小車系統。
2 系統整體設計
整個系統由STC89C52最小系統控制模塊、L298N驅動模塊、GY-26指南針模塊、TCRT5000紅外光電傳感器模塊和電源轉換模塊構成,如圖1所示。
STC89C52模塊為核心,通過指令獲取指南針模塊所測得的方位角度值,并輔以紅外模塊TCRT5000的邊界檢測結果,獲得小車的方位,再通過分析與比較,將小車的轉向以及兩電機轉速調整的信息輸出給電機驅動模塊,從而完成小車的行進以及位置調整。電源轉換模塊負責給系統的各模塊供電。
3系統單元模塊設計
3.1 控制模塊
STC89C52模塊控制各個功能模塊數據的讀入、處理、輸出,使各個模塊連接在一起組成一個有機整體。主要由STC89C52單片機和電路組成的最小系統。單片機最小系統包括開關指示電路、復位電路、時鐘電路等。
3.2 紅外檢測模塊
TCRT5000紅外傳感器作為紅外邊界檢測模塊的核心部分。當紅外線未被反射或者發射的信號很弱,光敏三極管會處于關斷狀態,模塊輸出高電平;反之,當被測量的物體在檢測的范圍內,則信號足夠大使三極管飽和,模塊輸出低電平。紅外檢測模塊電路圖如圖2所示。
3.3 電機驅動模塊
采用L298N作為電機驅動芯片,需要兩組驅動電路驅動小車的兩個后輪。L298N配合單片機的方式可以實現對小車速度的精確控制。驅動電路圖如圖3所示。
3.4 指南針模塊
系統采用GY-26型號的一款平面數字羅盤模塊,其電路核心是型號為HMC1022的磁阻傳感器和PIC16F690單片機。本模塊主要用于實現小車在沒有黑色軌跡線的地點進行定向行駛。GY-26指南針模塊的計數參數如表1所示。
3.5 顯示模塊
LCD1602液晶模塊作為顯示部分,用于顯示小車的測量角度值、目標角度值、當前角度值和轉向控制等數據。
3.6 電源模塊
本系統的中的電機驅動模塊采用12V的鋰電池供電;其它模塊機如單片機最小系統、指南針、紅外檢測模塊需要5V的供電電壓,采用LM7805穩壓芯片將12V轉成5V,達到系統電壓的要求。
4 程序設計
4.1 主程序流程圖
系統的軟件設計部分以指南針模塊為主體,小車左右兩側的紅外檢測模塊為輔助,獲取小車當前位置角度值,通過單片機分析模塊返回的角度數據,判斷小車轉向及轉向角度,驅動兩個電機,調整小車位置,并通過液晶顯示輔助觀察小車行駛情況,從而實現小車的定向行駛功能。主程序流程圖如圖4所示。
4.2 位置角度值獲取程序
位置角度值的獲取,依靠的是指南針模塊,通過I2C協議,單片機讀取其角度值。其整體的程序流程圖如圖5所示。
4.3 小車轉向及角度判斷程序
判斷轉向及轉向角度的程序流程如圖6所示。根據初始角度值或目標角度值dat0,及當前位置角度值dat1的數值,來調整當前的姿態。
5 結束語
本系統采用指南針模塊電路準確定位出小車的所在方向,通過STC89C52系統對采集到的方位數據進行處理并控制L298N驅動芯片,改變兩電機的轉速,實現了小車直行、轉彎功能,無軌跡定向行駛。此外,采用TCRT5000紅外光電傳感器模塊,實現了軌道邊沿線及轉向標志線的檢測及定向轉彎。
參考文獻
[1] 薛小鈴,劉志群,賈俊榮.單片機接口模塊應用與開發詳例[M].北京:北京航空航天大學出版社,2010.
[2] 高月華.基于紅外光電傳感器的智能車自動循跡系統的設計 [J].光電技術應用,2009(2):1-5.
stc89c52單片機范文5
關鍵詞:數碼管;單片機;智能;DS1302
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2016)34-0264-03
Abstract: STC89C52 single-chip microcomputer as the core, this system USES special clock chip DS1302 in digital tube display digital electronic clock, and can through the button to adjust their own, the electronic products are widely used, such as conference room, the guard etc. In the age of the electronic products, especially with single-chip microcomputer as the processor's civil electrical appliance products with superior performance, good reliability, high cost performance.
Key words: Digital tube; single chip microcomputer; intelligent; DS1302
電子時鐘已成為人們生活中的必需品,廣泛用于家庭、車站、會議室等場所,數字化的時鐘給人們的生活帶來了極大的便利,并且可以在時鐘原有的功能上進行擴展,如定時報警、通斷動力設備、甚至各種電氣的定時啟動,因此對電子時鐘的設計是具有實際意義的。
1 系統硬件電路設計
1.1 時鐘系統方框圖
根據系統的功能要求,初步確定該系統由主控模塊(STC89C52單片機)、時鐘模塊(DS1302)、按鍵模塊、顯示模塊(數碼管)共4個模塊組成。系統方框圖如圖1所示。
1.2 r鐘系統工作原理
DS1302與主控模塊(STC89C52單片機)的連接簡單,將引腳I/O、SCLK、RST與單片機的I/O口連接即可,將DS1302中的數據讀取到單片機中,單片機將處理后的數據通過數碼管顯示出來。通過加入的三個獨立按鍵,可進一步對時間進行修改,三個按鍵分別是菜單、+、-,例如第一次按下菜單鍵時選中分(此時‘分’閃爍),此時可以通過按下+鍵來增加分,按下-鍵來減少分;當第二次按下菜單鍵時選中時(此時‘時’閃爍)此時可以通過按下+鍵或-鍵可以增加或者減少時;當第三次按下菜單鍵后,修改后的時間數據寫入DS1302時鐘芯片并通過數碼管顯示出來。系統原理圖如圖2所示。
2 硬件電路元件
2.1 主控單元
STC89CC52是STC公司生產的一種低功耗、高性能的八位微控制器,內部具有8K用戶應用程序空間。STC89C52沿用了經典的MCS-51內核,并在其基礎上做出了改進,使芯片具有一些傳統51單片機不具備的功能。內置4KB的EEPROM,復位電路,3個16位定時器/計數器,4 路外部中斷,中斷觸發方式有下降沿觸發和低電平觸發兩種,看門狗定時器,全雙工串行口。另外STC89C52有空閑模式、掉電保護兩種可供選擇的節電模式,空閑模式下,CPU停止工作,但RAM、定時器/計數器、串口、中斷等工作不會受到影響。掉電保護方式下,RAM內容被保存,直到下一次單片機工作時數據也不會丟失,但單片機會停止工作,如果讓單片機繼續工作,按下復位鍵即可,在單芯片上,由于STC89C52具有8位的CPU和可編程Flash的優點,因此可以為現在大多數嵌入式控制系統提供更多可選擇的解決方案。
2.2 時鐘芯片
DS1302是一個內部帶有RAM的時鐘芯片,并且有兩個電源引腳(主電源,后備電源),這使DS1302芯片即使在沒有主電源的情況下,仍然能夠長時間的保證時間的準確性,DS1302芯片通過簡單的串行接口與單片機進行通信,其工作電壓為2.5V~5.5V。DS1302具有很全的計時功能。例如DS1302芯片具有可自動調整每月的天數和閏年的天數的功能,這使其更加智能化,該芯片還提供秒、分、時、日、月、年的信息,時鐘可通過AM/PM 指示決定采用24 或12 小時制,本次系統只采用了時、分、秒進行計時功能。
2.2.1 DS1302與單片機之間的通信
DS1302 與單片機之間通過三個引腳(RST、I/O、SCLK)進行通信,它們之間采用同步串行通信的方式通信。
2.2.2 DS1302的優點
DS1302有兩個電源引腳,分別為后備電源(VCC1)、主電源(VCC2),該芯片在不同的供電系統中供電方式也會發生改變,在單電源與電池供電的系統中由VCC1提供低電源,在雙電源系統中由VCC2提供主電源。時鐘芯片的供電模式取決于VCC1和VCC2的大小,當VCC2大于VCC1時,由VCC2給芯片供電;反之,由VCC1給芯片供電。因此在斷電情況下,DS1302以VCC1備用電源進行其內部供電以保證下次開啟時時間不會出現錯誤。對于連續長時間測量的控制系統來說,采用具有良好特性的DS1302作為記錄測控系統中的數據記錄時,可以進一步提高系統的工作效率。而且由于其軟硬件設計也非常簡單,因此對于長時間連續的測控系統來說是一個不錯的選擇。
2.2.3 DS1302引腳功能
VCC1:備用電源;
VCC2:主電源;
SCLK:時鐘引腳,數據的輸入與輸出受其控制
I/O:數據傳輸接口;
X1和X2是振蕩源,外接32.768KHZ晶振。
引腳圖如圖3所示。
2.3 顯示模塊
此系統選用的是四位一體的共陰極數碼管,其內部已連接好,引腳(正面向上)從左到右順序依次為1、a、f、2、3、b、dp(+)、dp(-),4、g、c、e,其中a、b、c、d、e、f、g、為段引腳,1、2、3、4分別表示4個數碼管的位,dp(+)接電源正,dp(-)接單片機I/O口。
2.4 按鍵電路
本系統共采用3個獨立按鍵,分別與單片機的P3.5、P3.6、P3.7口連接,分別是菜單、+、-功能。在調整時間時,可通過菜單鍵、+、-鍵對時間進行調整。在調整的過程中,數碼管對應顯示的調節項會閃爍,分別對時、分進行設置。按鍵電路與單片機的連接可參考圖2。
3 軟件設計
3.1 系統程序流程圖
系統程序流程圖如圖4所示,程序執行時先進行系統初始化,再判斷菜單鍵是否按下,當菜單鍵按下時進入時間修改模式,設置完成后把修改后的數據寫入DS1302時鐘芯片并通過數碼管顯示。若無按鍵按下則讀取時間數據送入數碼管@示。
3.2 DS1302程序流程圖
DS1302時鐘程序流程圖如圖5所示,芯片工作時,會進入初始化程序,芯片內的數據會在出現中斷信號時被送入單片機中處理并通過數碼管顯示,然后判斷是否按下菜單鍵,若按下,則設置完成后將數據送入時鐘芯片并顯示,若無按鍵按下則直接送入EPROM中并顯示。
4 總結
本次系統設計實現了時鐘顯示及時間調整的功能,從設計前期的查找資料,到后期的動手設計,焊接實物等都讓我收獲良多,特別是將一個系統分成幾部分小的模塊,然后逐步實現各模塊的功能,最后把它們組合成一個系統,這種方法是值得學習的。以后,我會進一步提高自己的動手能力,豐富自己的知識。
參考文獻:
[1] 李朝青. 單片機原理及接口技術[M]. 北京:北京航天航空大學出版社,2012.
[2] 張毅剛.單片機原理及接口技術[M]. 北京:人民郵電出版社,2013.
[3] 李廣弟.單片機基礎[M]. 北京:北京航空航天大學出版社,2000
[4] 劉軍.單片機原理與接口技術[M].上海:華東理工大學出版社,2006
[5] 譚浩強. C語言程序設計[M]. 北京:清華大學出版社,2010.
[6] 邱關源. 電路[M]. 北京: 高等教育出版社,2010.
[7] 郭天祥. 新概念51單片機C語言教程[M].北京:電子工業出版社,2009.
[8] 楊國田,白焰,董玲. 51單片機實用C語言程序設計與典型實例[M].北京:中國電力出版社,2009.
stc89c52單片機范文6
關鍵詞:電磁密碼箱,報警,蜂鳴器,STC89C52
一、總體方案設計
它是以STC89C52單片機為核心,配以相應硬件電路,完成密碼的設置、存貯、識別、驅動電磁執行器并檢測其驅動電流值、接收蜂鳴器送來的報警信號、發送數據等功能,單片機接收鍵入的代碼,并與存貯在EEPROM中的六位密碼進行比較,六位密碼可以有298萬多組密碼供主人隨意變換,保密性極高,可選密碼組是連續排列的,如果密碼正確,則驅動電磁執行器開鎖;如果密碼輸入不正確,則單片機通過通信線路向智能報警器發出報警信號。
密碼箱主要由矩陣鍵盤、單片機、外部硬件等部分組成。其中矩陣鍵盤用于輸入數字密碼和進行各種功能的實現。實際使用時只要將單片機的負載由繼電器換成電磁密碼箱的電磁鐵吸合線圈即可,當然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈,單片機將每次開鎖操作和此時電磁執行器的驅動電流值作為狀態信息發送給單片機的芯片處理,同時將接收來自無限循環的密碼識別程序的報警信息也發送給智能報警器,從而使整個密碼箱正常運行。
二、硬件現及單元電路設計
1、單片機的時鐘電路與復位電路設計
本系統采用STC系統列單片機,相比其他系列單片機具有很多優點。一般STC單片機資源比其他單片機要多,而且執行速度快;STC系列單片機使用串口對單片機進行燒寫,下載程序較為方便;STC51單片機內部集成了看門狗電路;且具有很強抗干擾能力。本系統采用內部方式的時鐘電路和加電自復位的復位電路,由于單片機P0口內部不含上拉電阻,為高阻態,不能正常地輸出高/低電平,因而該組I/O口在使用時必須外接上拉電阻。
2、鍵盤電路設計
在單片機應用系統中,一般都會設置鍵盤,主要為了控制運行狀態,輸入一些命令或數據,以完成特定的人機交互。鍵盤是與單片機進行人機交互的最基本的途徑,其以按鍵的形式來設置控制功能或輸入數據,按鍵的輸入狀態本質上是一個開關量。對于簡單的開關量的輸入可以采用獨立式按鍵,這種方法接口簡單,但占用單片機I/O端口資源較多。對于輸入參數較多、功能復雜的系統,需要采用矩陣式鍵盤進行輸入控制。本系統采用4×4矩陣式鍵盤。
3、液晶顯示電路設計
液晶顯示器(LCD)是一種功耗很低的顯示器,它的使用非常廣泛,比如電子表、計算器、數碼相機、計算機的顯示器和液晶電視等。電子密碼鎖中需要顯示的信息比較多,為了能直觀的看到結果,并且為了設計顯的美觀,使用總線和排阻進行簡化連接方式,本設計采用液晶顯示屏LCD進行顯示,
4、存儲芯片電路設計
I2C總線(Inter Intergrate Circuit BUS)全稱為芯片間總線,它在芯片間以兩根連線實現全雙工同步數據傳送,一條數據線(SDA)和一條串行時鐘線(SDL),可以很方便地構成器件擴展系統。I2C總線采用兩線制,由數據線SDA和時鐘線SCL構成,為了對數據進行存儲,本系統使用串行EEPROM芯片,AT24C01系列是典型的I2C串行總線的EEPROM,本系統采用此芯片進行數據存儲。
三、系統軟件設計方案
1、主程序流圖
如圖所示為主程序流程圖,用戶才可以自行設定和修改6位密碼,密碼輸錯會有提示聲。只有鍵入6位開鎖密碼完成正確才能開鎖。
四、系統的安裝與調試
安裝步驟1.檢查元件的好壞。按電路圖買好元件后首先檢查買回元件的好壞,按各元件的檢測方法分別進行檢測,一定要仔細認真。而且要認真核對原理圖是否一致,在檢查好后才可上件、焊件,防止出現錯誤焊件后不便改正。2.放置、焊接各元件按原理圖的位置放置各元件,在放置過程中要先放置、焊接較低的元件,后焊較高的和要求較高的元件。特別是容易損壞的元件要后焊,在焊集成芯片時連續焊接時間不要超過10s,注意芯片的安裝方向。
參考文獻:
[1] 王千. 實用電子電路大全[M]. 電子工業出版社, 2004, 28-36
[2] 彭為. 單片機典型系統設計實例精講[M]. 電子工業出版社,2 006, 69-88
[3] 張榮. 基于單片機的智能系統設計與實現[M]. 電子工業出版社, 2005, 35-38
[4] 朱勇. 單片機原理與應用技術[M]. 清華大學出版社, 2006, 14-16