STC单片机串口发送数据汇编程序

发布者:心愿实现最新更新时间:2017-11-17 来源: eefocus关键字:STC单片机  串口发送数据  汇编程序 手机看文章 扫描二维码
随时随地手机看文章

本段程序是在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单片机  串口发送数据  汇编程序 引用地址:STC单片机串口发送数据汇编程序

上一篇:MSP430单片机的AD转换
下一篇:单片机看门狗的作用

推荐阅读最新更新时间:2024-03-16 15:45

STC单片机EEPROM功能模块
// STC单片机EEPROM功能模块 #include STCSTC12C2052AD.h #include intrins.h // 声明与IAP相关的SFR sfr IAP_DATA = 0xE2; sfr IAP_ADDRH = 0xE3; sfr IAP_ADDRL = 0xE4; sfr IAP_CMD = 0xE5; sfr IAP_TRIG = 0xE6; sfr IAP_CONTR = 0xE7; // 定义ISP/IAP/EEPROM命令 #define CMD_IDLE 0 #define CMD_READ 1 #define CMD_PROGRAM 2 #define CMD_ERASE 3 //
[单片机]
基于STC单片机的智能LED路灯控制器设计
  当前巨量的能源消耗和由此引起的能源短缺、价格上涨等已使得节约能源成为一项十分迫切的任务。各国消耗的能源中很大一部分用于照明,其中城市公共照明(主要是道路照明和景观照明)在我国照明耗电中占30%.有资料显示,每年用于照明的电力在3 000 亿度以上,若采用LED 照明,每年就可以节约1/3 的照明用电,基本上相当于总投资规模超过2 000 亿元的三峡工程的全年发电量。综合以上优点,LED光源自然成为城市公共照明的首选,同时目前国内大部分城市的道路照明管理系统直至现在仍在沿用简单的光控、钟控等传统控制方式。这些系统普遍存在着难以反馈路灯运行状态信息、难以进行远程控制等局限,基本没有节电效果,并且采用传统的人工巡检,不仅使路灯管理部
[电源管理]
数码管显示的电子时钟汇编程序
;************************************************************* ;功能: ;实现电子时钟显示(汇编) ;定义: ;    P3口位选,P1口段选,P0.0,P0.1,P0.2为调时口 ;时间: ;    2010 11 26 ;************************************************************* SECOND EQU 30H MINITE EQU 31H HOUR EQU 32H HOURK BIT P0.0 MINITEK BIT P0.1 SECONDK BIT P0.2 DISPBUF EQU 40H DIS
[单片机]
STC单片机知识点
1.单片机内部三大资源:FLASH(程序存储空间也叫ROM),RAM(内存),SFR(特殊功能寄存器)。我们对单片机的操作基本都是对SFR的操作。 2.stc89c52 特点:8K FLASH,512B RAM,1个UART,2个定时器,8个中断源,P0口无上拉功能。 3.对FLASH的写操作,一般都是按页擦除,只有先把一页数据擦除后 才能写入,相当于先把数据清理后才能写。 4.对于一款新的单片机,要用sizeof,测试char,short,int等类型所占的空间大小。
[单片机]
单片机之秒表汇编程序
此程序上电后开始显示并不正常,过一会才正常,按键似乎并没有用,希望能明白怎么回事 频率12mhz ,从零开始计到99秒,原理为先通过十六进制和十进制的转换后使用变址寻址把数据 显示出来,十位和各位共延时4毫秒,如果有按键按下计数从零开始 DIZHI EQU 21H ;用于中间的数据传送 COUNT EQU 22H ;用于计数器的自加 ORG 0000H JMP START ORG 0030H TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳极代码 START: CLR COUNT WORK1: CALL DISPY ;十六进制的转换,输出代
[单片机]
STC单片机内部EEPROM的应用
单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM中的数据是无法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM或FLASHROM等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC或SPI等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在STC单片机中内置了EEPROM(其实是采用IAP技术读写内部FLASH来实现EEPROM),这样就节省了片外资源,使用起来也更加方便。下面就详细介绍STC单片机内置EEPROM及其使用方法。 STC各型号单片机内置的EEPROM的容量各有不同,见下表: 单片机芯
[单片机]
51单片机串口通信试验汇编程序
(今天是硬生生的把它给抠出来了):PC 通过串口助手向单片机系统传递命令和数据:以A5开始,以5A结束;中间是数据,长度不一,要求把数据部分用led灯显示出来;并且要求循环显示; //This is my x_Ed program code //we use it as the pc communicated with the mcu //At the same time,we want to see the result by LCD; STFLAG BIT 00H //收到起始码标志,1为收到起始码 EDFLAG BIT 01H //到结束码标志,1为收到结束码 TMFLAG BIT 02H //定时时间到标志
[单片机]
avr单片机LED灯循环位移汇编程序
本程序中使用的avr单片机是m16芯片,可以让8个led实现循环移位的效果/* * loopLEDLight.asm * * Created: 2014/3/14 9:47:20 * Author: Wujie */ .include m16def.inc .def temp1=r20 .def count=r17 .org $0000 rjmp main .org $002A main: ldi r16,high(RAMEND) out sph,r16 ldi r16,low(RAMEND) out spl,r16 ser temp1 out ddrc,temp1 out portc,temp1 ldi c
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved