访问手机版页面
你的位置:老古开发网 > STC单片机的串行通讯 > 正文  
STC单片机串口发送数据汇编程序
内容导读:
本段程序是在STC官方程序的基础上精简而成,只保留了串口单向发送,使用串口助手可以接收到数据。本段代代码目的是为了调试的方便,单片机内部一些工作状态和数据可以通过串口发送出来,比如AD采集到的数据等,对调试

本段程序是在STC官方程序的基础上精简而成,只保留了串口单向发送,使用串口助手可以接收到数据。

本段代代码目的是为了调试的方便,单片机内部一些工作状态和数据可以通过串口发送出来,比如AD采集到的数据等,对调试程序会起到事半功倍的效果。以下为asm格式汇编代码:

; --- 使用伟福6000编译,STC15W401AS 实测通过------------

;-----定时器2用作串口1的波特率发生器-------

;在Keil开发环境下请选择Intel的8058芯片型号进行编译

;工作频率为11.0592MHz

;-----------------------------------------

AUXR EQU 08EH ;//辅助寄存器

T2H DATA 0D6H ;//定时器2高8位

T2L DATA 0D7H ;//定时器2低8位

BUSY BIT 20H.0 ;//忙标志位

;-----------------------------------------

ORG 0000H

LJMP MAIN

ORG 0023H

LJMP UART_ISR

;//-----------------------------------------

ORG 0100H

MAIN:

CLR A

CLR BUSY

CLR EA

MOV SP,#3FH

;//-------------------------------

MOV SCON,#50H ;//8位可变波特率,无校验

MOV T2L,#0D0H ;//设置波特率重装值(65536-18432000/4/115200)

MOV T2H,#0FFH ; #FFD0对应波特率57600

MOV AUXR,#14H ;//T2为1T模式, 并启动定时器2

ORL AUXR,#01H ;//选择定时器2为串口1的波特率发生器

SETB ES ;//使能串口中断

SETB EA

;//-------------------------------

;发送串口测试数据,三次

MOV A,#0FH

LCALL SENDDATA

MOV A,#0BH

LCALL SENDDATA

MOV A,#0CH

LCALL SENDDATA

SJMP $

;UART 中断服务程序

;----------------------------*/

UART_ISR:

PUSH ACC

PUSH PSW

JNB TI,ISR_EXIT ;//检测TI位

CLR TI ;//清除TI位

CLR BUSY ;//清忙标志

ISR_EXIT:

POP PSW

POP ACC

RETI

;

SENDDATA:

JB BUSY,$ ;//等待前面的数据发送完成

SETB BUSY

MOV SBUF,A ;//写数据到UART数据寄存器

RET

;//-----------------------------------------

END


标签: stc单片机,汇编程序,串口发送数据,
来源:互联网 作者:karen 时间:2018/11/16 15:20:02
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐