单片机实验三-定时计数器实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南昌大学实验报告

学生姓名:学号:专业班级:

实验类型:□验证□综合■设计□创新实验日期:实验成绩:

实验三定时计数器实验

(一)实验目的

1. 熟练掌握STC型开发板的使用方法和注意事项;

2. 掌握应用USB_ISP烧录过程;

3. 掌握单片机中断原理;

4. 掌握定时器的初始化和定时模式编程。

(二)设计要求

采用定时器0/1做16位自动重装(方式0), 中断频率为1000HZ,中断函数从P1.7/ P1.6/ P4.7取反输出500HZ方波信号。如果由于频率问题实验现象无法观察,请在中断程序中想办法实现。(三)实验原理

1. 开发板部分电路示意图

2. 定时器的使用

在应用定时/计数器资源时,按照以下几个步骤进行:

(1)确定工作方式,对方式控制寄存器TMOD赋值

(2)根据要求计算初值并装入寄存器THx、TLx,实际定时时间Tc=(M-X)×Tp

(3)根据需要开放定时/计数器中断,即EA、ETx置1

(4)启动定时/计数器开始工作,即TRx位置1

(5)编写中断服务程序或查询处理方式程序

定时器/计数器T0的工作方式0:当M1,M0为00时,定时器/计数器被设置为工作方式0,此时为13位计数器,由TLx(x=0,1)的低5位和THx的高8位构成。TLx低5位溢出则向THx进位,THx计数溢出则把TCON中溢出标志位TFx置1。

3. 单片机中断系统

当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。中断服务请求处理完后,再回到原来被中止的程序之处(断点),继续执行被中断的主程序。

定时器/计数器T0计数溢出发出的中断请求,中断请求标志为TF0。

(四)实验设备

装有Keil4和STC-ISP的电脑、STC实验箱及连接线。

(五)实验结果

实验结果与预期一致,因为输出频率太高,肉眼无法分辨,LED一直保持常量状态,所以设定了中断100次,输出一个方波信号,这样P1.7引脚对应的LED灯闪烁,频率为5Hz,肉眼可见。(六)结果讨论与心得体会

实验结果与预期一致。中断是单片机系统里最重要的组成部分之一,在很多时候都有应用。定时器初始化操作需要熟练掌握,中断总使能不要忘了开启。实验现象不太明显时,可以略作改变。(七)附录:实验源代码

P1M1 DATA 0x92 ;设置地址

P1M0 DATA 0x91 ;

ORG 0000H ;重置程序入口

RESET: AJMP MAIN ;跳转到主程序

ORG 00BH ;T0中断入口

AJMP TIMER0 ;跳转到计数器子程序

ORG 0100H ;主程序入口

MAIN: MOV SP , #60H ;设置堆栈指针

MOV TMOD, #01H ;设置T0中断为方式1定时

CLR A ;累加器清零

MOV P1M1, A ;将P1M1设置为准双向口

MOV P1M0, A ;将P1M0设置为准双向口

MOV A , #64H ;给累加器赋值100,用于计数100次中断

ACALL PT0M0 ;调用T0中断初始化子程序

HERE: AJMP HERE ;等待中断,模拟主程序

PT0M0: MOV TL0 , #18H ;设置计数器初值低8位,初值为64536

;2^16-X*1*10^-6=1*10^-3,X=64536 MOV TH0 , #0FCH ;设置计数器初值高8位,计数1000次至0

SETB ET0 ;允许T0产生中断

SETB EA ;总中断允许

SETB TR0 ;启动T0,开始计数

RET ;退出子程序,回到HERE

TIMER0:MOV TL0 , #18H ;重新设置计数器初值低8位,初值为64536 MOV TH0 , #0FCH ;重新设置计数器初值高8位

DEC A ;累加器减1

JZ START ;累加器为0时,经历了100次中断,跳转到START RETI ;退出中断

START: MOV A, #64H ;重新给累加器赋值100

CPL P1.7 ;LED引脚电平取反

RETI ;退出中断

END ;结束

相关文档
最新文档