外部中断控制.doc_第1页
外部中断控制.doc_第2页
外部中断控制.doc_第3页
外部中断控制.doc_第4页
外部中断控制.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程作业报告课程名称: 单片机原理及应用设计题目: 外部中断控制专业班级: 测控13-2 学生姓名: 杨朝江 授课老师: 刘 霞 院 系:电气信息工程学院测控技术与仪器系 2016 年 4 月 24 日一、 作业要求利用51系列单片机为核心,利用1个按键控制LED灯或继电器、电机、蜂鸣器等设备。控制效果自行设计。要求:按键采用INT0或INT1中断控制、利用定时器T0或T1进行定时控制LED灯或继电器、电机、蜂鸣器等设备。设计电源电路、下载电路、最小系统、I/O口电路 ,用汇编编写程序。二、 总体方案论证 方案一:使用INT0/INT1端申请中断的信号低电平有效。方案二:使用INT0/INT1端申请中断的信号负跳变有效。方案论证:本次设计使用外部中中断INT 0和INT1控制定时器定时并显示在数码管上,以十分之一秒的分辨率显示计时。外部中断0控制计时开始;外部中断1控制计时停止。计数60s后退出定时器中断并清除显示。方案一检测外部中断的低电平需要对外部触滤波、去抖和松手检测,程序设计复杂;方案二检测外部中断的负跳变不需要去抖和松手检测,程序设计简单,检测灵敏,准确性好。本次作业选择方案二。三、 程序流程图 1、主程序流程图主程序流程图如图1所示,主程序是用来完成定时器和外部中断的初始化,数码管显示的时时刷新。2、中断服务子程序流程图 中断服务子程序流程图如图2所示,中断服务子程序的功能是每次中断执行一次该程序,对毫秒位、秒位、十秒位、分钟位进行加1和判断是否进位操作,即达到该时间的情况下就给该时间对应位进行加1操作,使其能够显示正确的动态的时间。开始定时器初始化 外部中断初始化显示初值时间刷新数码管图1 主程序流程图 设置中断频率、开中断 设置中断入口地址 50毫秒中断一次 计数20次即0.1s1/10s10 十分之一秒加1 秒位加1秒位10 秒位加1 十秒加1十秒位6 十秒位加1 退出中断图2 中断服务子程序流程图四、 程序源码及注释 ;* 程序说明 *;* File Name : ;* Author : 电气院测控20132,0213;* Version : V3;* Date : 23/4/2016;* Description :;* ;*;申明;* ORG 00H AJMP MAINORG 0BH ;定时器入口AJMP T0INTORG 0003H ;IINT0的中断入口LJMP IINT0ORG 0013H ;IINT1的中断入口LJMP IINT1ORG 30H;-主程序-MAIN: MOV R0,#20 MOV TMOD,#01H;定时器0工作模式 1 MOV TL0,#0B0H ;TL0=(65536-50000)%256 MOV TH0,#3CH ;TH0=(65536-50000)/256 50MS延时 MOV DPTR,#TABLE ;数据段地址 SETB EA ;打开总中断 SETB ET0 ; CLR TR0 ;关闭定时器0 SETB EX0 ;启动外部中断0 SETB IT0 ; SETB EX1 ;启动外部中断1 SETB IT1 ; LCALL DISP ; LOOP: LCALL DISP ;调用显示函数 SJMP LOOP ;死循环;-定时器中断函数- T0INT: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,RTI MOV R0,#2 ;100ms INC 20H MOV A,20H ;20H存放百毫秒 CJNE A,#10,RTI MOV 20H,#00H INC 21H ;21H存放秒 MOV A,21H CJNE A,#10,RTI MOV 21H,#00H INC 22H MOV A,22H CJNE A,#6,RTI MOV 22H,#00H CLR TR0 MOV 20H,#0 MOV 21H,#0 MOV 22H,#0 RTI: RETI ;-外部中断0函数-IINT0: SETB TR0 /启动定时器0 LCALL DISP SJMP T0INT RETI;-外部中断1函数- IINT1: CLR TR0 ;关闭定时器0 LCALL DISP RETI;-数码管显示函数- DISP: MOV A,20H ;百毫秒位显示 MOVC A,A+DPTR MOV P0,A SETB P2.7 LCALL DELAY CLR P2.7 MOV A,21H ;个位显示 MOVC A,A+DPTR MOV P0,A SETB P2.6 CLR P0.7 ;点亮小数点 LCALL DELAY CLR P2.6 MOV A,22H ;十位显示 MOVC A,A+DPTR MOV P0,A SETB P2.5 LCALL DELAY CLR P2.5 RET;-空延时函数- DELAY: ;误差 0us MOV R6,#01HDL0: MOV R5,#61H DJNZ R5,$ ;$表示当前地址 DJNZ R6,DL0 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H ;/共阳极0-9显示代码 DB 92H,82H,0F8H,80H,90H END 五、 中断电路图六、 仿真结果 具体请参考本文件下的proteus仿真,打开本文件夹star.pdsprj文件仿真就可以看到。七、 心得体会本次作业的编程软件使用的是keil,仿真软件用的是proteus。程序的详细解释已经镶嵌在程序注释里了。仿真的电路图是一个整体,没有分成部分解释,相信你照做做一定能做出来。仿真结果用的是一张图。要看到动态那就打开本文件夹star.pdsprj文件仿真就可以看

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论