版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE1班级:自动化1004学号:班级:自动化1004学号:10401701305姓名:甘显豪指导教师:成绩:课程设计报告设计任务一十字路口交通灯控制一、设计目的:1.了解基于ARM7核的LPC2106的管脚功能和特点,掌握I/O控制寄存器的设置方法;2.掌握ARM7应用系统编程开发方法,能用C语言编写应用程序;3.熟练掌握ADS1.2软件的使用以及PROTEUS仿真调试的方法;二、具体任务:1.采用PROTEUS完成十字路口交通灯控制的硬件电路设计,要求单片机选型为飞利浦公司的LPC2106,东西南北方向分别设置红黄绿3个指示灯,东西方向和南北方向各用1个数码管显示通行时间;2.用ADS1.2编写C语言应用程序,完成十字路口交通灯控制;3.采用PROTEUS将应用程序装载在LPC2106中,进行仿真验证。要求东西方向和南北方向的数码管显示通行时间并倒计时,可以设置成一样,例如都是9秒倒计时;每当倒计时时间到,完成红黄绿指示灯的状态切换,模拟实现十字路口的交通灯管理控制。三、硬件电路设计。(参考下图完成硬件电路设计,用屏幕抓图的方式将自己设计的PROTEUS电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)附图:硬件电路说明:复位电路,时钟电路(仿真可略),ARM7微处理器LPC2106,南北、东西道路交通灯,东西南北左转弯灯交通计时共阴显示数码管。交通规则:(1)首先是东西方向绿灯亮10s(从15s减到5s),然后东西黄灯闪烁5次,接着是东西左转弯绿灯亮10s,然后是东西左转弯绿灯闪烁5s;(2)南北方向方向绿灯亮10s,然后南北黄灯闪烁5次,接着是南北左转弯绿灯亮10s,然后是南北左转弯绿灯闪烁5s(没提到的方向都是红灯亮)。四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)源程序:#include"config.h"#include"LPC2106.h"voiddelay(unsignedintx)//延迟0.xMS{while(x--){unsignedcharj;for(j=0;j<125;j++){;}}}uint8led[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管段选值voiddisplay() //数码管显示{ uint8i=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--; } }intmain(void){ uint8k; int8type=1; PINSEL0=0x00000000;//将管脚设置为通用IO端口GPIO PINSEL1=0x00000000; IODIR=0xFFFFFFFF;//将方向寄存器IODIR全设为输出=1while(1){ switch(type) { case1: //东西绿灯亮,南北红灯亮 IOSET=0x00600021; display(); k=5;//东西黄灯闪烁 while(k) { IOSET=0x00000010; IOSET=(led[k/10]<<13)|(led[k%10]<<6); delay(3000); IOCLR=0x00000010; IOCLR=(led[k/10]<<13)|(led[k%10]<<6); delay(3000); k--; } /*东西左转弯绿灯亮*/ IOCLR=0x00600021; IOSET=0X00500009; display(); type=2; break; case2://东西左转弯绿灯闪烁 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[k%10]<<6); delay(3000); k--; } type=3; break; case3: //南北绿灯亮,东西红灯亮 IOCLR=0x00000001; IOSET=0x0060000C; display(); k=5;//南北黄灯闪烁 while(k) { IOSET=0x00000002; IOSET=(led[k/10]<<13)|(led[k%10]<<6); delay(3000); IOCLR=0x00000002; IOCLR=(led[k/10]<<13)|(led[k%10]<<6); delay(3000); k--; } /*南北左转弯绿灯亮*/ IOCLR=0X0060000C; IOSET=0x00A00009; display(); type=4; break; case4://南北左转弯绿灯闪烁 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); delay(3000); k--; } type=1; IOCLR=0xFFFFFFFF;//全部清零 } }} 五、仿真效果。(用屏幕抓图的方式将PROTEUS运行仿真效果图粘贴在下面)设计任务二uC/OS-Ⅱ的移植与应用一、设计目的:1.了解嵌入式实时操作系统uC/OS-Ⅱ可移植、可裁剪等性能特点,正确理解实时操作系统中任务、信号、消息、中断等基本概念以及uC/OS-Ⅱ多任务管理的调度算法;2.掌握uC/OS-Ⅱ在ARM7上移植的方法;3.能将uC/OS-Ⅱ移植在LPC2106中,并根据具体要求创建用户任务,解决实际问题;二、具体任务:1.uC/OS-Ⅱ移植在LPC2106中。2.编写用户任务程序,完成实时温度的采集控制。硬件电路见参考硬件电路图,图中用滑动变阻器代替温度传感器转换后的电压,用ADC0809完成A/D转换,并用数码管显示出来。三、参考硬件电路。(用文字对所设计的电路功能、原理做详细说明)附图:硬件电路说明:复位电路,时钟电路(仿真可略),ARM7微处理器LPC2106,温度电压值输入电路,A/D转换器ADC0808(8bit),按键电路SW,四位数码管显示电路。四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)源程序:/********************************************************************************************************/#include"config.h"#defineTASK_STK_SIZE64#definekey0x00001000//按键#defineadstart0x00002000//AD采样开始#defineadend0x00004000//AD结束constuint32led_code[16]={0x0000003F,0x00000006,0x0000005B,0x0000004F,0x00000066,0x0000006D,0x0000007D,0x00000007,0x0000007F,0x00000006F,0x00000077,0x0000007C,0x00000039,0x0000005E,0x00000079,0x00000071};OS_STKTask0Stk[TASK_STK_SIZE];OS_STKTask1Stk[TASK_STK_SIZE];OS_STKTask2Stk[TASK_STK_SIZE];INT32Ui;voidTask0(void*data);voidTask1(void*data);voidTask2(void*data);/***********************************************************************************************************函数名称:main**功能描述:c语言的主函数,由它启动多任务环境********************************************************************************************************/intmain(void){ OSInit(); OSTaskCreate(Task0,(void*)0,&Task0Stk[TASK_STK_SIZE-1],1); OSTaskCreate(Task1,(void*)0,&Task1Stk[TASK_STK_SIZE-1],2); OSTaskCreate(Task2,(void*)0,&Task2Stk[TASK_STK_SIZE-1],3); OSStart(); return0;}voiddelay(INT32Ut){ uint32x,y; for(x=t;x>0;x--) for(y=110;y>0;y--);}voidL_Init(void)//初始化{PINSEL0=0x00000000;PINSEL1=0x00000000;IODIR|=0x00002fFF;}/***********************************************************************************************************函数名称:Task0**功能描述:μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务********************************************************************************************************/voidTask0(void*p_arg){p_arg=p_arg;TargetInit();L_Init();for(;;){while((IOPIN&key)!=0);//假如按键没有按下,则一直循环在这里L_Init();while((IOPIN&key)==0);//按键被按下又弹起,程序顺序执行IOCLR=0x0000ffFF;OSTaskSuspend(OS_PRIO_SELF);//OSTimeDlyHMSM(0,0,0,8);//IOSET=adstart;//OSTimeDlyHMSM(0,0,0,1);//IOCLR=adstart;//OSTimeDlyHMSM(0,0,0,1);//IOSET=adstart;}}/******************************************************************************************************函数名称:Task1**功能描述:μCOS-II的第2个任务,AD转换********************************************************************************************************/voidTask1(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使能端 //OSTimeDlyHMSM(0,0,0,50); i=IOPIN; i=i>>15;//AD的输出OUT8到OUT1分别由15到22位控制 OSTaskSuspend(OS_PRIO_SELF);}}/******************************************************************************************************函数名称:Task2**功能描述:μCOS-II的第3个任务,LED显示********************************************************************************************************/voidTask2(void*p_arg){ INT32Ugw,sw,bw;p_arg=p_arg;L_Init(); //动态循环显示数码管 while((IOPIN&key)!=0)//假如按键再次按下,则推出显示循环{ g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度曹瑞与张丽离婚协议中公司股权分割及转让协议3篇
- 2024美食盛宴商业合作伙伴合同版B版
- 2025年度渔业资源承包与可持续发展合同4篇
- 2025年度体育场馆食堂承包合同范本3篇
- 2025年度生物科技研发公司部分股权出售合同3篇
- 2025年度智慧社区建设承包合同股东内部经营协议4篇
- 2025年度浔购F000353632生鲜产品展示冰柜采购合同3篇
- 2025年度水产养殖虫害综合防控技术合同4篇
- 职业教育培训需求分析课件
- 2025年幼儿园食堂承包及幼儿营养餐服务合同4篇
- 火灾安全教育观后感
- 农村自建房屋安全协议书
- 快速康复在骨科护理中的应用
- 国民经济行业分类和代码表(电子版)
- ICU患者外出检查的护理
- 公司收购设备合同范例
- 广东省潮州市2023-2024学年高二上学期语文期末考试试卷(含答案)
- 2024年光伏发电项目EPC总包合同
- 子女放弃房产继承协议书
- 氧化还原反应配平专项训练
- 试卷(完整版)python考试复习题库复习知识点试卷试题
评论
0/150
提交评论