收藏 分销(赏)

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

上传人:xrp****65 文档编号:7725052 上传时间:2025-01-14 格式:DOC 页数:4 大小:1.16MB
下载 相关 举报
飞思卡尔8位单片机MC9S0810程序定时溢出中断编程汇编程序例.doc_第1页
第1页 / 共4页
飞思卡尔8位单片机MC9S0810程序定时溢出中断编程汇编程序例.doc_第2页
第2页 / 共4页
飞思卡尔8位单片机MC9S0810程序定时溢出中断编程汇编程序例.doc_第3页
第3页 / 共4页
飞思卡尔8位单片机MC9S0810程序定时溢出中断编程汇编程序例.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、10.2.2 定时溢出中断编程汇编程序例为了理解定时器的基本功能,这里给出利用定时器溢出编写定时的例子,并把“时分秒”发送到PC机,以便比较。同时,在PC机方,用一个十分简明的程序,接收MCU发送来“时分秒”并显示,同时还可以将PC机的当前时间发送到MCU,作为时间基准值。通过这个例子,理解定时器溢出中断的编程方法和系统时间的产生方法。(1)MCU方程序实例编号:A05_1 路径:ASMA05_1定时器溢出中断 (T1main.asm) *-*文 件 名:T1main.asm *硬件连接:无 *程序描述:1.从串口接收表示时间的3字节数据 * 2.利用定时器溢出中断修改时间,并发送新时间 *目

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

3、;堆栈初始化为RAM最高端 TXS JSR GP32Init ;调系统初始化子程序GP32Init JSR SCIInit ;调串口初始化子程序 JSR Timer1init ;调定时器1初始化子程序 BSET 5,SCC2 ;设置接收中断允许 CLI ;开总中断 ;给Time0-2时分秒赋初值0、0、0 LDA #$0 STA Time STA Time+1 STA Time+2 ;程序总循环入口 ;主程序功能:每秒发送一次时间单元MainLoop: CMP Time+2 ;与秒单元比较 BEQ Main1 ;秒没有更新,转 ;数据已经更新,发送时分秒 LDA #$3 LDHX #Time

4、JSR SCISendN LDA Time+2 ;A中值更新Main1: JMP MainLoop *内部直接调用子程序存放处*Timer1init:定时器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计数寄存器计数 BC

5、LR TSTOPBit,T1SC PULA ;恢复HX、A PULX PULH RTS *Timer1Int:定时器1溢出中断子程序-*功能:给内存单元Time0-2(时分秒)赋值 *-*Timer1Int: SEI ;关总中断 PSHH ;保护H INC Time+2 ;秒数加1 LDA Time+2 CMP #!60 BNE Timer1Int_1 ;秒数未增加到60,转 LDA #!0 ;秒数增加到60,清0 STA Time+2 INC Time+1 ;分钟数加1 LDA Time+1 CMP #!60 BNE Timer1Int_1 ;分钟数未增加到60,转 LDA #!0 ;分钟数

6、增加到60,清0 STA Time+1 INC Time ;小时数加1 LDA Time CMP #!24 BNE Timer1Int_1 ;小时数未增加到24,转 LDA #!0 ;小时数增加到24,清0 STA TimeTimer1Int_1: LDA T1SC BCLR TOFBit,T1SC ;清除定时器溢出标志位 PULH ;恢复H CLI ;开总中断 RTI*SCIRecINT:SCI接收中断子程序-*功能:接收3字节基准时分秒放入内存单元Time0-2 *-*SCIRecINT: SEI ;关总中断 PSHH ;保护H LDA #$3 LDHX #Time JSR SCIReN

7、;接收3字节数据 PULH ;恢复H CLI ;开总中断 RTI ;中断返回*外部子程序存放处$include GP32Init.ASM$include H08SCI.ASM$include SCIInit.ASM*中断向量 ORG $FFF2 ;定时器1溢出中断向量 DW Timer1Int ORG $FFE4 ;SCI接收中断向量 DW SCIRecINT ORG $FFFE ;复位向量 DW MainInit(2)PC方VB程序PC机方的界面见图10-2。程序主要功能是:接收MCU发送来“时分秒”并显示,也可以单击“发送”按钮,发送PC机的当前时间。图10-2 定时器溢出中断实验PC机方

8、VB程序实例编号:A05_1 路径:ASMA05_1定时器溢出中断 VB_Timer1 程序描述: (1)把当前系统时间从COM1发送出去 (2)把接收到的数据显示在接收窗口中-Option Explicit 检查未经声明的变量Dim TimData() As Byte 原始时间数组Dim SendData(2) As Byte 发送数据数组Dim RecvData() As Byte 接收数据数组Private Sub Form_Load() 串行口初始化 Call SCIinit(MSComm1, 1, 9600,N,8,1) 清空有关文本框 TxtSEND.Text = TxtRECV.

9、Text = 开放串行中断 MSComm1.RThreshold = 1 计时器开始计时 Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() TxtSEND.Text = Format$(Time(), HH:MM:SS)End SubPrivate Sub CmdSEND_Click() 单击发送按钮 SendData(0) = Val(Mid$(TxtSEND.Text, 1, 2) SendData(1) = Val(Mid$(TxtSEND.Text, 4, 2) SendData(2) = Val(Mid$(TxtSEND.T

10、ext, 7, 2) MSComm1.Output = SendDataEnd SubPrivate Sub ComStop_Click() 单击暂停/继续按钮 If ComStop.Caption = 暂停 Then ComStop.Caption = 继续 Timer1.Enabled = False Else ComStop.Caption = 暂停 Timer1.Enabled = True End IfEnd SubPublic Sub MSComm1_OnComm() 串行接收中断 Dim i As Integer Dim S1 As String MSComm1.RThresho

11、ld = 0 关闭串行中断Do DoEvents Loop Until MSComm1.InBufferCount = 3 RecvData = MSComm1.Input For i = LBound(RecvData) To UBound(RecvData) S1 = S1 & Format$(RecvData(i), 00) & : Next i S1 = Mid$(S1, 1, 8) TxtRECV.Text = S1 MSComm1.RThreshold = 1 开放串行中断End Sub Private Sub CmdEXIT_Click() 单击退出按钮 If MSComm1.PortOpen = True Then MSComm1.PortOpen = False Timer1.Enabled = False EndEnd Sub

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服