关键词不能为空

当前您在: 主页 > 英语 >

Freescale单片机原理与设计(TPM模块应用编程)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 23:38
tags:

-

2021年2月1日发(作者:alongside)




XX


科技大学




Freescale


单片机原理与设计




实验报告





实验项目








TPM


编程应用




















【实验目的】


1



理解


HCS08


的定时器


/PWM


模块


TP M



Timer/Pulse-Width


Modulator


)模块原理



2


、学会


TPM


模 块设计



3



进一步认识


“对


MCU


外部管脚


/


内部模块的控制正是通过


Regs


的控制来实现”



【实验原理】



MC9S08AW60


系列中的定时器系统包括两个独立的


TPM


一个


6


通道的

< br>TPM1


和一个


2


通道的


TPM2



TPM


模 块管脚和


I/O


管脚复用。定时器系统总共

8


个通道,每一个通道都可作为输入


捕捉、输出比较、或带 缓冲的边缘对齐


PWM


。每一个


TPM


的所


有通道


都可以

配置成


为带缓


冲的中


心对齐


脉宽调制


CPWM



buffered, center-aligned pulse-width modulation




每一个


TPM< /p>



分频器的时钟源都可以独立选择总线时钟、固定系统时钟或外部


管脚对每个


TPM


,每个通道一个中断 ,还有一个计数中止中断。



定时器系统的内部结构为:两个独 立的


TPM


每个


TPM


都由






1



16< /p>


位的计数器与


n(n=6 or 2)


个 输入


/


输出通道组成;


每一个通


道都可作为输入捕捉、输出比较、或带缓冲的边缘对齐


PWM




TPM


模块自由计 数定时核心是一个


16


位的计数器。三种时

钟源之一经过分频之后的脉冲即作为定时器的计数脉冲;每过一


个计数脉冲,


Counter


便自动


+1

< br>,


Counter


加到


FFFF


后翻转到


$$0000



同时置溢出标志位


TOF



1



然后重新开始计数;


溢出时



TOIE



1



还会产生中断请求。


Fbus


和分频比的不同可以产生


不同的溢出时间间隔;但是这种自由计数定时方式定 时有限。只


读的


16



TPM


计数寄存器由两个字节寄存器


TPMxCNTH



TPMxCNTL


构成。

< p>



TPM


< p>








16

< br>位









T PMxMODH:TPMxMODL


写入一个确定的数值,


则计 数器每进行


一次计数都会将计数和模数计数寄存器的值进行比较,如果相同


就产生溢出,同时置溢出标志位


TOF


< p>
1


,然后重新开始计数,


溢出时若


TOIE



1


,还会产生中断 请求。





TPM


每个自由计数器包含三个寄存器:一个


8


位状态控制寄


存器(


TPMxSC


,一个


16


位计数器(


TPMxCNTH:TPMxCNTL







一个< /p>


16


位模数寄存器


TPMxMODH:TPMxMODL




其中,


x=1/2



1


)定时器


x


状态控制寄存器(


TPMxSC


)如下图:




其中,


TOF


为溢出标志位,为


0


则没有达到预置计数寄存器


中的值没有溢出 ,



1


则达到了预置计数寄存器中的值 溢出。


TOIE


为定时溢出中断允许位,可读

< br>/


可写位用来允许定时器的溢出中


断。

< br>TOIE



1



TOF



1


时允许中断,复位 清


TOIE




定时器


x


状态控制寄存器(


TPMx SC



CLKS[B:A]



PS[2:0]


功能如下图:





2


)定时 器


x


计数寄存器(


TPMxCNTH: TPMxCNTL


)只读的


16



TPM


计数寄存器由两个字节寄存器


TPM xCNTH



TPMxCNTL






构成。 读两个字节中的任何一个字节都会把两个字节内容锁存进


内部缓冲器,直到另外一个字节 也被读取为止。这允许以任何顺


序读取连贯的


16


位寄存器。如下图:





3


)定时器


x


模数寄存器(


TPMxMODH:TPMxMODL



。可读


/


写的


TPM< /p>


模数寄存器中包含


TPM


计数器的模数值 。



TPM


计数


器到达这个模数值后,


TPM


计数器在下一个时钟要么重新从


0x0000


开始计数(


CPWMS= 0



,要么从这个模数值往下减


1


计数



CPWMS=1



同时溢出标志


TOF



Timer Overflow Flag



变为


1



只写


TPMxMODH


或者


TPMxMOD L


其中的一个会抑制住


TOF



溢出中断直到些另外一个字节也被写为止,因此两个寄存器一定


都要写 ,


不能只写一个而不管另一个。


复位会使


TPM


模数寄存器



0x0000< /p>


,相当处于自由运行定时器计数模式(模数禁止)


。如

< p>
下图:








【实验装置】



Freescale HC08


单片机,


CodeWarrior

开发环境



【实验内容】



⑴利用


TPM


,编程实现下列功能:利用两个 七段数码管,实现


00-59


秒显示:自动从

< br>00


开始,每一秒钟,数字加


1


;加到


59



后,自动回到

< p>
00


,重复开始;



⑵外 接


IRQ


按键,平时


00-59


自动加数显示,按


IRQ


按键一次

< p>
后,加数显示停止,再按一次


IRQ


按键,继续加 数显示。



【结果分析】


< p>
实验(


1


)最终实现了用


TPM2


模块精确定时半秒,再利用半


秒产生秒的各位和十位, 并把秒的各位和十位送到两位数码管上


显示。数码管采用动态扫描的方式显示。


TPM2_ISR


每隔


500ms


清零一次,对秒钟的高地位进行加处理。对


TPM2


溢出标志清零


首先读标志位,然后写


0


到标志位。实验结果显示正确。







实验(


2


)在(


1


)的基础上,增加了


IRQ


中断模块。每按一


IRQ


按键


FLAG


计数加


1


,然后取


FLAG


的最低位。若最低位







0


,则停 止秒计时,数码管显示时间保持不变;若最低位为


1



则正常计时、显示。这样就实现了按


IRQ


按键 一次后,加数显示


停止,再按一次


IRQ


按键,继续加数显示。



【实验代码】





1




INCLUDE


包含头文件




ORG $$0070


Half_Sec DS 1;


半秒时间变量



SEG_Select DS 1;


数码管位选变量



Second_L DS 1;


秒钟低位



Second_H DS 1;


秒钟高位



NUM DS 1


COUNT DS 1



ORG $$1860


LED_Table: DC.B


$$c0,$$f9,$$a4,$$b0,$$99,$$92,$$82,$$f8


字形码表













DC.B


$$80,$$90


recycle: MOV



#70t,NUM




;


软件延时


5ms











DBNZ



NUM,*











RTS












Delay_5ms:











MOV



#38t,COUNT








;LED




recall:











BSR



recycle











DBNZ



COUNT,recall











MOV



#07t,COUNT











DBNZ



COUNT,*











RTS












IO_Init:























MOV


#$$FF, PTGD






据寄存器







MOV


#$$FF,


PTDD





数据寄存器





MOV #$$FF, PTAD



存器





LDA


#%11111111









STA



PTADD




脚作为输出





STA


PTDDD







为输出





STA


PTGDD







为输出





RTS





















;IO


初始化模块











;


初始化输出端口的数














;


初始化输出端口的







;


初始化输出端口的数据寄





;


初始化


PTA


口的八个管



;


初始化


PTD


口的八个管脚作



;


初始化


PTG


口的八个管脚作


;


子程序返回














TPM2_Init:




























;TPM2


模块中断方式初


始化子程序





MOV


#$$4E,TPM2SC


















;BUSCLK

< br>为


TPM2



钟源,

< p>
64


分频,允许


TPM2


中断





MOV #$$7A,TPM2MODH




MOV #$$12,TPM2MODL

















CLI


































RTS


TPM2_ISR:




























子程序





LDA TPM2SC

























BCLR


7,TPM2SC




















标志位





INC Half_Sec




LDA Half_Sec




CMP #2T






























BNE TPM2_END




MOV


#$$00,Half_Sec


















半秒清零





INC Second_L




LDA Second_L




CMP #10T




























;500ms


对应模数值



开总中断



;TPM2


溢出中断服务


;


先读标志位


T EF


;



0



TEF



TEF



;


是否到了


1S






;


到则秒钟加一,





;


秒钟是否加到


10




;















BNE TPM2_END




MOV #$$00,Second_L























:


到则秒钟各位清


零,十位加


1




INC Second_H




LDA Second_H




CMP #6T


























BNE TPM2_END




MOV #$$00,Second_H














TPM2_END:




RTI


Main:




CLRX










CLRA











CLRH














STA


$$1802
























MOV #$$00,Half_Sec










MOV #$$00,Second_H
















MOV #$$00,Second_L
















JSR


IO_Init















端口初始化











JSR


TPM2_Init












AGAIN:








;


秒钟十位是否到


6






;


到则秒钟


10


位 清零



;


禁止


COP






;


秒高位初始化






;


秒低位初始化








;



PTD



PTG



P TA







;TPM2


初始化










-


-


-


-


-


-


-


-



本文更新与2021-02-01 23:38,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595851.html

Freescale单片机原理与设计(TPM模块应用编程)的相关文章

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文