实验四 定时器/计数器中断
一、实验目的
1、 进一步掌握中断的概念。
2、 掌握定时/计数器中断编程方法。 二、实验设备
DVCC仿真系统一套、计算机一台 三、实验内容
1、 用定时器T0用工作方式1实现P1.0所控制的LED每秒钟闪烁1次。
2、 当P3.5(T1)接收5个单脉冲,P1.0所控制的LED亮;当P3.5接收5个单脉冲,P1.0所控制的LED灭;如此循环。(fosc=6mhz) 四、实验原理
五、程序
1、 用定时器T0用工作方式1实现P1.0所控制的LED每秒钟闪烁1次。 实验程序:
反汇编代码TEXT8.LST
LOC OBJ LINE SOURCE
0000 1 ORG 0000H 0000 0130 2 AJMP START 000B 3 ORG 000BH 000B 0146 4 AJMP TIME0 0030 5 ORG 0030H 0030 C290 6 START:CLR P1.0 ; 0032 753000 7 MOV 30H,#00H 0035 758901 8 MOV TMOD, #01H ; 0038 758C9E 9 MOV TH0,#9EH 003B 758A58 10 MOV TL0,#58H 003E D2AF 11 SETB EA 0040 D2A9 12 SETB ET0 0042 D28C 13 SETB TR0
21
0044 80FE 14 SJMP $
0046 C0E0 15 TIME0:PUSH ACC 0048 C0D0 16 PUSH PSW 004A 0530 17 INC 30H 004C E530 18 MOV A, 30H
004E B41405 19 CJNE A, # 20, T_RET 0051 B290 20 CPL P1.0 0053 753000 21 MOV 30H, #00 0056 758C9E 22 T_RET:MOV TH0, #9EH 0059 758A58 23 MOV TL0, #58H 005C D0D0 24 POP PSW 005E D0E0 25 POP ACC 0060 32 26 RETI 27 END
实验步骤:
0. 将LED1用导线与P1.0连接。 1.打开DVCC-598JH实验箱电源。
2.启动计算机,运行DVCC-598JH实验系统。 3.新建文件、输入程序并保存文件。 4.调试程序。 5. 编译文件
编译无错误,无警告,则通过。 6. 编译连接传送文件
编译 无错误,在DVCC实验系统显示P状态下,按PCDBUG键,显示器全暗。点击:编译连接传送文件至DVCC-598JH实验箱。错误!链接无效。时,数码管闪烁。 7. 按F9连续运行 程序,查看运行结果
实验结果:P1.0所控制的LED每秒钟闪烁1次。
2、当P3.5接收5个单脉冲,P1.0所控制的LED亮;当P3.5接收5个单脉冲,P1.0所控制的LED灭;如此循环。 实验程序:
反汇编代码TEXT9.LST
LOC OBJ LINE SOURCE 1
0000 2 ORG 0000H 0000 0130 3 AJMP START; 001B 4 ORG 001BH 001B B290 5 CPL P1.0 001D 32 6 RETI 0030 7 ORG 0030H 0030 C290 8 START: CLR P1.0
0032 758960 9 MOV TMOD,#60H; 设置计数器T1工作方式2 0035 758DFB 10 MOV TH1,#0FBH 0038 758BFB 11 MOV TL1,#0FBH 003B D2AF 12 SETB EA 003D D2AB 13 SETB ET1 003F D28E 14 SETB TR1
22
0041 80FE 15 SJMP $ 16 END 实验步骤
0. 将LED1用导线与P1.0连接,P3.5接单脉冲源, 1.打开DVCC-598JH实验箱电源。
2.启动计算机,运行DVCC-598JH实验系统。 3.新建文件、输入程序并保存文件。 4.调试程序。 5. 编译文件
编译无错误,无警告,则通过。 6. 编译连接传送文件
编译 无错误,在DVCC实验系统显示P状态下,按PCDBUG键,显示器全暗。点击:编译连接传送文件至DVCC-598JH实验箱。错误!链接无效。时,数码管闪烁。 7. 按F9连续运行 程序,查看运行结果
六、实验结果
当P3.5接收5个单脉冲,P1.0所控制的LED亮;当P3.5再接收5个单脉冲,P1.0所控制的LED灭;如此循环。
23
实验五 并行I/O口8255扩展实验
一、实验目的
掌握8255芯片的结构及编程方法,学习模拟交通灯控制的实现方法。 二、实验设备
DVCC仿真系统一套、计算机一台 三、实验内容
用8255做输出口,控制十二个发光二极管燃灭,模拟交通灯管理。 四、实验说明
因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化情况和规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1东西绿灯通车,南北红灯。过一段时间转状态2,东西绿灯灭,黄灯闪烁几次,南北仍然红灯。再转状态3,南北绿灯通车,东西红灯。过一段时间转状态4,南北绿灯灭,闪几次黄灯,延时几秒,东西仍然红灯。最后循环至状态1。
五、实验原理
8255各口地址:
控制口
0FF2bH;A口 0FF28H;B口 0FF29H;C口 0FF2AH
六、程序
ORG 0630H;
HA4S:MOV SP,#60H;设置栈指针 MOV DPTR,#0FF2BH
MOV A,#80H;设置PC、PB为输出口,工作方式0 MOVX @DPTR,A MOV DPTR,#0FF29H MOV A,#02H
MOVX @DPTR,A INC DPTR MOV A,#49H
MOVX @DPTR,A ;电亮四个红灯 MOV R2,#25H
LCALL DELAY ;延时 HA4S3:MOV DPTR,#0FF29H MOV A,#08H
MOVX @DPTR,A INC DPTR MOV A,#61H
MOVX @DPTR,A;东西绿色灯亮,南北红色灯亮
24
MOV R2,#55H
LCALL DELAY;延时
MOV R7,#05H;黄灯闪烁5次 HA4S1: MOV DPTR,#0FF29H MOV A,#04H
MOVX @DPTR,A INC DPTR
MOV A,#51H;东西黄色灯亮,南北红色灯亮 MOVX @DPTR,A MOV R2,#20H LCALL DELAY
MOV DPTR,#0FF29H MOV A,#00H
MOVX @DPTR,A INC DPTR
MOV A,#41H;南北红色灯亮 MOVX @DPTR,A MOV R2,#20H LCALL DELAY
DJNZ R7, HA4S1;闪烁次数未到继续 MOV DPTR,#0FF29H MOV A,#03H
MOVX @DPTR,A INC DPTR MOV A,#0CH
MOVX @DPTR,A ;东西红色灯亮,南北绿色灯亮 MOV R2,#55H LCALL DELAY
MOV R7,#05H ;黄灯闪烁5次 HA4S2: MOV DPTR,#0FF29H MOV A,#02H
MOVX @DPTR,A INC DPTR MOV A,#8AH
MOVX @DPTR,A ;东西绿色灯亮,南北黄灯亮 MOV R2,#20H LCALL DELAY
MOV DPTR,#0FF29H MOV A,#02H
MOVX @DPTR,A INC DPTR
MOV A,#08H ;东西绿色灯亮 MOVX @DPTR,A MOV R2,#20H LCALL DELAY
DJNZ R7, HA4S2 ;闪烁次数未到继续 LJMP HA4S3 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
25