首页 新闻资讯 技术资料 论坛 网站地图
综合电子技术 数控系统 嵌入式软件 消费电子 IC设计 AD/DA CPLD/FPGA
电子元器件搜索:
IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
维库电子市场网是知名的电子元器件交易网站, 为电子生产企业提供IC库存和技术资料查询服务。
位置: 首页 > 详细信息
  求助!求助!PC和单片机串口通信的应用
出处:21ic 时间: 2007-09-30
许世霞 发布于 2007-9-29 9:21:00
    前辈们!谁能给我详细地举个例子,从设置程序软件,软件调试到硬件的连接等.我怎么很难理解这个东东呀!我不想放弃呀.无论如何我要弄明白呀!求大家帮个忙了!我十分感激了!


yqliu29 发布于 2007-9-29 12:57:00
是pc端的程序还是单片机端的?


许世霞 发布于 2007-9-30 15:06:00
   我只想让大家给我举个这方面的例子.如果两端都有程序的那样的例子更好呀.向下面这个程序只是单片机端的,是吧!这个实验我一直做不成功<请高手能给我详细的分析一下呀


;下载程序以后,关闭电源,按照光盘袋子里面说明书的要求,联接好串口线
;然后打开串口调试软件,按照您连接的串口,设置好串口特性(注意波特率)
;然后发送数据给下面的机器,并接受下面发送上来的数据!


      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


关闭】 【打印
相关专题  
汽车电子
AD/DA
软件开发
嵌入式硬件
应用产品
数控系统
军工/航空航天
医疗电子
存储器
嵌入式软件
开发工具
计算机外设
接口电路
电源系列
通信产品
测试测量
综合电子技术
CPLD/FPGA
消费电子
SOPC
工业控制
传感控制
嵌入式系统
安防产品
IC设计

© 2007 百斯嵌入式开发网 网站地图