微型计算机原理及应用实验指导
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据查找实验
一、实验目的
熟悉汇编语言编程。
二、实验容
在7000H-700FH中查出有几个字节是零,统计“00”的个数再显示在数码管上。
三、实验程序框图
四、实验步骤
(1)在7000H-700FH单元中放入随机数,其中几个单元中输入零。
(2)用连续方式从起始地址0160H开始运行程序(输入0160后按EXEC键)。
(3)观察显示器上的容,应显示容为“00”的单元的个数。
五、思考
修改程序,查找其它容。
实验程序
1 ORG 0160H
2 FIND: MOV SP,#60H ;设栈指针
3 MOV R0,#10H ;查找16个字节
4 MOV R1,#00H
5 MOV DPTR,#7000H
6 FIND1: MOVX A,DPTR
7 CJNE A,#00H,FIND2 ;取出的容与00H相等吗?
8 INC R1 ;计数值加1,指针加1
9 FIND2: INC DPTR
10 DJNZ R0,FIND1 ;未完继续
11 MOV A,R1
12 MOV R0,#79H ;个数送显示缓冲区
13 ANL A,#0FH
14 MOV R0,A
15 INC R0
16 MOV A,R1
17 SWAP A
18 ANL A,#0FH
19 MOV R0,A
20 INC R0
21 MOV A,#10H
22 MOV R4,#04H
23 FIND3: MOV R0,A
24 INC R0
25 DJNZ R4,FIND3
26 FIND4: LCALL DISP ;循环调显示程序
27 SJMP FIND4
28 DISP: SETB 0D4H ;显示子程序
29 MOV R1,#7EH
30 MOV R2,#20H
31 MOV R3,#00H
32 DISP1: MOV DPTR,#0FF21H
33 MOV A,R2
34 MOVX DPTR,A
35 MOV DPTR,#DATA1
36 MOV A,R1
37 MOVC A,A+DPTR
38 MOV DPTR,#0FF22H
39 MOVX DPTR,A
40 DISP2: DJNZ R3,DISP2
41 DEC R1
42 CLR C
43 MOV A,R2
44 RRC A
45 MOV R2,A
46 JNZ DISP1
47 MOV A,#0FFH
48 MOV DPTR,#0FF22H
49 MOVX DPTR,A
50 CLR 0D4H
51 RET
52 DATA1: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;显示代码
53 DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
54 END
实验二工业顺序控制模拟实验
一、实验目的
掌握工业顺序控制程序的简单编程和中断的使用。
二、实验预备知识
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,例如注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作。对这类断续生产过程的控制称为顺序控制,可用单片机控制实现。
三、实验容
8032的P1.0-P1.6控制注塑机的七道工序,模拟控制七只发光二极管的亮灭,高电平时发光二极管点亮。设定每道工序时间转换为延时,P3.4为启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警。P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
四、实验说明
实验中使用外部中断0,编中断服务程序的关键是:
1. 保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2. 必须在中断服务程序中设定是否允许中断重入,即设置EX0位。
一般在进入中断服务程序时应保护PSW、ACC以及中断服务程序使用但非其专用的寄存器,本实验未涉及。
五、实验程序框图
六、实验接线图
七、实验步骤
(1)P3.4连K1,P3.3连K2,P1.0-P1.6分别连到L1-L7,P1.7连SIN(电子音响输入端)。
(2)K1开关拨在上面,K2开关拨在上面。
(3)用连续方式从起始地址0580H开始运行程序(输入0580后按EXEC键),此时应处于等待启动状态。
(4)K1拨至下面(低电平),各道工序应正常运行。
(5)K2拨至下面(低电平),应有声音报警(人为设置故障)。
(6)K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。
八、思考
修改程序,使每道工序中有多位输出。
实验程序
1 ORG 0013H
2 LJMP HA2S3
3 ORG 0580H
4 HA2S: MOV P1,#00H ;关各道工序
5 ORL P3,#00H
6 HA2S1: P3.4,HA2S1 ;是否开始工作
7 ORL IE,#84H ;初始化中断寄存器
8 ORL IP,#04H
9 MOV PSW,#00H
10 MOV SP,#53H
11 HA2S2: MOV P1,#01H ;第一道工序