文档详情

定时器中断实验.doc

发布:2017-03-28约1.24千字共3页下载文档
文本预览下载声明
实验五 定时器中断实验 1.实验目的: 学习8031内部计数器的使用和编程方法。进一步掌握中断处理程序的编程方法。 2.实验要求: 用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转. 3.实验说明: (1)关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。 (2)定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。 (3)内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是6MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100us中断一次, 所以定时常数的设置可按以下方法计算: 机器周期=12÷6MHZ=2uS (256-定时常数)×2uS=100us 定时常数=206. 然后对100us中断次数计数10000次,就是1秒钟. (4)在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。 4.实验器材: (1)G2100 实验平台 1 台 (2)LabMON51 仿真器 1 台 (3)计算机 1 台 (4)实验连线 若 干 5.实验电路: 6.程序框图: 7.实验步骤: (1)连接相关连线。 连线 连接孔1 连接孔2 1 P1.0 L0 (2)编写程序并调试。 代码如下: org 0000h ljmp main org 000bh ljmp inter org 0100h main: mov tmod,#02h mov th1,#0ceh mov tl1,#0ceh setb ea setb et0 setb tr0 sjmp $ inter: djnz r6,next djnz r7,next mov r6,#10h mov r7,#10h cpl p1.0 next: reti end 结果: 开始 置T0中断工作方式 设置定时常数 设置初始状态位 设置秒计数值 定时中断入口 遇 保护现场 秒计数值减1 重新设置秒计数值 状态位取反 恢复现场 中断返回 是否到1秒 是 中断允许 输出状态位 等待中断
显示全部
相似文档