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

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

ID:19970297

大小:1.16 MB

页数:4页

时间:2018-10-08

飞思卡尔8位单片机mc9s0810程序定时溢出中断编程汇编程序例_第1页
飞思卡尔8位单片机mc9s0810程序定时溢出中断编程汇编程序例_第2页
飞思卡尔8位单片机mc9s0810程序定时溢出中断编程汇编程序例_第3页
飞思卡尔8位单片机mc9s0810程序定时溢出中断编程汇编程序例_第4页
资源描述:

《飞思卡尔8位单片机mc9s0810程序定时溢出中断编程汇编程序例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

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

2、程序描述:1.从串口接收表示时间的3字节数据**2.利用定时器溢出中断修改时间,并发送新时间**目的:学习定时器基本功能**---------《嵌入式应用技术基础教程》教学实例-----------**[头文件]$include"GP32ASM.H";包含GP32的头文件*[两个起始地址名]RAMstartAddrequ$0040;RAM的起始地址FlashStartAddrequ$8000;程序开始地址*[相应标志位定义]TSTOPBitequ5;定时器计数停止位TOFBitequ7;定时器溢出标志位ORGRAMstartAddr;RAM的起始地址Timermb3;存放"时分秒"*=====

3、=================================================**[主程序]ORGFlashStartAddr;程序起始地址MainInit:SEI;关总中断LDHX#$023F;堆栈初始化为RAM最高端TXSJSRGP32Init;调系统初始化子程序GP32InitJSRSCIInit;调串口初始化子程序JSRTimer1init;调定时器1初始化子程序BSET5,SCC2;设置接收中断允许CLI;开总中断;给Time[0-2]"时分秒"赋初值0、0、0LDA#$0STATimeSTA{Time+1}STA{Time+2};[程序总循环入口];主程序功能:

4、每秒发送一次时间单元MainLoop:CMP{Time+2};与秒单元比较BEQMain1;"秒"没有更新,转;数据已经更新,发送"时分秒"LDA#$3LDHX#TimeJSRSCISendNLDA{Time+2};A中值更新Main1:JMPMainLoop*[内部直接调用子程序存放处]*Timer1init:定时器1初始化子程序------------------------**功能:对定时器1初始化**入口:无**出口:无**------------------------------------------------------*Timer1init:PSHH;保护HX、APSHXP

5、SHA;允许溢出中断、不启动计数、分频因子=64LDA#%01100110STAT1SC;计数寄存器初值=$0000LDHX#$0000STHXT1CNTH;1产生1次溢出中断,预置寄存器设定值=$9600LDHX#$9600STHXT1MODH;允许定时器1计数寄存器计数BCLRTSTOPBit,T1SCPULA;恢复HX、APULXPULHRTS*Timer1Int:定时器1溢出中断子程序-----------------------**功能:给内存单元Time[0-2](时分秒)赋值**---------------------------------------------------

6、---*Timer1Int:SEI;关总中断PSHH;保护HINC{Time+2};秒数加1LDA{Time+2}CMP#!60BNETimer1Int_1;秒数未增加到60,转LDA#!0;秒数增加到60,清0STA{Time+2}INC{Time+1};分钟数加1LDA{Time+1}CMP#!60BNETimer1Int_1;分钟数未增加到60,转LDA#!0;分钟数增加到60,清0STA{Time+1}INCTime;小时数加1LDATimeCMP#!24BNETimer1Int_1;小时数未增加到24,转LDA#!0;小时数增加到24,清0STATimeTimer1Int_1:LDA

7、T1SCBCLRTOFBit,T1SC;清除定时器溢出标志位PULH;恢复HCLI;开总中断RTI*SCIRecINT:SCI接收中断子程序---------------------------**功能:接收3字节基准时分秒放入内存单元Time[0-2]**------------------------------------------------------*SCIRecINT:SEI;关总

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。