- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
苏州大学实验报告-定时器输入捕捉实验
苏州大学实验报告
院、系 年级专业 姓名 学号
课程名称 成绩
指导教师 同组实验者 实验日期
实验名称: 定时器输入捕捉实验
一.实验目的
进一步熟悉MT-IDE嵌入式开发系统环境、C语言、调试方法;复习定时器溢出中断的原理和实现方法;初步了解定时器模块的输入捕捉功能;理解课本中的程序代码;通过自己编写程序熟悉定时器模块输入捕捉功能的一些应用。
二.实验内容
编制一个利用定时器输入捕捉的程序。当T1CH0接到PTC2上时,使用PC机通过SCI串口产生一个跳变沿(脉宽为10ms)的信号;当T1CH0接到一开关上时,通过拨动开关产生跳变沿信号。利用定时器输入捕捉功能对跳变沿进行捕捉,并对每两次跳变沿之间的时间间隔计时,计时精度为1秒。当捕捉第一次跳变沿时,开始计时。当捕捉到第二次跳变沿时,将计算的时间用指示灯显示出来。如此循环往复。时间间隔最长255秒钟(约4分钟)。
三.实验过程
(一)接线图
图1 输入捕捉接线原理图
(二)基本原理
输入捕捉是用来监测外部的事件和输入信号。当外部事件发生或输入信号发生变化时,在指定的引脚上发生一个指定的沿跳变。从而更改相应的标志位。这样就可以在特定事件发生时采取一定的措施。
四.编程
(一)流程图
图2 输入捕捉流程图
(二)所用寄存器名称及其各个位
T1通道0状态和控制寄存器(T1 Channel0 Status and Control Register,T1SC)
数据位 D7 D6 D5 D4 D3 D2 D1 D0 定义 CH0F CH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX 复位 1 1 1 1 1 1 1 1 (三)主要代码段
汇编方式:
定时器输入捕捉主程序 ……
MainInit::
SEI
//1.堆栈初始化为RAM最高端
LDHX #RAMEndAddr
TXS
//系统初始化
JSR MCUInit
//SCI串口初始化
JSR SCIInit
//定时器1通道0输入捕捉初始化
JSR Tm1CH0Init
//定时器1初始化
JSR Tm1Init
//SCI接收中断允许
BSET #ReTestBit,SCC2
//允许定时器1通道0中断
BSET #CH0IE,T1SC0
//允许定时器1溢出中断(放在SCI接收中断程序中)
//BSET #T0IE,T1SC
//允许计数(放在SCI接收中断程序中)
BCLR #TSTOPBit,T1SC
//初始化小灯以及全局变量
BSET #2,DDRC //PTC2接T1CH0通道
BSET #2,PTC
LDA # //小灯初始化
STA Light_D
STA Light_P
CLR count
CLR seconds
CLI
MainLoop:
NOP
NOP
BRA MainLoop
……
定时器输入捕捉中断处理子程序 ……
Tm1CH0Int::
SEI
PSHH
INC count
//不允许通道中断
BCLR #CH0IE,T1SC0
LDA #$37
JSR SCISend1
LDA T1SC0
BCLR #CH0FBit,T1SC0 //清定时器1通道0中断标志
LDA count
CMP #2
BEQ Tm1CH0Int_1
//第一次
BSET #4,T1SC //清除定时器的计数
//允许定时器1溢出中断
BSET #T0IE,T1SC
CLR seconds
BRA Tm1CH0Int_EXT
Tm1CH0In
文档评论(0)