中南大学单片机实验报告 下载本文

内容发布更新时间 : 2024/5/14 13:20:47星期一 下面是文章的全部内容请认真阅读。

MOV R2,#20H LCALL DELAY JNB P3.3,HA1S2 INC A

PUSH ACC MOV P1,A

POP ACC

AJMP HA1S1 DELAY: PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H

DELAY3: DJNZ R2,DELAY3 POP 02H

DJNZ R2,DELAY2 POP 02H

DJNZ R2,DELAY1 POP 02H

DJNZ R2,DELAY RET

END

C语言:

#include #include \

#define _8255_A XBYTE[0x8000] #define _8255_B XBYTE[0x8001] #define _8255_C XBYTE[0x8002] #define _8255_Ctrl XBYTE[0x8003]

main() {

_8255_Ctrl =0x90; while (1) {

_8255_B=_8255_A; } }

实验二 单片机I/O口应用实验_工业顺序控制

6

一、 实验目的

掌握工业顺序控制程序的简单编写和中断的使用。

二、 实验预备知识

在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

三、 实验内容

8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。

四、 实验说明

实验中用外部中断0,编中断服务程序的关键是:

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

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

一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。

五、 实验接线图

图(2-1)

六、 实验程序框图

7

主程序: 开始 中断服务子程序:

关输出 中断、P1口、P3口初始化 P1口全低 保护现场 报 警 等开工 故障清除了吗? 工序1延时 Y 恢复现场 N 工序2延时 · · · · · · · 工序7延时 返 回 图(2-3) 图(2-2)

七、 实验步骤

1、P3.4连K1,P3.3连K2,P1.0~P1.6分别连到L0~L6,P1.7连SIN(电子音响驱

动控制区),其卧式开关打在音乐上,短路片选择左边为蜂鸣器,下边为喇叭。 2、K1开关拨在上面,K2拨在上面。

3、调试、运行程序test2中的GYSX.ASM。 4、K1拨至下面(低电平),各道工序应正常运行。 5、K2拨至下面(低电平),应有声音报警(人为设置故障)。

6、K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。

八、实验程序

ORG 0000H

AJMP 0030H

ORG 0013H

LJMP HA2S3 ORG 0030H

MOV P1,#0fFH

HA2S:

ORL P3,#00H HA2S1: JB P3.4,HA2S1 ORL IE,#84H

8

ORL IP,#04H

MOV PSW,#00H MOV SP,#53H HA2S2: MOV P1,#081H ACALL HA2S7 MOV P1,#082H ACALL HA2S7 MOV P1,#084H ACALL HA2S7 MOV P1,#088H ACALL HA2S7 MOV P1,#090H ACALL HA2S7 MOV P1,#0A0H ACALL HA2S7 MOV P1,#0C0H ACALL HA2S7

SJMP HA2S2

HA2S3: MOV B,R2 HA2S5: SETB P1.7

ACALL HA2S6 CLR P1.7 ACALL HA2S6 JNB P3.3,HA2S5 MOV R2,B

RETI

HA2S6: MOV R2,#06H ACALL DELAY

RET

HA2S7: MOV R2,#30H ACALL DELAY

RET

DELAY:PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02H

DJNZ R2,DELAY2 POP 02H

DJNZ R2,DELAY1

9

POP 02H

DJNZ R2,DELAY RET END

修改程序,使每道工序中有多位输出。

10