您当前的位置:五五电子网电子知识单片机-工控设备51单片机单片机串行通讯应用程序 正文
单片机串行通讯应用程序

单片机串行通讯应用程序

点击数:7306 次   录入时间:03-04 11:38:45   整理:http://www.55dianzi.com   51单片机

许多数据采集系统都需要用到串口,串口的特点是:占用的硬件投资少,只需要很少的信号线,可以同步传输,也可以异步传送。传输数据的格式、速率可以变化。但是抗干扰性能不好,传输距离不够。本例程主要通过实验,演示串口通信的各种设置,上位机及其 单片机 的软件编程方法,数据的采集与处理等。也可以作为串口调试软件用。是一个非常实用的实验。能够方便地进行代码移植。 
 

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

 


本文关键字:单片机  应用程序  51单片机单片机-工控设备 - 51单片机