文档详情

飞思卡尔8位单片机MC9S0810程序定时溢出中断编程汇编程序例.doc

发布:2017-04-17约5.34千字共4页下载文档
文本预览下载声明
10.2.2 定时溢出中断编程汇编程序例 为了理解定时器的基本功能,这里给出利用定时器溢出编写定时的例子,并把“时分秒”发送到PC机,以便比较。同时,在PC机方,用一个十分简明的程序,接收MCU发送来“时分秒”并显示,同时还可以将PC机的当前时间发送到MCU,作为时间基准值。通过这个例子,理解定时器溢出中断的编程方法和系统时间的产生方法。 (1)MCU方程序 实例编号:A05_1 路径:\ASM\A05_1定时器溢出中断 (T1main.asm) *------------------------------------------------------* *文 件 名:T1main.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 5,SCC2 ;设置接收中断允许 CLI ;开总中断 ;给Time[0-2]时分秒赋初值0、0、0 LDA #$0 STA Time STA {Time+1} STA {Time+2} ;[程序总循环入口] ;主程序功能:每秒发送一次时间单元 MainLoop: CMP {Time+2} ;与秒单元比较 BEQ Main1 ;秒没有更新,转 ;数据已经更新,发送时分秒 LDA #$3 LDHX #Time JSR SCISendN LDA {Time+2} ;A中值更新 Main1: JMP MainLoop *[内部直接调用子程序存放处] *Timer1init:定时器1初始化子程序------------------------* *功能:对定时器1初始化 * *入口:无 * *出口:无 * *--------------------------
显示全部
相似文档