驱动继电器实验
?
? ? ? ? ? ? ? ? ? ? ? ?
?
?
?
?
?
?
學(xué)生實(shí)驗(yàn)報(bào)告
?
?
?
?
?
?
?
課程名稱:單片機(jī)原理與應(yīng)用?
專業(yè)班級(jí):嵌入式14103班? __
姓??? 名:_趙存檔___________
學(xué)??? 號(hào):14160310317??????
?
?
2015--2016? ??學(xué)年第 1 學(xué)期
?
?
? 實(shí)驗(yàn)項(xiàng)目( 三 ) — 預(yù)習(xí)報(bào)告 | ||||
| 項(xiàng)目 名稱 | 驅(qū)動(dòng)繼電器實(shí)驗(yàn) | |||
| 實(shí)驗(yàn) 目的 及 要求 | 目的:學(xué)會(huì)本次實(shí)驗(yàn)是如何進(jìn)行實(shí)現(xiàn)的,以及對(duì)實(shí)驗(yàn)原理的理解。 要求:認(rèn)真完成本實(shí)驗(yàn)的keil代碼的編寫(xiě),proteus電路仿真圖的設(shè)計(jì)。 小組內(nèi)獨(dú)立完成實(shí)驗(yàn)項(xiàng)目?jī)?nèi)容。 | |||
| 實(shí)驗(yàn) 內(nèi)容 及 原理 | ? 驅(qū)動(dòng)繼電器的實(shí)驗(yàn): 實(shí)驗(yàn)內(nèi)容:先在proteus仿真軟件中畫(huà)好電路圖,然后在keil中編寫(xiě)驅(qū)動(dòng)繼電器的代碼。進(jìn)行調(diào)試代碼是否正確,如果正確設(shè)置好晶振頻率,生成hex文件,加載到proteus 51單片機(jī)中去。 實(shí)驗(yàn)原理:繼電器工作跟蜂鳴器類似,要加一個(gè)脈沖信號(hào),輸出高電平讓繼電器激磁,輸出低電平讓繼電器消磁,最后加一個(gè)循環(huán)。For循環(huán)中,定義變量count 來(lái)讓繼電器運(yùn)行多少次。 ?? ? | |||
| 預(yù)習(xí)過(guò)程中的疑問(wèn)以及疑問(wèn)? 解答 | ? ? 關(guān)于驅(qū)動(dòng)繼電器的實(shí)驗(yàn): 疑問(wèn)一:繼電器電路中,給繼電器并聯(lián)一個(gè)二極管是什么意思? 解答:防止直流繼電器斷開(kāi)時(shí)產(chǎn)生的反電動(dòng)勢(shì)對(duì)元件照成損壞,消耗反電動(dòng)勢(shì),續(xù)流的作用。 ? 疑問(wèn)二:繼電器串聯(lián)一個(gè)電阻有啥作用? 解答:保護(hù)電路,防止二極管被擊穿。 ? 疑問(wèn)三:讓繼電器激磁6s,消磁3s該怎么寫(xiě)? 解答:void delay(int x){ int i,j; for(i=0;i<x;i++)for(j=0;j<1200;j++);}Void ? count(int count.int High,int Low){ int i; for(i=0;i<count,i++);{ ? relay=1;delay(300); Relay=0;delay(600);} ? 疑問(wèn)四:delay延時(shí)函數(shù)是怎么計(jì)算的? 解答:void delay(int x){ int i,j; for(i=0;i<x;i++)for(j=0;j<1200;j++);} ? 這里12MHZ的晶振,一個(gè)機(jī)器周期12*1/12=1us,一個(gè)for循環(huán)8us,這里8*1200約等于10ms 總的延時(shí) x*10ms | |||
| 實(shí)驗(yàn)項(xiàng)目( 三 ) — 實(shí)驗(yàn)報(bào)告 | ? | |||
| 項(xiàng)目 名稱 | 驅(qū)動(dòng)繼電器實(shí)驗(yàn) | 指導(dǎo)教師 | 高照玲 | ? |
| 實(shí)驗(yàn)室 | 教室 | 實(shí)驗(yàn)日期 | 2015/10/14 | ? |
| 分組 情況 | 趙存檔、 | 成??? 績(jī) | ? | ? |
| 實(shí)驗(yàn)步驟(算法、代碼、方法)給出流程圖 | 驅(qū)動(dòng)繼電器的實(shí)驗(yàn): 流程圖: ?? ? 主要實(shí)現(xiàn)代碼: 繼電器激磁消磁代碼: void ? Relay(int count,int High,int Low) ?????? ?{ ????????????? ?int i; ????????????? ?for(i=0;i<count;i++) ????????????? ?{ ???????????????????? ?relay = 1; ???????????????????? ?delay(High); ???????????????????? ?relay = 0; ???????????????????? ?delay(Low); ????????????? ?} ?????? ?} 延遲代碼: void ? delay(int x) ?????? ?{ ????????????? ?int i,j; ????????????? ?for(i=0;i<x;i++) ????????????? ?for(j=0;j<60;j++); ?????? ?} ????????????? | ? | ||
| 實(shí)驗(yàn)結(jié)果(結(jié)論及 分析) | 通過(guò)實(shí)驗(yàn),知道怎么樣給單片機(jī)產(chǎn)生一個(gè)脈沖信號(hào):一段高電平,一段低電平。 編寫(xiě)代碼的時(shí)候,知道怎么寫(xiě)一個(gè)延遲函數(shù)也就是for循環(huán):先知道機(jī)器周期12MHZ的晶振是12*1/12=1us。X * 第2個(gè)for循環(huán)里面的數(shù)字約等于幾ms; Delay()函數(shù)里面填寫(xiě) X數(shù)字。 畫(huà)電路的時(shí)候注意一些要點(diǎn):加不加電阻和二極管之類的。 編寫(xiě)代碼的時(shí)候:延時(shí)函數(shù)的第一個(gè)for后面沒(méi)有分號(hào)的,不然會(huì)照成延時(shí)不對(duì)。 | ? | ||
| 成績(jī) | ? ? ? ? | ? | ||
?
總結(jié)
- 上一篇: Shell脚本经典之Fork炸弹
- 下一篇: 恢复联想键盘F1-F12标准模式