版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、班級: 電氣工程及其自動化 學(xué)號: 姓名: 指導(dǎo)教師: 成績:嵌入式系統(tǒng)課程設(shè)計報告設(shè)計任務(wù)一 十字路口交通燈控制一、設(shè)計目的:1了解基于ARM7核的LPC2106的管腳功能和特點,掌握I/O控制寄存器的設(shè)置方法;2掌握ARM7應(yīng)用系統(tǒng)編程開發(fā)方法,能用C語言編寫應(yīng)用程序;3熟練掌握ADS1.2軟件的使用以及PROTEUS仿真調(diào)試的方法;二、具體任務(wù):1采用PROTEUS完成十字路口交通燈控制的硬件電路設(shè)計,要求單片機選型為飛利浦公司的LPC2106,東西南北方向分別設(shè)置紅黃綠3個指示燈,東西方向和南北方向各用2個數(shù)碼管顯示通行時間;2用ADS1.2編寫C語言應(yīng)用程序,完成十字路口交通燈控制;
2、3采用PROTEUS將應(yīng)用程序裝載在LPC2106中,進(jìn)行仿真驗證。要求東西方向和南北方向的數(shù)碼管顯示通行時間并倒計時,可以設(shè)置成一樣,例如都是15秒倒計時;每當(dāng)?shù)褂嫊r時間到,完成紅黃綠指示燈的狀態(tài)切換,模擬實現(xiàn)十字路口的交通燈管理控制。3、 硬件電路設(shè)計。(參考下圖完成硬件電路設(shè)計,用屏幕抓圖的方式將自己設(shè)計的PROTEUS電路圖粘貼在下面,并用文字對所設(shè)計的電路功能、原理進(jìn)一步說明)參考圖如下:1、無左轉(zhuǎn)彎proteus電路圖:2、有左轉(zhuǎn)彎proteus電路圖:硬件電路說明:1、無左轉(zhuǎn)彎電路圖說明:該電路是一個兩位數(shù)碼管顯示的十字交通燈控制proteus硬件仿真圖。功能介紹如下:啟動后首先
3、東西綠燈和南北紅燈都亮15秒(第一個狀態(tài)),然后東西方向綠燈變閃爍黃燈(每0.5秒交替一次)南北方向紅燈保持亮態(tài),該狀態(tài)5秒后,轉(zhuǎn)變?yōu)闁|西向紅燈和南北向綠燈同時亮15秒,然后南北方向綠燈變閃爍黃燈(每0.5秒交替一次),東西方向紅燈保持亮態(tài),持續(xù)5秒后,再轉(zhuǎn)為第一個狀態(tài),如此循環(huán)往復(fù)。2、有左轉(zhuǎn)彎電路圖說明:該電路在上電路基礎(chǔ)上加一個東西與南北方向左轉(zhuǎn)彎燈的控制,功能介紹如下:首先是只有東西方向直行綠燈亮(第一個狀態(tài)),10秒后開始東西黃燈閃爍,維持5秒后轉(zhuǎn)為東西方向左轉(zhuǎn)綠燈亮,其他均為紅燈,10秒后綠燈開始閃爍,持續(xù)5秒后轉(zhuǎn)為南北方向直行綠燈亮,其他均紅燈,10秒后開始南北直行黃燈閃爍,維持
4、5秒后轉(zhuǎn)為南北左轉(zhuǎn)綠燈亮,其他均轉(zhuǎn)紅燈,再過10秒后南北左轉(zhuǎn)綠燈開始閃爍,維持5秒后轉(zhuǎn)為第一個狀態(tài),如此往復(fù)。以上兩個程序各狀態(tài)時間均可由程序參數(shù)調(diào)節(jié),便可改變交通路口的高峰期時段的各方向流通狀態(tài),很簡潔方便,在此不詳述。四、源程序1、十字路口無左轉(zhuǎn)彎交通燈控制源程序:#include "config.h"#include"LPC2106.h"void delay(unsigned int x) /延遲0.xMS while(x-) unsigned char j; for(j=0;j<125;j+) ; uint8 led=0x3f,0x06,0
5、x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共陰數(shù)碼管段選值void display()/數(shù)碼管顯示uint8 i=15;while(i)IOSET = (led i / 10 << 13) | (led i % 10 << 6);delay(5000);IOCLR = (led i / 10 << 13) | (led i % 10 << 6); i-;int main(void)uint8 k;int8 type=1;PINSEL0=0x00000000; /將管腳設(shè)置為通用IO端口GPIOPINSEL1=
6、0x00000000;IODIR=0xFFFFFFFF; /將方向寄存器IODIR全設(shè)為輸出=1 while(1) switch(type)case 1: /東西綠燈亮,南北紅燈亮,15秒。IOSET=0x00000021;display();type=2;break;case 2: /東西黃燈閃爍,南北紅燈亮,5秒。 IOCLR=0xFFFFFFFF; k=5; while(k) IOSET=0x00000011;IOSET = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);IOCLR=0x00000010;IO
7、CLR = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);k-; type=3;break; case 3:/南北綠燈亮,東西紅燈亮,15秒。 IOCLR=0x00000001;IOSET=0x0000000C;display();type=4;break; case 4: /南北黃燈閃爍,東西紅燈亮,5秒。 IOCLR=0xFFFFFFFF; k=5; while(k) IOSET=0x0000000A;IOSET = (led k / 10 << 13) | (led k % 10 <<
8、 6);delay(3000);IOCLR=0x00000002;IOCLR = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);k-; type=1;IOCLR=0x00000008; 2、十字路口有左轉(zhuǎn)彎交通燈控制源程序:#include "config.h"#include"LPC2106.h"void delay(unsigned int x) /延遲0.xMS while(x-) unsigned char j; for(j=0;j<125;j+) ; uint
9、8 led=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共陰數(shù)碼管段選值void display() /數(shù)碼管顯示uint8 i=15;while(i-5)IOSET = (led i / 10 << 13) | (led i % 10 << 6);delay(5000);IOCLR = (led i / 10 << 13) | (led i % 10 << 6); i-;int main(void)uint8 k;int8 type=1;PINSEL0=0x00000000; /將管腳設(shè)
10、置為通用IO端口GPIOPINSEL1=0x00000000;IODIR=0xFFFFFFFF; /將方向寄存器IODIR全設(shè)為輸出=1 while(1) switch(type)case 1: /東西綠燈亮,南北紅燈亮 IOSET=0x00600021;display();k=5; /東西黃燈閃爍while(k)IOCLR=0x00000020;IOSET=0x00000010;IOSET = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);IOCLR=0x00000010;IOCLR = (led k / 10
11、<< 13) | (led k % 10 << 6);delay(3000);k-;/*東西左轉(zhuǎn)彎綠燈亮*/IOCLR=0x00600021;IOSET=0X00500009;display();type=2;break;case 2: /東西左轉(zhuǎn)彎綠燈閃爍 k=5; while(k) IOSET=0x00100000;IOSET = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);IOCLR=0x00100000;IOCLR = (led k / 10 << 13) | (led
12、 k % 10 << 6);delay(3000);k-; type=3;break; case 3:/南北綠燈亮,東西紅燈亮 IOCLR=0x00000001; IOSET=0x0060000C;display();k=5;/南北黃燈閃爍while(k)IOCLR=0x00000004;IOSET=0x00000002;IOSET = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);IOCLR=0x00000002;IOCLR = (led k / 10 << 13) | (led k %
13、10 << 6);delay(3000);k-;/*南北左轉(zhuǎn)彎綠燈亮*/IOCLR=0X0060000C;IOSET=0x00A00009;display();type=4;break; case 4: /南北左轉(zhuǎn)彎綠燈閃爍 k=5; while(k) IOSET=0x00800000;IOSET = (led k / 10 << 13) | (led k % 10 << 6);delay(3000);IOCLR=0x00800000;IOCLR = (led k / 10 << 13) | (led k % 10 << 6);del
14、ay(3000);k-; type=1;IOCLR=0xFFFFFFFF; /全部清零 五、仿真效果。(用屏幕抓圖的方式將PROTEUS運行仿真效果圖粘貼在下面)1、無左轉(zhuǎn)彎仿真效果圖。2、 有左轉(zhuǎn)彎仿真效果圖。設(shè)計任務(wù)二 uC/OS-的移植與應(yīng)用一、設(shè)計目的:1了解嵌入式實時操作系統(tǒng)uC/OS-可移植、可裁剪等性能特點,正確理解實時操作系統(tǒng)中任務(wù)、信號、消息、中斷等基本概念以及uC/OS-多任務(wù)管理的調(diào)度算法;2掌握uC/OS-在ARM7上移植的方法;3能將uC/OS-移植在LPC2106中,并根據(jù)具體要求創(chuàng)建用戶任務(wù),解決實際問題;二、具體任務(wù):1uC/OS-移植在LPC2106中。2編寫
15、用戶任務(wù)程序,完成實時溫度的采集控制。硬件電路見參考硬件電路圖,圖中用滑動變阻器代替溫度傳感器轉(zhuǎn)換后的電壓,用ADC0809完成A/D轉(zhuǎn)換,并用數(shù)碼管顯示出來。三、參考硬件電路。(用文字對所設(shè)計的電路功能、原理做詳細(xì)說明)DIY設(shè)計圖:硬件電路說明:該電路是有LPC2106芯片控制的A/D轉(zhuǎn)換實時采集溫度并顯示的控制,通過創(chuàng)建多用戶任務(wù),解決實際問題的裝置。工作原理及流程如下:裝在hex文件后點擊運行,按采樣開關(guān)按鈕后由標(biāo)號12線的開關(guān)信號輸入LPC2106芯片后輸出啟動A/D轉(zhuǎn)換的使能端OE(標(biāo)號11),使溫度采樣的模擬信號通過ADC0808轉(zhuǎn)換為數(shù)字信號后經(jīng)標(biāo)號15至22八線傳給控制芯片,
16、控制芯片將接收的數(shù)字信號經(jīng)控制轉(zhuǎn)換后再通過標(biāo)號0到7八線輸出至數(shù)碼管進(jìn)行動態(tài)顯示,顯示出相應(yīng)的溫度值。倘若突然改變溫度采樣值,數(shù)碼管會迅速實時地顯示出相應(yīng)的變化,這真是程序中的精髓,也是最難之處,本人設(shè)計的硬件和軟件結(jié)合就解決了此問題,實時控制性能好。四、源程序#include "config.h"#define TASK_STK_SIZE 64#define key 0x00001000 /按鍵#define adstart 0x00002000 /AD采樣開始#define adend 0x00004000 /AD結(jié)束const uint32 led_code16= 0
17、x0000003F,0x00000006,0x0000005B,0x0000004F, 0x00000066,0x0000006D,0x0000007D,0x00000007, 0x0000007F,0x0000006F,0x00000077,0x0000007C, 0x00000039,0x0000005E,0x00000079,0x00000071 ; OS_STK Task0StkTASK_STK_SIZE;OS_STK Task1StkTASK_STK_SIZE;OS_STK Task2StkTASK_STK_SIZE;INT32U i; void Task0(void *data);
18、void Task1(void *data);void Task2(void *data);/* 函數(shù)名稱: main 功能描述: c語言的主函數(shù),由它啟動多任務(wù)環(huán)境*/int main (void) OSInit(); /初始化 OSTaskCreate(Task0, (void *)0, &Task0StkTASK_STK_SIZE - 1,1); OSTaskCreate(Task1, (void *)0, &Task1StkTASK_STK_SIZE - 1,2); OSTaskCreate(Task2, (void *)0, &Task2StkTASK_STK
19、_SIZE - 1,3); OSStart(); return 0;void delay(INT32U t) /延時子程序uint32 x,y;for(x=t;x>0;x-)for(y=110;y>0;y-);void L_Init (void) /初始化 PINSEL0=0x00000000; PINSEL1=0x00000000; IODIR|= 0x00002fFF; /* 函數(shù)名稱:Task0 功能描述: 第一個任務(wù),進(jìn)行初始化目標(biāo)板和建立其它任務(wù)。*/ void Task0(void *p_arg) p_arg = p_arg; TargetInit(); L_Init(
20、); for(;) /無限for循環(huán) while(IOPIN&key)!=0);/假如按鍵沒有按下,則一直循環(huán)在這里 L_Init(); while(IOPIN&key)=0);/按鍵被按下又彈起,程序順序執(zhí)行 IOCLR= 0x0000ffFF; /清零低16位 OSTaskSuspend(OS_PRIO_SELF); /* 函數(shù)名稱:Task1 功能描述: 第2個任務(wù),AD轉(zhuǎn)換。*/ void Task1(void *p_arg) p_arg = p_arg; L_Init(); for(;) IOCLR=adstart; /輸入高低的脈沖電平 delay(100); IOSET=adstart; delay(100); IOCLR=adstart; delay(100); L_Init(); while(IOPIN&adend)=0); IOSET=1<<11; /11位為AD的OE使能端 i=IOPIN; i=i>>15; /AD的輸出OUT8到OUT1分別由15到22位控制 OSTaskSuspend(OS_PRIO_SELF); /* 函數(shù)名稱:Task2 功能描述: 第3個任務(wù),LED顯示。*/ void Task2(void *p_arg) INT32U gw,sw,bw; p_arg
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 46989.1-2025光伏組件運輸試驗第1部分:組件包裝單元的運輸和裝卸
- 論ISDA主協(xié)議中的終止凈額結(jié)算制度
- 行政單位關(guān)于存貨管理的相關(guān)制度
- 2025 小學(xué)四年級科學(xué)下冊壓縮空氣在玩具中應(yīng)用實例講解課件
- 2026共青團(tuán)東莞市委員會自主招聘聘用人員1人備考考試題庫附答案解析
- 2026住房和城鄉(xiāng)建設(shè)部直屬事業(yè)單位第一批招聘20人備考考試試題附答案解析
- 2026江蘇省人民醫(yī)院臨床醫(yī)學(xué)研究院(I期研究中心)派遣制人員招聘1人備考考試試題附答案解析
- 2026上海普陀區(qū)交通運輸局面向社會招聘編外人員1人參考考試試題附答案解析
- 2026四川成都市自然資源調(diào)查利用研究院(成都市衛(wèi)星應(yīng)用技術(shù)中心)考核招聘2人備考考試題庫附答案解析
- 2026江蘇南京警察學(xué)院招聘11人參考考試題庫附答案解析
- 2025-2026年蘇教版初一歷史上冊期末熱點題庫及完整答案
- 規(guī)范園區(qū)環(huán)保工作制度
- 2026年上半年眉山天府新區(qū)公開選調(diào)事業(yè)單位工作人員的參考題庫附答案
- 藥理學(xué)試題中國藥科大學(xué)
- 卓越項目交付之道
- (人教版)八年級物理下冊第八章《運動和力》單元測試卷(原卷版)
- 2026屆新高考語文熱點沖刺復(fù)習(xí) 賞析小說語言-理解重要語句含意
- 2026屆杭州學(xué)軍中學(xué)數(shù)學(xué)高三上期末綜合測試模擬試題含解析
- 創(chuàng)世紀(jì)3C數(shù)控機床龍頭、高端智能裝備與產(chǎn)業(yè)復(fù)蘇雙輪驅(qū)動
- (新版?。笆逦濉鄙鷳B(tài)環(huán)境保護(hù)規(guī)劃
- (詳盡多場合)中標(biāo)方支付招標(biāo)代理費合同范本
評論
0/150
提交評論