网站大量收购闲置独家精品文档,联系QQ:2885784924

嵌入式系统课程设计报告dz094zxf.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE5

班级:电自094学号:

班级:电自094

学号:09401300417

姓名:赵兴发

指导教师:陈玮

成绩:

课程设计报告

设计任务一十字路口交通灯控制

一、设计目的:

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电路图粘贴在下面,并用文字对所设计的电路功能、原理进一步说明)

附图:

硬件电路说明:

1.设置所有I/O口为第一功能,将硬件电路图按上图所示连接。

2.东西南北四个方向分别装有红、黄、绿三灯,通过放置标号的方式连接到LPC2106。

硬件电路说明:

硬件电路图说明:

1.用仿真可调滑动变阻器控制输入电压变化代替温度传感器的输入电压变化,间接仿真环境温度变化。

2.ADC0808芯片用作A/D转换主芯片,12脚为参考电压,10脚接脉冲控制A/D转换速度。23、24、25引脚为通道选择。000为IN0通道。数码管显示模拟数值。

3.图中有按钮两个,按钮KEY为开关,按一下启动A/D转换并显示电压数值,再按一下停止显示;按钮RST为复位按键。

4.设置LPC2106引脚连接ADC0808的P0.14-P0.22和P0.12为输入,其他的引脚为输出。

四、源程序。(只将C语言应用程序附在后面,其它项目文档不要提供,C语言应用程序要有一定的注释说明)

源程序:

#includeconfig.h

#defineTASK_STK_SIZE 64

#defineKEY 0//管脚P0.12

#defineADCS 0//管脚P0.13

#defineADCEND 0//管脚P0.14

uint32led_code[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,

0x7F,0x6F}; //共阴极数码管字形码

OS_STKTask0Stk[TASK_STK_SIZE]; //定义任务堆栈

OS_STKTask1Stk[TASK_STK_SIZE];

OS_STKTask2Stk[TASK_STK_SIZE];

uint32i; //ADC转换值

voidTask0(void*data); //任务1,按下按键,启动数据采集

voidTask1(void*data); //任务2,A/D转换

voidTask2(void*data); //任务3,数码管显示

/******************************************************************************

**函数名称:main

**功能描述:c语言的主函数,由它启动多任务环境

******************************************************************************/

intmain(void)

{

OSInit(); //操作系统初始化

OSTaskCreate(Task0,(void*)0,Task0Stk[TASK_STK_SIZE-1],2);

OSTaskCreate(Task1,

文档评论(0)

songyj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档