1、百度文库-让每个人平等地提升自我3实验五 定时器中断实验1 .实验目的:学习8031内部计数器的使用和编程方法。进一步掌握中断处理程序的编程方法。2 .实验要求:用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转.3 .实验说明:(1)关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数 器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。(2)定时器有关的寄存器有工作方式寄存器TM0D和控制寄存器TCON。TM0D用于设置定 时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TC0N主要功能是为 定时器在溢出时设定标志位,并控制定时器的运
2、行或停止等。(3)内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡 器周期,因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式 定时器,定时器100us中断一次,所以定时常数的设置可按以下方法计算:机器周期= 12+6MHZ=2uS(256-定时常数)X 2uS=100us定时常数二206.然后对lOOus中断次数计数10000次,就是1秒钟.(4)在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作 用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。4 .实验器材:(1) G2100实验平台1台(2) LabM0N51
3、仿真器1台(3)计算机1台(4)实验连线若干5 .实验电路:6.程序框图:总线anP1.07.实验步骤:(1)连接相关连线.连线连接孔1连接孔21P1.0LO(2)编写程序并调试. 代码如下: org OOOOh1jmp main org OOObh 1jmp inter org OlOOh main: mov tmod, #02hmov thl,#0cehmov til,#0ceh setb easetb etO setb trO sjmp $ inter:djnz r6, next djnz r7, next mov r6,#10h mov r7,#10hcpl pl. 0 next: retiend