大连理工大学实验报告(模板)
实验时间:年月日星期时间::~ :
实验室(房间号):实验台号码:班级:姓名:
指导教师签字:成绩:
实验三外部中断/INT0实验
一、实验目的和要求
学习、掌握单片机的中断原理。
正确理解中断矢量入口、中断调用和中断返回的概念及物理过程。
学习编写“软件防抖”程序,了解“软件防抖”原理。
对/int0、/int1两个外部中断进行编程,其中:
●主程序的功能:LDE灯“全亮”、“全灭”交替进行 --------(状态2);
●Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);
●Int1中断服务程序功能:1个LED灯被点亮且循环右移 ---(状态1);【注意】:实验仪上的LED灯物理位置最左侧为d0;最右侧为d7。
二、实验算法
1 在主程序中利用CPL P3.3的指令驱动其电平不断地转换(由逻辑笔电路做程序状态监视)。
2 在中断服务程序中将P3.3置位(P3.3=1),实现对计数器“加1”并(通过P1口)显示的功能。
3 中断结束后回到主程序,程序继续对P3.3的电平不断取反。
三、实验电路图
四、实验流程图
主程序入口INT0入口
设置中断允许P3.2置1
设置中断优先级调用延时子程序
设TCON 计数器加一并显示
CLR A开中断
(P0)—(A) P3.2=0?
调用延时子程序调用延时子程序
(A)—(A) RETI INT1同理
五、程序清单
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_0
ORG 0013H
LJMP INT_1
ORG 0100H ;主程序
START: MOV SP,#60H
MOV IE,#85H
MOV IP,#04H
MOV TCON,#05H
MOV A,#00H
LP1: M OV P0,A
LCALL DELAY
CPL A
SJMP LP1
INT_0: PUSH PSW ;中断T0入口PUSH ACC
LCALL DELAY
MOV A,#3FH
LP2: M OV P0,A
RR A
LCALL DELAY
SETB P3.2
JNB P3.2,LP2
LCALL DELAY
POP A CC
POP P SW
RETI
INT_1: PUSH PSW ;中断T1入口PUSH ACC
LCALL DELAY
MOV A,#0FEH
LP3: M OV P0,A
RL A
LCALL DELAY
SETB P3.3
JNB P3.3,LP3
LCALL DELAY
POP A CC
POP P SW
RETI
DELAY: PUSH 02H
PUSH 03H
MOV R2,#00H
DL1: MOV R3,#00H
DJNZ R3,$
DJNZ R2,DL1
POP 03H
POP 02H
RET
END
六、实验结果与分析
LED灯按程序设计的规则亮灭,可调至3个状态,两个中断分高低优先级,实验成功。
七、实验体会和建议
此次实验学会了中断的编程方式和软件去抖的原理。
八、主要仪器设备
大连理工大学实验报告(模板)
实验时间:年月日星期时间::~ :
实验室(房间号):实验台号码:班级:姓名:
指导教师签字:成绩:
实验四定时/计数器的编程实验(蜂鸣器的驱动)
一、实验目的和要求
1 通过对T1的编程,学习、掌握定时器的初值计算、方式及模式设定等初始化方法。
2 学习采用查询和中断两种方式的编程技术。
3 掌握秒脉冲的设计方法,为后续实验打好基础。
要求:分别利用T0、T1实现1秒钟发声(1500KHZ)操作,其中:
1一个定时器控制蜂鸣器的发生频率(1500KHZ),使用查询法编程;
2另一个定时器做1秒钟定时(50mS×20),使用中断法编程。
二、实验算法
1.首先选择一个定时器编程、调试1500KHZ的定时周期并通过端口驱动蜂鸣器发声;
2.编制一个1秒钟定时程序;
3.将两者综合起来,实现持续一秒钟的发声持续,1秒钟后停止发声。
【提示】:可以利用控制发声(1500HZ)定时器TRx的置位或清零控制定时器的工作状态,因而决定蜂鸣器是否发声。
开始发声时,TRx置一,驱动蜂鸣器发声;1秒钟到后清零TRx是蜂鸣器停止发声。
三、实验电路图
主程序入口T0中断入口T1中断入口
设T0 T1工作方式重置时间初值重置时间初值
设中断允许位R1-1—R1 R1=0? 20.0H=0?P1.1取反设T0 T1定时初值计数器R1赋值20 RETI
计数器R1赋值20 CPL A MOV P1,A
启动定时器T0 T1 RET1
CLR A 开中断
等待中断
五、程序清单
ORG 0000H
LJMP START
ORG 000BH
LJMP INT_T0
ORG 001BH
LJMP INT_T1
ORG 0100H ;主程序START: MOV SP,#60H
MOV TMOD,#11H ;方式1
MOV TL1,#0CDH
MOV TH1,#0FEH
MOV TL0,#0FCH
MOV TH0,#4BH
MOV R1,#20
SETB TR1
SETB TR0
MOV IE,#8AH
SJMP $
INT_T0: PUSH PSW ;T0中断入口MOV TL0,#0FCH
MOV TH0,#4BH
DJNZ R1,EXIT
MOV R1,#20
CLR 20H.0
EXIT: POP P SW
RETI
INT_T1: PUSH PSW ;T1中断入口MOV TL1,#0CDH
MOV TH1,#0FEH
JNB 20H.0,NEXT
CPL P1.1
NEXT: POP P SW
RETI
END
六、实验结果与分析
启动程序后,蜂鸣器按所设定的1秒发声。
七、实验体会和建议
此次实验学会了如何通过编程的方式定时使蜂鸣器发声,八、主要仪器设备。