共4页
中断、定时器实验实验目的:学习外部中断和定时器
二、实验说明本实验1通过开关向单片机提出中断请求,单片机响应中断进行计数,并通过LED数码管指示出计数值,从而观察中断的请求、响应的过程。实验2通过单片机的定时器产生延时,控制LED闪烁的方法。通过本实验学生可以掌握单片机中断和定时器的工作原理及使用方法以及中断和定时器的初始化程序、应用程序的编写和调试。
三、实验内容
1、开关S0S1连接P3口做输入,P0输出接LED,通过S2产生外部中断请求NT0)信号,在中断服务程序中完成十进制递增计数,并将计数值显示在LED数码管上,要求分别采用电平触发和边沿触发。按上述要求完成S3产生外部中断请求。编写初始化程序和中断服务程序。(注意开关抖动处理)
2、P10-P17作输入口接拨动开关S0-S7;P0.0-P0.7作输出口,接发光二极管L1L8,编写程序读取开关状态,将此状态在对应的发光二极管上显示出来,要求发光二极管(LED)按亮0.5秒、暗0.5秒闪烁,LED亮的同时,从P
2.0送出1kHz的音频信号到音频驱动电路发声(持续0.5秒),将开关编号(07)显示在LED数码管上。要求延时采用内部定时器T0,音频的产生采用内部定时器T1。编写初始化程序和中断服务程序。
四、实验电路连线P0.0-LED0P
3.2NT0)-S2P0.1-LED1P
3.3NT1)-S3P0.2-LED2P0.3-LED3P0.4-LED4P0.5-LED5P0.6-LED6P0.7-LED7LED连接外部中断请求输入abcdefgh(dp)abcdefgh(dp)P____p
2.2P____p
2.5P____
五、实验仪器和设备PC机、WAVE软件、仿真器 仿真头、实验板、电源等。
六、思考题
1、外部中断采用电平触发和边沿触发处理方法上有何不同?答:电平触发时,若电平不翻转,外部中断将不断被响应;边沿触发时,电平没跳变一次,外部中断才响应一次。
2、阐述定时器几种工作方式所实现的功能及应用时的注意事项。答:定时数器有四种工作方式。方式0:定时数器工作在方式0时,为13位的计数器,由TL_(_=0,1)的低五位和TH_的高八位所构成,计数溢出后计数器为全0所以方式0的计数范围为0001HH方式1:方式1与方式0的差别仅仅是计数器的位数不同,方式1是16位的计数器,由TL_作为低八位和TH_作为高八位所构成,所以方式1的计数范围是0001H10000H。方式2:定时数器的方式2为自动恢复初值的8位定时数器,TL_作为常数缓冲器,当YL_溢出时,在置1溢出标志位TF_的同时,还自动将TH_的初值送至TL_,使TL_从初值开始计数,因此可以精确的确定定时时间,方式2的计数范围是0001H0100H。方式3:方式3仅适用与定时数器T0,T0被分为2个独立的8位计数器。一般情况下,当T1用作串行口的波特率发生器时,T0才工作在方式3。
3、试画出音频驱动电路的原理图并分析工作原理和作用。口P
3.0输出1KHZ的音频信号经过功放LM386放大后输入扬声器使扬声器发出1KHZ音频的声音,通过扬声器发出的声音可以判断单片机口P
3.0是否输入音频信号和音频信号的频率是否正确。
七、实验源程序及流程图
一、实验
3.1的程序流程图:开始初始化设置中断自循环进入中断延时去抖动进入显示子程序R5中的数值送去显示R5中的数值自加1实验
3.1的源程序:ORG0000HLJMPMAINORG0003HLJMPINT0ORG0013HLJMPINT1ORG0030HMAIN:MOVSP,#60HMOVR5,#00HMOVDPTR,#TABLEJBP
3.0,M1CLRIT0;选择外部中断触发方式CLRIT1LJMPM2M1:SETBIT0SETBIT1M2:JBP
3.
1,M3SETBE_0;选择外部触发器LJMPM4M3:SETBE_1M4:SETBEA;开中断LJMP$INT0:LCALLDELAY10MS;延时防抖动CLRIE0JBP
3.2,BACK0LCALLDISPLAYBACK0:RETIINT1:LCALLDELAY10MS;延时防抖动CLRIE1JBP
3.3,BACK1LCALLDISPLAYBACK1:RETIDISPLAY:MOVA,R5;显示子程序MOVCA,A DPTRMOVP2,AINCR5CJNER5,#0AH,K2MOVR5,#00HK2:RETDELAY10MS:MOVR7,#200;延时子程序K3:MOVR6,#200DJNZR6,$DJNZR7,K3RETTABLE:DB3FH06H5BH4FH66H6DH7DH07H7FH6FH实验
3.2的图:实验
3.2的源程序:LJMPINT0ORG001BHLJMPINT1ORG0030HMAIN:MOVSP,#60HMOVR3,#10;装载延时中断0的中断次数MOVR6,#2;装载延时中断1的中断次数MOVTMOD,#21H;初始化TR0,TR1MOVTL0,#0B0HMOVTH0,#3CHSETBTR0SETBET0MOVTL
1,#06HMOVTH
1,#06HSETBTR1SETBET1SETBPT0CLRPT1SETBF0;设置标志位F0SETBEASETBP
3.0MOVP
1,#0FFHMOVP0,P1MOVR4,#00H;R4,R5中分别存放#00H和P1的数值,再将其转移到P0中以实现闪烁MOVR5,P1MOVR2,P1;R2中存储P1的值MOVA,P1LCALLDISPLAYM1:MOVA,R2;监控P1口的值_RLA,P1CJNEA,#00H,MAINLJMPM1INT0:PUSHA;延时0.5S,LED灯闪烁MOVTL0,#0B0HMOVTH0,#3CHDJNZR3,K1MOVR3,#10MOVA,R5_CHA,R4MOVR5,AMOVP0,R5CPLF0K1:POPARETI;产生1KHZ的方波,驱动扬声器发声,持续0.5SINT1:PUSHPSWDJNZR6,J1MOVR6,#2JBF0,J2LJMPJ1J2:CPLP
3.0J1:POPPSWRETIDISPLAY:PUSHA;数码管显示子程序SETBCMOVR7,#0D1:RRCAJCD2INCR7LJMPD1D2:MOVDPTR,#TABLEMOVA,R7MOVCA,A DPTRMOVP2,APOPARETTABLE:DB3FH06H5BH4FH66H6DH7DH07H00H
八、程序测试报告
1、实验
3.1程序设计符合实验各项要求
2、实验
3.2程序设计符合实验各项要求
举报
