- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
10定时接口模块
定时器模块 实现计数与定时的基本方法 (1)完全硬件方式 使用数字逻辑电路实现,若要改变计数/定时的要求,必须改变电路参数,通用性、灵活性差,已较少使用。 GP32定时器模块功能框图 GP32有两个图示定时/计数器,分别称为定时器1和2。 GP32定时器模块定时相关的寄存器 计数寄存器(Tx Counter Register,TxCNTH、TxCNTL) :16位,不停加1 。计数频率由外部晶振时钟或内部总线时钟经预分频后再分频得到。 控制和状态寄存器(Timer x Status and Control Register,TxSC) :8位,确定分频因子、复位定时器、启动或停止计数等。 预置寄存器(Tx Counter Modulo Register, TxMODH、TxMODL) :16位,当计数器的值等于预置寄存器的值时,称为计数器溢出,此时计数器被清0,同时置计数器溢出标志等。 注意:上述寄存器名中的x表示定时器编号,如T1SC表示定时器1控制和状态寄存器。 T1的状态和控制寄存器T1SC 地址为$0020 D7 — TOF:溢出标志 。当计数器值达到设定值时置TOF为1并清计数器为0。 D6 — TOIE:溢出中断允许。=1允许中断,=0禁止中断。 D5 — TSTOP:计数停止。写入1停止计数(保持当前的值) D4 — TRST:定时器复位。写入1将清除计数器和分频因子 D3 — 未定义 D2~D0 — PS2~PS0:分频因子选择p,定义如下: PS2~0=000 001 010 011 100 101 110 111 p = 1 2 4 8 16 32 64 未定义 设fBUS为总线频率,则计数频率为fBUS /p。 T1的计数寄存器和预置寄存器 计数寄存器T1CNT 16位,地址依次为$0021(T1CNTH)、$0022(T1CNTL)。 当允许计数时(T1SC的TSTOP位为0),每过一计数周期,其值自动加1,当达到设定值(预置寄存器)时,TOF=1,同时计数寄存器自动清0。 预置寄存器T1MOD 16位,地址依次为$0023(T1MODH)、$0024(T1MODL)。 设定计数溢出值。复位时值为$FFFF。 定时编程--查询法 定时编程--查询法 2. 查询定时器状态 char sec=0; main { DisableMCUInt(); //禁止总中断 MCUInit(); //芯片初始化 Timer1Init(); while(1) { if (T1SC0x80) { sec++; T1SC=~(10x80); } …… } } 定时器溢出中断编程 2. 定时器溢出中断处理子程序 定时中断应用:在数码管上实时显示秒数 思考题 利用定时器的溢出中断,实现一时钟,在数码管上显示时钟值,小时、分钟各2位,中间小数点闪烁表示走秒。 提示1:修改时分秒 提示2:数码管显示 定时器模块的输入捕捉和输出比较 输入捕捉 当指定的输入引脚上发生沿跳变时(上升沿或下降沿,可设定),定时器把当前计数器的值锁存到相应通道寄存器中。用于监测外部输入信号。 输出比较 在规定时刻(通道寄存器给出)输出所需电平,实现对外部电路的控制。 与输入捕捉和输出比较功能相关的引脚 PTD4/T1CH0、PTD5/T1CH1----定时器1的两个通道 PTD6/T2CH0、PTD7/T2CH1----定时器2的两个通道 T1通道0状态和控制寄存器T1SC0 D7 :通道标志,=1表示发生了输入捕捉 D6 :通道输入捕捉中断允许,=1允许中断 D5~D4(MS0B:MS0A):模式选择位。见下页表 D3~D2(ELS0B:ELS0B) :跳变沿/输出电平选择 D1 :溢出翻转控制标志位,输入捕捉此位无用 输出比较时,当D1=1,定时器溢出时输出电平翻转 D0 :通道最大占空比设置位,输入捕捉此位无用 通道控制寄存器控制位 T1通道0寄存器T1CH0 输入捕捉时,当定时器捕捉到沿跳变时,T1CH0存放计数器当前值。 输出比较时,当计数器值与T1CH0值相等时,输出规定电平。 T1CH0为16位,两个寄存器地址依次为$0026(T1CH0H)、$0027(T1CH0L); 读写T1CH0时 ,均是先高字节,再低字节。 PWM信号 一个在高、低电平之间重复交替的输出信号,称为PWM信号,也叫脉宽调制波。
文档评论(0)