当前位置:文档之家› 如何在IAR中植入PE代码

如何在IAR中植入PE代码

如何在IAR中植入PE代码
如何在IAR中植入PE代码

如何在IAR中植入PE代码?

视频功能:

在本视频中,飞思卡尔工程师通过实例讲解并演示了如何在IAR工程中植入Processor Expert产生的代码。

软件准备:

需要安装如下软件:

?Processor Expert Microcontroller Driver Suite v 10.0

?IAR Embedded Workbench v 6.40.3

操作步骤:

1 ,新建一个Processor Expert工程,具体操作过程,请查看Processor Expert相关文档。

2,在Processor Expert工程中,当所有的组件都定义好,点击“Generate Processor Expert Code”按钮,生成代码。如图1所示,图中的1和2两种方法均可以实现代码的生成。

图 1 生成PE代码

3,打开IAR软件,新建一个工程:Project->Create New Project如图2。新建一个空的工程,如图3。保存工程,如图4,原则上是可以保存在任何地方,但是为了方便调用PE的代码,通常选择保存在所建PE工程的文件夹路径下,图4中IAR 文件夹即之前PE建立工程时的文件夹。

图 2 新建IAR工程图 3 新建空的工程

图 4 设置保存路径及文件名

4,设置IAR工程的芯片类型,点击workspace中刚新建的工程,右击选择options,如图5所示。在options界面中,分类栏选择General Options->Target->Device->选

择具体的芯片型号,如图6所示。

图 5 进入options

图 6 选择芯片型号

5,要在IAR中成功导入PE代码,下面需要做三件事情,第一,在IAR中添加文件(PE中生成的代码文件);第二,添加文件路径;第三,添加正确的链接命令文件。如下分别讲解。

6,为IAR工程添加两个新的文件夹,分别为:GeneratedCode和Sources。GeneratedCode中是PE生成的各个模块的代码,Source中用于放PE中的ProcessorExpert等,即main程序。添加文件夹的方法为:以添加GeneratedCode文件夹为例,点击workspace中刚新建的工程,右击选择Add=>AddGroup=》命名文件夹名,如图7。同样的方法添加Sources文件夹。

图 7 添加文件夹

7,为IAR工程新添加的文件夹GeneratedCode和Sources分别添加文件。GeneratedCode文件夹需要添加PE生成的Generated_Code文件中的所有文件;Sources文件夹即添加PE生成的Sources文件夹中的所有文件。以GeneratedCode

文件夹添加文件为例,选择IAR中新建的GeneratedCode,右击选择Add=>AddFiles,在弹出的界面中,选择到PE文件夹下Generated_Code文件夹,打开选择所有文件,点击OK,具体操作如图8。同样的方法为IAR中Sources文件添加PE中Sources文

件夹中的所有文件。

图 8为新建文件夹添加对应的PE文件

8,为IAR工程添加文件路径,路径通常有,第一,Generated_Code文件夹的路径;第二,Sources文件夹的路径;第三,Processor Expert 头文件的路径。这些路径并

不是固定的,由用户自己工程所在路径以及PE安装路径决定。“Generated_Code

文件夹”的路径和“Sources文件夹”的路径即所建PE工程对应文件夹的目录。对

于Processor Expert头文件的路径,如果用户选择的PE安装为默认安装,则在路径如下:

否则,根据自定义路径选择到相应的inc以及iofiles。

具体的添加方法为,在workspace中点击刚新建的工程,右击选择

Options=>C/C++ Complier=>Preprocessor=》设置additional include directories,如图9所示。

图 9添加路径

在本视频中,这部分路径添加是直接拷贝进去的。若不知道路径,其实还可以在PE的ProjectInfo.xml文件中查看,如图10所示。

图 10 ProjectInfo.xml中路径情况

由于视频中并没有演示单条添加路径的操作,所以,这里做一个添加路径的补充,以添加头文件路径为例,如图11所示,其他类同。

图 11 单条添加路径操作步骤

9,为IAR工程添加链接命令文件路径

Processor Expert提供了一个链接命令文件,位置是所建的PE工程文件夹的:Project_Settings\Linker_Files\ProcessorExpert.icf

需要在IAR的link中添加这个链接命令文件,具体操作为Options=》Linker=》Config=》Override default,然后选择PE工程文件夹下的:

Project_Settings\Linker_Files\ProcessorExpert.icf

如图12所示。设置好后,最后点击Options右下角的OK。

图 12 添加链接命令文件路径

10,编译整个工程

工程右击,点击Make,如图13所示。

图 13 编译工程

11,IAR工程下Debug需要的设置(视频补充内容)

选择Options=>Debugger=>Download=>Use flash loader(s),选择芯片对应的flash 文件。如图14所示。

图 14 Debugger所需选择对应flash文件的步骤

参考资料:

(1),https://www.doczj.com/doc/0811879798.html,/bbs/article_1280_546419.html链接下的3.2节如何在IAR和Keil中如何结合PE生成代码。

(2),https://www.doczj.com/doc/0811879798.html,/ProcessorExpert

交通灯控制模拟程序

交通灯控制模拟程序设计 ;*************定义数据段*********************************************** data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ;数据保存区 yellow db ? ;黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ;************************主程序段********************************************** data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ;初始化标题 q0: call mode1 ;模式选择自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间

微机原理课设带数码管显示的交通灯模拟控制系统设计

南京工程学院Array课程设计说明书(论文) 题目带数码管显示的交通灯模拟控制系统设计 课程名称微机原理及应用 院系 专业 班级 学生姓名 学号 设计地点 指导教师 设计起止时间:2013年12月23日至2017年12月27日 目录 一、方案说明 (2) 1、硬件设计 (2) 1.1、硬件接线图 (2)

1.2、主机接线说明 (3) 2、软件设计 (3) 2.1、程序流程图 (4) 二.源程序清单 (5) 三、调试现象 (10) 四、心得体会 (12)

一、设计说明 硬件方面:8253产生1HZ的方波,脉冲到8259的IR1端,产生中断,调中断服务子程序。在加入紧急车道后,单脉冲()连到8259的IRO端,产生一个高级的中断请求信号。 软件方面:主程序先对各个硬件初始化,在开CPU中断,然后空操作,等待中断。执行低级中断(IR1)时,8255的PA口负责选数码管,PB口负责显示数字,用查表法可查到0~9的数码管编码。 采用循环扫描方法,人眼即可看到连续的二位数。当倒计时减到零时,对红绿灯取反。若

手动上下拨动单脉冲()一次,则产生一个高级中断(IR0),程序转而执行此中断处理程序,处理完后返回继续执行低级中断(IR1)。 1、硬件设计 1.1、硬件接线图 1.2连线说明: C5区:CS、A0、A1————A3区:CS3、A0、A1

C5区:OUT0————C5区:CLK1 C5区:GATE0、GATE1————C1区:VCC C5区:CLK0————B2区:2M C5区:OUT1————B3区:IR1 B3区:CS、A0————A3区:CS2、A0 B3区:INT、INTA————ES8688:INTR、INTA B3区:IR0————B2区:单脉冲() B4区:CS、A0、A1————A3区:CS1、A0、A1 B4区:PA口、PB口————G5区:C口、B口B4区:PC口———— G6区:JP65(LED灯) 1.3实物连线图 2、软件设计

应用A实现交通灯控制方案

二○一一~二○一二学年第二学期 信息科学与工程学院 课程设计报告书 课程名称:微机原理课程设计 班级:电子信息工程2009级 6 班 学号: 200904135150 姓名:张强 指导教师:徐守明 二○一二年二月二十日 前言 随着计算机科学技术的不断发展,微型计算机得到了广泛的应用,是人们利用计算机设计和开发各种应用系统的基础。同时微型计算机接口技术也是一门实践性较强的课程,理论与实践相结合可以更好的掌握知识,这也是这次交通灯系统控制的设计目的。交通灯是交通安全的关键,已广泛应用于城乡的十字路口,它的有无作为交通安全检查的重要依据,是交通秩序正

常进行的有力保障。 十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。目前,有一种使用“模糊控制”技术控制交通灯的方法。能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。 本次的交通灯控制系统主要由8255A并行口、8253定时/计算器、8259单极中断控制器以及74LS139译码器实验等芯片组成。整个课程设计主要使用8255A的A口和B口模拟十字路口交通灯的闪烁情况。主要包括以下五个方面:1.课程设计题目名称;2.课程设计要求完成的任务;3.系统设计文档<包括了总体设计、详细设计以及程序设计等文档);4、课程设计总结;5.参考文献 本次课程设计以固定的程序实现对交通灯实行控制,没有实现智能化,但智能化是交通控制系统是交通控制系统发展的必然趋势,也是满足日益发展的社会需要。通过本次的课程设计,更好的学习微机接口的应用技术,使我们将课堂所学到的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。 由于时间仓促和水平所限,本次课程设计难免有欠妥之处,请不吝批评指正。 摘要:本文介绍了以计算机为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制 关键词:计算机可编程并行接日芯片交通灯 8255A 目录 封面——————————————————————— 1 前言————————————————————————2 目录————————————————————————3 课程设计任务书—————————————————————4 第一章课程设计题目及要求———————————————5 第二章系统设计————————————————————6 2.1 交通灯控制系统介绍 2.2 芯片选择 2.3 系统原理 第三章详细设计————————————————————9 3.1 硬件设计 3.1.1 8255A并行接口————————————————10 3.1.2 8259A可编程中断控制器————————————12 3.1.3 8253可编程定时器/计数器———————————13 3.2 软件设计—————————————————————15 3.3 程序流程图—————————————————————21

单片机模拟交通灯系统带多功能加蜂鸣器含源代码仿真图

单片机课程设计论文

摘要 本系统由单片机系统、键盘、LED 显示、蜂鸣器、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。 本设计是单片机控制的交通灯控制系统。单片机即单片微型计算机。由RAM, ROM,CPU构成,其集定时、计数和多种接口与一体的微控制器。它体积小、成 本低、功能强,广泛的应用于只能产业和工业自动化上。而51系列单片机是各 类单片机中最为典型和富有代表性的一种。 本设计的意义在于通过具体控制系统的设计,掌握微机控制系统设计的一般 方法和处理问题的思路,特别是一些常用的技术手段。使大家能在实践教学环节 中,积累设计经验,开拓思维空间,全面提高个人的综合能力。 红绿灯控制是智能交通系统的一个重要部分,本文给出了一个用单片机控制 的简易交通红绿灯自动控制系统。该系统适用于十字路口,并对放行和禁行时间 进行倒计时显示(秒)。 在车辆通行繁忙的十字交叉路口设置的交通灯控制系统,其特点是:道路较 窄而车流量较大,主干道,支干道的车辆通行时间不等,,同时设有道路应急控 制。具体的情况是:在正常的情况下,东西支干道通行时间为20秒,南北主干 道通行时间为30秒,每个方向在绿灯转为红灯时,要求黄灯先亮5秒钟,才能 变换运行车道。并且能够在人工监控状态下,如果一道有车而另一道无车,交通 灯控制系统能立即让有车道放行。而且有紧急车辆要求通过时,系统要能禁止普 通车辆通行。 关键字:单片机红绿灯 AT89C51 Proteus仿真

交通灯控制系统的VHDL代码

--希望大家把有用的代码上传,共同学习交流 --traffic_control,红绿灯交通控制 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity traffic_control is port( clk,rst: in std_logic; seg_bit:out std_logic_vector(1 downto 0); decode:out std_logic_vector(7 downto 0); ledcol:out std_logic_vector(2 downto 0); --南北方向控制 ledrow:out std_logic_vector(2 downto 0) --东西方向控制); end entity traffic_control; architecture fms of traffic_control is type traffic_state is (s0,s1,s2,s3); type seg_state is(seg_s0,seg_s1); signal cs,ns:seg_state; signal current_state,next_state:traffic_state; signal fdiv:std_logic; signal seg_fdiv:std_logic; signal code:integer range 0 to 30; signal seg_in:integer range 0 to 30; signal countout:integer range 0 to 50; signal longcount1,longcount2,shortcount1,shortcount2:std_logic; begin --50M时钟分频为1Hz,即1s--50,000,000 process(clk) variable aa: integer range 0 to 50000000; begin if clk'event and clk='1' then --if aa=49999999 then aa:=0;------需要的赋值 if aa=4 then aa:=0;----测试仿真测试值 else aa:=aa+1; end if; end if; --if aa<25000000 then fdiv <= '1';----真实值 if aa<2 then fdiv <= '1';----------仿真值 else fdiv <='0'; end if; end process; --分频模块,产生5ms脉冲:250,000/50,000,000 =0.005S process(clk)

实验3 模拟交通灯控制实验

综合实验一:模拟交通灯控制实验 一、实验目的 1、了解时间常数的计算方法。 2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。 3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。 二、实验内容 编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。 三、实验要求 掌握单片机内部通用资源如中断、定时计数器、串行口及并行端口的应用。 时间的延时必须采用定时器定时中断方式进行,定时器0或定时器1可任选一个(默认为0)。编程时请充分考虑定期器的时间扩展问题。 利用二位八段LED显示器进行时间显示,显示码采用串行口模式0进行输出。 显示方式及相应的程序编写请参考实验一。显示部分的详细接线原理及对应的显示码参考图15。 掌握中断系统的基本概念及使用方法。如:中断被响应所需的必要条件;一个完整的中断响应过程;中断优先级的概念 信号灯的控制由并行口P0口输出进行快关控制。 四、实验线路图 图为交通灯控制接线示意图,除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出。 图为八段显示器接线原理图,具体说明了串行口工作模式0的硬件线路。由于开发板一有6个八段显示器,在实验过程中除正常计时的两个八段LED外,将其余四个灭掉。

图交通灯控制接线示意图 图八段显示器接线原理图五、程序及注释 ORG 0000H

ORG 000BH ;定时器计数器T0中断矢量 AJMP T0INT ORG 0030H MAIN: MOV TMOD,#01H ;设定时器/计数器T0为方式1,T1为方式0 MOV SCON,#00H MOV SP,#60H ;设堆栈指针SP为60H SETB TR0 ;启动定时器/计数器T0 SETB PT0 ;T0中断为高优先级 SETB ET0 ;允许定时器/计数器T0中断 SETB EA ;开中断 MOV TL0,#0B0H ;设T0时间常数为100ms MOV TH0,#3CH ;ORG 0100H RED: SETB ;设置灯的初始状态 CLR CLR CLR CLR SETB MOV R0,#30 ;红绿灯亮30秒 MOV R1,#10 ;黄灯亮10秒 LOOP1:MOV A,R0

模拟交通灯控制代码

//功能:模拟交通灯控制C51参考程序 具体实现功能: 1、正常时信号灯控制: (1)初始状态东西南北全为红灯(5s); (2)东西绿灯、南北红灯(10s); (3)东西绿灯闪烁3次,南北红灯; (4)东西黄灯、南北红灯(2s); (5)东西红灯、南北绿灯(10s); (6)东西红灯,南北绿灯闪烁3次; (7)东西红灯,南北黄灯(2s); (8)转(2)。 2、特殊情况下,东西方向绿灯放行(5s) 3、紧急情况下,如有急救车通过时,东西和南北两个方向的交通灯全为红灯(10s),急救车通过后恢复正常信号。紧急情况优先级高于特殊情况。 4、其他提高部分:实现智能交通灯控制(略,自行考虑并编写) (1)各路口红绿灯点亮时间可调整; (2)数码管显示各路口的点亮时间并作每秒减“1”操作; (3)左转灯设计。 (4)自己设想一些特殊情况并加以处理。 分析: 按键S1、S2模拟紧急情况和特殊情况的发生,当S1、S2为高电平(不按按键)时,表示正常情况。当S1为低电平(按下按键)时,表示紧急情况,将S1信号接至INT0脚(P3.2)即可实现外部中断0的中断申请。当S2为低电平(按下按键)时,表示特殊情况,将S2信号接至INT1脚(P3.3)即可实现外部中断1的中断申请。

程序设计: 由上述流程图,程序需要多个不同延时时间,2s、5s、10s等,假定信号灯闪烁时亮灭时间各为0.5s,则可将0.5s延时作为基本的延时时间。 #include unsigned char t0, t1; //定义全局变量,用来保存延时时间循环次数 //函数名:delay0_5s1 //函数功能:用T1的方式1编制0.5秒延时程序,假定系统采用12MHz晶振,定 // 时器1、工作方式1定时50ms,再循环10次即可定时到0.5秒 //形式参数:无 //返回值:无 void delay0_5s1( ) { for(t0=0;t0<0x0a;t0++) // 采用全局变量t0作为循环控制变量 { TH1=0x3c; // 设置定时器初值 TL1=0xb0; TR1=1; // 启动T1 while(!TF1); // 查询计数是否溢出,即定时50ms时间到,TF1=1 TF1=0; // 50ms定时时间到,将定时器溢出标志位TF1清零 } } //函数名:delay_t1 //函数功能:实现0~127.5秒的延时 //形式参数:unsigned char t;

交通灯控制模拟程序

交通灯控制模拟程序设计 data segment title1 db 'Traffic-System' deng db '# # #' sing1 db 'South-North' sing2 db 'East - West' sing3 db 'Red time(scend):' time db 'Time:' sing4 db 'Yellow time(scend):' buff db 4 ;键盘缓冲区 buff1 db 3 dup(?) ;工作计数区 buff2 db 3 dup(?) ; 数据保存区 yellow db ? ; 黄灯时间 mode db 'Mode:auto(Y/N)?:' ans db ? ting3 db 'Red time(scend):030' ting4 db 'Yellow time(scend):5' ?************************ J data ends code segment assume cs:code,ds:data,es:data start:mov ax,data mov ds,ax mov es,ax call title2 ; 初始化标题 q0: call mode1 ; 模式选择 自动或手动 call scanf call atuo ; 默认设置参数启动 lea si,ans cmp byte ptr[si],'y' jz q1 cmp byte ptr[si],'n' jnz q0 call ask1 ;设置红灯时间 call scanf0 call ask2 ;设置黄灯时间 ?************* 定义数据段 *********************************************** 主程序段 **********************************************

at89c51单片机_交通灯控制系统(含源码及仿真图).

模拟交通灯设计报告 题目交通信号灯控制系统 团队研发区第二组 完成时间2011-11-31 贵州民族学院开放实验室

` 目录 一、项目名称 (1) 二、选题背景 (1) 2.1 课题背景 (1) 2.2 交通灯的历史 (1) 三、单片机简介 (2) 3.1 单片机的发展历程 (2) 3.2 单片机的特点: (3) 3.3 AT89C52单片机简介 (4) 四、设计基本要求和步骤 (5) 4.1 基本要求 (5) 4.2 设计步骤 (6) 五、硬件和软件设计 (6) 5.1 硬件电路图 (6) 5.2 程序流程图 (8) 主程序 (8) 运行过程 (9) LED显示程序 (10) T0中断 (11) INT0中断 (11) 5.3 P0、P1口显示状态编码表 (12) 5.4 程序源代码 (12) 5.5 程序运行效果图 (21) 六、心得体会 (22) 七、参考文献.............................................................................. 错误!未定义书签。

模拟交通灯设计报告 一、项目名称 十字路口交通信号灯控制系统 二、选题背景 2.1 课题背景 由于我国经济的快速发展从而导致了汽车数量的猛增,大中型城市的城市交通,正面临着严峻的考验,从而导致交通问题日益严重,其主要表现如下:交通事故频发,对人类生命安全造成极大威胁;交通拥堵严重,导致出行时间增加,能源消耗加大;空气污染和噪声污染程度日益加深等。日常的交通堵塞成为人们司空见惯而又不得不忍受的问题,在这种背景下,结合我国城市道路交通的实际情况,开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前的主要任务。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。 2.2 交通灯的历史 1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯--煤气交通信号灯,这是城市街

模拟交通灯控制系统设计

贵州师范学院 电子课程设计报告书 班级11级1班 学生姓名王旭东 学号11030540094 专业电子信息科学与技术 院系物电学院 2014年6 月20 日

摘要 随着城市人口的快速增长和机动车数量的大量增加,城市交通灯作为缓解交通压力、提高道路通行效率的重要手段,其作用越来越重要。因此,如何改进交通灯的设计,使其更好的适应城市交通的发展也成为一个重要课题。红绿灯控制系统是利用8253A定时/计数器芯片的定时功能,向8259A中断控制器芯片发出定时中断请求,驱动8255A可编程并行接口芯片改变路口的LED灯的亮灭。系统采用DVCC-598JH+微机原理与接口技术实验箱作为测试与运行的平台,8086汇编语言作为编程语言,并用MASM5.0作为汇编语言开发环境。 关键词:红绿灯控制系统 8253A定时器 8259A中断控制器 8255A可编程并行接口 DVCC-598JH+ 目录 摘要 (201) 1.十字路口基本情况分析 (201) 2.交通灯状态转换分析.............................. III 3.紧急通行情况分析 (5) 4.硬件功能分析 (6) 4.1 8253A定时/计数器芯片 (6) 4.2 8259A中断控制器芯片 (7) 4.3 8255A可编程并行接口芯片 (9) 5.系统设计 (10) 5.1硬件设计 (10)

5.1.1 电路分析 (10) 5.1.2 电路连接设计 (10) 5.2软件设计 (12) 5.2.1 程序总体设计 (12) 5.2.2 程序流程设计 (13) 5.2.3 重要代码分析................................ XII 6.系统实现...................................... XVII 6.1 软件开发与运行环境 .. (10) 6.2 系统硬件环境 (20) 6.3 系统运行步骤 (20) 6.4 系统测试结果 (20) 参考文献 (21) 心得体会 (22) 1 十字路口基本情况分析 设有一个十字路口,1、3为东西方向,2、4为南北方向,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。

VB语言实现模拟交通灯灯程序

im ErrCde As Long ' Error code 保存函数调用错误时的代码 Dim szErrMsg As String * 80 ' Error string 长度为80,用于保存错误信息 Dim DriverHandle As Long '用于保存设备句柄 Dim DioReadPortByte As PT_DioReadPortByte '模拟通道配置时需要的结构体变量,结构中的参数可以查手册获得 Dim DioWritePortByte As PT_DioWritePortByte '模拟量输入时需要的结构体变量,结构中的参数可以查手册获得 Dim flag As Long Dim output As Long Dim output1 As Long Dim output2 As Long Private Sub Command1_Click() Timer2.Enabled = True End Sub Private Sub Command2_Click() Timer1.Enabled = False Timer2.Enabled = False DioWritePortByte.Port = 0 DioWritePortByte.Mask = 255 DioWritePortByte.state = 255 ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置 End End End Sub Private Sub Timer1_Timer() ErrCde = DRV_DeviceOpen(1, DriverHandle) ' Make sure device number = 0,调用函数打开设备,函数参数含义见手册 DioWritePortByte.Port = 0 DioWritePortByte.Mask = 255 DioWritePortByte.state = 255 ErrCde = DRV_DioWritePortByte(DriverHandle, DioWritePortByte) '调用函数完成设置 DioReadPortByte.Port = 0 DioReadPortByte.value = DRV_GetAddress(output)

FPGA交通灯仿真及代码

控制模块设计 `timescale 1ns/1ns module M_control(clk,rst,Leds,S_M,G_M,S_B,G_B); input rst,clk; //Time clock and reset output [7:0]Leds; //mainroad lights L R Y G, Branch lights L R Y G. output[3:0] S_M,G_M,S_B,G_B;//S_M main road shiwei G_M is mainrod gewei //S_B main road shiwei G_B is mainrod gewei reg [7:0]Leds; reg[3:0] S_M,G_M,S_B,G_B; reg [7:0]state; //S1?S2...S8 reg [6:0] count1,count2; //count1 main, road count2 branch parameter S1=8'b0_0_0_0_0_0_0_1, S2=8'b0_0_0_0_0_0_1_0, S3=8'b0_0_0_0_0_1_0_0, S4=8'b0_0_0_0_1_0_0_0, S5=8'b0_0_0_1_0_0_0_0, S6=8'b0_0_1_0_0_0_0_0, S7=8'b0_1_0_0_0_0_0_0, S8=8'b1_0_0_0_0_0_0_1; //------------------------------------------------------------------- always @(posedge clk or posedge rst)begin if(rst)begin S_M<=0; G_M<=0; S_B<=0; G_B<=0; state<=S1; Leds<=8'b00010100; count1<=44; count2<=64; end else begin case (state) S1: if(count1==0)begin state<=S2; Leds<=8'b00100100; //main road yellow branch red count1<=4; count2<=count2-1; end else begin

带数码管显示的十字路口交通灯控制 C 程序

一.课程设计目的 用汇编语言独立完成一个程序题,以达到熟练运用汇编语言编程实现有比较完整功能的程序的目的。 ⒈了解交通灯管理的基本工作原理 ⒉熟悉8259A中断控制器的工作原理和应用编程 ⒊熟悉8255A并行接口的各种工作方式和应用 ⒋熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法 二.课程设计任务 本次课程设计的内容为交通信号灯的实时控制和管理。 某交通干线车行道和人行横道的交通信号灯设置如图所示: 其中:表示红灯、表示黄灯、表示绿灯 具体要求如下: 1.东西方向车辆放行60秒钟。即东西方向的绿灯和南北方向的红灯同时点亮1分钟; 2.1分钟后,东西方向的黄灯闪烁5秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。在南北方向亮红灯期间,在2位数码管上显示计数值(每秒减1),从65减为0。 3.东西方向的黄灯闪烁5秒钟后,转为南北方向放行20秒钟。即东西方向的红灯和南北方向的绿灯同时点亮20秒钟; 4.南北方向放行20秒钟后,转为南北方向的黄灯闪烁5秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。 5.南北方向的黄灯闪烁5秒钟后,再转为东西方向车辆放行1分钟。如此循环重复。 三.总体设计方案 1.用实验系统8255A实现对信号灯的控制(所用端口自定);2位数码显示用8255A实现控制。

2. 用实验系统8235的计数器2定时向实验系统主片8259A的IRQ7请求中断,以实现要求的1分钟、5秒钟和20秒的定时。 实验系统8235的计数器2的CLK2接OPCLK,频率为1.19318MHZ;GATE2已接+5V; 定时采用软硬件相结合的方式实现。 ⒊用实验系统的发光二极管模拟红绿灯。 注:8259A的端口地址为:218H、219H 8255A的端口地址为:端口A-200H、端口B-201H、端口C-202H、控制端口-203H 8253的端口地址为:计数器0-208H、计数器1-209H、计数器2-20aH、控制寄存器0-20bH。 四.部分电路设计及功能解说 设计数器0的计数初值为25000,由于CLK0接脉冲信号,频率为2.5MHZ,所以每10ms中断一次。利用CX对不同的状态时间计数,用来实现计数器0对1分钟,20秒钟,5秒钟的定时。中断子程序分为数码显示刷新部分和红绿黄灯各种状态切换部分。每进入中断即刷新LED显示。用对于东西车道和南北车道黄灯闪烁利用标志位判断实现,满足比较条件就暗,不满足条件就亮。 五.程序设计流程图

基于Verilog HDL的交通灯控制器设计

目录 第一章设计原理 (1) 1.1设计要求 (1) 1.2设计思路和原理 (1) 1.3实现方法 (1) 第二章Verilog HDL程序设计 (2) 2.1整体设计 (2) 2.2 具体设计 (3) 第三章仿真与硬件调试 (7) 3.1 波形仿真 (7) 3.2 硬件调试 (9) 第四章设计总结 (10) 程序清单 (11) 参考资料 (15)

交通灯控制器设计 第一章 设计原理 1.1设计要求 设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示, 1.2设计思路和原理 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示: 0s 30s 25s 主干道方向 支干道方向 图1.交通灯点亮时间控制说明 1.3实现方法 本次采用文本编辑法,即利用Verilog HDL 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

单片机实现交通灯控制汇编代码

交通灯控制 一、课程设计的内容 在实验平台上选择两组指示灯,每组分为红,黄,绿代表交通灯。要求: 1. 模拟十字交通路口的实际情况,设计十字路口交通灯自动 变换系统。 2. 设计十字路口交通灯手动变换系统,并这两套系统可切换 使用。 3. 在实现以上内容的基础上增加允许急救车优先通过的要 求。有急救车到达时,两方向交通信号为全红,以便让急救车通 过。 二.设计思路及电路图 在单片机实验箱上P0口和P2口不能做I/O接口。但是为了实现交通灯的状态变化,我要用到I/O接口来对按键进行查询 和显示发光二极管的状态,P1口控制四段数码管的显示。所以我 扩展I/O接口,用74LS377的输入端接P0口,其输出线1Q~8Q 接8个发光二极管,WR作为锁存控制接74LS377的时钟端,扩 展片选信号CS1接在74LS377的使能端G。我用查询方式来查询 按键来转换手动,自动,救护车到来的状态的变化,则把四个按 键K4~K7与P3.2~P3.5相接,当按键置高电平时,程序就会转换 到相应状态执行相应的模块状态。 在自动状态时,开始4个路口的红灯全亮(东西方向为之

路,南北方向为主路)之后,南北路口的绿灯亮,东西口的红灯亮,延时显示并查询开关状态是否发生变化,当两个数码管(一个代表东西方向,一个代表南北方向)从0~3显示,当显示3后交通灯显示下一个状态,一直循环重复过程,直到查询到有按键发生变化。 当P3.3高电平时,自动转换为手动,(同理P3.3低电平时手动转换为自动。)此时拨动按键使P3.2或P3.5置于高点位,就会转到主路或支路相应状态的交通灯显示,数码管显示0。 P3.4控制救护车来时的状态,当其高电位两个红灯全亮并蜂鸣器响起。 实验电路图: 显示电路:

51单片机控制的交通灯系统实验报告

系统实验报告 ——基于51单片机的交通灯设计 专业:XX 学生姓名:xx XX 学号:00000000000 指导教师:wwwwwwwwwww 2000年x月x日

目录 1 设计任务和性能指标 (1) 1.1设计任务 (1) 1.2性能指标 (1) 2 设计方案 (2) 2.1任务分析 (2) 2.2方案设计 (2) 3 系统硬件设计 (3) 3.1单片机的最小系统 (3) 3.2电源电路 (4) 3.3数码管显示时间电路设计 (4) 3.4信号灯控制电路设计 (5) 4 系统软件设计 (5) 4.1主程序设计 (5) 5 调试及性能分析 (6) 5.1调试分析 (6) 5.1.1 软件调试 (6) 5.1.2 硬件调试 (6) 5.1.3 系统功能调试 (6) 6 心得体会 (6) 参考文献 (8) 附录1 系统原理图 (9) 附录3 程序清单 (10) 附录3元器件清单 (14)

1 设计任务和性能指标 1.1设计任务 利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支干道。 1.2性能指标 1. 状态1:仅亮灯,数码管不工作。 按下键4,红/黄/绿三色灯交替亮: 红—〉(20秒)黄(闪烁)—〉(5秒)绿—〉(20秒) 黄(闪烁)—〉(5 秒)红 2. 状态2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。 南 北 东 西

交通灯控制器C语言代码

#include//头文件 /*********************** 定义MAX7219 内部寄存器**********************/ #define REG_DECODE 0x09 // 译码方式寄存器 #define REG_INTENSITY 0x0a // 亮度寄存器 #define REG_SCAN_LIMIT 0x0b // 扫描界限寄存器 #define REG_SHUTDOWN 0x0c // 停机寄存器 #define REG_DISPLAY_TEST 0x0f // 显示测试寄存器 #define INTENSITY_MIN 0x00 // 最小显示亮度 #define INTENSITY_MAX 0x0f // 最大显示亮度 /*********************** 定义各路交通灯信号************************/ sbit ALG = P1^2;// A路左转绿灯 sbit ALR = P1^0;// A路左转红灯 sbit AL Y = P1^1;// A路左转黄灯 sbit ASG = P1^5;// A路直行绿灯 sbit ASR = P1^3;// A路直行红灯 sbit ASY = P1^4;// A路直行黄灯 sbit BLG = P2^0;// B路左转绿灯 sbit BLR = P1^6;// B路左转红灯 sbit BL Y = P1^7;// B路左转黄灯 sbit BSG = P2^3;// B路直行绿灯 sbit BSR = P2^1;// B路直行红灯 sbit BSY = P2^2;// B路直行黄灯 /*********************** 定义MAX7219 端口信号************************/ sbit DATA = P2^5; sbit LOAD = P2^6; sbit CLK = P2^7; /*********************** 定义设定按键端口信号************************/ sbit next_switch = P0^5; sbit add_switch = P0^6; sbit sub_switch = P0^7; /*********************** 时间及显示全局变量************************/ int aa,shi,ge,shi1,ge1,temp1; int p=0; int set1=10; int set2=5; int flag = 0;

交通信号灯模拟控制

实训时间:2011-6-27~2011-7-1 报告内容页:不少于6页 实训报告书写内容概要(参考实训指导书内容) 一、实训题目 交通信号灯模拟控制 二、实训目的 三、实训内容 任务一: 1、了解各引脚的功能。 2、完成实训指导书的基本要求。 5S 黄灯闪8次数5S A绿B红A黄B红A红B绿A红B 黄 黄灯闪8次 任务二: 1、将A0、A1分别接到XA3、XA4后观察显示结果,并分析原因。 2、将D0---D7分别接到XD8---XD15后观察显示结果,并分析原因。 3、将原来的显示方式:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 * * * * * * * * 改为: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 * * * * * * * * 要求显示正确,并写出程序更改代码或接口更改图。 4、将A组、B组对应的8255A的端口对换后,要求按最初程序显示结果输出,写出相应的更改程序。 任务三: 1、将PA0、PA7分别接到PA3、PA5后,要求正常显示。写出相应的更改程序。 2、将5S改为10S,将间隔100ms改为200ms后程序如何改写,计数器初值如何设定? 3、将硬件接线中8255A的A口与B口对换后,要求显示正确,写出相应的更改程序。 四、实训原理 1. 编程提示 2. 程序流程图 3. 程序框架 五、实训硬件接线 六、实训结果及分析 七、实训总结(此项内容必须要求内容涉及:实训中出现的问题及收获)

四、实验环境及条件 1、唐都TD-PITC实验箱 2、导线 五、源程序清单 ;综合性、设计性实验--交通灯控制 ;PA0~PA7作为LED灯,PB0~PB7为数码管段选码,PC7读8254输出频率 ;***************************************************************** IOY0 EQU 9800H ;片选IOY0对应的端口始地址 IOY1 EQU 9840H ;片选IOY1对应的端口始地址 ;***************************************************************** PORTA EQU IOY0+00H*2 ;8255的A口地址 PORTB EQU IOY0+01H*2 ;8255的B口地址 PORTC EQU IOY0+02H*2 ;8255的C口地址 PORT8255 EQU IOY0+03H*2 ;8255的控制寄存器地址 P0 EQU IOY1+00H*2 ;8254的0口地址 P1 EQU IOY1+01H*2 ;8254的1口地址 P2 EQU IOY1+02H*2 ;8254的2口地址 P8254 EQU IOY1+03H*2 ;8254的控制寄存器地址 ;***************************************************************** STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT DTABLE DB 6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH;键值表,0~9对应的7段数码管的段位值 DTABLE1 DB 4FH,5BH,06H,3FH ;键值表,0~3对应的7段数码管的段位值

相关主题
文本预览
相关文档 最新文档