文档库 最新最全的文档下载
当前位置:文档库 › 实验5 外部中断(急救车与交通灯)-新

实验5 外部中断(急救车与交通灯)-新

实验5 外部中断(急救车与交通灯)-新
实验5 外部中断(急救车与交通灯)-新

实验五外部中断实验(急救车与交通灯)

一、实验要求

本实验模拟交通信号灯控制,一般情况下正常显示,灯亮的顺序如下所示:初始状态:东西、南北红灯亮3秒

10秒南北黄灯亮、东西红灯亮2秒

2秒南北红灯亮、东西绿灯亮10

当有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒,急救车通过后,交通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。

二、实验目的

1、学习外部中断技术的基本使用方法。

2、学习定时器定时的基本方法。

3、学习中断处理程序的编程方法。

三、实验电路图

四、实验说明

1、T0选择软件启动,选用方式1,定时时间为100ms,然后10秒、2秒、3秒时间分别由定时100次、20次和30次来实现由定时器T0来实现。

2、中断服务程序的关键是:

(1)保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

(2)必须在中断程序中设定是否允许中断重入,即设置EX0位。

本例中使用了INT0中断,一般中断程序进入时应保护PSW,ACC,以及中断程序使用

但非其专用的寄存器。本例的中断程序保护了TH0、TL0并且在退出之前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例没有涉及到这种情况。

对于80C51CPU外部中断由INT0(P3.2)端接入。中断信号由单次脉冲发生器产生。

五、参考程序:

1、有急救车到达时,两个方向交通信号灯全红情况

ORG 0000H

LJMP MAIN1

ORG 0003H

LJMP WBZD0

ORG 0030H

MAIN1:MOV SP,#60H

SETB IT0

MOV IP,#00000001B

MOV IE,#10000001B

MOV B,#30

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#10010000B

MOV P1,A

SETB TR0

L1:JBC TF0,L2

AJMP L1

L2:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ B,L1

CLR TR0

MAIN2:MOV R0,#100

MOV TMOD,#01H

MOV TH0,#3CH

2、没有急救车到达时,两个方向交通信号灯按交通规则工作

ORG 0000H

LJMP MAIN1

ORG 0030H

MAIN1:MOV SP,#60H

MOV B,#30

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#10010000B

MOV P1,A

SETB TR0

L1:JBC TF0,L2

AJMP L1

L2:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ B,L1

CLR TR0

MAIN2:MOV R0,#100

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#00110000B

MOV P1,A

SETB TR0

L3:JBC TF0,L4

AJMP L3

L4:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R0,L3

CLR TR0

MAIN3:MOV R1,#20

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#01010000B

MOV P1,A

SETB TR0

L5:JBC TF0,L6

AJMP L5

L6:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R1,L5

CLR TR0

MAIN4:MOV R2,#100

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#10000100B

MOV P1,A

SETB TR0

L7:JBC TF0,L8

AJMP L7

L8:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R2,L7

CLR TR0

MAIN5:MOV R3,#20

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV A,#10001000B

MOV P1,A

SETB TR0

L9:JBC TF0,L10

AJMP L9

L10:MOV TH0,#3CH

MOV TL0,#0B0H

DJNZ R3,L9

CLR TR0

LJMP MAIN2 HERE:SJMP HERE

PLC实验报告(交通灯控制系统)

交通灯控制系统 一、实验目的 (1)用PLC构成十字路口交通灯控制系统。 (2)掌握程序调试的步骤和方法。 (3)掌握构建实际PLC控制系统的能力。 二、实验要求 (1)复习PLC常用指令的功能及用法。 (2)复习PLC程序设计的一般方法。 (3)根据实验要求提前编写程序,待上机验证调试修改。 三、实验环境 软件:STEP 7-Micro_WIN V40+ SP9:S7-200的编程软件 STEP 7-Micro_WIN V32指令库 硬件:THSMS-2A型PLC实验箱(西门子)、电脑、连接导线、USB-PPI 通信电缆 四、实验内容及步骤 交通灯控制系统面板图如上图所示,控制要求如下: 交通信号灯受一个总控制开关控制,当总控制开关接通时,信号灯系统开始工作。 开始工作后,南北红灯和东西绿灯同时点亮,4秒后东西绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成东西黄灯亮,2秒后东西黄灯和南北红灯同时熄灭,东西红灯和南北绿灯同时点亮。4秒后南北绿灯开始闪烁,闪烁2秒后熄灭,熄灭同时切换成南北黄灯亮,2秒后南北黄灯和东西红灯同时熄灭,再次切换成南北红灯和东西绿灯同时点亮。如此循环,周而复始。 当总控制开关断开时,所有信号灯都熄灭。

(1)确定I/O点数。列出详细的I/O地址分配表。如(该表仅为举例, (3)输入编好的PLC控制程序。 (4)运行程序,按控制要求设置各输入量,观察PLC运行情况,记录南北、东西各灯顺序亮、灭的运行情况。调试程序直至正确为止。 解:由题目要求得,

②梯形图如下图①,语句表如下图②,时序图如下图③: 图①图① 图②图② 图③ 五、注意事项

微机原理课程设计报告交通灯

WORD格式微机原理课程设计 设计题目交通灯的设计 实验课程名称微机原理 姓名王培培 学号080309069 专业09自动化班级2 指导教师张朝龙 开课学期2011至2012学年上学期

一、实验设计方案 实验名称:交通灯的设计实验时间:2011/12/23 小组合作:是□否?小组成员:无 1、实验目的: 分析实际的十字路口交通灯的亮灭过程,用实验箱上的8255实现交通灯的控制。(红,黄,绿三色灯) 2、实验设备及材料: 微机原理和接口技术实验室的实验箱和电脑设备等。 3、理论依据: 此设计是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示(在后),红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255 的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4(南东北西)路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的 三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK,2 OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30s定时到。OUT2产生 1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本 输入输出方式,红绿灯的转换由软件编程实现。

4、实验方法步骤及注意事项: ○1设计思路 红,黄,绿灯可分别接在8255的A口,B口和C口上,灯的亮灭可直接由8086输出0,1 控制。 设8253各口地址分别为:设8253基地址即通道0地址为04A0H,通道1为04A2H,通道2 为04A4H,命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波,8255控制或门打开的时 间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪烁。 由于计数值最大为65535,1MHZ/65536的值远大于2HZ,所以采用两个计数器级联的方 式,8253通道0的clock0输入由分频器产生的1MHZ时钟脉冲,工作在方式3即方波发生器方 式,理论设计输出周期为0.01s的方波。1MHZ的时钟脉冲其重复周期为T=1/1MHZ=1s,因此 通道0的计数初值为10000=2710H。由此方波分别作为clock1和clock2的输入时钟脉冲,所以 通道1和通道2的输入时钟频率为100HZ,通道1作计数器工作在方式1,计数初值3000=BB8H 既30s,计数到则输出一个高电平到8255的PA7口,8255将A口数据输入到8086,8086检测 到高电平既完成30s定时。通道2工作在方式3需输出一个1HZ的方波,通过一个或门和8086 共同控制黄灯的闪烁,因此也是工作在方波发生器方式,其计数初值为100=64H,将黄灯的状态 反馈到8055的端口PB7和PC7,同样输入到8086,8086通过两次检测端口状态可知黄灯的状态 变化,计9次状态变化可完成5次闪烁。 三个通道的门控信号都未用,均接+5V即可。 ○ 2硬件原理及电路图 由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A 0 线分别与 8086CPU的A2、A线相连,而将8086的 1 A 0 线作为选通信号。如果是按8255A内部地址来看, 则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),

外部中断实验

1 外部中断实验 一、实验目的 1掌握外部中断技术的基本使用方法 2掌握中断处理程序的编写方法 二、实验说明 1、外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.1)引入,本实验由INT0(P3.2)引入。 2、中断服务的关键: a 、保护进入中断时的状态。 堆栈有保护断点和保护现场的功能使用PUSH 指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。 b 、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。 c 、用POP 指令恢复中断时的现场。 3、中断控制原理: 中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP 。 4、中断响应的过程: 首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU 测试TCON 和SCON 中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。 INT0端接单次脉冲发生器。P1.0接LED 灯,以查看信号反转。 三、实验内容及步骤 1、使用单片机最小应用系统1模块,P1.0接发光二极管,INTO 接单次脉冲输出端。 2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,打开仿真器电源。 3、启动计算机,打开Keil 仿真软件,进入仿真环境。选择仿真器型号、仿真头型号、CPU 类型。 4、打开 中断.ASM 源程序,编译无误后,全速运行程序,连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即隔一次点亮。 5、可把源程序编译成可执行文件,烧录到89C51芯片中。 四、流程图及源程序 1、流程图 保护现场 设置初始状态 设置中断控制寄存器 开始 中断入口

基于STM8的外部中断实验

例程四按键中断 其实在上个例程就说那个中断的,但不是重点说,例程四就重点说下这个中断的设置,主要是针对外部中断,对于其他的中断,到时在相应的模块里面会说的。在STM8S207RB这个芯片里面有很多IO口都可以触发中断的。主要是GPIO_A,GPIO_B,GPIO_C,GPIO_D,GPIO_E,这五组IO口都可以触发外部中断,所以大家以后要设计电路的话,必须先要查看先对应的文档来看下,了解清楚芯片的资料才好设置。其实大家学会调用库里面的函数的话,这些初始化相当来说就很容易的了。 以上外部中断的设置来自“STM8寄存器.pdf”文档第74页 下面看下电路图先吧,只要当你清楚电路具体的链接,才能完成相对应的初始化。

用到内部的资源 "stm8s_clk.h" "stm8s_exti.h" "stm8s_gpio.h" "stm8s_uart1.h" "stm8s_clk.c" "stm8s_exti.c" "stm8s_gpio.c" "stm8s_uart1.c" 看完了电路图,照样是先看主函数

在主函数里面最重要的是Buttom_Init();的初始化,其他的初始话上前几个例程已经有介绍过,相信大家也很清楚了。下面重点讲下Buttom_Init()。 函数原型: 第一条语句是设置Buttom1和Buttom2相对应的IO为上拉输入; 第二条语句是设置GPIOD,也即是按键,为下降沿触发中断。 __enable_interrupt();这条语句是开总中断,在上一个例程里面说过了,以后凡是有触发中断的都要用上这条语句,所以说这条语句很重要的。 下面讲下外部中断常用的几个函数,这些函数都是库有的,可以直接调用的。

实验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

8255,8253交通灯模拟实验

微机原理课程设计——8255,8253交通灯模拟实验 文档介绍:交通信号灯的控制: 1.通过8255A并口来控制LED发光二极管的亮灭。 2.A口控制红灯,B口控制黄灯,C口控制绿灯。 3.输出为0则亮,输出为1则灭。 4.用8253定时来控制变换时间。 要求:设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到1、3路口方向。之后,重复上述过程。 系统原理 工作原理说明: 此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如硬件连接图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接1,2,3,4路口的红灯,B,C口类推。8086工作在最小模式,低八位端口AD0~AD7接到8255和8253的D0~D7,AD8~AD15通过地址锁存器8282,接到三八译码器,译码后分别连到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通过检测此端口是否有高电平来判断是否30S定时到。OUT2产生1MHZ 方波通过或门和8255的B口共同控制黄

单个外部中断实验

一、 实验要求 在单片机的外中断输入引脚INT0————(或INT1———— ),接一个按键开 关来产生外部中断请求,通过P1口连接的8个LED 发光二极管的状态,来反映外中断的作用。 中断未发生时,P1口连接的8个LED 为流水状态,当按键 开关按下,即外部中断请求产生时,8个LED 呈现闪烁状态。按键开关松开,8个LED 又为流水状态。 二、 实验目的 (1) 理解掌握外部中断源、中断请求、中断标志、中断入口 等概念。 (2) 掌握中断程序的设计方法。 程序如下: ORG 0000H //程序入口 LJMP MAIN //跳入主程序入口MAIN ORG 0003H //INT0中断入口 LJMP INT0P ORG 0030H MAIN: SETB EA //中断允许总开关控制位 SETB EX0 //允许外部中断0中断 SETB PX0 //外部中断0中断为高优先级 START:MOV R2,#8 MOV A,#0FEH //为点亮引脚发光二极管需写入P1口的点亮控制码 LOOP: MOV P1,A //点亮控制码写入P1口,点亮相应的LED

LCALL DELAY //调用延时子程序 RL A //点亮控制码循环左移,点亮下一位 DJNZ R2,LOOP //判断左移是否超过8位,未超过继续循环 LJMP START //左移循环已8次,再重新进行下一次循环点亮 INT0P: PUSH PSW //保护现场 PUSH Acc NOLIG: JNB IE0,IT0R MOV P1,#00H LCALL DELAY MOV P1,#0FFH LCALL DELAY LJMP NOLIG IT0R:RETI DELAY: MOV R5,#60 //延时子函数 D1: MOV R6,#20 D2: MOV R7,#248 D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 程序如图:

实验三-交通灯控制实验

南昌大学实验报告 学生姓名:学号:专业班级: 实验类型:□验证□综合□√设计□创新实验日期:实验成绩: 实验三交通灯控制实验 一.实验目的 掌握十字路口交通灯控制方法。 二.实验内容 利用系统提供的双色LED 显示电路,和四位静态数码管显示电路模拟十字路口交通信号灯。4 位LED 数码管显示时间,LED 显示红绿灯状态。 三.实验要求 根据实验内容编写一个程序,并在实验仪上调试和验证。 四.实验说明和电路原理图 交通信号灯控制逻辑如下:假设一个十字路口为东西南北走向。开始为四个路口的红灯全部亮之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后(20 秒),东西路口的绿灯,闪烁若干次后(3 秒),东西路口的绿灯熄灭,同时东西路口的黄灯亮,延时一段时间后(2 秒),东西路口的红灯亮,南北路口的绿灯亮,南北路口方向通车,延时一段时间后(20 秒),南北路口的绿灯闪烁若干次后(3 秒),南北路口的绿灯熄灭,同时南北路口的黄灯亮,延时一段时间后(2 秒),再切换到东西路口的绿灯亮,南北路口的红灯亮,之后重复以上过程。 双色LED 是由一个红色LED 管芯和一个绿色LED 管芯封装在一起,共用负极,当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。 本实验需要用到CPU 模块(F3 区)、静态数码管/双色LED 显示模块(B4 区) 实验框图如图:

五.实验预习要求 学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。 六.实验步骤 1)系统各跳线器处在初始设置状态。 P10 同时接G1、G3;P11 同时接R1、R3;P1.2 同时接G2、G4;P1.3 同时接R2、R4;P1.6、P1.7 分别接静态数码显示的DIN、CLK。 2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。编译无误后,下载程序运行。 3)观察十字路口交通灯效果。 七.实验程序

实验一 8255控制交通灯实验

D034D133D232D331D430D529D628D727PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC7 10 RD 5WR 36A09A18RESET 35CS 6 8255 U36 D0D1D2D3D4D5D6D7WR RD RST A0 A1 PC5PC6PC7 PC2PC3PC4PC0PC1DS35DS36DS37DS38DS39DS40DS4112345678 VCC DS42 A0A1 CS CS1(0F000H) 510 R111510 R112 510R113510R114510R115510R116510R117510R118

.MODEL TINY COM_ADD EQU 0F003H PA_ADD EQU 0F000H PB_ADD EQU 0F001H PC_ADD EQU 0F002H .STACK 100 .DATA LED_Data DB 01111101B ;东西绿灯,南北红灯DB 11111101B ;东西绿灯闪烁,南北红灯 DB 10111101B ;东西黄灯亮,南北红灯 DB 11010111B ;东西红灯,南北绿灯 DB 11011111B ;东西红灯,南北绿灯闪烁 DB 11011011B ;东西红灯,南北黄灯亮 .CODE START: MOV AX,@DATA MOV DS,AX NOP MOV DX,COM_ADD MOV AL,80H ;PA、PB、PC为基本输出模式 OUT DX,AL MOV DX,PA_ADD ;灯全熄灭 MOV AL,0FFH OUT DX,AL LEA BX,LED_Data

外部中断实验

实验二外部中断实验 一.实验目的 1.学习外部中断技术的基本使用方法; 2.学习中断处理程序的编程方法。 二.实验设备及器材配置 1.单片机仿真实验系统。 2.计算机。 3.导线。 三.实验内容 在以下实验题目中任选一个或由老师指定。 1.P1口做输出口,接八只发光二极管,编写程序,使其循环点亮。以单脉冲输出端做为中断申请,当第一次产生外部中断时,使发光二极管全亮,延时1秒后返回中断之前的状态;当第二次产生外部中断时,使发光二极管全灭,延时1秒后返回中断之前的状态;以后如上述一直循环下去。 2.以单脉冲输出端做为中断申请,自行设计连线,用实验箱上的红、绿、黄发光二极管模拟交通灯控制。当有急救车通过时,两交通灯信号为全红,以便让急救车通过,延时10秒后交通灯恢复中断前状态。 四.实验原理说明 本实验中中断处理程序的应用,最主要的地方是如何保护进入中断前的状态,使得中断程序执行完毕后能返回中断前P1口及发光二极管的状态。除了保护累加器A、程序状态字PSW外、P1口的状态外,还要注意主程序中的延时程序和中断程序的延时程序不能混用,本实验中,主程序延时程序用的寄存器和中断延时用的寄存器也不能混用。 五.连线方法及实验电路 8031的P1.0—P1.7分别接发光二极管L0—L7,P3.2接单脉冲输出端“ ” 外部中断实验电路如图1-3所示。

图1-3 外部中断实验电路 六.思考题及实验报告要求 1.思考题 (1).试说明51系列单片机外部中断如何使用。 (2).修改程序,外部中断产生时,使发光二极管闪亮移位方向改变。 2.实验报告要求 (1).给出自行设计的程序清单、程序流程图。 (2). 总结实验过程中调试所遇到的问题和解决方法,写出编程调试的经验和体会。 VW集成调试软件使用 1.自建以字母开头的文件夹,推荐在F盘。 2.双击桌面V/W快捷方式 3.左击【文件】-新建文件-保存文件(存于自建文件夹下,以字母开头,后缀为.ASM或.C) 4.左击【文件】-新建项目-(以字母开头,存于自建文件夹下,加入自存的汇编或C源程序) 5.编写程序 6. 左击【项目】-编译,根据提示将提示的错误位置修改,编译,直至程序无错。 7.实验箱断电、连线完毕后,打开实验箱电源开关。左击【仿真器】,在出现的窗口中选择LAB8000\MCS51\8031AH或A T89C51,晶体频率:6000000Hz。 8. 左击【执行】-全速运行,在实验箱上观察运行结果。

实验5 ARM中断编程

实验五 ARM中断编程 一、实验目的 1.学习键盘驱动原理。 2.掌握中断的使用方法。 二、实验内容 通过ARM的外部中断进行键盘的扫描,利用中断服务程序编写键盘的驱动,在超级终端上显示相应的键值。UART接收中断,以中断方式(而不是查询方式)实现串口数据的接收 三、预备知识 1.掌握在ADS1.2集成开发环境中编写和调试程序的基本过程。 2.会使用UltraEdit编辑C语言源程序。 3.了解ARM中断服务程序的框架结构。 4.了解编译后的映象文件的下载方法。 四、键盘驱动程序的原理 1.简单键盘扫描 通常在一个键盘中使用了一个瞬时接触开关,并且用如图1所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图2所示的好几个脉冲。弹起的持续时间通常将维持在5ms~30ms之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。为此我将用到矩阵键盘。 图1 简单键盘电路

图2 键盘抖动 2. 复杂矩阵键盘扫描 键盘上陈列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图3所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。 图3 矩阵键盘 键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。换句话说,扫描码将告诉应用程序按下哪个键。

交通灯控制电路设计与仿真

交通灯控制电路设计与仿真 一、实验目的 1、了解交通灯的燃灭规律。 2、了解交通灯控制器的工作原理。 3、熟悉 VHDL 语言编程,了解实际设计中的优化方案。 二、实验原理 交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通的燃灭规律为:初始态是两个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。 在实验中使用 8 个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为 20s。数码管的时间总是显示为 19、18、17……2、1、0、19、18……。在显示时间小于 3 秒的时候,通车方向的黄灯闪烁。 三、实验内容 本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱 的交通灯模块和七段码管中的任意两个来显示。系统时钟选择时钟模块的 1KHz 时钟,黄灯闪烁时钟要求为 2Hz,七段码管的时间显示为 1Hz脉冲,即每 1s 中递 减一次,在显示时间小于 3 秒的时候,通车方向的黄灯以 2Hz 的频率闪烁。系统 中用 S1 按键进行复位。 实验箱中用到的数字时钟模块、按键开关、数码管与 FPGA 的接口电路,以及 数字时钟源、按键开关、数码管与 FPGA 的管脚连接在以前的实验中都做了详细说 明,这里不在赘述。交通灯模块原理与 LED 灯模块的电路原理一致,当有高电平输 入时 LED 灯就会被点亮,反之不亮。只是 LED 发出的光有颜色之分。其与 FPGA 的 管脚连接如下表 19-1 所示: 四、实验步骤 1、打开 QUARTUSII 软件,新建一个工程。 2、建完工程之后,再新建一个 VHDL File,打开 VHDL 编辑器对话框。

8255交通灯控制系统(倒计时显示,紧急中断)

《单片机原理与应用》 课程设计报告 题目:简单交通灯控制系统 专业:计算机科学与技术 班级:09计算机1班 学号:09070009 姓名:陈民厅 天津理工大学中环信息学院 计算机工程系 2011年12月29 日

交通灯控制系统设计 摘要 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 关键词:单片机,交通灯,应急开关,LED

1绪论 1.1设计背景 红绿交通灯自动控制系统在城市十字(或丁字)路口有着广泛的应用。随着社会的进步,人们生活水平的提高,私家车数量会不断增加,对城市交通带来前所为有的压力。道路建设也将随之发展,错综复杂的道路将不段增多。为维持稳定的交通秩序,红绿灯自动控制系统将得到更为广泛的应用。现在实际应用的红绿灯系统中一般没有倒计时功能,使司机和行人不知道指示灯还有多久将会改变现有状态。本设计应用基本数字电路知识,采用LED灯作红、绿、黄三交通灯,用七段数码管作同步倒计时显示。实现两方向通行时间不相等的控制并配有倒计时。 1.2设计目的 熟悉单片机控制系统,并了解系统设计的一般规律。 掌握8255芯片的结构及编程方法。 熟悉模拟交通灯控制的实现方法。 1.3设计任务及要求 设计一个交通灯控制系统,该控制系统工作后,交通灯按照下列规律变化:初始态东南西北均为红灯,持续时间为2s;然后转为状态1(10s),为东西红、南北绿;状态2(3s)东西红灯不变、南北绿灯灭、黄灯闪烁三次;状态3(15s),为东西绿、南北红;状态4(3s),为东西绿灯灭、黄灯闪烁三次、南北红灯不变;最后回到状态1,依此循环。如遇到特殊情况,可拨动应急开关,使各向均为红灯,特殊车辆不受红灯限制,待其顺利通过后拨动另一个开关,系统返回继续运行。同时用LED用倒计时方式显示各路口亮灯时间。 2 设计使用的仪器和设备 2.1 达爱思教仪 本实验采用达爱思教仪型号是Dais-PG206FD 2.2八段数码管 码管, 2.3 8255芯片 8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(8255引脚如图1,8255编程模式如图2)。 的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接

外部中断0实验程序

51单片机第十四课外部中断0实验 #include #define uchar unsigned char #define uint unsigned int sbit led0=P0^0; unsigned char code smg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71,0x00}; unsigned char code smg_we[]={0x08,0x18,0x28,0x38,0x48,0x58,0x68,0x78}; //************************************************ //延时函数,在12MHz的晶振频率下 //大约50us的延时 //************************************************ void delay_50us(uint t) { uchar j; for(;t>0;t--) for(j=19;j>0;j--); } //************************************************ //延时函数,在12MHz的晶振频率下 //大约50ms的延时 //************************************************ void delay_50ms(uint t) { uint j; for(;t>0;t--) for(j=6245;j>0;j--); } void main() {

模拟交通灯控制实验

实验报告 课程名称:微机原理与接口技术 指导老师:彭勇刚 成绩:__________________ 实验名称:_______________________________实验类型:________________同组学生姓名:__________ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 模拟交通灯控制实验 一、实验目的 1、了解时间常数的计算方法。 2、了解80C51中断的工作机理、过程,掌握中断服务程序的编制。 3、掌握80C51单片机内部定时/计数器的工作方式选择,初始化程序的设置以及中断服务子程序的设计。 二.实验内容和实验原理 编写模拟交通灯运行控制程序。要求红绿灯亮灯延时时间为30秒,黄灯亮灯延时时间为10秒。利用二位八段LED 显示器进行时间显示。时间显示采用倒计时的方式。时间归零时信号进行切换。 实验线路图如下图:装 订 线

除红绿黄六路交通灯外,还需要用到两个八段LED显示器,用于显示交通灯时间显示,显示码采用串行口模式0进行输出 三.实验器材: 1. Micetek仿真器一台 2. 实验板一块 四.程序及实验结果: 调试通过的.LST文件如下: ORG 0000H 0000 0130 AJMP MAIN ORG 000BH ;定时器T0的中断矢量 000B 21A3 AJMP T0INT ;跳转到中断服务程序 ORG 0030H MAIN: 0030 758901 MOV TMOD,#01H ;写控制字,T0为方式1; 0033 759800 MOV SCON,#00H 0036 758160 MOV SP,#60H ;设堆栈指针SP为60H 0039 D28C SETB TR0 ;启动T0; 003B D2B9 SETB PT0 ;T0中断为高优先级 003D D2A9 SETB ET0 ;允许T0中断 003F D2AF SETB EA ;开放CPU中断 0041 758AB0 MOV TL0,#0B0H ;定时常数为100ms 0044 758C3C MOV TH0,#3CH ORG 0100H RED: ;红灯 0100 D280 SETB P0.0 ;设置输出的初始状态 0102 C281 CLR P0.1 0104 C282 CLR P0.2 0106 C283 CLR P0.3 0108 C284 CLR P0.4 010A D285 SETB P0.5 010C 781E MOV R0,#30 ;红灯亮30s 010E 790A MOV R1,#10 ;黄灯亮10s 0110 E8 LOOP1:MOV A,R0 0111 120166 LCALL SHOW ;转移到数码显示子程序 0114 3000FD WAIT1:JNB 20H.0,WAIT1 ;数码管计数间隔为1s 0117 C200 CLR 20H.0 0119 D9F9 DJNZ R1,WAIT1 011B 790A MOV R1,#10 011D 18 DEC R0 ;红灯从30s开始倒计时 011E B800EF CJNE R0,#00H,LOOP1

微机原理实验交通灯控制实验

微机原理实验交通灯控制实验

课程设计时间:2014.12.22---2015.1.2微机原理专业课程设计任务书 学生姓名专业 班级 学号 题 目 交通灯控制实验 课题 性质 工程设计课题来源自拟课题指导 教师 同组姓名 主要内容L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

任务要求1:掌握并理解芯片8255和8253计时器工作原理 2:掌握并理解源程序和程序中的函数 3:熟悉8255内部结构和与单片机的接口逻辑,掌握8255芯片的3种工作方式。 4:了解单片机外围芯片8255的工作原理、初始化编程以及输入、输出程序设计方法 参考文献《微型计算机原理及运用》谭浩强清华大学出版社 《16/32位微机原理、汇编语言及接口技术》陈涛机械工业出版社《微机接口技术应用》 审查意见指导教师签字: 教研室主任签字:年月日 一:设计的目的和内容 1 目的:通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。 2 内容:如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东 西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

图1 二:设计思想: 在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H (这是我通过实验的结果)。人眼感觉闪烁的效果只是短延时的结果此方案是通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。 如上图所示,红灯(RLED),黄灯(YLEDD)和绿灯(GLED)分别接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分别接南,东,北,西路口 的红灯,B,C口类推。8086工作在最小模式,低八位端口AD 0~AD 7 接到8255和 8253的D 0~D 7 ,AD 8 ~AD 15 通过地址锁存器8282,接到三八译码器,译码后分别连 到8255和8253的CS片选端。8253的三个门控端接+5V,CLOCK0接由分频器产生的1MHZ的时钟脉冲,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD 18, 8086通过检测此端口是否有高电平来判断是否30S定时到。OUT2产生1MHZ方波通过或门和8255的B口共同控制黄灯的闪烁。8255三个口全部工作在方式0既基本输入输出方式,红绿灯的转换由软件编程实现。 三:设计方案与硬件连接 设8253各口地址分别为:设8253基地址即通道0地址为04A0H;通道1为04A2H;通道2为04A4H;命令控制口为04A6H。 黄灯闪烁的频率为1HZ,所以想到由8253产生一个1HZ的方波, 8255控制或门打开的时间,在或门打开的时间内,8253将方波信号输入或门使黄灯闪

实验二 外部中断实验

实验二外部中断实验 一、实验目的 1.掌握外部中断技术的基本使用方法 2.掌握中断处理程序的编写方法 二、实验原理 1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。中断方式设置一般有两种方式:电平方式和脉冲方式. 2.中断服务的关键: (1)保护进入中断时的状态。 堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。注:中断程序自动保护PC,对其做入栈操作 (2)用POP指令恢复中断时的现场。(先进后出) 3.中断控制原理: 中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。 TCON格式(中断控制字) TF1、TF0:定时器/计数器T的溢出中断请求标志位; TR1、TR0:计数器控制位TR1(TR0)=1启动定时器TR1(TR0)=0停止计数器 IE1:外部中断请求1标志位; IT1:IT1=0为低电平触发IT1=1为负跳变有效; IE0:外部中断请求0标志位; IT0:IT0=0为低电平触发IT0=1为负跳变有效; 复位后TCON被清零,中断请求被禁止。

SCON格式(触发方式中断控制字) TI:串行口的发送中断请求标志位。发送1帧串行数据后,硬件自动为TI置1。注:CPU不会为T1清零,需要在中断程序中用软件为TI清零 RI:串行口接受中断请求标志位。接收完1帧串行数据后,硬件自动为RI置1。注:CPU不会为R1清零,需要在中断程序中用软件为RI清零 三、实验内容 参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。中断结束后LED继续接上次状态进行跑马灯闪烁。注:注意保护现场。且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。例:PUSH 06H (累加器支持左移右移不支持压栈出栈; 工作组寄存器不支持左移右移支持压栈出栈);把R6入栈等同PHSHU R6 四、实验步骤 1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。 2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。 3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加**.ASM源程序,进行编译,直到编译无误。 4.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。 五、参考程序 汇编语言: ORG 0000H LJMP START ORG 0003H LJMP INT ORG 0030H INT: PUSH 05H PUSH 06H PUSH 07H MOV P1,#00H ACALL DELAY POP 07H POP 06H POP 05H RETI START: MOV IE,#81H MOV TCON, #01H MOV A, #0FEH

单片机实验5外部中断

一、实验目的和要求 1、掌握中断系统外部中断源的使用方法。 2、掌握延时程序的编程及使用方法。 3、掌握Proteus软件与Keil软件的使用方法。 4、掌握单片机系统的硬件和软件设计方法。 二、设计要求 1、用Proteus软件画出电路原理图,在单片机的P1.0 口线上接按键K0 ,作为外部中断源0使用,用于 开启波形,在单片机的P1.1口线上接按键K1 , 作为外部中断源1使用,用于关闭波形。 2、在单片机的P1.2口线上产生周期50mS的连续方 波,在P 1.2口线上接示波器观察波形。 三、电路原理图。

四、实验程序流程框图和程序清单。 题一二汇编程序: ORG 0000H LJMP MAIN ORG 0003H LJMP K0 ORG 0013H LJMP K1 ORG 000BH LJMP TTC0 ORG 0050H MAIN: MOV SP, #6FH MOV TMOD, #01H MOV TH0, #9EH MOV TL0, #58H SETB EA SETB ET0 SETB EX0 SETB EX1 SETB PT0 SETB PX0 SETB PX1 SETB IT0 HERE: LJMP HERE K0: SETB TR0 RETI K1: CLR TR0 RETI TTC0: CPL P1.2 MOV TH0, #9EH MOV TL0, #58H RETI END 题一二C语言程序: #include #define unchar unsigned char #define uint unsigned int sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; void K0()interrupt 0 using 0 { TR0=1; void K1()interrupt 2 using 2 { TR0=0; } void TTC0()interrupt 1 using 1 { P12=!P12; TH0=0x9E; TL0=0x58; } void main () { SP=0X6F; TMOD=0x01; TH0=0x9E; TL0=0x58; EA=1; ET0=1; EX0=1; EX1=1; IT1=1; IT0=1 ; while(1); } 题一二程序流程图: 五、实验结果(波形图)。 题一二汇编程序仿真波形 题一二C语言程序仿真波形

相关文档