【vb精品源码栏目提醒】:以下是网学会员为您推荐的vb精品源码-飞思卡尔8位单片机MC9S08 10 程序 定时溢出中断 - 其它资料,希望本篇文章对您学习有所帮助。
10.2.2 定时溢出中断编程汇编程序例 为了理解定时器的基本功能, 并把 这里给出利用定时器溢出编写定时的例子, “时分秒”发送到 PC 机,以便比较。
同时,在 PC 机方,用一个十分简明的程序,接收 MCU 发送来“时分秒”并显示,同时还可以将 PC 机的当前时间发送到 MCU,作为时间基准值。
通过这个例子,理解定时器溢出中断的编程方法和系统时间的产生方法。
(1)MCU 方程序 实例编号:A05_1 路径:ASMA05_1 定时器溢出中断 T1main.asm ------------------------------------------------------ 文 件 名 :T1 m a in .asm 硬 件 连接 :无 程 序 描 述 :1 . 从 串 口 接 收 表 示 时 间 的 3 字 节 数 据 2.利用定时器溢出中断修改时间并发送新时间 目 的 :学 习 定 时 器 基 本 功 能 ---------《嵌入式应用技术基础教程》教学实例----------- 头文件 include GP32ASM.H 包含 GP32 的头文件 两个起始地址名 RAMstartAddr equ 0040 RAM 的起始地址 FlashStartAddr equ 8000 程序开始地址 相应标志位定义 TSTOPBit equ 5 定时器计数停止位 TOFBit equ 7 定时器溢出标志位 ORG RAMstartAddr RAM 的起始地址 Time rmb 3 存放时分秒 主程序 ORG FlashStartAddr 程序起始地址 MainInit: SEI 关总中断 LDHX 023F 堆栈初始化为 RAM 最高端 TXS JSR GP32Init 调系统初始化子程序 GP32Init JSR SCIInit 调串口初始化子程序 JSR Timer1init 调定时器 1 初始化子程序 BSET 5SCC2 设置接收中断允许 CLI 开总中断 给 Time0-2时分秒赋初值 0、0、0 LDA 0 STA Time STA Time1 STA Time2 程序总循环入口 主程序功能:每秒发送一次时间单元 MainLoop: CMP Time2 与秒单元比较 BEQ Main1 秒没有更新,转 数据已经更新,发送时分秒 LDA 3 LDHX Time JSR SCISendN LDA Time2 A 中值更新 Main1: JMP MainLoop内部直接调用子程序存放处 Ti m e r 1 i n i t : 定 时 器 1 初 始 化 子 程 序 - - - - - - - - - - - - - - - - - - - - - - - - 功能 :对 定时器 1 初始化 入 口 :无 出 口 :无 ------------------------------------------------------Timer1init: PSHH 保护 HX、A PSHX PSHA 允许溢出中断、不启动计数、分频因子64 LDA 01100110 STA T1SC 计数寄存器初值0000 LDHX 0000 STHX T1CNTH 1 产生 1 次溢出中断预置寄存器设定值9600 LDHX 9600 STHX T1MODH 允许定时器 1 计数寄存器计数 BCLR TSTOPBitT1SC PULA 恢复 HX、A PULX PULH RTS Ti m e r 1 I n t : 定 时 器 1 溢 出 中 断 子 程 序 - - - - - - - - - - - - - - - - - - - - - - - 功 能 :给 内 存 单 元 Tim e 0 - 2 时 分 秒 赋 值 ------------------------------------------------------Timer1Int: SEI 关总中断 PSHH 保护 H INC Time2 秒数加 1 LDA Time2 CMP 60 BNE Timer1Int_1 秒数未增加到 60转 LDA 0 秒数增加到 60清 0 STA Time2 INC Time1 分钟数加 1 LDA Time1 CMP 60 BNE Timer1Int_1 分钟数未增加到 60转 LDA 0 分钟数增加到 60清 0 STA Time1 INC Time 小时数加 1 LDA Time CMP 24 BNE Timer1Int_1 小时数未增加到 24转 LDA 0 小时数增加到 24清 0 STA TimeTimer1Int_1: LDA T1SC BCLR TOFBitT1SC 清除定时器溢出标志位 PULH 恢复 H CLI 开总中断 RTI S C I R e c I N T: S C I 接 收 中 断 子 程 序 - - - - - - - - - - - - - - - - - - - - - - - - - - - 功 能 :接 收 3 字 节 基 准时 分 秒 放入 内 存单 元 Tim e 0 - 2 ------------------------------------------------------ SCIRecINT: SEI 关总中断 PSHH 保护 H LDA 3 LDHX Time JSR SCIReN 接收 3 字节数据 PULH 恢复 H CLI 开总中断 RTI 中断返回 外部子程序存放处 include GP32Init.ASM include H08SCI.ASM include SCIInit.ASM 中断向量 ORG FFF2 定时器 1 溢出中断向量 DW Timer1Int ORG FFE4 SCI 接收中断向量 DW SCIRe