欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    DOS窗口模拟交通灯演示的设计.docx

    • 资源ID:28411106       资源大小:142.48KB        全文页数:20页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    DOS窗口模拟交通灯演示的设计.docx

    1、DOS窗口模拟交通灯演示的设计嵌入式系统二课程设计报告 DOS窗口模拟交通灯演示的设计设计日期:2011年07月04日 至 2011年07月08日摘要本次课程设计的目的在于利用ARM系统进行简单的系统设计。而在这次实训中,我利用ARM系统设计了模拟交通灯的演示,其基本步骤如下:(1)总体方案的设计与选择:根据设计任务要求和给定的条件,分析所要设计电路应完成的功能,并将总体功能分解成若干个单元功能,分清主次和相互的关系,形成若干单元功能然后再组成总体方案。(2)程序的编写:编写满足设计要求的程序并写入LPC2138芯片中,通过系统实现对电路的控制,从而达到设计的要求。(3)程序的调试:在课程设计

    2、的实践过程中程序的调试占有非常重要的地位,它是最基础的阶段,也是将理论转换为实际的一个关键过程,因此调试时要谨慎小心的进行,从各方面考虑不能产生结果的原因。关键词: ARM9、LPC2138、UART串口发送、定时器、GPIO、RTC中断、DOS窗口显示。1、设计目的: 32、设计任务与要求 42.1 设计要求: 42.2 设计仪器: 42.3 小车在DOS窗口可以模拟遇到的各种情况例如: 43、课程设计原理: 53.1 UART0 查询: 53.2 蜂鸣器连接图如图3-2所示: 63.3 定时器: 73.4 RTC中断: 84、程序设计流程图 105、心得体会: 116、参考文献: 12附录

    3、:程序源代码 131、设计目的:随着电子技术的飞速发展,基于嵌入式的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于嵌入式的控制系统的普及与应用奠定了坚实的基础。而本次实训的目的在于利用ARM系统进行简单的系统设计。而在这次实训中,我利用ARM系统设计模拟交通灯演示,其基本步骤如下:(1)能够了解ARM各个部分的基本功能,将各个部分合理的组合在一起,实现一些实际功能。(2)将ARM第四章中任意三个或三个以上的功能融合在一起,如UART串口,定时器,中断等等,形成具有特定

    4、功能的实际效果,并能够灵活处理实训过程中的各种问题。 (3)在学习了嵌入式系统二课程后,加深对理论知识的理解。(4)学习理论知识在实际中的运用,培养动手能力和解决实际问题的能力。(5)通过实训,进一步熟悉和掌握ARM的结构及工作原理。(6)通过完成一个程序开发的完整过程,了解开发一个ARM应用2、设计任务与要求2.1 设计要求:(1)在DOS窗口模拟实现交通灯的基本功能。(2)模拟两辆小车(东西、南北各一辆)遇到红灯停止,绿灯通行。(3)小车遇到红灯时,蜂鸣器会发出声音提醒车主。(4)在DOS窗口模拟实现数码管10s倒计时的功能。(5)每10s红灯和绿灯转换,倒计时最后5s黄灯闪烁。方案论证:

    5、在DOS窗口模拟交通灯演示比较直观、逼真、明了。而且,功能更加齐全,红灯、黄灯、绿灯也可以用颜色直接表示。2.2 设计仪器:硬件:ARM实验开发板一套计算机一台(内装有ADS1.2及EasyJTAG仿真器)软件:Windows xp系统,ADS1.2集成开发环境2.3 小车在DOS窗口可以模拟遇到的各种情况例如:(1)东西方向的红色小车遇到红灯停止,蜂鸣器会发出声音提醒车主(2)东西方向的红色小车遇到绿灯继续通行(3)南北方向的蓝色小车遇到红灯停止,蜂鸣器会发出声音提醒车主(4)南北方向的蓝色小车遇到绿灯继续通行(5)在特殊情况下东西方向的红色小车遇到红灯时,转向南北方向行驶3、课程设计原理:

    6、3.1 UART0 查询:(1)特性: 16字节收发FIFO; 寄存器位置符合16C550工业标准; 接收器FIFO触发点可为1, 4, 8和14字节; 内置波特率发生器; LPC2131包含使能实现软件流控制的机制。(2)结构:UART 接收器模块UxRx监视串行输入线RxD的有效输入。UART Rx移位寄存器(UxRSR)通过RxD接收有效的字符。当UxRSR接收到一个有效字符时,它将该字符传送到UARTRx缓冲寄存器FIFO中,等待CPU或主机通过主机接口进行访问。 UART发送器模块UxTx接收CPU或主机写入的数据并将数据缓存到UART Tx保持寄存器FIF(UxTHR)中。UART

    7、 Tx移位寄存器(UxTSR)读取UxTHR中的数据并将数据 通过串行输出管脚TxD发送。 UART波特率发生器模块UxBRG产生UART Tx模块所使用的定时。UxBRG模块时钟源为VPB时钟(pclk)。主时钟与UxDLL和UxDLM寄存器所定义的除数相除得到 UART Tx模块使用的时钟。该时钟为16倍过采样时钟NBAUDOUT。 中断接口包含寄存器UxIER和UxIIR。中断接口接收几个由UxTx和UxRx发出的单时钟宽度的使能信号。 UxTx 和 UxRx 的状态信息保存在 UxLSR 中。 UxTx 和 UxRx 的控制信息保存在 UxLCR 中。 VPB 接口提供CPU或主机与U

    8、ART之间的通信连接。UART的结构如图3-1所示: 图3-1 UART方框图3.2 蜂鸣器连接图如图3-2所示:图3-2 蜂鸣器连接图高电平时蜂鸣器停止鸣叫,低电平时开始鸣叫。3.3 定时器:(1)概述:LPC2131具有2个32位可编程定时/计数器,均具有4路捕获、4比较路匹配并输出电路。定时器对外设时钟(pclk)周期进行计数,可选择产生中断或根据4个匹配寄存器的设定,在到达指定的定时值时执行其它动作(输出高/低电平、翻转或者无动作)。它还包括4个捕获输入,用于在输入信号发生跳变时捕获定时器值,并可选择产生中断。可用于对内部事件进行计数的间隔定时器,或者通过捕获输入实现脉宽调制,亦可作为

    9、自由运行的定时器。 定时器0和定时器1除了外设基地址以外,其它都相同。(2)定时器特性: 带可编程32位预分频器的32位定时器/计数器; 具有多达4路32位的捕获通道当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生中断; 4个32位匹配寄存器: 匹配时定时器继续工作,可选择产生中断; 匹配时停止定时器,可选择产生中断; 匹配时复位定时器,可选择产生中断。 多达4个对应于匹配寄存器的外部输出,具有下列特性: 匹配时设置为低电平; 匹配时设置为高电平; 匹配时翻转; 匹配时无动作。 (3)结构:定时器 0 和定时器 1 的方框图,如图3-3所示:(注:捕获寄存器3不能用于定时器0)图3

    10、-3 定时器原理图(4)定时器基本操作方法: 计算定时器的时钟频率,设置PR寄存器进行分频操作; 设置比较匹配通道的初值及其工作模式,若是使用捕获功能,则设置捕获方式; 若使用定时器的相关中断,则设VIC,使能中断; 设置TCR,启动定时器。 如前所述,定时计数器时钟频率计算如下:其中,N为PR的值。3.4 RTC中断:中断的产生由中断位置寄存器(ILR)、计数器递增中断寄存器(CIIR)、报警寄存器和报警 屏蔽寄存器(AMR) 控制,只有转换到中断状态才能产生中断。ILR 单独使能CIIR和AMR中断(ILR 寄存器实际是一个中断标志寄存器)。 CIIR中的每个位都对应一个时间计数器,如果C

    11、IIR使能用于一个特定的计数器,那么该 计数器的值每增加一次就产生一个中断,如图3-4所示。图3-4 增量中断原理图报警寄存器允许用户设定产生中断的日期或时间。AMR提供一个屏蔽报警比较的机制,如果所有非屏蔽报警寄存器与它们对应的时间计数器的值相匹配时,则会产生中断,如图3-5 所示。图3-5 报警中断原理图4、程序设计流程图本程序是结合了UART0串口、定时器查询、GPIO蜂鸣器和RTC中断,自编程序设计的一个在DOS窗口模拟拥有东西、南北两辆小车通行的十字路口交通灯演示,程序流程图如图4-1所示。图4-1 程序流程图5、心得体会:通过本次课程设计,让我对ARM9有了更加全面的了解,所有预期

    12、的功能都实现了。最主要是有老师的耐心指导,还有自己的动脑思考,动手实践,以及一起的合作,才做好了本次课程设计。通过本次课程设计,使我对于软件制作的流程有了更加深刻的认识和可以熟练使用相关软件的操作。在实践中,我也认识到一个小小的失误都会整个过程变得缓慢。在这次课程设计中,由于参考程序少,主要是自己动脑想,其中经历了很多的思维困扰,不过还是成功了。课程设计不仅仅是对于知识的考察,更是考察我们的细心与耐心。通过写论文,我也学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。并认识到如何把握重点、攻克难关,学到用到、活学活用。在设计过程中由于时间仓促有很多地方难免存在

    13、不足之处总之在实训中,要多动脑筋,多动手,将理论与实际相结合。以前学习时,只会一个一个模块分开来看,不会把不同模块进行有效的结合。所以在刚开始编写程序的时候,不知道怎么进行模块之间的连接。然后通过不断的尝试和同学的帮忙,终于实现了不同模块之间的连接,所以此次课程设计真的受益匪浅。6、参考文献:1 刘峥嵘,张智超,等.嵌入式Linux应用开发详解北京:机械工业出版社,2004.2 陈渝.嵌入式系统原理及应用开发北京:机械工业出版社,2008.P1-7.3 魏永明.Linux设备驱动程序M.北京:中国电力出版社2006. 4 李式巨.嵌入式Linux设备驱动程序开发计算机程序与设计2006.1.

    14、5 Andrew N.Sloss等著,沈建华 译.ARM嵌入式系统开发-软件设计与优化北京:北京航空版社,2004.6 孙天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发指南北京:电子工业出版社,2004:138-261. 附录:程序源代码#include config.huint8 k,j;uint8 a=0;uint32 m=79,w=1;uint32 n,p;uint8 c9=0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x10,0x40;char b=9,8,7,6,5,4,3,2,1,0;void DelayNS (uint32 dly) /延时程序 u

    15、int32 i; for ( ; dly0; dly-) for (i=0; i 115200) return (0); if (set.datab 8) return (0); if (0 = set.stopb) | (set.stopb 2) return (0); if (set.parity 4) return (0); / 设置串口波特率 U0LCR = 0x80; / DLAB=1 bak = (Fpclk 4) / baud; U0DLM = bak 8; U0DLL = bak & 0xff; / 设置串口模式 bak = set.datab - 5; if (2 = set

    16、.stopb) bak |= 0x04; if (0 != set.parity) set.parity = set.parity - 1; bak |= 0x08; bak |= set.parity 4; U0LCR = bak; return (0);/* 函数名称 :SendByte()* 函数功能 :向串口UART0发送字节数据,并等待发送完毕。* 入口参数 :data 要发送的数据* 出口参数 :无*/void SendByte (uint8 data) U0THR = data; while (U0LSR & 0X20) = 0); / 等待数据发送/* 函数名称 :PC_Dis

    17、pChar()* 函数功能 :向PC机发送显示字符。* 入口参数 :no 显示位置* char 显示的字符,不能为ff* 出口参数 :无 */void PC_DispChar (uint8 x, uint8 y,uint8 color) SendByte(0xff); SendByte(x); SendByte(y); SendByte( ); SendByte(color);void PC_DispChar1 (uint8 x, uint8 y,uint8 data) SendByte(0xff); SendByte(x); SendByte(y); SendByte(data); Send

    18、Byte(0x1c);void PC_DispChar2 (uint8 x, uint8 y,uint8 data,uint8 color) SendByte(0xff); SendByte(x); SendByte(y); SendByte(data); SendByte(color);/* 函数名称 :SendTimeRtc()* 函数功能 :读取RTC的时间值,并通过串口送到上位机显示。* 入口参数 :无* 出口参数 :无*/void Send_cross() /十字路口的定义 uint8 i; for(i=0;i10;i+) PC_DispChar(9,i,0x30); PC_Disp

    19、Char(8,i,0x30); for(i=0;i10;i+) PC_DispChar(20,i,0x30); PC_DispChar(21,i,0x30); for(i=15;i25;i+) PC_DispChar(9,i,0x30); PC_DispChar(8,i,0x30); for(i=15;i25;i+) PC_DispChar(20,i,0x30); PC_DispChar(21,i,0x30); for(i=0;i10;i+) PC_DispChar(i,9,0x30); for(i=20;i80;i+) PC_DispChar(i,9,0x30); for(i=0;i10;i

    20、+) PC_DispChar(i,15,0x30); for(i=20;i80;i+) PC_DispChar(i,15,0x30); void Send_deng() /交通灯的定义,红0x40、紫0x50(代替黄灯)、绿0x20 if(k=0) /东西红灯,南北绿灯 c0=0x40; c2=0x30; c3=0x30; c5=0x20; if(k=1) /东西绿灯,南北红灯 c3=0x40; c5=0x30; c0=0x30; c2=0x20; if(k=0)&(j=0) /东西红灯,南北绿灯,黄灯不亮 c1=0x30; c4=0x30; if(k=0)&(j=1) /东西红灯,南北绿灯,

    21、东西黄灯闪烁 c1=0xd0; c4=0x30; if(k=1)&(j=0) /东西绿灯,南北红灯,黄灯不亮 c1=0x30; c4=0x30; if(k=1)&(j=1) /东西绿灯,南北红灯,南北黄灯闪烁 c4=0xd0; c1=0x30; /交通灯颜色的定义,红0x40、紫0x50(代替黄灯)、绿0x20 PC_DispChar(6,11,c0); PC_DispChar2(7,11,Y,c1); PC_DispChar(8,11,c2); PC_DispChar(21,13,c2); PC_DispChar2(22,13,Y,c1); PC_DispChar(23,13,c0); PC

    22、_DispChar(16,6,c3); PC_DispChar(17,6,c3); PC_DispChar2(16,7,Y,c4); PC_DispChar2(17,7,Y,c4); PC_DispChar(16,8,c5); PC_DispChar(17,8,c5); PC_DispChar(12,16,c5); PC_DispChar(13,16,c5); PC_DispChar2(12,17,Y,c4); PC_DispChar2(13,17,Y,c4); PC_DispChar(12,18,c3); PC_DispChar(13,18,c3); void Send_daojishi()

    23、 /倒计时的定义 PC_DispChar1 (25,3,ba);/* 函数名称 :main()* 函数功能 :读取实时时钟的值,通过串口发送出去。*/int main (void) UARTMODE uart0_set; PINSEL0 = 0x00000005; / 连接IO到UART0 PINSEL1 = 0x00000000; /定时器0初始化 T0TC = 0; / 定时器设置为0 T0PR = 0; / 时钟不分频 T0MCR = 0x03; / 设置T0MR0匹配后复位T0TC,并产生中断标志 T0MR0 = Fpclk/1; /1s定时 T0TCR = 0x01; /启动定时器 uart0_set.datab = 8; uart0_set.stopb = 1; uart0_set.parity = 0; UART0_Init(115200, uart0_set); U0FCR = 0x01; / FIFO使能 while (1) while (T0IR & 0x01) = 0) /启动RTC中断 Send_cross(); Send_deng(); Send_daojishi(); a+; if(a=5) j=1; if(a=10) a=0; k+; j=0; if(k=2)k=0; T0IR = 0x01; /取消RTC中断 return (0);


    注意事项

    本文(DOS窗口模拟交通灯演示的设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开