串行通讯接口程序

上传人:子 文档编号:43587845 上传时间:2018-06-07 格式:DOC 页数:4 大小:44KB
返回 下载 相关 举报
串行通讯接口程序_第1页
第1页 / 共4页
串行通讯接口程序_第2页
第2页 / 共4页
串行通讯接口程序_第3页
第3页 / 共4页
串行通讯接口程序_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《串行通讯接口程序》由会员分享,可在线阅读,更多相关《串行通讯接口程序(4页珍藏版)》请在金锄头文库上搜索。

1、214第 10 章 串行通信接口模块(SCI)10.4 串行通信接口典型应用举例SCI_FLAG .usect“.data0“,1;SCI 标志寄存器TXD_PTR .usect“.data0“,8;发送的数据存放区RXD_PTR .usect“.data0“,8;接收到的数据存放区.include “F2407REGS.H“ ;引用头部文件.def _c_int0;(1)建立中断向量表.sect “.vectors“;定义主向量段RSVECTB _c_int0;PM 0复位向量1INT1 B GISR1;PM 2中断优先级 14INT2 B PHANTOM;PM 4中断优先级 25INT3

2、B PHANTOM;PM 6中断优先级 36INT4 B PHANTOM;PM 8中断优先级 47INT5 B PHANTOM;PM A中断优先级 58INT6 B PHANTOM;PM C中断优先级 69RESERVED B PHANTOM;PM E (保留位)10SW_INT8 B PHANTOM;PM 10 用户定义软件中断 SW_INT31 B PHANTOM;PM 3E 用户定义软件中断;中断子向量入口定义 pvecs.sect “.pvecs“;定义子向量段PVECTORSBPHANTOM;保留向量地址偏移量 0000h BPHANTOM;保留向量地址偏移量 0001hBPHANT

3、OM;保留向量地址偏移量 0005hBSCI_RX_ISR;保留向量地址偏移量 0006h SCI 接收中断BPHANTOM;保留向量地址偏移量 0007hBPHANTOM;保留向量地址偏移量 0041h;(2)主程序:.text_c_int0 SETC INTM215CLRC SXMCLRC OVMCLRC CNFLDP #0E0HSPLK#81FEH,SCSR1;CLKIN=6 M,CLKOUT=24 M SPLK#0E8h,WDCR;关看门狗CALLSCI_INIT;调串口初始化程序LDP#5HSPLK#00H,SCI_FLAG;清发送软件标志位TXD_LOOP:LDP#5HBITSCI

4、_FLAG,BIT0BCND TXD_DATA,TC;SCI_FLAG.0=1 则发送数据BWAITTXD_DATA:;发送 N 个数据程序MAR*,AR0LARAR0,#TXD_PTRADRK#N+1;发送 N 个数据MAR*,AR4LACC*+;读数据CMPR00BCNDTXD_DATA_END,TC;判数据发送完?MAR*,AR2SACL*,AR4;数据送 SCITXBUF 寄存器XMIT_RDY:LDP#DP_PF1BITSCICTL2,BIT7BCNDXMIT_RDY,NTC;判发送器是否空?BTXD_DATATXD_DATA_END:MAR*, AR4LARAR4,#TXD_PTR

5、;恢复发送的数据指针LDP #5HSPLK#00H,SCI_FLAG;清发送软件标志位WAIT:NOPBTXD_LOOP;(3)串行通信初始化程序:SCI_INIT:216LDP #0E1HLACLMCRAOR#03HSACLMCRA;配置串行口引脚为特殊功能:TXD、RXDLDP #DP_PF1SPLK #000FH,SCICCR ;地址位唤醒模式,8 位数据,;1 位停止位,无奇偶校验SPLK #0007H,SCICTL1 ;接收、发送、内部时钟使能 ,SLEEP=1SPLK #0002H,SCICTL2 ;接收中断使能SPLK #0001H,SCIHBAUDSPLK #0038H,SCI

6、LBAUD ;波特率为 9600SPLK #0027H,SCICTL1 ;串口初始化完成LARAR1,#SCIRXBUF;接收缓冲寄存器地址LARAR2,#SCITXBUF;发送缓冲寄存器地址LARAR3,#RXD_PTR;接收的数据指针LARAR4,#TXD_PTR;发送的数据指针LDP#0SPLK#0001h,IMR;允许 INT1 中断SPLK#0FFFFh,IFR;清所有中断标志CLRCINTM;开总中断RET;(4)中断程序GISR1:;优先级 INT1 中断人口;保护现场LDP#0E0HLACCPIVR,1;读取外设中断向量寄存器(PIVR) ,并左移一位ADD#PVECTORS;

7、加上外设中断人口地址BACC;跳到相应的中断服务子程序SCI_RX_ISR:;接收中断服务程序LDP#DP_PF1MAR*,AR1BITSCICTL1,BIT2BCNDRXD_DATA,NTC;SLEEP=0,接收数据LACC*;读入地址SUB#0AAHBCNDTXD_FLAG,EQ;接收到的地址为 AAH,则发送数据217SUB#0001HBCNDSCI_RX_END,NEQ;地址错误,退出中断SPLK#0033H,SCICTL1;地址为 ABH,则清 SLEEP=0;表示准备接收数据BSCI_RX_ENDTXD_FLAG:;置发送标志LDP#5HSPLK#01H,SCI_FLAGBSCI_RX_ENDRXD_DATA:;接收 N 个数据LACC*,AR3;读入数据SACL*+,AR0;保存数据LARAR0,#RXD_PTRADRK#NMAR*,AR3CMPR00BCNDSCI_RX_END,NTC;判是否接收完LARAR3,#RX_PTR;恢复接收的数据指针SPLK#0037H,SCICTL1;置 SLEEP=1 表示准备接收地址SCI_RX_END:;中断返回;恢复现场CLRCINTM;开总中断,因为一进中断就;自动关闭总中断RET;(5)假中断程序PHANTOM KICK_DOG;复位看门狗RETEND

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号