您好,欢迎访问三七文档
实验三定时器中断实验一、实验目的1、掌握51单片机定时器基本知识;2、掌握定时器的基本编程方法;3、学会使用定时器中断。二、实验内容1、利用定时器设计一个秒表,计数范围为0—59,并在数码管实时显示。三、实验设备PC机一台、单片机实验箱主要器件:AT89C52、7SEG-BCD、四、实验步骤1、使用Proteus设计仿真原理图;2、使用Keil设计程序;3、联合调试仿真。五、实验流程图六、实验程序与结果#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitF=P2^1;voidtimer1_init()开始设置显示初值启动定时器判断是否到59继续是否{TMOD=0x10;//将定时器1设置为工作方式1TH1=(65536-6000)/256;//定时器每加一时间为1/fsoc,定时时间为1/500//(1/500)s/(1/3000000)s=6000TL1=(65536-6000)%256;//fsoc=3000000,所以装入16位定时器中值为65536-6000EA=1;ET1=1;TR1=1;}voidmain(){timer1_init();while(1);}voidtimer1()interrupt3{TH1=(65536-6000)/256;//每次进入中断,重装初值TL1=(65536-6000)%256;F=~F;//每次进入中断P1.1口取反}#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitF=P2^1;voidtimer0_init(){TMOD=0x01;//将定时器0设置为工作方式1TH0=(65536-83)/256;//定时器每加一时间为1/fsoc,定时时间为2Khz,既500us//500us/6us=83.3333TL0=(65536-83)%256;//fsoc=6000000,所以装入16位定时器中值为65536-83EA=1;ET0=1;TR0=1;}voidmain(){timer0_init();while(1);}voidtimer0()interrupt1{TH0=(65536-83)/256;//每次进入中断,重装初值TL0=(65536-83)%256;F=~F;//每次进入中断P1.1口取反,表示定时时间到}#includereg51.h//包含51单片机寄存器定义的头文件#defineseg_dataP1#defineseg_data2P3#defineuintunsignedintsbitD1=P2^0;//将D1位定义为P2.0引脚uintcounter=0;unsignedintunit=0,decade=0,avs=0;//time=0;/**************************************************************函数功能:主函数**************************************************************/voidmain(void){uinttime,time1,temp1,temp2,temp3;seg_data=0;seg_data2=0;TMOD=0x11;//使用定时器T0的模式2TH0=0xFC;//定时器T0的高8位赋初值1000-500TL0=0x18;//定时器T0的低8位赋初值TH1=(65536-50000)/256;//定时器T1的高8位赋初值TL1=(65536-50000)%256;//定时器T1的低8位赋初值EA=1;//开总中断ET0=1;//定时器T0中断允许ET1=1;TR0=1;//启动定时器T0TR1=1;while(1)//无限循环等待中断{temp1=(decade&0x0F)4;temp2=unit&0x0F;time=temp2|temp1;seg_data=time;temp3=avs&0x0F;time1=temp3;seg_data2=time1;}}{D1=~D1;//按位取反操作,将P2.0引脚输出电平取反TH0=0xFF;//定时器T0的高8位赋初值1000-500TL0=0x06;//定时器T0的低8位赋初值}voidTime1(void)interrupt3{counter++;if(counter19){unit++;counter=0;}if(unit9){decade++;unit=0;}if(decade5){avs++;decade=0;}if(avs9){avs=0;}TH1=(65536-50000)/256;//定时器T1的高8位赋初值TL1=(65536-50000)%256;//定时器T1的低8位赋初值TF1=0;}七、实验心得通过本次课程设计使我感受到它是一门综合性、实践性较强的课程,使我体会到要想综合运用所学的理论知识,提高我的设计能力,必须增加实际操作的环节。这次课程设计不仅培养了我们的实际动手能力,更检验了我们对本门课学习的情况,培养我们严肃认真的学习态度。真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,并能用设计报告表达设计思想和结果的能力正是我这次课程的目的。
本文标题:单片机中断实验报告
链接地址:https://www.777doc.com/doc-5174004 .html