1
实验三 中断、定时器实验
信息学院 10通信A 柳东旭 1015231030
一、实验目的
1. 学习外部中断和定时器的工作原理及使用方法。
2. 学习外部中断和定时器的初始化程序、应用程序的编写和调试。
二、实验仪器和设备
PC机、WAVE软件、仿真器+仿真头、实验板、电源等。
三、实验说明
本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED数码管指示出计数值,从而观察中断的请求、响应的过程。实验2通过单片机的定时器产生延时,模拟交通灯控制的方法。通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。
四、实验内容
1、开关S0—S1连接P3口做输入,P0输出接LED数码管,通过S2产生外部中断请求(/INT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED数码管上,要求分别采用电平触发和边沿触发。按上述要求完成S3产生外部中断请求。编写初始化程序和中断服务程序。(注意开关抖动处理)
2、P1.0--P1.7作输入口接拨动开关S0--S7;P0.0--P0.7作输出口,接发光二极管L1—L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED)按亮0.5秒、暗0.5秒闪烁,LED亮的同时,从P2.0送出1kHz的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(0—7)显示在LED数码管上。要求延时采用内部定时器T0,音频的产生采用内部定时器T1。编写初始化程序和中断服务程序。
五、实验电路连线
P0.0 ---- LED0 P0.1 ---- LED1 P0.2 ---- LED2 P0.3 ---- LED3 P0.4 ---- LED4 P0.5 ---- LED5 P0.6 ---- LED6
P3.2(/INT0)----- S2 P3.3(/INT1)----- S3
P0.7 ---- LED7
LED连接 外部中断请求输入
a
a b c d e f g h(dp) P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7
1
f
g d
b
e
c h(dp)
MCS-51单片机实验报告
LED数码管各段与I/O的连接
2
六、程序框图
1、中断实验
中断实验程序 ORG 0000H;
SJMP START;
ORG 0003H; //外部中断0程序入口地址 SJMP IN0;
START : SETB EA ; //开总中断 SETB EX0; //外部中断0允许 SETB IT0; //下降沿触发 MOV IP,#01H; //最高优先 MOV DPTR,#TABLE; //表格地址 MOV P2,#0FFH; //清零
LL1 : MOV A,#00H;
MOVC A,@A+DPTR; //输入表格第一个数
CJNE A,#1BH,LL2; //是否结束字符,不是则到LL2 MOV DPTR,#TABLE; //是,则重新输入 LJMP LL1; //跳转到LL1 LL2 : MOV P2,A; //输出数据 LJMP LL1;
2
MCS-51单片机实验报告
IN0 : CLR EX0; //关中断 LCALL DELAY; //延时
MOV A,P3;
CJNE A,#0FBH,LL3; //对比是否低电平.真的有中断
PUSH PSW; //入栈
PUSH ACC;
INC DPTR; //表格地址加一 POP ACC;
POP PSW; // 出栈
3
SETB EX0; //开中断 RETI; //返回 LL3 :SETB EX0; RETI;
DELAY : MOV R7,#01H; //延时程序 DE1 : MOV R6,#50; DE2 : MOV R5,#123; DJNZ R5,$; DJNZ R6,DE2; DJNZ R7,DE1; RET
TABLE : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 1BH END
2、定时器实验框图
3
MCS-51单片机实验报告
4
定时器实验程序 ORG 0000H;
AJMP START;
ORG 000BH; //定时器0入口 AJMP ITT0;
ORG 001BH; //定时器1入口 LJMP ITT1;
START : SETB EA; //开总中断 MOV IP,#08H; //设置优先级 MOV TMOD,#11H; //设置方式1 MOV TH0,#3CH; //置定时器0初值 MOV TL0,#0B0H;
SETB ET0; //允许T0中断
MOV TH1,#0FEH; //定时器1初值 MOV TL1,#0CH;
SETB ET1; //开启定时器1 SETB TR1;
BEEP BIT P3.7; //蜂鸣器设置 SETB BEEP;
MOV R0,#00H; //初始化 MOV R1,#00H;
MOV P2,#0FFH; MOV P0,#0FFH;
4
MCS-51单片机实验报告
MOV P1,#0FFH; //p1口初始化给ffh值 L2 : MOV DPTR,#TABLE; //表地址存入DPTR MOV 50H,#0FEH; //比较初值载入地址50h L0 : MOV A,P1; //按键消抖 CJNE A,#0FFH,L1;
AJMP L0;
L1 : LCALL DELAY ; //延时再判断 5
MOV A,P1;
CJNE A,#0FFH,LL1;
AJMP L0;
LL1 : CJNE A,50H,LL2; MOV R0,A; MOV R3,A;
SETB TR0; MOV A,#00H; MOVC A,@A+DPTR;
MOV P2,A; LJMP L2; LL2 : XCH A,50H; RL A; XCH A,50H; INC DPTR; LJMP LL1; ITT0 : MOV TH0,#3CH; MOV TL0,#0B0H;
CLR TR0; INC R1; CJNE R1,#0AH,LL3; MOV R1,#00H; MOV A,R0;
MOV P0,A; XRL A,R3; CPL A;
MOV R0,A;
LL3 : SETB TR0;
RETI; ITT1 : CLR TR1; MOV TH1,#0FEH; MOV TL1,#0CH;
CJNE R0,#0FFH,LL4; LL4 :CPL BEEP; LL4 : SETB TR1; RETI;
//是否与地址50h中数据相等 //按键值载入R0,R3 //开定时器0
//输出表格数据到数码管 //返回程序开头 //交换数据
//左移
//再次交换,此时地址50h中数据左移一位 //表格数据地址加一 //返回 继续比较
//定时器0中断程序 重装计数值 //关中断 //加一
//是否为10,即中断了500ms 不是跳转到LL3 //是,清零计数值
//输出led控制值
//异或 求反 让灯下次输出相反 //开定时中段0 //返回
//定时中断1程序 关中断
//判断R0是否为0ffh 即灯是否为灭 是则转移到 //蜂鸣器求反 响 //开定时器中断1 //放回 5
MCS-51单片机实验报告
DELAY : MOV R7,#01; //延时程序 DE1 : MOV R6,#40; DE2 : MOV R5,#123; DJNZ R5,$; DJNZ R6,DE2; DJNZ R7,DE1; RET
TABLE : DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H;
;//DB 06H,5BH,4FH,66H,6DH,7DH,07H,7FH; //表格数据 END
6
六、思考题
1、外部中断采用电平触发和边沿触发处理方法上又何不同?
答: 选择电平触发时,单片机在每个机器周期检查中断源口线,检测到
低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。
2、阐述定时器几种工作方式所实现的功能及应用时的注意事项 答:四种工作方式
方式0:为十三位计数器,由TLX(0、1)的低五位和THX的高八位所
构成,计数溢出后全0,所以技术范围为0001H—2000H;
方式1:为16位计数器,由TLX和THX组成,计数范围0001H—10000H; 方式2:自动恢复的8位定时器/计数器;TLX作为常数缓冲器,当TLX
溢出时,在置1溢出标志位同时,还自动将THX的初值赋给TLX,是TLX重新计数,因此可以精确地定时计数,方式2的范围0001H—0100H;
。 方式3:仅适用于定时器/计数器T0,T0被分成2的8位计数器,一般
情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3;
3、试画出音频驱动电路的原理图并分析工作原理和作用。
工作原理为,当片机IO口为高电平是三极管导通,经过电流放大驱动蜂鸣器。
低电平时截止没有电流流过蜂鸣器无响声。作用是增加单片机的带负载能力。
6
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- ryyc.cn 版权所有 湘ICP备2023022495号-3
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务