串口通信的单片机程序

发布者:caoda143最新更新时间:2013-12-04 来源: 21ic关键字:串口通信  单片机程序  堆栈 手机看文章 扫描二维码
随时随地手机看文章

beep    bit   p3.7                ;蜂鸣器定义

      org 00h
      jmp main
      org 23h                       ;串行中断入口地址
      jmp com_int                     ;串行中断服务程序

;***********  主程序开始    *******************
        org 30h
  main:  mov sp,#30h                ;设置堆栈
             lcall rest             ;初始化
             lcall comm             ;串口初始化
             jmp $                  ;原地等待

;  *************   初始化   *********************
   rest:      mov p0,#00h             ;禁止数码管显示
             mov p2,#255
             clr  beep                ;禁止蜂鸣器
             mov p1,#255              ;禁止LED显示
             RET                      ;返回

; **************  串口初始化   *****************
;设置串行口工作方式1,定时器1作为波特率发生器
;波特率设置为   2400  ;

comm:         mov tmod,#20h          ;设置定时器T1工作方式2
              mov tl1,#0f3h             ;定时器计数初值,波特率 2400 
              mov th1,#0f3h            ;定时器重装值
              setb ea                       ;允许总的中断
              setb es                       ;允许串行中断
              mov pcon,#00h          ;波特率不倍增
              mov scon,#50h          ;设置串口工作方式1,REN = 1 允许接收
              setb tr1                       ;定时器开始工作
              ret                               ;返回
;***************  串口中断服务程序   ***********
;  如果接收  0FF  表示上位机需要联机信号,单片机发送 0FFH作为
;  应答信号,如果接收到 数字 1~ n,表示相应的功能;
;  这里,如果收到 1 ,则单片机向计算机发送字符  'H';
;            如果收到 2 ,则单片机向计算机发送字符  'e';
;            如果收到其他的数据,则发送    'J';
com_int:  clr es                        ;禁止串行中断
                clr ri                          ;清除接收标志位
                mov a,sbuf               ;从缓冲区取出数据
                mov p1,a
                mov dptr,#tab
                cjne a,#0ffh,in_1      ;检查数据
                mov sbuf,#255          ;收到联机信号,发送联机信号
                jnb ti,$                      ;等待发送完毕
                clr ti                          ;清除发送标志
                setb es                     ;允许串行中断
                reti                            ;中断返回
      in_1: cjne a,#1H, in_2         ;如果收到1
                movc a,@a+dptr
                mov sbuf,a             ;发送 'h'
                jnb ti,$                      ;等待发送完毕
                clr  ti                         ;清除发送中断标志
                setb es                     ;允许串行中断
                reti                            ;中断返回
      in_2: cjne a,#2,in_3         ;接收到  2 
                movc a,@a+dptr
                mov sbuf,a             ;发送 'e'
                jnb ti,$                      ;等待发送完毕
                clr  ti                         ;清除发送中断
                setb es                     ;允许串行中断
                reti                            ;中断返回
      in_3:     mov a,#03h
                movc a,@a+dptr
                mov sbuf,a             ;发送 'j'
                jnb ti,$                      ;等待发送完毕
                clr ti                          ;清除发送中断标志
                setb es                     ;允许串行中断
                reti                            ;返回
tab:    db '2','h','e','j'
end

关键字:串口通信  单片机程序  堆栈 引用地址:串口通信的单片机程序

上一篇:Proteus与Arduino的整合在单片机系统开发中的应用
下一篇:串口通信的单片机程序

推荐阅读最新更新时间:2024-03-16 13:31

51单片机温控风扇制作 数码管显示 Proteus仿真程序
仿真原理图如下 制作出来的实物图如下: 单片机源程序如下: #include reg52.h //调用单片机头文件 #define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535 //数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du ={0x28,0xee,0x42,0x72,0xe5,0xa8,0x41,0x77,0x20,0xa0,
[单片机]
51<font color='red'>单片机</font>温控风扇制作 数码管显示 Proteus仿真<font color='red'>程序</font>
MEGA16单片机_AD转换程序
AD转换,编程的寄存器有: ADMUX:多工选择寄存器。参考电压、对齐方式、模拟通道及增益选择位 ADCSR(A):使能、中断标志、中断使能、预分频值等 ADCL、ADCH:数据寄存器 SFI0R:特殊功能寄存器 //////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef __AD_H__ #define __AD_H__ #include iom16v.h #include macros.h #define uchar unsigned char #d
[单片机]
单片机红外遥控解码程序
#include reg52.h #include intrins.h #define uchar unsigned char//宏定义 #define uint unsigned int #define ulong unsigned long sbit sound=P2^3; //蜂鸣器 sbit IR=P1^2; //IR_DATA uchar dm,i,j,k; //IR_解码用的变量 uchar aa ; //定义1个数组,用来存储代码,8位的数据码和8位的数据反码 ulong bb; //定义bb用来存放用户识别码,这里采用的是26位的用户识别 uchar newdata; //IR收
[单片机]
数字电位器与单片机接口及程序设计
  随着集成芯片技术与计算机技术的发展,仪器仪表的智能化程度不断提高,许多原先采用手工调节的操作,已由计算机取而代之。数字电位器便是其中一例,它不仅在一定程度上取代了机械电位器,而且具有无噪声,抗振动.尺寸小,寿命长等优点。最重要的是它由计算机控制,调节由编程实现,从而实现操作的自动化及智能化。      一、AD8402与8031的接口电路设计及注意事项      AD8402是一种2通道256个分支节点的数字电位器,也称数控可变电阻器。它实质上是一种特殊形式的数/模转换器,但其模拟量输出不是电压或电流,而是电阻或电阻比率,所以又称RDAC。它含有一个标准三线串行控制接口,输入时序如图1所示。      AD8402可根据
[单片机]
数字电位器与<font color='red'>单片机</font>接口及<font color='red'>程序</font>设计
STM32系统学习——USART(串口通信
串口通信是一种设备间非常常用的串行通行方式,其简单便捷,大部分电子设备都支持。 一、物理层 常用RS-232标准,主要规定了信号的用途、通信接口以及信号的电平标准。 “DB9接口”之间通过串口信号线建立起连接,串口信号线使用”RS-232标准“传输数据信号,这些信号通过记过电平转换芯片转换成控制器能识别的TLL标准的电平信号,才能实现通信。 1.电平标准 可分为TTL标准以及RS-232标准。 常见的电子电路中常见TTL的电平标准,理想状态使用5V表示二进制逻辑1,0V表示逻辑0;而为了增加串口通信的远距离传输以及抗干扰能力,RS-232使用-15V表示逻辑1,+15V表示逻辑0。
[单片机]
STM32系统学习——USART(<font color='red'>串口通信</font>)
基于PIC单片机的直流电机测速程序设计
在捕捉模式下,当对应的CCPx引脚上有事件发生时,CCPRxH:CCPRxL寄存器对将捕捉TMR1寄存器或TMR3寄存器的16位值。事件定义为下列情况之一: 每个下降沿 每个上升沿 每4个上升沿 每16个上升沿 u通过模式选择位CCPxM3:CCPxM0(CCPxCON《3:0》)选择事件类型。当一个捕捉发生时,中断请求标志位CCPx IF 置1,它必须用软件清零。如果在读取寄存器CCPRx之前发生了另一个捕捉,那么之前捕捉的值将被新捕捉的值覆盖。 u在捕捉模式下,应该通过将相应的TRIS方向位置1来将CCPx引脚配置为输入 注: 如果RB3/CCP2或RC1/CCP2引脚被配置为输出,对该端口的写操作会产生捕捉条件。 u
[单片机]
基于PIC<font color='red'>单片机</font>的直流电机测速<font color='red'>程序</font>设计
C51:串口通信接收与发送
假设要发送一组数据 Send 一般采用查询发送(循环发送)方式: unsigned char Send ; //发送量 unsigned char i; //循环量 for(i=0;i 10;i++) { SBUF= Send ; //发送 while(TI==0); //等待发送完成 TI=0; //清标志 } 采用中断发送方式: unsigned char Send ; //发送量 unsigned char num; //发送数据
[单片机]
STM32速成笔记(5)—串口通信
一、什么是串口通信 串口通信是指外部设备与主控芯片之间,通过数据信号线、地线等,按位进行数据传输的一种通信方式,属于串行通信方式。串行通信是指使用一条数据线依次逐位传输数据,每一位数据占据固定长度的时间。可以看一下简单的串行通信示意图。 串口通信示意图 二、串口通信有什么用 这里简单列举一下串口通信的用途 • 下载程序 • 外设与单片机通信 单片机给外设发送一些指令或者配置信息,外设给单片机回传一些信息。 • 打印信息 比如将ADC采集到的电压发送给上位机的串口调试助手,或者实时监测某一个变量的变化。 三、STM32的串口通信 普中核心板上使用的STM32F103ZET6有三
[单片机]
STM32速成笔记(5)—<font color='red'>串口通信</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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