试验五外部中断试验急救车与交通灯一.docx

上传人:b****4 文档编号:5191896 上传时间:2022-12-13 格式:DOCX 页数:22 大小:293.98KB
下载 相关 举报
试验五外部中断试验急救车与交通灯一.docx_第1页
第1页 / 共22页
试验五外部中断试验急救车与交通灯一.docx_第2页
第2页 / 共22页
试验五外部中断试验急救车与交通灯一.docx_第3页
第3页 / 共22页
试验五外部中断试验急救车与交通灯一.docx_第4页
第4页 / 共22页
试验五外部中断试验急救车与交通灯一.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

试验五外部中断试验急救车与交通灯一.docx

《试验五外部中断试验急救车与交通灯一.docx》由会员分享,可在线阅读,更多相关《试验五外部中断试验急救车与交通灯一.docx(22页珍藏版)》请在冰豆网上搜索。

试验五外部中断试验急救车与交通灯一.docx

试验五外部中断试验急救车与交通灯一

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

1.实验要求

在实验四内容的基础上增加允许急救车优先通过的要求。

有急救车到达时,两向

交通信号为全红,以便让急救车通过。

假定急救车通过路口时间为10秒,急救车

通过后,交通灯恢复中断前状态。

本实验以按键为中断申请,表示有急救车通过。

2.实验目的

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

2•学习中断处理程序的编程方法。

6曇/谱

FH

.1$

4

H.

PO0-PO3接DG1-DG4,PO4-P07接DR1-DR4。

CS273接8300H。

K8接P3.2。

四.实验说明

中断服务程序的关键是:

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

的状态。

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

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

使用但非其专用的寄存器。

本例的INTO程序保护了PSW,ACC,2等三个寄存器

并且在退出前恢复了这三个寄存器。

另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。

本例中没有涉及这种情况。

实验开始时K8应在H(高电平)端,要产生中断时先拨向L(低电平)端再拨回H端。

五.实验程序框图

IHG中断子程序梔凶

 

 

六.源程序

ORG0000H

LJMPSTART

ORG0003H;INT0中断入口地址

LJMPINT0

ORG0040H

START:

MOVSP,#60H

SETBEX0;INT0中断有效

SETBIT0

SETBEA

LCALLSTATUS0初始状态(都是红灯)

CIRCLE:

LCALLSTATUS1南北绿灯,东西红灯

LCALLSTATUS2南北绿灯闪转黄灯,东西红灯

LCALLSTATUS3南北红灯,东西绿灯

LCALLSTATUS4南北红灯,东西绿灯闪转黄灯

LJMPCIRCLE

INT0:

PUSHPSW保护现场

PUSH2

PUSHACC

MOVDPTR,#8300H

MOVA,#0FH;南北,东西都亮红灯

MOVX@DPTR,A

MOVR2,#100;延时10秒

LCALLDELAY

POPACC;恢复现场

MOVX@DPTR,A

POP2

POPPSW

RETI

STATUS0:

;南北红灯,东西红灯

MOVDPTR,#8300H

MOVA,#0FH

MOVX@DPTR,A

MOVR2,#10;延时1秒

LCALLDELAY

RET

STATUS1:

;南北绿灯,东西红灯

MOVDPTR,#8300H

MOVA,#5AH;南北绿灯,东西红灯

MOVX@DPTR,A

MOVR2,#50;延时5秒

LCALLDELAY

RET

STATUS2:

;南北绿灯闪转黄灯,东西红灯

MOVDPTR,#8300H

MOVR3,#03H;绿灯闪3次

FLASH:

MOVA,#5FH

MOVX@DPTR,A

MOVR2,#03H

LCALLDELAY

MOVA,#5AH

MOVX@DPTR,A

MOVR2,#03H

LCALLDELAY

DJNZR3,FLASH

MOVA,#0AH;南北黄灯,东西红灯

MOVX@DPTR,A

MOVR2,#10;延时1秒LCALLDELAY

RET

STATUS3:

;南北红灯,东西绿灯

MOVDPTR,#8300H

MOVA,#0A5H

MOVX@DPTR,A

MOVR2,#50;延时5秒

LCALLDELAY

RET

STATUS4:

;南北红灯,东西绿灯闪转黄灯

MOVDPTR,#8300H

MOVR3,#03H;绿灯闪3次

FLASH1:

MOVA,#0AFH

MOVX@DPTR,A

MOVR2,#03H

LCALLDELAY

MOVA,#0A5H

MOVX@DPTR,A

MOVR2,#03H

LCALLDELAY

DJNZR3,FLASH1

MOVA,#05H;南北红灯,东西黄灯

MOVX@DPTR,A

MOVR2,#10;延时1秒

LCALLDELAY

NOP

RET

DELAY:

;延时子程序

PUSH2

PUSH1

PUSH0

DELAY1:

MOV1,#00H

DELAY2:

MOV0,#0B2H

DJNZ0,$

DJNZ1,DELAY2;延时100mS

DJNZ2,DELAY1

POP0

POP1

POP2

RET

END

实验六定时器实验

.实验要求

由8031内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.7分别接八个发光二极管。

要求编写程序模拟一时序

控制装置。

开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7

亮,第四秒钟L6,L8亮,第五秒L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个二极管全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,

然后L2,L4亮……一直循环下去。

二•实验目的

1•学习8031内部计数器的使用和编程方法。

2.进一步掌握中断处理程序的编程方法。

3.实验电路及连线

3址常闕併

1

r1

:

I

1

P1.0--P1.7接L1--L8

4.实验说明

1.关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。

内部计

数器在单片机中主要有定时器和计数器两个功能。

本实验用的是定时器,有关计数器的说明请查阅实验七。

2.内部计数器用作定时器时,是对机器周期计数。

每个机器周期的长度是12个振

荡器周期。

因为实验系统的晶振是11.0592MHz,所以定时常数的设置可按以下方

法计算:

机器周期=12+11.0592MHz=1.0857^S

(65536-定时常数)*1.0857卩S=50mS

定时常数=4C00H

3.定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。

TMOD

TCON

用于设置定时器/计数器的工作方式0〜3,并确定用于定时还是用于计数。

主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

4•在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。

五•实验程序框图

*

f

保护现场

f

那亮红灯

延时10秋

/

恢纜现场

中断入口

INTO中断予程序框图

六.实验程序

ORG0000H

AJMPSTART

ORG001BH;T1中断入口地址

AJMPINT_T1

ORG0100H

START:

MOVSP,#60H

MOVTMOD,#10HST1为方式1

MOVTL1,#00H;延时50mS勺时间常数

MOVTH1,#4BH

MOVR0,#00H

MOVR1,#20

SETBTR1

SETBET1

SETBEA;开中断

SJMP$

INT_T1:

;T1中断服务子程序

PUSHACC保;护现场

PUSHPSW

PUSHDPL

PUSHDPH

CLRTR1;关中断

MOVTL1,#00H;延时50mS常数

MOVTH1,#4BH

SETBTR1;开中断

DJNZR1,EXIT

MOVR1,#20;延时一秒勺常数

MOVDPTR,#DATA|常数表基址

MOVA,R0;置常数表偏移量

MOVCA,@A+DPT读常数表

MOVP1,A;送P1口显示

INCR0

ANL00,#07H

EXIT:

POPDPH;恢复现场

POPDPL

POPPSW

POPACC

RETI

;LED显示常数表

DATA:

DB0FAH,0F5H,0AFH,05FH,0AAH,55H,00H,0FFH

END

实验七计数器实验

.实验要求8031内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。

使用8031勺T1作定时器,50ms中断一次,看T0内每0.50ms来了多少脉冲,将其数值按二进制数在74LS273驱动LED灯上显示出来,5秒后再次测试。

•实验目的1•学习8031内部定时/计数器使用方法。

2•进一步掌握中断处理编程方法。

三•实验电路及连线

P3.4接一计数脉冲(25模块中的149.06K频率)。

PO0~PO7接L1~L8。

CS273

接8300H。

四•实验说明

1•本实验中内部计数器起计数器的作用。

外部事件计数脉冲由P3.4引入定时器TO。

单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。

这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。

同时这就决定了输入波形的频率不能超过机器周期频率。

2•实验时P3.4对应的连线为149.06KHZ孔,0.5ms内来了80次(50H)脉冲。

5.实验程序框图

置TO,T1模式

/

置TO.TJ初始值

/

设置初始常数

ICO.ASM車程厚框圈

六.实验程序:

ORG0000H

AJMPSTART

ORG000BH;T0中断入口地址

RETI

ORG001BH;T1中断入口地址

AJMPINT_T1

ORG0040H

START:

MOVSP,#60H

MOVTMOD,#1DHgT1为方式1

;置T0为方式1,计数方式,;门控选通位有效

MOVTL0,#0H;计数器清零

MOVTH0,#0H

MOVTL1,#32H;延时0.50mS常数

MOVTH1,#0FEH

MOVR0,#20;延时5秒常数

SETBTR0;启动T0

SETBET0

SETBTR1;启动T1

SETBET1

SETBEA;开中断

SJMP$

INT_T1:

PUSHACC

PUSHPSW

CLRTR1

MOVTL1,#32H;延时0.50mS常数

MOVTH1,#0FEH

MOVR1,TL0;保存计数值

MOVR2,TH0

MOVTL0,#00H;清计数器

MOVTH0,#00H

SETBTR1

DJNZR0,EXIT

MOVR0,#20;延时5秒常数

MOVDPTR,#8300H;LE地址

MOVA,R1

MOVX@DPTR,A巴计数值在LED上显示

EXIT:

POPPSW

POPACC

RETI

END

实验八8255输入、输出实验

1.实验要求

编写程序,使用8255可编程并行口芯片,来检测八位拨动开关的状态,并控制八位发光二极管。

使得八位发光二极管的亮灭变化与八位拨动开关的状态相一致。

实验中用8255PB口作输入,PC口做输出。

2.实验目的

了解8255芯片结构及编程方法。

3.实验电路及连线

0L

8255的PB0~PB7(PB口)接至八位拨动开关K1~K8。

将PC0~PC7(PC口)接至八位发光二极管L1--L8。

CS8255接8500H。

四•实验说明

可编程通用接口芯片8255A有三个八位的并行I/O口,请用户仔细阅读有关书籍掌握其特点和各种用法。

由于8255的A1、A2脚分别接至地址线的A0、A1。

所以相对应8255各口/寄存器的地址分配如下:

PA口:

8500H;PB口:

8502H;PC口:

8504H;控制寄存器地址:

8506H。

本示例程序中使用PB口作输入,检测八位拨动开关的状态;使用PC口作输出,

控制八个发光二极管的亮灭。

五•实验程序框图实验程序流程框图如下:

六•实验程序见

D8255EQU8506H;8255状态/命令口地址

D8255AEQU8500H;8255PA口地址

D8255BEQU8502H;8255PB口地址

D8255CEQU8504H;8255PC口地址

ORG0000H

LJMPSTART

ORG0100H

START:

LCALLDELAY延时

MOVDPTR,#D8255

MOVA,#82H置8255状态

;方式0,PAPC口输出,PB口输入

MOVX@DPTR,A

ROTATE:

MOVDPTR,#D8255B

MOVXA,@DPTR读开关状态

MOVDPTR,#D8255C

MOVX@DPTR,A点亮对应的LED

SJMPROTATE

DELAY:

MOVR0,#0H延时子程序

DELAY1:

MOVR1,#0H

DJNZR1,$

DJNZR0QELAY1

RET

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

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