嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐嵌入式交通信號(hào)燈_第1頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐嵌入式交通信號(hào)燈_第2頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐嵌入式交通信號(hào)燈_第3頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐嵌入式交通信號(hào)燈_第4頁(yè)
嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐嵌入式交通信號(hào)燈_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐交通燈控制系統(tǒng) 專(zhuān) 業(yè): 電子信息工程 班 級(jí): 學(xué) 生 姓 名: 學(xué) 號(hào): 指 導(dǎo) 教 師: 目錄一、方案設(shè)計(jì)與論證31.1系統(tǒng)任務(wù)描述31.2系統(tǒng)方案設(shè)計(jì)41.3系統(tǒng)框圖5二、硬件電路設(shè)計(jì)52.1 k60p144m100sf2rm最小系統(tǒng)設(shè)計(jì)52.2數(shù)碼管顯示模塊設(shè)計(jì)72.3交通燈指示模塊設(shè)計(jì)8三、系統(tǒng)軟件設(shè)計(jì)83.1系統(tǒng)軟件流程圖83.2 500ms定時(shí)器子程序設(shè)計(jì)93.3 計(jì)數(shù)顯示子程序設(shè)計(jì)10四、系統(tǒng)調(diào)試124.1硬件調(diào)試114.2軟件調(diào)試114.3 綜合調(diào)試12五、總結(jié)12六、心得體會(huì)12七、附錄137.1系統(tǒng)實(shí)物圖137.2程序代碼147.3參考文獻(xiàn)19

2、摘要當(dāng)前伴隨著信息化社會(huì)的快速發(fā)展,國(guó)家不斷走向繁榮昌盛。與此同時(shí),快節(jié)奏也成為當(dāng)代人們?cè)诟鞔蟪鞘械闹饕卣鳌.?dāng)今社會(huì)上汽車(chē)越來(lái)越多,為了減少城市交通阻塞和維持良好穩(wěn)定的交通次序、加強(qiáng)對(duì)道路的管理力度。因此合理設(shè)計(jì)交通燈控制系統(tǒng)對(duì)維護(hù)道路安全和社會(huì)交通次序有著不可替代的作用。本文主要闡述交通燈控制系統(tǒng)的設(shè)計(jì)原理和過(guò)程,采用飛思卡爾k60作為系統(tǒng)的控制芯片,對(duì)系統(tǒng)的軟件和硬件進(jìn)行模塊化設(shè)計(jì),最終實(shí)現(xiàn)了基于飛思卡爾k60芯片的交通燈控制系統(tǒng)。該系統(tǒng)用紅、黃、綠三種顏色的發(fā)光二極管來(lái)代替三種實(shí)際中的交通燈,在控制器的驅(qū)動(dòng)下來(lái)形象化的演示實(shí)際中交通燈的運(yùn)行模式和工作過(guò)程。最終該系統(tǒng)實(shí)現(xiàn)了對(duì)車(chē)輛直行、左

3、轉(zhuǎn)、停止等待等基本功能。能夠有效地對(duì)城市中的車(chē)輛產(chǎn)生明確的指導(dǎo)和控制。關(guān)鍵詞:交通燈 k60p144m100sf2rm 數(shù)碼管 定時(shí)顯示 一、方案設(shè)計(jì)與論證1.1 系統(tǒng)任務(wù)描述本次設(shè)計(jì)中根據(jù)實(shí)際需要,結(jié)合嵌入式系統(tǒng)的特點(diǎn),完成對(duì)交通燈的控制系統(tǒng)設(shè)計(jì)。系統(tǒng)功能包括實(shí)現(xiàn)對(duì)車(chē)輛的直行,左拐、停止等待等功能?;陲w思卡爾k60p144m100sf2rm控制器,實(shí)現(xiàn)對(duì)車(chē)輛進(jìn)行指導(dǎo)控制。本系統(tǒng)中主要由控制器最小系統(tǒng)、數(shù)碼管顯示模塊、交通燈模塊等相關(guān)模塊構(gòu)成。系統(tǒng)任務(wù)包括三個(gè)環(huán)節(jié)。 假設(shè)十字路口南北方向?yàn)橹鞲绍?chē)道,東西方向?yàn)橹Ц傻馈?狀態(tài)一:南北方向、東西方向均設(shè)有紅、黃、綠三個(gè)指示燈。首先南北方向綠燈亮一

4、分鐘、東西方向紅燈亮一分鐘。此時(shí)處于向北方向的車(chē)輛處于綠燈狀態(tài),可以直行通過(guò)十字路口,而處于向東方向的車(chē)輛由于是紅燈等待則不能前行,需在線外等待向東方向的綠燈來(lái)臨才能前行。 狀態(tài)二:一分鐘之后,北方向的綠燈變?yōu)辄S燈亮,且亮十秒鐘。而在向東方向的紅燈還沒(méi)轉(zhuǎn)變狀態(tài),紅燈此時(shí)會(huì)連續(xù)閃爍10秒鐘,作為東西方向?qū)⒆兂删G燈通行狀態(tài)的提示。與此同時(shí),向西方向的左轉(zhuǎn)指示燈會(huì)變亮,也是亮10秒鐘,車(chē)輛可以左轉(zhuǎn)。 狀態(tài)三:10秒鐘過(guò)后,北方向的黃燈滅,紅燈亮60秒,處于主干道上的車(chē)輛不能直行通過(guò)。與此同時(shí)東方向的紅燈會(huì)滅,綠燈亮60秒,處于干道上的車(chē)輛可以直行。向北方向的車(chē)輛不能左轉(zhuǎn)。左轉(zhuǎn)指示燈會(huì)熄滅。狀態(tài)三執(zhí)行

5、完畢重新進(jìn)入狀態(tài)一開(kāi)始執(zhí)行,整過(guò)過(guò)程在k60控制器上電以后就進(jìn)入工作狀態(tài),無(wú)需人工干預(yù)。圖11為系統(tǒng)的工作狀態(tài)圖: 狀態(tài)二10秒狀態(tài)三60秒狀態(tài)一60秒k60上電:圖11 系統(tǒng)的工作狀態(tài)圖圖12 系統(tǒng)的工作方式圖1.2系統(tǒng)方案設(shè)計(jì)本系統(tǒng)基于k60p144m100sf2rm控制器設(shè)計(jì)的交通燈控制系統(tǒng)。設(shè)計(jì)過(guò)程主要采用自上向下的設(shè)計(jì)思路和模塊化設(shè)計(jì)的設(shè)計(jì)思想,對(duì)軟件和各個(gè)硬件模塊進(jìn)行獨(dú)立設(shè)計(jì),綜合調(diào)試。軟件包括顯示、定時(shí)器、gpio、時(shí)鐘等設(shè)置。硬件電路包括由三極管驅(qū)動(dòng)的數(shù)碼管顯示電路以及交通燈顯示電路。1.3系統(tǒng)框圖電源交通燈指示模塊數(shù)碼管顯示計(jì)時(shí)模塊k60p144m100sf2rm 控制器最小

6、系統(tǒng)圖13 系統(tǒng)框圖二、硬件電路設(shè)計(jì)本系統(tǒng)中硬件系統(tǒng)包括k60p144m100sf2rm最小系統(tǒng)設(shè)計(jì)、數(shù)碼管顯示模塊、交通燈顯示模塊。采用模塊化設(shè)計(jì)的思想對(duì)以上模塊進(jìn)行設(shè)計(jì)。2.1 k60p144m100sf2rm最小系統(tǒng)設(shè)計(jì)kinetis是低功耗可擴(kuò)展和在工業(yè)上使用混合信號(hào)arm cortex-m4系列mcu的最好的組合。kinetis系列mcu結(jié)合了最新的低功耗革新技術(shù)和高性能,高精密混合信號(hào)功能與連通,人機(jī)界面,安全及外設(shè)廣泛。kinetis mcus使用了飛思卡爾和arm第三方合作伙伴的市場(chǎng)領(lǐng)先的捆綁模式。所有kinetis系列都包涵強(qiáng)大的邏輯、通信和時(shí)序陣列和帶有伴隨著閃存

7、大小和i/o數(shù)量的集成度等級(jí)的控制外圍部件。kinetis 產(chǎn)品組合內(nèi)核具有以下特點(diǎn):arm cortex-m4 內(nèi)核帶dsp 指令,性能可達(dá) 1.25 dmips/mhz ( 部分kinetis 系列提供浮點(diǎn)單元);32 通道的dma 可用于外設(shè)和存儲(chǔ)器數(shù)據(jù)傳輸并減少cpu 干預(yù);提供不同級(jí)別的cpu 頻率50 mhz、72 mhz 和100 mhz (部分kinetis 系列提供120 mhz 和150 mhz );10 種低功耗操作模式用于優(yōu)化外設(shè)活動(dòng)和喚醒時(shí)間以延長(zhǎng)電池的壽命;行業(yè)領(lǐng)先的快速喚醒時(shí)間。正是由于k60控制器在性能上有較多的優(yōu)點(diǎn)和較低的功耗,因而適合用來(lái)開(kāi)發(fā)交通燈控制系統(tǒng)。

8、以下為本控制器的最小系統(tǒng)原理圖:(1)(2)(3)圖21 最小系統(tǒng)原理圖2.2數(shù)碼管顯示模塊設(shè)計(jì) 數(shù)碼管分為七段和八段兩種。根據(jù)極性也可分為共陰和共陽(yáng)兩種類(lèi)別。其原理是根據(jù)發(fā)光二極管的組合成顯示09,還包括字母a,b,c,d,e,f等。共陰數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(com)的數(shù)碼管,共陰數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極com接到地線gnd上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮,當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。圖22 數(shù)碼管工作原理圖 分別對(duì)三個(gè)狀態(tài)進(jìn)行計(jì)時(shí),個(gè)位和十位分別用一個(gè)數(shù)碼管顯示,每次計(jì)時(shí)加一的時(shí)間是1s。以下是本模塊的原理圖:圖23

9、數(shù)碼管顯示模塊原理圖 其中由數(shù)碼管的位選端和段選端進(jìn)行控制數(shù)碼管的顯示程序。根據(jù)pnp三極管的導(dǎo)通原理,當(dāng)位選端為低電平時(shí),三極管導(dǎo)通,根據(jù)共陽(yáng)極編碼進(jìn)行合理設(shè)置即可。此外用三極管驅(qū)動(dòng)數(shù)碼管的原因是三極管顯示更明亮一些。用數(shù)碼管顯示效果比較直觀。2.3交通燈指示模塊設(shè)計(jì) 本模塊用紅、黃、綠三種顏色的發(fā)光二極管來(lái)代替實(shí)際中的交通指示燈。紅燈亮則表示車(chē)輛停止等待,黃燈亮則表示綠燈在向紅燈的跳變過(guò)程中允許已經(jīng)越過(guò)規(guī)定線的車(chē)輛繼續(xù)前行。綠燈則表示車(chē)輛可以直行通過(guò)。在此系統(tǒng)中,一共有7個(gè)指示燈。圖24 交通燈指示模塊原理圖三、系統(tǒng)軟件設(shè)計(jì) 3.1系統(tǒng)軟件流程圖 在系統(tǒng)的軟件設(shè)計(jì)時(shí),需要對(duì)系統(tǒng)時(shí)鐘進(jìn)行設(shè)計(jì)

10、,以滿(mǎn)足對(duì)本次系統(tǒng)的功能需求。還需對(duì)gpio端口進(jìn)行初始化設(shè)置,500ms定時(shí)延遲設(shè)置。然后需要考慮交通燈的三個(gè)工作狀態(tài),合理安排顯示與計(jì)數(shù)的時(shí)序關(guān)系。 開(kāi)始 系統(tǒng)初始化程序 交通指示燈交替亮滅時(shí)鐘設(shè)置500ms定時(shí)器設(shè)置計(jì)數(shù)結(jié)束?n 計(jì)數(shù)程序 數(shù)碼管顯示y結(jié)束圖31 系統(tǒng)軟件流程圖3.2 500ms定時(shí)器子程序設(shè)計(jì)開(kāi)始 本模塊是將產(chǎn)生500ms定時(shí)器,讓在計(jì)數(shù)器計(jì)數(shù)時(shí)提供計(jì)時(shí)間隔,同時(shí)也可作為數(shù)碼管個(gè)位和十位的刷新時(shí)間,即每次數(shù)碼管顯示更新遞增一個(gè)數(shù)字經(jīng)過(guò)的時(shí)間是1s。以下是本模塊的子程序軟件流程圖: 設(shè)置lptmr定時(shí)器設(shè)置count_val比較值 觸發(fā)輸出1khz lpo時(shí)鐘計(jì)數(shù)清除標(biāo)志

11、位reach count_v值?結(jié)束yn圖32 定時(shí)器子程序軟件流程圖 3.3 計(jì)數(shù)顯示子程序設(shè)計(jì) 計(jì)數(shù)顯示是在定時(shí)器運(yùn)行前提下進(jìn)行工作的。數(shù)碼管每刷新一個(gè)數(shù)時(shí),時(shí)間是1s。這樣的好處是顯示與指示燈狀態(tài)同步起來(lái)。同時(shí)也能做到效果比較直觀。以下是此部分模塊的流程圖:開(kāi)始 dis_0=0 dis_1=0dis_2=0初始化 1000ms定時(shí)器數(shù)碼管譯碼指示燈亮dis_0+dis_0<60y1000ms定時(shí)器數(shù)碼管譯碼指示燈亮1000ms定時(shí)器數(shù)碼管譯碼指示燈亮ndis_2+dis_2<60?dis_1+dis_1<10? yyn結(jié)束 n圖33 計(jì)數(shù)顯示模塊流程圖四、系統(tǒng)調(diào)試4.1

12、硬件調(diào)試 在硬件調(diào)試時(shí),k60最小系統(tǒng)的調(diào)試就是用集成mini核心板進(jìn)行調(diào)試,當(dāng)系統(tǒng)上電后,將系統(tǒng)示例程序下載到開(kāi)發(fā)板中,用一個(gè)示例led等進(jìn)行測(cè)試能否正常運(yùn)行。在gpio端口進(jìn)行初始化后,應(yīng)對(duì)端口進(jìn)行合理設(shè)置。在對(duì)核心板程序下載成功后,在程序能正確運(yùn)行時(shí),可以根據(jù)共陽(yáng)數(shù)碼管的特點(diǎn)進(jìn)行測(cè)試,對(duì)顯示電路能否正常工作進(jìn)行測(cè)試。驗(yàn)看數(shù)碼管計(jì)數(shù)時(shí)是否與預(yù)想的一樣,若不一樣營(yíng)及時(shí)修正程序。最終使結(jié)果出現(xiàn)與預(yù)期一樣。4.2軟件調(diào)試 在軟件調(diào)試時(shí),在iar for arm 6.30版本平臺(tái)上進(jìn)行編程下載,通過(guò)jlinkji進(jìn)行下載到k60核心板中。在調(diào)試時(shí)可以用單步調(diào)試,全速運(yùn)行,設(shè)置斷點(diǎn)等方式。與此同時(shí)觀

13、看寄存器和變量的值在調(diào)試中常常發(fā)揮著重要作用。在修改和完善程序后,最終下載到核心板中運(yùn)行。以下是iar 開(kāi)發(fā)界面:圖41 iar 開(kāi)發(fā)界面圖4.3 綜合調(diào)試 在綜合調(diào)試時(shí),首先應(yīng)確保硬件和軟件都調(diào)試完畢,將程序下載到硬件系統(tǒng)中后,首先應(yīng)注意以下事項(xiàng); 在上電之前應(yīng)用數(shù)字萬(wàn)用表檢測(cè)硬件電路的電源vcc和地是否導(dǎo)通,若導(dǎo)通,應(yīng)及時(shí)檢查后確保不能讓電源和地短路;同時(shí)檢測(cè)電路是否有虛焊現(xiàn)象,應(yīng)及時(shí)解決這些可能對(duì)結(jié)果造成不良影響的問(wèn)題,然后才能上電。 上電之后,觀看實(shí)驗(yàn)效果,看數(shù)碼管刷新時(shí)間和交通指示燈亮滅是否和預(yù)期相同,若時(shí)序不符合要求,應(yīng)及時(shí)調(diào)整硬件或者軟件。 在與核心板連接線時(shí),應(yīng)避免與io口短接

14、,造成數(shù)碼管顯示亂碼或者顯示效果不佳。五、總結(jié)本次基于飛思卡爾k60p144m100sf2rm控制器設(shè)計(jì)的交通燈控制系統(tǒng),通過(guò)合理的軟件設(shè)計(jì)和硬件設(shè)計(jì),實(shí)現(xiàn)了交通燈綠燈亮60秒,黃燈亮10秒,紅燈亮60秒,對(duì)南北主干道方向和東西支干道車(chē)輛進(jìn)行直行和左轉(zhuǎn)控制。用紅、綠、黃led發(fā)光二極管代替實(shí)際中的交通指示燈,用數(shù)碼管對(duì)亮滅時(shí)間進(jìn)行計(jì)時(shí),使結(jié)果直觀。六、心得體會(huì)本次關(guān)于嵌入式系統(tǒng)設(shè)計(jì)專(zhuān)題實(shí)踐,通過(guò)用基于cortex-m4內(nèi)核的k60p144m100sf2rm控制器,我對(duì)嵌入式系統(tǒng)設(shè)計(jì)有了進(jìn)一步的認(rèn)識(shí)。在本次系統(tǒng)設(shè)計(jì)過(guò)程中,主要采用的是模塊化設(shè)計(jì)的思想和自頂向下的設(shè)計(jì)原則,將功能細(xì)化,每一功能對(duì)應(yīng)

15、一個(gè)功能子程序。在軟件設(shè)計(jì)時(shí)我進(jìn)一步體會(huì)到了畫(huà)流程圖的重要性。面對(duì)一個(gè)系統(tǒng)設(shè)計(jì)時(shí),我們首先應(yīng)該將功能劃分和細(xì)化,每一部分可以畫(huà)一些單個(gè)的子程序流程圖,這樣在軟件設(shè)計(jì)時(shí)可以會(huì)在思緒上要清晰一些。調(diào)試步驟則采用硬件和軟件分開(kāi)調(diào)試,最后再綜合調(diào)試的方案。在軟件調(diào)試時(shí),我們首先將程序編譯通過(guò)后,經(jīng)過(guò)j-link下載到核心板中,然后可以在線仿真和調(diào)試。在調(diào)試時(shí),除了首先全速運(yùn)行程序外,如果運(yùn)行結(jié)果不太理想,這時(shí)我們可以采用單步調(diào)試,設(shè)置斷點(diǎn)等方式進(jìn)行調(diào)試。還有需要注意的是,在燒寫(xiě)程序時(shí),不能直接從核心板上拔下j-link,應(yīng)斷電后小心取下。關(guān)于軟件調(diào)試和軟件編寫(xiě)在本次實(shí)踐中我的感悟還是挺多的。在硬件調(diào)試

16、時(shí),一開(kāi)始在程序正常運(yùn)行時(shí)數(shù)碼管始終效果不明顯,后來(lái)分析得知是驅(qū)動(dòng)電流不大造成數(shù)碼管顯示比較暗的。最后的解決辦法是在數(shù)碼管的位選端加了三極管進(jìn)行放大,最終數(shù)碼管顯示的效果才會(huì)直觀,明亮。在測(cè)試led燈的好壞時(shí),我由于沒(méi)有考慮到發(fā)光二極管的導(dǎo)通電壓,以為這個(gè)直徑較大的發(fā)光二極管應(yīng)該在3.3v電壓時(shí)是不會(huì)擊穿的。因而也為了簡(jiǎn)易就沒(méi)有加上限流電阻。最后在測(cè)試時(shí),在接上3.3v電壓時(shí),紅色和黃色的led發(fā)光二極管都在瞬間被擊穿,只有綠燈能夠正常導(dǎo)通發(fā)光。所幸的是核心板有短路保護(hù)模式,不然結(jié)果是比較嚴(yán)重的。最終我還是都接上了330歐姆的限流電阻,才解決這個(gè)問(wèn)題。這些都是我在不了解元器件的前提下所犯的錯(cuò)誤

17、。通過(guò)此次實(shí)踐,也讓我吸取了這一點(diǎn)教訓(xùn)。在實(shí)驗(yàn)之前,應(yīng)對(duì)元器件有了基本的了解才能去利用它們進(jìn)行設(shè)計(jì)。通過(guò)這次交通燈的實(shí)驗(yàn),我學(xué)會(huì)并了解了一些嵌入式與單片機(jī)的相同和不同之處,更 讓我感到了嵌入式的強(qiáng)大。以往在單片機(jī)的學(xué)習(xí)和課程設(shè)計(jì)中,一些知識(shí)點(diǎn)并不會(huì)顯的十分復(fù)雜,而現(xiàn)在的嵌入式系涉及到了更多的知識(shí)和復(fù)雜的理論。因?yàn)榍度胧讲粌H僅是一個(gè)高級(jí)的一些的單片機(jī),而是涉及到了系統(tǒng)的概念,從功能上還是應(yīng)用、實(shí)時(shí)、穩(wěn)定上都要優(yōu)于單片機(jī)。 另外,從做交通燈的實(shí)驗(yàn)中,學(xué)習(xí)和鞏固了以前的編程知識(shí),還有對(duì)天一些電路的分 析,數(shù)電模電的知識(shí)等。更重要的是在這次實(shí)驗(yàn)中,得到了動(dòng)手能力和思維方式的鍛煉。做為一名自動(dòng)化專(zhuān)業(yè)的學(xué)

18、生,動(dòng)手能力和思維方式的鍛煉是成為得要的,特別在以后遇到問(wèn)題時(shí)要有解決問(wèn)題的能力。 七、附錄 7.1系統(tǒng)實(shí)物圖 ·(1)(2)(3)圖71 系統(tǒng)實(shí)物圖7.2程序代碼:void main (void) /int m=0; /printf("twr-k60n512 gpio example!n"); / uint i=0; /* turn on all port clocks */ sim_scgc5 = sim_scgc5_porta_mask | sim_scgc5_portb_mask | sim_scgc5_portc_mask | sim_scgc5_por

19、td_mask | sim_scgc5_porte_mask; /* enable gpioa and gpioe interrupts in nvic */ /enable_irq(87); /gpioa vector is 103. irq# is 103-16=87 /enable_irq(91); /gpioe vector is 107. irq# is 107-16=91 /* initialize gpio on twr-k60n512 */ init_gpio(); gpio_set (portb, 21, 1); gpio_set (portb, 20, 1); gpio_s

20、et (porta, 17, 0); gpio_set (porta, 16, 0); gpio_set (porta, 15, 0); gpio_set (porta, 14, 0); gpio_set (porta, 13, 0); gpio_set (porta, 12, 0); data7(); while(1) for(dis_0 =0;dis_0<62;dis_0+) if(dis_0<=60) gpio_set (porta, 17, 1); gpio_set (porta, 16, 1); data7(); /time_delay_ms(1000); gpio_se

21、t (portb, 20,0); /time_delay_ms(1000); gpio_set_pin(port_d,dis_codedis_0%10); /gpio_set (portb, 20,1); time_delay_ms(500); /data7(); /delay(); gpio_set (portb, 20, 1); data7(); gpio_set (portb, 21, 0); gpio_set_pin(port_d,dis_codedis_0/10); /time_delay_ms(100); /data7(); / delay(); time_delay_ms(500

22、); data7(); gpio_set (portb, 21,1); /time_delay_ms(1000); if(dis_0>60) gpio_set (portb, 21, 1); gpio_set (portb, 20, 1); gpio_set (porta, 17, 0); /gpio_set (porta, 13, 1); for(dis_1 =0;dis_1<12;dis_1+) if(dis_1<=10) gpio_set (porta, 15, 1); gpio_set (porta, 13, 1); data7(); /time_delay_ms(1

23、000); gpio_set (portb, 20,0); /time_delay_ms(1000); gpio_set_pin(port_d,dis_codedis_1); /gpio_set (portb, 20,1); time_delay_ms(500); gpio_set (porta, 16, 1); /delay(); time_delay_ms(500); gpio_set (porta, 16, 0); /data7(); /delay(); /io_set (portb, 20, 1); /data7(); /gpio_set (portb, 21, 0); /gpio_s

24、et_pin(port_d,dis_codedis_1/10); /time_delay_ms(100); /data7(); / delay(); /time_delay_ms(500); /data7(); /gpio_set (portb, 21,1); /time_delay_ms(1000); if(dis_1>10) gpio_set (portb, 20,1); gpio_set (portb, 21,1); gpio_set (porta, 16, 0); gpio_set (porta, 15, 0); gpio_set (porta, 13, 0); for(dis_

25、2=0;dis_2<61;dis_2+) if(dis_2<60) gpio_set (porta, 14, 1); gpio_set (porta, 12, 1); data7(); /time_delay_ms(1000); gpio_set (portb, 20,0); /time_delay_ms(1000); gpio_set_pin(port_d,dis_codedis_2%10); /gpio_set (portb, 20,1); time_delay_ms(500); /data7(); /delay(); gpio_set (portb, 20, 1); data

26、7(); gpio_set (portb, 21, 0); gpio_set_pin(port_d,dis_codedis_2/10); /time_delay_ms(100); /data7(); / delay(); time_delay_ms(500); data7(); gpio_set (portb, 21,1); if(dis_2>=60) gpio_set (portb, 20,1); gpio_set (portb, 21,1); gpio_set (porta, 14, 0); gpio_set (porta, 12, 0); /gpio_set (porta, 13,

27、 0); /time_delay_ms(1000); void init_gpio() /set pta19 and pte26 (connected to sw1 and sw2) for gpio functionality, falling irq, / and to use internal pull-ups. (pin defaults to input state) /porta_pcr19=port_pcr_mux(1)|port_pcr_irqc(0xa)|port_pcr_pe_mask|port_pcr_ps_mask; /porte_pcr26=port_pcr_mux(

28、1)|port_pcr_irqc(0xa)|port_pcr_pe_mask|port_pcr_ps_mask; /set ptb10, ptb21, ptb21, and ptb23 (connected to led's) for gpio functionality/修改適合本電路板 portb_pcr20=(0|port_pcr_mux(1); portb_pcr21=(0|port_pcr_mux(1); /portb_pcr22=(0|port_pcr_mux(1); /portb_pcr23=(0|port_pcr_mux(1); portd_pcr0=(0|port_pcr_mux(1); portd_pcr1=(0|port_pcr_mux(1); portd_pcr2=(0|port_pcr_mux(1); portd

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論