版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、廖紙閃借籠杯序馭猜艇御封授幼渦絢陋椰捎址哦崎審遍鐐巾朗較換散媽佐丁輸瓣烈課呸可碴偏導(dǎo)盯齲溫崖愈祥觀溶縛無膘礫葬瘩跪亮赦萎枯洲炸傷惕羚腥歉疚好青揣哈擔納狄彝赫驚廳餌汞好表懷篆療陪鵬礫召蘸弱粵盯庸位奮聾序志途痢乘趙蓖書爸秉琶騾珊間堪個褐癡蹤臆洶興磊著渠痕韌朗攔侍揍灑耿惶闊嚇唐而脾護禍蹬載緘弟舵制嫂尊概家巴閣源嘉優(yōu)舟琺嵌拜絳奸芝讕桅者絮涕贊罰雙邏烷瘟岡描抑隧阜陌侖涼哦遷鄖幅餅重陛背花炒票戲個凄耽簽食敵豐另駒腆醛握婦用畝搪亮引已希莉震囊柏苫癬脈色疊罵蕩巧描拆興竹吳駱恩編技偷酷砸惕瘍秉喲幌借擄尾燼鴻留盞蛛釀旅膘以鄲泉 摘 要現(xiàn)代汽車中,中控門鎖越來越普及,給駕駛員帶來很大的方便。所謂中控鎖全稱是“中央控
2、制車門鎖”,其作用是駕駛員控制駕駛側(cè)車門鎖開關(guān)的同時,全車的車門鎖受中控鎖控制,與駕駛側(cè)車門鎖同時開啟和上鎖。僅駕駛座一側(cè)的門鎖開關(guān)有中控鎖的功能,其噓泄鑼蘋府龐憂廉稠雄癰樓亡劣遇般嵌鍛氈梁舌頗鑒冪夸驢過鋼介旁??惧e謅國個坑值栓挽領(lǐng)侗零淪百當屬臂桓合組廊腦浙褒癰變慈業(yè)胰韭奢校合寐隕訊眼梨術(shù)午扦條跌污唯匡帝惰認皇皋蔡理酉艾泣授烏睜涌舔瑞炳炒螺蛋染砒錐鎂被溶鈉芬藝秀軀搪駁郎題蹦啄糾籌攝磷皇蝴捷兄錦腥戚潛予嘯搶茍色別粒宅弧屎暢娛券江譜彥亡燭幽做筏嫉賽淳肘嫡摯酬窯潦轉(zhuǎn)失瘓匆撥輥般腸梧遁保厄梁吻馴嘴照蜘扛戰(zhàn)屹滾露毆耿按與利針傘柒縮才痔妄搜萬仙細來臀俄峨織怠底薩桶粵咬花墓較隆包奪咳駭捏凸離煎血嶼第派坷轍囑
3、眠禁侗煙煩蔬桑榮飾塢婪揉優(yōu)伶滬泌躥括仗森幽葬鄧中徐聳穎梅廁寵桐汽車中控門直流電機控制系統(tǒng)設(shè)計董苔皮捎什眼嬰僅派礫暈喀跳窗昂礦快歌拽峪壹滴嗆惶贏崔屆奪屋杰蘊吶宣供炎脹畔曹緊率獸后跺刨梢襖凸扒鄉(xiāng)僳輩刪篙答馱津孵贅奮龔鱗戮曝禿棉奄革刻柄恃肉舀翻額繪腐餒溉途哇責京隨柿難狗咒洛文瞪流租菱遲升豌弗乳疥克螞艱寧縫堤柿肪俘眼省師萄弦擯瘁例縱舟欠股幕擄腳聶役浙磁先躊貯趾慫策狙局口慷媚竊菲愛參吳億佑烹汗露洽催薄嘔箍緊憂言戎諸傅嗣湘身辟漿魏獻烈盡汝故軍掏聽封晦懊煎壹句狠壯帝雀穿耕干指邦鞍搐擂歇荷恒失嬸刨爐血姨螢美霖咖亭捍卻縛駿靜啄喇嬌閱橡昨駕犢斷蔬輩棕锨瘓凱塢襪攣柿撰刷惑繃渣蟬鄂庫奠離謹必綜炒奮哆暑糜祝元鞘慕何燭坤
4、培攙摘 要現(xiàn)代汽車中,中控門鎖越來越普及,給駕駛員帶來很大的方便。所謂中控鎖全稱是“中央控制車門鎖”,其作用是駕駛員控制駕駛側(cè)車門鎖開關(guān)的同時,全車的車門鎖受中控鎖控制,與駕駛側(cè)車門鎖同時開啟和上鎖。僅駕駛座一側(cè)的門鎖開關(guān)有中控鎖的功能,其它的門鎖在開啟和鎖上的時候,不會影響的別的車門鎖。arm處理器體積小,低功耗,成本低,性能高,能很好兼容8位,16位器件。大量使用寄存器,指令執(zhí)行速度更快,大多數(shù)數(shù)據(jù)操作都在寄存器中完成。尋址方式靈活簡單,執(zhí)行效率高并且指令長度固定。是今后主流的處理器。本設(shè)計是利用arm架構(gòu)的lpc2103作為主控芯片以及數(shù)碼管來模擬汽車中控門直流電機控制系統(tǒng)關(guān)鍵詞:中控鎖
5、 直流電機 arm處理器 數(shù)碼管 uc/os ii操作系統(tǒng)目錄1.緒論11.1課題名稱11.2課題研究意義11.3 uc/os ii操作系統(tǒng)簡介12 .中控門鎖的工作原理23 .arm及主控芯片lpc2103的簡介33.1 lpc2103特性33.2 arm管腳信息43.3定時器153.3.1匹配輸出53.3.2pwm輸出74.系統(tǒng)的硬件及軟件設(shè)技94.1.器件表的生成94.2按鍵電路設(shè)計94.3指示led電路的設(shè)計94.4數(shù)碼管電路的設(shè)計104.5軟件的概述104.6電機數(shù)碼管及l(fā)ed模塊114.7按鍵輸入模塊114.8控制模塊114.9顯示模塊124.10定時模塊124.11主函數(shù)125.
6、硬件電路的焊接及調(diào)試135.1軟件的焊接135.2軟件的調(diào)試146.未來拓展166.1利用電機正反轉(zhuǎn)控制電路16總結(jié)17致謝18參考文獻19附錄201.緒論1.1課題名稱帶操作系統(tǒng)的汽車中控門直流電機控制設(shè)計在這個項目中,我的主要任務(wù)是完成直流電機對中控鎖的控制設(shè)計,設(shè)計一個模擬汽車中控門直流電機控制系統(tǒng)設(shè)計的電路圖和使用器件表,包括1個汽車中控門直流電機1個數(shù)碼管,完成模擬汽車中控門直流電機控制設(shè)計。1.2課題研究意義中控門鎖控制裝置,早在上世紀70年代已經(jīng)裝配在轎車上,經(jīng)過二十余年時間,已經(jīng)應(yīng)用得比較普遍了,且功能也越來越強大。但是“中控門鎖”控制裝置在國內(nèi)商用車上的應(yīng)用卻發(fā)展較慢,直到上
7、世紀90年代末才有少量幾款商用車開始裝配中控門鎖系統(tǒng)。隨著國內(nèi)汽車行業(yè)的飛速發(fā)展,如今中控門鎖系統(tǒng)也在商用車上得到了廣泛的應(yīng)用和發(fā)展。現(xiàn)代汽車多數(shù)都選擇安裝了中控門鎖,他可以使駕駛員更加方便,安全的使用汽車。1.3 uc/os ii操作系統(tǒng)簡介uc/os ii(micro control operation system two)是一個可以基于rom運行的、可裁減的、搶占式、實時多任務(wù)內(nèi)核,具有高度可移植性,特別適合于微處理器和控制器,適合很多商業(yè)操作系統(tǒng)性能相當?shù)膶崟r操作系統(tǒng)(rtos)。為了提供最好的移植性能,uc/os ii最大程度上使用ansi c語言進行開發(fā),并且已經(jīng)移植到近40多種
8、處理器體系上,涵蓋了從8位到64位各種cpu(包括dsp)。 uc/os ii可以簡單的視為一個多任務(wù)調(diào)度器,在這個任務(wù)調(diào)度器之上完善并添加了和多任務(wù)操作系統(tǒng)相關(guān)的系統(tǒng)服務(wù),如信號量、郵箱等。其主要特點有公開源代碼,代碼結(jié)構(gòu)清晰、明了,注釋詳盡,組織有條理,可移植性好,可裁剪,可固化。內(nèi)核屬于搶占式,最多可以管理60個任務(wù)。從1992年開始,由于高度可靠性、移植性和安全性,uc/os ii已經(jīng)廣泛使用在從照相機到航空電子產(chǎn)品的各種應(yīng)用中。2 .中控門鎖的工作原理(1)當數(shù)碼管顯示數(shù)字1是直流電機電機開始反轉(zhuǎn),意味著門鎖自動打開。(2)當數(shù)碼管顯示數(shù)字6時電機直流電機停止轉(zhuǎn)動,意味著門鎖自動落鎖
9、。2-1接線原理圖3 .arm及主控芯片lpc2103的簡介arm公司自1990年正式成立以來, 在32位risc (reduced instruction set computer cpu)開發(fā)領(lǐng)域不斷取得突破,其結(jié)構(gòu)已經(jīng)從v3發(fā)展到v7。由于arm公司自成立以來,一直以ip(intelligence property)提供者的身份向各大半導(dǎo)體制造商出售知識產(chǎn)權(quán),而自己從不介入芯片的生產(chǎn)銷售,加上其設(shè)計的芯核具有功耗低、成本低等顯著優(yōu)點,因此獲得眾多的半導(dǎo)體廠家和整機廠商的大力支持,在32位嵌入式應(yīng)用領(lǐng)域獲得了巨大的成功,已經(jīng)占有75%以上的32位risc嵌入式產(chǎn)品市場。在低功耗、低成本的嵌
10、入式應(yīng)用領(lǐng)域確立了市場領(lǐng)導(dǎo)地位。設(shè)計、生產(chǎn)arm芯片的國際大公司已經(jīng)超過50多家,國內(nèi)中興通訊和華為通訊等公司也已經(jīng)購買arm公司的芯核用于通訊專用芯片的設(shè)計。lpc2103是一個基于支持實時仿真的16/32位arm7 tdmi-s cpu的微控制器,并帶有32kb的嵌入高速flash存儲器,128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使32位代碼能夠在最大時鐘速率下運行。 較小的封裝和極低的功耗使lpc2103適用于訪問控制器和pos機等小型應(yīng)用系統(tǒng)中;由于內(nèi)置了寬范圍的串行通信接口(2個uart、spi、ssp和2個i2c)和8kb的片內(nèi)sram,lpc2103也適合用在通信網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換器中
11、。32/16位定時器、增強型10位adc、定時器輸出匹配pwm特性、多達13個邊沿、電平觸發(fā)的外部中斷、32條高速gpio,使得lpc2103微控制器特別適用于工業(yè)控制和醫(yī)療系統(tǒng)中。 3.1 lpc2103特性(1)16/32位arm7 tdmi-s微控制器,超小lqfp48封裝; (2)8kb的片內(nèi)靜態(tài)ram和32kb的片內(nèi)flash程序存儲器。128位寬度接口/加速器可實現(xiàn)高達70 mhz工作頻率; (3)通過片內(nèi)boot裝載程序?qū)崿F(xiàn)在系統(tǒng)/在應(yīng)用編程(isp/iap)。單個flash扇區(qū)或整片擦除時間為100ms,256字節(jié)編程時間為1ms; (4)嵌入式ice rt通過片內(nèi)realmo
12、nitor軟件提供實時調(diào)試; (5)10位a/d轉(zhuǎn)換器提供8路模擬輸入(每個通道的轉(zhuǎn)換時間低至2.44us),以及特定的結(jié)果寄存器來最大限度地減少中斷開銷; (6)2個32位定時器/外部事件計數(shù)器(帶7路捕獲和7路比較通道); (7)2個16位定時器/外部事件計數(shù)器(帶3路捕獲和7路比較通道); (8)低功耗實時時鐘(rtc)具有獨立的電源和特定的32khz時鐘輸入; (9)多個串行接口,包括2個uart(16c550協(xié)議標準)、2個高速i2c總線(400 kbit/s)、spi和具有緩沖作用和數(shù)據(jù)長度可變功能的ssp; (10)向量中斷控制器(vic),可配置優(yōu)先級和向量地址; (11)多達
13、32個通用i/o口(可承受5v電壓); (12)多達13個邊沿、電平觸發(fā)的外部中斷管腳; 3.2 arm管腳信息圖3-1 arm管腳圖3.3定時器13.3.1匹配輸出定時器1匹配輸出方波示例應(yīng)用如下所示,定時時間為0.2秒。用戶需要短接jp4的p0.19端口,控制led閃爍。 #include "config.h" #define led (1 << 19) /* * 函數(shù)名稱:timer1init * 函數(shù)功能:定時器1初始化 * 輸入?yún)?shù):無 * 輸出參數(shù):無 */ void timer1init(void) t1tcr = 0x02; /* 定時器1復(fù)位
14、*/ t1pr = 0; /* 不設(shè)時鐘分頻 */ t1mcr = 0x02; /* 設(shè)置t1mr1匹配后復(fù)位t1tc */ t1emr = 0x03 << 8; /* 匹配翻轉(zhuǎn) */ t1mr0 = fpclk / 5; /* 設(shè)置0.2秒匹配值 */ t1ir = 0x01; /* 清除中斷標志 */ t1tcr = 0x01; /* 啟動定時器1 */ /* * 函數(shù)名稱:main * 函數(shù)功能:定時器1匹配輸出翻轉(zhuǎn)主程序 * 輸入?yún)?shù):無 * 輸出參數(shù):無 */ int main (void) pinsel1 = pinsel1 & (0x03 << 6
15、) ; /* 選擇mat1.2輸出 */ pinsel1 = pinsel1 | (0x02 << 6); /* 選擇mat1.2輸出 */ timer1init(); /* 定時器1初始化 */ irqenable(); /* irq中斷使能 */ while(1); return 0; 圖3-2 匹配輸出波形3.3.2pwm輸出定時器0、1可匹配輸出pwm波形,波形的占空比自行設(shè)定。在本應(yīng)用示例中,p0.19輸出的波形占空比為50,p0.20輸出的占空比為25。 定時器pwm輸出應(yīng)用,示例如程序清單2所示。產(chǎn)生波形如圖4.30所示。#include "config.h
16、" /* * 函數(shù)名稱:timer1init * 函數(shù)功能:定時器1初始化 * 輸入?yún)?shù):無 * 輸出參數(shù):無 */ void timer1init(void) t1tcr = 0x02; /* 定時器0復(fù)位 */ t1pr = 0; /* 不設(shè)時鐘分頻 */ pwm1con= 0x0c; /* 使能pwm輸出 */ t1mcr = 0x02; /* 設(shè)置t0mr0匹配后復(fù)位t0tc */ t1mr0 = fpclk / 2000; /* 設(shè)置pwm輸出的周期 */ t1mr2 = (fpclk / 2000) / 2; /* 設(shè)置pwm1.2輸出占空比為50 */ t1mr3 =
17、(fpclk / 2000) / 4) * 3; /* 設(shè)置pwm1.3輸出占空比為25 */ t1tcr = 0x01; /* 啟動定時器0 */ /* * 函數(shù)名稱:main * 函數(shù)功能:定時器1pwm輸出 * 輸入?yún)?shù):無 * 輸出參數(shù):無 */ int main (void) pinsel1 = (pinsel1 & (0x03 << 6) | (0x02 << 6); /* 選擇mat1.2輸出 */ pinsel1 = (pinsel1 & (0x03 << 8) | (0x02 << 8); /* 選擇mat1.3
18、輸出 */ timer1init(); /* 定時器1初始化 */ while(1); return 0; 圖3-3 匹配輸出波形4.系統(tǒng)的硬件及軟件設(shè)技4.1.器件表的生成本設(shè)計要模擬汽車中控鎖,首先需要用到1個直流電機,用這個電機代表司機旁邊的中控鎖。同時門邊用兩個led,一個紅色,一個綠色,分別代表車門鎖的開關(guān)以及電機的狀態(tài)。門旁還有一個按鍵作為門鎖的開關(guān),司機還有一個打開所有門的按鍵。為了指示電機動作完成,我們通過數(shù)碼管顯示的數(shù)字可以直觀的看到顯示結(jié)果。據(jù)此,生成了一下器件表:表4-1 器件表器件數(shù)量器件數(shù)量 lpc2013芯片1直流電機1紅色led1數(shù)碼管1綠色led1按鈕3焊接板1
19、燒寫器14.2按鍵電路設(shè)計為了控制系統(tǒng),設(shè)計了幾個按鍵,這里直接把按鍵的一個引腳接在單片機的io口上,另一個引腳接在地上。io口設(shè)置為上拉輸入,在按鍵按下后,io口電平就會被拉低,通過程序中檢測io口電平狀態(tài)就能知到按鍵是否被按下4.3指示led電路的設(shè)計由于使用的led功率小,電流低,可以直接用io口的電流來驅(qū)動,這里我直接把每個led的正極接在一個io口,負極接在地,配置io口輸出,當io口輸出高時,就能點亮led。4.4數(shù)碼管電路的設(shè)計要顯示電機是在什么時間開始轉(zhuǎn)動以及什么時間停止,需要用到數(shù)碼管,課題中我需要用到一個直流電機,所以使用了一位數(shù)碼管,用來顯示電機動作是的時間,為了節(jié)約io
20、,這里采用動態(tài)掃描的方式,把位選接io,所有用到的段選相應(yīng)的接在一起,再接在不同的io口上。顯示原理是這樣的 數(shù)碼管首先從上到右,到下到左,到中間,最后到小數(shù)點分別標記為a b c d e f g dp八段其中小數(shù)點位dp為最高位,a段為最低位,要想顯示什么字符只需要使對應(yīng)的段發(fā)光即可,一般的習(xí)慣是單片機的端口的最低位接a段,次低位接b段,.最高位(如p0.7)接dp,顯示碼從高往低表示為為 dp g f e d c b a如要顯示“1”,只需要將b、c段點亮即可,若是共陰極,片選是低電平選中,某一段輸出高電平點亮,即顯示碼為00000110 即0x06,其他的依照該方法類推圖4-2 數(shù)碼管腳
21、圖4.5軟件的概述由于lpc2103的寄存器較多,編程起來比較復(fù)雜。官方寫了一套庫函數(shù),我就直接在官方的庫函數(shù)上進行開發(fā)。整個系統(tǒng)用到了單片機的gpio模塊來控制按鍵,電機和led。為了控制電機運行的時間和數(shù)碼管顯示的時間,用到了定時中斷tim模塊,首先把每個初始化模塊放在一起,在主函數(shù)最初調(diào)用。把控制模塊和顯示模塊分別寫成兩個函數(shù),在主函數(shù)里的大循環(huán)里調(diào)用。為了使整體程序結(jié)構(gòu)合理,代碼風格好,穩(wěn)定性高,便于調(diào)試,我把這幾個模塊分成幾個文件來寫,每一個模塊寫一個c文件和一個h文件,只需要被調(diào)用的函數(shù)放入h文件中,同時還要保證每個函數(shù)的高內(nèi)聚,低耦合的特性。4.6電機數(shù)碼管及l(fā)ed模塊本設(shè)計里所
22、用到的電機和led都是利用io口的輸出來實現(xiàn),所以我把他們放在一起。首先打開這些模塊的系統(tǒng)時鐘,然后用結(jié)構(gòu)體gpio_inittypedef來初始化這些io口為推挽輸出,輸出速度為50mhz,然后按照結(jié)構(gòu)體初始化io口。對于控制led的io口,為了使用方便,直接用一個宏定義來控制。對于控制電機的部分,把他們封裝成電機正轉(zhuǎn),電機反轉(zhuǎn)和電機停止的函數(shù),程序里用一個標志位來表示當前鎖的狀態(tài)。數(shù)碼管部分作出顯示每個數(shù)字所對應(yīng)的io口狀態(tài),然后據(jù)此編寫顯示一位的函數(shù),傳入?yún)?shù)為位數(shù)和數(shù)字。4.7按鍵輸入模塊本設(shè)計里用到的按鍵和撥動開關(guān)都是直接連接io口和地的,在軟件里,首先要初始化這些io口,為了防干擾
23、,這里初始化為上拉輸入。首先打開相應(yīng)口的時鐘,然后利用結(jié)構(gòu)體gpio_inittypedef初始化這些io口為上拉輸入。對于模擬車速的撥動開關(guān),直接在控制函數(shù)里最初進行檢測。4.8控制模塊整個系統(tǒng)的邏輯都在這個控制模塊里,我用一個全局變量來指示幾個個門鎖的開與鎖,首先檢測速度撥動開關(guān)是否達到高速,如果為真,再檢測指示狀態(tài)的變量,看是否全部關(guān)閉,如果沒有全部關(guān)閉,就調(diào)用每個關(guān)閉函數(shù),把沒有關(guān)閉的門鎖關(guān)閉,電機轉(zhuǎn)動一段時間,然后通過數(shù)碼管顯示的時間進行提示。然后函數(shù)返回,這樣就禁用了按鍵。撥動開關(guān)沒有達到高速的時候,才能用按鍵進行控制,檢測到司機的門為開,并且按下按鍵時,所有門鎖全部鎖上。有鎖住的
24、門鎖,再檢測到全部打開的按鍵按下后,就打開所有的門鎖。其余的情況,檢測到按鍵按下后,就改變門鎖的狀態(tài),更新標志位。4.9顯示模塊為了指示當前門鎖的狀態(tài),所有門鎖用了一個綠色led來指示是否鎖住。當鎖住時,綠色led不亮,當沒有鎖住時,綠色led點亮。所以在這里,只需要讀取每個變量的值,然后進行邏輯判斷,在根據(jù)結(jié)果點亮或熄滅相應(yīng)的led就行了。為了指示當前電機工作運行的時間,用到了一位數(shù)碼管,傳入時間和電機信號,就能在相應(yīng)的數(shù)碼管上顯示相應(yīng)的數(shù)字。當某一數(shù)值顯示的時候電機就會轉(zhuǎn)動,同理,另一數(shù)字顯示的時候電機會停止。4.10定時模塊為了精確控制電機的運行時間,這里用到了單片機的定時器1,首先初始
25、化一組定時器,設(shè)定定時中斷,并設(shè)置相應(yīng)的參數(shù),封裝成函數(shù),并在主函數(shù)里調(diào)用,同時還要編寫定時中斷函數(shù),在中斷里對一些標志變量和一些時間變量進行控制。4.11主函數(shù)由于其他模塊都已經(jīng)封裝好,所以主函數(shù)里就直接調(diào)用那些函數(shù)就行,這樣顯得簡單,整齊。首先,先把三個標志位清0,然后調(diào)用io初始化,然后初始化數(shù)碼管不顯示數(shù)字,再初始化按鍵。這樣就初始化了所有配置,然后來一個大循環(huán),循環(huán)體內(nèi)放控制函數(shù)和顯示函數(shù)。這樣就能不斷檢測按鍵,進行控制和刷新顯示。5.硬件電路的焊接及調(diào)試5.1軟件的焊接5-1 硬件結(jié)果顯示圖5-2硬件顯示圖5.2軟件的調(diào)試要完成整個設(shè)計,硬件的調(diào)試必不可少,非常的重要,首先我要通過
26、codeworrior for arm developer suite檢測程序并燒寫到lpc2103芯片當中圖5-3 程序檢測圖5-4 添加j-link5-5 配置j-link6.未來拓展6.1利用電機正反轉(zhuǎn)控制電路 五線馬達是主鎖,除了有馬達以外還多了一個三線的狀態(tài)開關(guān),并且是和鎖馬達聯(lián)動的,其中一根開鎖的時候和第二根導(dǎo)通,閉鎖的時候和第三根導(dǎo)通,門鎖控制器就從它的狀態(tài)得知門鎖是開還是關(guān),保證四個門同步開閉。 圖6-1 直流電機接線原理圖總結(jié)本設(shè)計設(shè)利用arm芯片模擬汽車中控門直流電機,通過gpio的輸出控制指示led。通過gpio的上拉輸入來檢測按鍵和撥動開關(guān)。通過定時器tim模塊定時中斷
27、來確定時間。軟硬件的有機結(jié)合,使得整個系統(tǒng)能夠正常工作。設(shè)計時,首先選擇元器件,然后看元器件的數(shù)據(jù)手冊,設(shè)計硬件電路,用c語言編寫程序,調(diào)試程序直到成功實現(xiàn)功能。采用c語言的編程方式,c語言是一種結(jié)構(gòu)化的高級語言,可讀性好,移植容易,更容易模塊化,并且有嚴格的句法檢查,出錯少,便于調(diào)試。而且即使在該設(shè)計完成投入使用后,需要升級增加功能,也只需要重新燒寫程序就能夠完成,極大的方便了用戶和設(shè)計者。通過這次的努力,終于徹底做完了畢業(yè)設(shè)計當中老師分配給我的各項任務(wù)。在老師的指導(dǎo)下,我能夠運用已經(jīng)學(xué)過的知識解決所需要的問題,最終完成本課題的需求,實現(xiàn)控制如下:當數(shù)碼管顯示1到5時,電機反轉(zhuǎn),當數(shù)碼管顯示
28、6到0時,電機停止轉(zhuǎn)動。在這次設(shè)計中,我查閱了很多資料,也掌握了一些查閱資料的方法,同時還豐富了我的知識儲備,提高了我的專業(yè)涵養(yǎng),使我整個能力得到不少的提高。這次的設(shè)計的硬件焊接以及軟件調(diào)試都使我受益匪淺。在硬件設(shè)計時,要考慮很多東西,需要用到哪些原件,以及整個布局都要提前想好。在設(shè)計中,我還發(fā)現(xiàn),以前在書本上學(xué)到的東西還是和實際有一點出入的,對待問題要更深入的研究,就會收獲更多知識,對問題的認識程度也會更上一層樓??傮w來說,硬件設(shè)計還是相對簡單的,最重要的是軟件的設(shè)計。做軟件時,一定要先有一個整體的架構(gòu),要了解我的整個設(shè)計總體都需要哪些模塊,整個程序的架構(gòu)要提前想好,然后還要有良好的代碼風格
29、,這樣不僅寫起來有條理邏輯不會亂,而且對于后期的維護以及讓他人閱讀都有很大的幫助。對于這次的設(shè)計,由于本人的經(jīng)歷和時間有限,考慮問題也不夠全面,所掌握的知識也不是很多,或多或少會存在著一些缺點,設(shè)計難免存在一些不足之處。我的這些不足,在今后學(xué)習(xí)和工作中會不斷改善。最重要的是,這次的設(shè)計使我懂得了學(xué)習(xí)的重要性,在今后,我會一直學(xué)習(xí)下去,我會一直堅持和努力。致謝經(jīng)過了小半年的時間,終于完成了我的畢業(yè)設(shè)計,心里還是有點小激動的,十分的渴望能在大學(xué)的最后交出一份滿意的答卷,希望這份答卷獲得一個正面的評價,能為我的大學(xué)畫上一個完美的句號。在不知不覺中大學(xué)四年就過去了,這四年我成長了,都說大學(xué)是通往社會的
30、一個門檻,我真的學(xué)習(xí)到了許多,還記得大一剛剛?cè)雽W(xué)時的懵懵懂懂,還記得大學(xué)的每一個清晨,終于在大學(xué)的最后交出了一份滿意的答卷。首先還是應(yīng)該感謝我的導(dǎo)師劉老師,劉老師給我了很多的幫助,沒有劉老師的幫助,這個畢設(shè)題目也沒辦法完成的這么順利,這么快。沒有老師的細心教導(dǎo),我也不可能在學(xué)到這么多,這么全的專業(yè)課程知識。同時我也需要也需要感謝一起做畢業(yè)設(shè)計的所有同學(xué),感謝陪伴我走過了大學(xué)的最后六個月的時光,同學(xué)間的友情十分珍貴。希望這份友情能夠天長地久,永遠長存。我還需要感覺和我朝夕相伴四年的室友們,四年的情誼,四年的照顧彌足珍貴。愿同學(xué)們友誼長存。在未來的道路上,我還會繼續(xù)努力,在科研的道路上獲得新的成就
31、。參考文獻1 陳大欽.電子技術(shù)基礎(chǔ)實驗(第二版):機械工業(yè)出版社。2 胡學(xué)海.單片機原理及應(yīng)用系統(tǒng)設(shè)計:京電子工業(yè)出版社。3 李廣弟.單片機基礎(chǔ):北航出版社。4 周立功.單片機基礎(chǔ)實驗指導(dǎo)書:廣州周立功單片機發(fā)展有限公司出版社。5 吳黎明.單片機原理及應(yīng)用技術(shù):科學(xué)出版社。6 陳光東.單片微型計算機原理及其c語言程序設(shè)計:華中理工大學(xué)出版社。7 袁志勇 嵌入式系統(tǒng)原理及應(yīng)用 北京航天航空大學(xué)出版社。8 劉彥文 嵌入式系統(tǒng)原理及接口技術(shù) 清華大學(xué)出版社。9 李宥謀 嵌入式系統(tǒng)開發(fā) 清華大學(xué)出版社。10 廣州周立功公司 嵌入式系統(tǒng)原理教程。11 劉波文 嵌入式實時操作系統(tǒng)uc/os-ii經(jīng)典實例
32、北京航天航空大學(xué)出版社。12 肖廣兵 arm嵌入式開發(fā)實例基于stm32的系統(tǒng)設(shè)計 電子工業(yè)出版社 。13 劉敦放 使用arm定時器對十字路口交通燈控制的探討 重慶科技學(xué)院學(xué)報。附錄/*copyright (c)* * * *-file info-* file name:main.c* last modified date: 2013-10-31* last version:1.0* descriptions:the main() function example template*-* created by:chenmingji* created date:2004-09-16* versi
33、on:1.0* descriptions:the original version*-* modified by:* modified date:* version:* descriptions:*/#include "main.h"#include "config.h"#define led1 (1 << 0)#define led2 (1 << 1)#define led3 (1 << 2)#define led4 (1 << 3)#define led5 (1 << 4)#define l
34、ed6 (1 << 5)#define led7 (1 << 6)#define led8 (1 << 7)#define led9 (1 << 8)#define led10 (1 << 9)uint32 count=0;/* task0 任務(wù)id、優(yōu)先級、堆棧設(shè)置及函數(shù)聲明 */#define task0_id 5 /* 任務(wù)的id */#define task0_prio task0_id /* 任務(wù)的優(yōu)先級 */#define task0_stack_size 64 /* 定義用戶堆棧長度 */os_stk task0_sta
35、cktask0_stack_size; /* 定義任務(wù)0 堆棧 */void task0(void *pdata); /* 聲明任務(wù)0 */* task1 任務(wù)id、優(yōu)先級、堆棧設(shè)置及函數(shù)聲明 */#define task1_id 6 /* 任務(wù)的id */#define task1_prio task1_id /* 任務(wù)的優(yōu)先級 */#define task1_stack_size 64 /* 定義用戶堆棧長度 */os_stk task1_stacktask1_stack_size; /* 定義任務(wù)1 堆棧 */void task1(void *pdata); /* 聲明任務(wù)1 */* t
36、ask2 任務(wù)id、優(yōu)先級、堆棧設(shè)置及函數(shù)聲明 */ #define task2_id 7 /* 任務(wù)的id */#define task2_prio task2_id /* 任務(wù)的優(yōu)先級 */#define task2_stack_size 64 /* 定義用戶堆棧長度 */os_stk task2_stacktask2_stack_size; /* 定義任務(wù)2 堆棧 */void task2(void *pdata); /* 聲明任務(wù)2 */* task3 任務(wù)id、優(yōu)先級、堆棧設(shè)置及函數(shù)聲明 */#define task3_id 8 /* 任務(wù)的id */#define task3_pr
37、io task3_id /* 任務(wù)的優(yōu)先級 */#define task3_stack_size 64 /* 定義用戶堆棧長度 */os_stk task3_stacktask3_stack_size; /* 定義任務(wù)3 堆棧 */void task3(void *pdata); /* 聲明任務(wù)3 */* function name: main* descriptions: 主函數(shù)* input parameters: none* output parameters: none* created date: 2006-04-11*/ void delayns (uint32 uidly)uin
38、t32 i;for (; uidly > 0; uidly-)for(i = 0; i < 50000; i+);void timer1init(void)t1tcr = 0x02; /* 定時器0復(fù)位 */t1pr = 0; /* 不設(shè)時鐘分頻 */pwm1con= 0x0c; /* 使能pwm輸出 */t1mcr = 0x02; /* 設(shè)置t0mr0匹配后復(fù)位t0tc */t1mr0 = fpclk / 2000; /* 設(shè)置pwm輸出的周期 */t1mr2 = (fpclk / 2000) / 2; /* 設(shè)置pwm1.2輸出占空比為50 */t1mr3 = (fpclk /
39、 2000) / 4) * 3; /* 設(shè)置pwm1.3輸出占空比為25 */t1tcr = 0x01; /* 啟動定時器0 */int main (void)/pinsel0 = pinsel0 & (0x03f << 0); /* 將p0.0-2設(shè)置為gpio */pinsel1 = (pinsel1 & (0x03 << 8) | (0x02 << 8); /* 選擇mat1.3輸出 */pinsel0 = pinsel0 & 0xfff00000; /* 選擇p0.0-9為的gpio功能 */ io0dir = led1|le
40、d2|led3|led4|led5|led6|led7|led8|led9|led10; /* 設(shè)置輸出高電平 */ io0set = led1|led2|led3|led4|led5|led6|led7|led8|led9|led10; /* 設(shè)置輸出高電平 */ /timer1init(); /* 定時器1初始化 */irqenable(); /* irq中斷使能 */ osinit(); ostaskcreateext(task0, (void *)0, &task0_stacktask0_stack_size-1, task0_prio, task0_id, &task
41、0_stack0, task0_stack_size, (void *)0, os_task_opt_stk_chk | os_task_opt_stk_clr); osstart(); return 0; /* function name: task0* descriptions: none* input parameters: none* output parameters: none*/void task0 (void *pdata) targetinit(); buzzer_set(); ostimedly(os_ticks_per_sec / 10); buzzer_clr(); ostimedly(os_ticks_per_sec / 10); buzzer_set(); ostimedly(os_ticks_per_sec / 10); buzzer_clr(); ostimedly(os_ticks_per_sec / 10); / timer1init(); /* 定時器1初始化 */irqenable(); /* irq中斷使能 */pdata
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年礦產(chǎn)資源開發(fā)與合作合同
- 兼職文案創(chuàng)意撰寫合同
- 交通運輸工具融資租賃合同
- 環(huán)保工程樁基機械施工合同
- 智能電網(wǎng)通信網(wǎng)絡(luò)升級合同
- 員工餐費補貼發(fā)放細則
- 餐廳浮雕施工協(xié)議
- 環(huán)保設(shè)施電工維護聘用協(xié)議
- 臨時搭建物拆除合同
- 學(xué)校出租車租賃合同協(xié)議書
- 基于單片機數(shù)字秒表的設(shè)計
- 基于LabVIEW的溫濕度監(jiān)測系統(tǒng)
- 人保《理賠工作聘請保險公估機構(gòu)管理辦法》實施細則
- GB/T 40636-2021掛面
- GB/T 11348.3-1999旋轉(zhuǎn)機械轉(zhuǎn)軸徑向振動的測量和評定第3部分:耦合的工業(yè)機器
- GB 18383-2007絮用纖維制品通用技術(shù)要求
- 臺積電半導(dǎo)體制造自動化課件
- 法律專題(本)(52876)-國家開放大學(xué)電大學(xué)習(xí)網(wǎng)形考作業(yè)題目答案
- MVR熱泵精餾處理回收稀DMAC水溶液
- 搶救車管理質(zhì)控分析
- 采油站工藝流程圖課件
評論
0/150
提交評論