嵌入式課程設(shè)計(jì)報(bào)告(交通燈控制、uC-OS-Ⅱ的移植)(共10頁(yè))_第1頁(yè)
嵌入式課程設(shè)計(jì)報(bào)告(交通燈控制、uC-OS-Ⅱ的移植)(共10頁(yè))_第2頁(yè)
嵌入式課程設(shè)計(jì)報(bào)告(交通燈控制、uC-OS-Ⅱ的移植)(共10頁(yè))_第3頁(yè)
嵌入式課程設(shè)計(jì)報(bào)告(交通燈控制、uC-OS-Ⅱ的移植)(共10頁(yè))_第4頁(yè)
嵌入式課程設(shè)計(jì)報(bào)告(交通燈控制、uC-OS-Ⅱ的移植)(共10頁(yè))_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上任務(wù)一 十字路口交通燈控制一、設(shè)計(jì)目的:1了解基于ARM7核的LPC2106的管腳功能和特點(diǎn),掌握I/O控制寄存器的設(shè)置方法;2掌握ARM7應(yīng)用系統(tǒng)編程開(kāi)發(fā)方法,能用C語(yǔ)言編寫(xiě)應(yīng)用程序;3熟練掌握ADS1.2軟件的使用以及PROTEUS仿真調(diào)試的方法;二、具體任務(wù):1采用PROTEUS完成十字路口交通燈控制的硬件電路設(shè)計(jì),要求單片機(jī)選型為飛利浦公司的LPC2106,東西南北方向分別設(shè)置紅黃綠3個(gè)指示燈,東西方向和南北方向各用1個(gè)數(shù)碼管顯示通行時(shí)間;2用ADS1.2編寫(xiě)C語(yǔ)言應(yīng)用程序,完成十字路口交通燈控制;3采用PROTEUS將應(yīng)用程序裝載在LPC2106中,進(jìn)行仿真

2、驗(yàn)證。要求東西方向和南北方向的數(shù)碼管顯示通行時(shí)間并倒計(jì)時(shí),可以設(shè)置成一樣,例如都是9秒倒計(jì)時(shí);每當(dāng)?shù)褂?jì)時(shí)時(shí)間到,完成紅黃綠指示燈的狀態(tài)切換,模擬實(shí)現(xiàn)十字路口的交通燈管理控制。三、硬件電路設(shè)計(jì)。(參考下圖完成硬件電路設(shè)計(jì),用屏幕抓圖的方式將自己設(shè)計(jì)的PROTEUS電路圖粘貼在下面,并用文字對(duì)所設(shè)計(jì)的電路功能、原理進(jìn)一步說(shuō)明)附圖:硬件電路說(shuō)明:硬件說(shuō)明: 飛利浦公司的LPC2106,雙位共陰數(shù)碼管,交通等模型。管腳說(shuō)明:P0.0P0.6接數(shù)碼管的段選ag;P0.7、P0.8接數(shù)碼管的位選1、2;P0.10P0.12接交通燈,分別對(duì)應(yīng)南北方向的紅、黃、綠和東西方向的綠、黃、紅四、源程序。(只將C語(yǔ)

3、言應(yīng)用程序附在后面,其它項(xiàng)目文檔不要提供,C語(yǔ)言應(yīng)用程序要有一定的注釋說(shuō)明)源程序:#include"config.h"#include"LPC2106.h"int8 j=0; /定義全局變量juint8 led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/數(shù)碼管段選值/*延遲子函數(shù)*/void delay(int t) int i;for(i=0;i<t;i+);/*顯示子函數(shù)*/void display(int k)int i,l,m;/l=k/10;/把數(shù)碼管十位的值求出并賦給li=k

4、%10;/把數(shù)碼管個(gè)位的值求出并賦給iif(j=0) m=10;/判斷數(shù)碼管顯示的時(shí)間所對(duì)應(yīng)的是紅燈、綠燈、還是黃燈else if(j=1|j=3) m=11;/else if(j=2) m=12;/IOCLR=0xffffffff;/io口清零IOSET=(1<<m|1<<8);/顯示燈的顏色,并對(duì)數(shù)碼管位選十位IOSET+=ledl;/數(shù)碼管段選delay(100);IOCLR=0xffffffff;/io清零IOSET=(1<<m|1<<7);/顯示燈的顏色,并對(duì)數(shù)碼管位選個(gè)位IOSET+=ledi;/數(shù)碼管段選delay(100);/*主

5、函數(shù)*/int main(void)PINSEL0=0x;/配置pinsel0寄存器,io低15位作普通輸入輸出口IODIR=0xffffffff;/配置io口為輸出IOCLR=0xffffffff;/io口清零while(1)/死循環(huán)if(j=0)/南北方向紅燈,東西方向綠燈int i,l;for(i=;i>0;i=i-2)/持續(xù)時(shí)間設(shè)置l=i/10000;display(l);j+;if(j=1)/東西南北都為黃燈int i,l;for(i=60000;i>0;i=i-2)/持續(xù)時(shí)間設(shè)置l=i/10000;display(l);j+;if(j=2)/南北方向綠燈,東西方向紅燈i

6、nt i,l;for(i=;i>0;i=i-2)/持續(xù)時(shí)間設(shè)置l=i/10000;display(l);j+;if(j=3)/東西南北都為黃燈int i,l;for(i=60000;i>0;i=i-2)/持續(xù)時(shí)間設(shè)置l=i/10000;display(l);j=0;五、仿真效果。(用屏幕抓圖的方式將PROTEUS運(yùn)行仿真效果圖粘貼在下面)任務(wù)二 uC/OS-的移植與應(yīng)用一、設(shè)計(jì)目的:1了解嵌入式實(shí)時(shí)操作系統(tǒng)uC/OS-可移植、可裁剪等性能特點(diǎn),正確理解實(shí)時(shí)操作系統(tǒng)中任務(wù)、信號(hào)、消息、中斷等基本概念以及uC/OS-多任務(wù)管理的調(diào)度算法;2掌握uC/OS-在ARM7上移植的方法;3能將

7、uC/OS-移植在LPC2106中,并根據(jù)具體要求創(chuàng)建用戶任務(wù),解決實(shí)際問(wèn)題;二、具體任務(wù):1uC/OS-移植在LPC2106中。2編寫(xiě)用戶任務(wù)程序,完成實(shí)時(shí)溫度的采集控制。硬件電路見(jiàn)參考硬件電路圖,圖中用滑動(dòng)變阻器代替溫度傳感器轉(zhuǎn)換后的電壓,用ADC0809完成A/D轉(zhuǎn)換,并用數(shù)碼管顯示出來(lái)。三、參考硬件電路。(用文字對(duì)所設(shè)計(jì)的電路功能、原理做詳細(xì)說(shuō)明)附圖:硬件電路說(shuō)明:硬件電路: 飛利浦公司的LPC2106、ADC0808模數(shù)轉(zhuǎn)換芯片、四位共陰數(shù)碼管、按鍵、74LS04反向器、模擬溫度傳感器的滑動(dòng)變阻器。管腳說(shuō)明:LPC2106低16位作輸出端:P0.0P0.6接數(shù)碼管段選ag;P0.8

8、P0.10接數(shù)碼管位選24;P0.11接adc0808的轉(zhuǎn)換啟動(dòng)端start,P0.12接adc0808的輸出使能端oe;LPC2106高16位作輸入端:P0.16P0.23接adc的輸出端out8out1:;P0.24接adc轉(zhuǎn)換結(jié)束信號(hào)端eoc,P0.25接按鍵;Adc管腳:in0接溫度采集信號(hào);adc aadc c都接地選中in0;clock接20kHz的時(shí)鐘信號(hào);四、源程序。(只將C語(yǔ)言應(yīng)用程序附在后面,其它項(xiàng)目文檔不要提供,C語(yǔ)言應(yīng)用程序要有一定的注釋說(shuō)明)源程序:#include"config.h"#defineTASK_STK_SIZE64#defineKEY

9、0x/定義key#define START0x/定義start#define EOC0x/定義eoc#define OE0x/定義oeuint32 led10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共陰極數(shù)碼管字形碼uint32i; /ADC轉(zhuǎn)換值 OS_STKMain_Task_key_StkTASK_STK_SIZE;/定義任務(wù)堆棧大小OS_STKMain_Task_adc_StkTASK_STK_SIZE;OS_STKMain_Task_display_StkTASK_STK_SIZE;/*延時(shí)子函數(shù)*/void delay

10、(uint32 t)while(t-);/*io端口初始化子函數(shù)*/void IO_init(void)PINSEL0=0x;/32個(gè)IO口全初始化為通用IO口PINSEL1=0x;IODIR=0x0000ffff;/低16位為輸出口,高16位為輸入口/*key任務(wù)子函數(shù)*/void Task_key(void *p_arg)p_arg=p_arg;/避免編譯警告TargetInit();/目標(biāo)初始化IO_init();while(TRUE)while(IOPIN&KEY)!=0);/判斷按鍵按下delay(2000);while(IOPIN&KEY)=0);/判斷按鍵松開(kāi)IO

11、CLR=0x0000ffff;OSTaskSuspend(OS_PRIO_SELF);/掛起任務(wù)/*adc轉(zhuǎn)換任務(wù)子函數(shù)*/void Task_adc(void*p_arg)p_arg=p_arg;/避免編譯警告TargetInit();/目標(biāo)初始化IO_init();while(TRUE)IOCLR=START;/產(chǎn)生一個(gè)正脈沖,啟動(dòng)adc轉(zhuǎn)換delay(20);IOSET=START;delay(50);IOCLR=START;while(IOPIN&EOC)=0);/判斷ad轉(zhuǎn)換結(jié)束IOSET=OE;/輸出使能i=IOPIN&0x00ff0000;/數(shù)據(jù)處理i=i>

12、>16;OSTaskSuspend(OS_PRIO_SELF);/掛起任務(wù)/*display任務(wù)子函數(shù)*/void Task_display(void *p_arg)int32 g,s,b;/定義個(gè)、十、百p_arg=p_arg;/避免編譯警告IO_init();/io端口初始化while(TRUE)b=i/100;/百位s=(i%100)/10;/十位g=i%10;/個(gè)位IOSET=(1<<8)|ledb;/顯示百位delay(2000);IOCLR=0x0000ffff;IOSET=(1<<9)|leds;/顯示十位delay(2000);IOCLR=0x0000ffff;IOSET=(1<<10)|ledg;/顯示個(gè)位delay(2000);IOCLR=0x0000ffff;OSTaskResume(1);/恢復(fù)adc任務(wù)/*主函數(shù)*/int main(void)OSInit();/操作系統(tǒng)初始化OSTaskCreate(Task_key,(void*)0,&Main_Task_key_StkTASK_STK_SIZE-1,0);OSTaskCreate(Task_adc,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論