《单片机实验_中断、定时器.doc》由会员分享,可在线阅读,更多相关《单片机实验_中断、定时器.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、理工大学实验报告(模板)实验时间: 年 月 日 星期 时间 : : : 实验室(房间号):实验台: 班级: :指导教师签字: 成绩:实验 三 外部中断/INT0实验 一、 实验目的和要求学习、掌握单片机的中断原理。正确理解中断矢量入口、中断调用和中断返回的概念与物理过程。学习编写“软件防抖”程序,了解“软件防抖”原理。对/int0、/int1两个外部中断进行编程,其中:l 主程序的功能:LDE灯“全亮”、“全灭”交替进行 -(状态2);l Int0中断服务程序功能:2个相邻的LED灯被点亮且循环左移(状态0);l Int1中断服务程序功能:1个LED灯被点亮且循环右移 -(状态1);【注意】:
2、实验仪上的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同理五、 程序清
3、单ORG0000HLJMPSTARTORG0003HLJMPINT_0ORG0013HLJMPINT_1ORG0100H ;主程序START:MOVSP,#60HMOVIE,#85HMOVIP,#04HMOVTCON,#05HMOVA,#00HLP1:MOVP0,ALCALLDELAYCPL ASJMPLP1INT_0:PUSHPSW ;中断T0入口PUSHACCLCALLDELAYMOVA,#3FHLP2:MOVP0,ARR ALCALLDELAYSETBP3.2JNB P3.2,LP2LCALLDELAYPOP ACCPOP PSWRETIINT_1:PUSHPSW ;中断T1入口PUSH
4、ACCLCALLDELAYMOVA,#0FEHLP3:MOVP0,ARL ALCALLDELAYSETBP3.3JNB P3.3,LP3LCALLDELAYPOP ACCPOP PSWRETIDELAY:PUSH02HPUSH03HMOVR2,#00HDL1:MOVR3,#00HDJNZR3,$DJNZR2,DL1POP 03HPOP 02HRETEND六、 实验结果与分析 LED灯按程序设计的规则亮灭,可调至3个状态,两个中断分高低优先级,实验成功。七、 实验体会和建议此次实验学会了中断的编程方式和软件去抖的原理。八、主要仪器设备名称型号备 注理工大学实验报告(模板)实验时间: 年 月 日
5、星期 时间 : : : 实验室(房间号):实验台: 班级: :指导教师签字: 成绩:实验四 定时/计数器的编程实验(蜂鸣器的驱动) 一、 实验目的和要求 1 通过对T1的编程,学习、掌握定时器的初值计算、方式与模式设定等初始化方法。 2 学习采用查询和中断两种方式的编程技术。 3 掌握秒脉冲的设计方法,为后续实验打好基础。要求:分别利用T0、T1实现1秒钟发声(1500KHZ)操作,其中: 1一个定时器控制蜂鸣器的发生频率(1500KHZ),使用查询法编程; 2另一个定时器做1秒钟定时(50mS20),使用中断法编程。二、 实验算法1 首先选择一个定时器编程、调试1500KHZ的定时周期并通过
6、端口驱动蜂鸣器发声;2编制一个1秒钟定时程序;3将两者综合起来,实现持续一秒钟的发声持续,1秒钟后停止发声。【提示】:可以利用控制发声(1500HZ)定时器TRx的置位或清零控制定时器的工作状态,因而决定蜂鸣器是否发声。开始发声时,TRx置一,驱动蜂鸣器发声;1秒钟到后清零TRx是蜂鸣器停止发声。三、 实验电路图四、 实验流程图 主程序入口 T0中断入口 T1中断入口设T0 T1工作方式 重置时间初值 重置时间初值 设中断允许位 R1-1R1 R1=0? 20.0H=0? P1.1取反 设T0 T1定时初值 计数器R1赋值20 RETI计数器R1赋值20 CPL A MOV P1,A 启动定时
7、器T0 T1 RET1 CLR A 开中断 等待中断五、 程序清单ORG0000HLJMPSTARTORG000BHLJMPINT_T0ORG001BHLJMPINT_T1ORG0100H ;主程序START:MOVSP,#60HMOVTMOD,#11H ;方式1MOVTL1,#0CDHMOVTH1,#0FEHMOVTL0,#0FCHMOVTH0,#4BHMOVR1,#20SETBTR1SETBTR0MOVIE,#8AHSJMP$INT_T0:PUSHPSW ;T0中断入口MOVTL0,#0FCHMOVTH0,#4BHDJNZR1,EXITMOVR1,#20CLR 20H.0EXIT:POP PSWRETIINT_T1:PUSHPSW ;T1中断入口MOVTL1,#0CDHMOVTH1,#0FEHJNB 20H.0,NEXTCPL P1.1NEXT:POP PSWRETIEND六、 实验结果与分析 启动程序后,蜂鸣器按所设定的1秒发声。七、 实验体会和建议此次实验学会了如何通过编程的方式定时使蜂鸣器发声,八、主要仪器设备名称型号备 注12 / 12
限制150内