您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 实验7-定时器计数器实验和外部中断实验
实验七定时器/计数器实验和外部中断实验一、实验目的熟悉单片机定时器/计数器的工作原理、寄存器设置以及工作方式的选择。熟悉单片机中断系统结构、中断寄存器设置,理解中断响应的处理过程。二、实验内容1.使用定时器/计数器T1完成循环流水灯实验,定时时间100ms。2.使用外部中断INT0完成外部中断实验,按一下S3(INT0)按键,8个LED全亮,再按一下S3按键,8个LED全灭,使LED状态取反。三、实验环境软件资源:编程软件keil,程序烧写软件STC_ISP_V3.1。硬件资源:mini80E开发板上8个发光二极管LED2--LED9,小按键S3,插针J11。带串口的PC机一台以及串口下载线一根(如果PC机没有串口,请用USB转串口下载线)。四、实验原理首先点亮LED2,其它LED熄灭,启动定时器T1延时100ms,当定时时间到产生中断,单片机执行中断程序,点亮下一个灯LED3,其它LED熄灭,T1再延时100ms点亮LED4,如此循环下去,当点亮LED9后延时100ms再点亮LED2,形成循环流水灯现象。单片机引脚P3.2的第二功能是外部中断INT0输入端,低电平有效,下降沿触发。首先软件设置中断寄存器将INT0中断功能打开,小按键S3按下,引脚P3.2的电平由高变为低,触发中断,单片机执行中断程序,将LED状态取反。五、实验步骤1.进行定时器/计数器实验,编写软件。首先设置T1工作在方式1,根据定时时间100ms计算定时初值,打开中断,启动定时器,等待中断。进入中断后点亮下一个LED灯,实现流水灯。2.进行外部中断实验,编写软件。首先设置中断寄存器IE、IP和TCON,打开中断,等待按键按下触发中断,当按键按下时进入中断程序,LED状态取反。六、实验程序(选用12M晶振)实验A、定时器/计数器实验:ORG0000HLJMPMAINORG000BH;定时器0中断入口地址LJMPINTORG0030HMAIN:MOVR0,#00H;中断次数R0清0MOVA,#0FEHMOVP1,A;点亮LED2MOVTMOD,#01H;定时器0工作方式1MOVTH0,#3CH;置50ms定时初值MOVTL0,#0AFHSETBEA;开总中断SETBET0;开T0中断SETBTR0SJMP$;动态暂停ORG0050H;中断程序INT:INCR0;中断次数R0加1CJNER0,#2,EXIT;R0等于2,即中断两次,定时100ms,如果没到100ms,跳至EXIT退出MOVR0,#00H;中断次数R0清0RLA;A的值循环左移;点亮下一个灯MOVP1,AEXIT:RETIEND实验B、外部中断实验:ORG0000HAJMPMAINORG0003HAJMPIN0ORG0030HMAIN:MOVA,#0FFHMOVP1,A;8个LED全灭SETBEX0;开外部中断SETBEA;开总中断SETBIT0SJMP$;等待中断IN0:CLREX0;关外部中断CALLDELAY_10;延时10ms去抖动JNBP3.2,$;等待按键松开MOVA,P1CPLA;P1口状态取反MOVP1,ASETBEX0;开外部中断RETIDELAY_10:MOVR7,#20D4:MOVR6,#250DJNZR6,$DJNZR7,D4RETEND七、实验结果记录1.记录实验A的现象。2.在实验A中,如果流水灯定时时间间隔改为1秒,程序应该如何修改?3.在实验B中,将语句MAIN:MOVA,#0FFH改成MAIN:MOVA,#0F0H,实验现象是怎样的?如果改成MAIN:MOVA,#55H,实验现象又是怎样的?4.请画出实验A和实验B的程序流程图。
本文标题:实验7-定时器计数器实验和外部中断实验
链接地址:https://www.777doc.com/doc-5923176 .html