导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]关于串行通信的问题[CHITIE]

 *第23659篇: [求助]关于串行通信的问题

  
楼 主:CHITIE 2004年7月12日16:33
 [求助]关于串行通信的问题
本人刚刚接触串行通信,有很多问题请大侠指教
在从电脑接收到32H时要怎样发送回电脑单片机P2端口的状态,谢谢了
现在能够接首电脑发出的信息,弹片机要怎样回发,谢谢了 

       ORG 0000H
      AJMP INIT
      ORG 0023H
      AJMP JIESHOU
INIT: MOV SP,#80H;栈底
      MOV IP,#08H;定义中断级别
      MOV TMOD,#20H;定时器T1为方式二
      MOV SCON,#50H;串行口为方式一
      MOV PCON,#00H;令SMOD=0
      MOV TH1,#0F4H;给TH1重装初值
      MOV TL1,#0F4H;波特率为2400
      SETB TR1;启动T1
      SETB ES
      SETB EA
     MOV P2,#32H


     AJMP $ 

JIESHOU:PUSH PSW;可以连续接收上位机发来的数据
        PUSH DPH
        PUSH DPL
        PUSH ACC
        CLR ES;关中断不引起连续触发
        CLR RI
        MOV A,SBUF
        
        CJNE A,#1H,KEY1
        CLR P1.0
        SETB P1.1
        SETB P1.2
        LJMP KEY

   KEY1:CJNE A,#2H,KEY2
        CLR P1.1
        SETB P1.0
        SETB P1.2

        LJMP KEY

   KEY2:CJNE A,#30H,KEY3
      CLR A
       MOV A,P2
       LJMP KEY
   KEY3:LJMP KEY7


    KEY:MOV SBUF,A

WAIT:  JNB   TI,WAIT ;等待发送完
       CLR   TI      ;清发送标志位

KEY7:SETB ES;恢复中断

        POP ACC
        POP DPL
        POP DPH
        POP PSW
        CLR A
        
        RETI
        END

  
2楼:guest 2004年7月12日17:32
 你是不是刚学单片机? 写程序要流畅,不要
你是不是刚学单片机? 写程序要流畅,不要调来调去。别人一看,就来气!
  
3楼:CHITIE 2004年7月13日18:58
 对不起了,我才学习单片机几个月,实在是没
对不起了,我才学习单片机几个月,实在是没有办法,才不得已尔为知,自己学习,和有老师教视不一样的,可以说每一条的指令都是用实践理解的,做高手我没想过,只求解决
问题所在,不讲什么方法,再说我也不会,向提供答案的人致敬
  
4楼:Kuang-chingTsui 2004年7月13日15:14
 这样写程序的方法很好嘛。。。。。。。。。。。。
不要胡乱批评。程序中略有些毛病。我虽然没仔细看,但结构挺清晰。很好
  
5楼:guest 2004年7月12日17:35
 《1》KEY7 这一句去掉
《2》 先

《1》KEY7 这一句去掉
《2》 先CLR A 再退栈
  
6楼:guest 2004年7月12日18:48
 要认真
将KEY2行的30H改为32H即可,程序要好好编,认真些
  
7楼:CHITIE 2004年7月13日19:01
 



  
8楼:guest 2004年7月13日13:04
 sorry,错批
不好意思,你说的30H的问题确实存在,但不是最主要问题所在。我觉得这位小伙未养成良好而成熟的编程习惯。
  
9楼:CHITIE 2004年7月13日19:03
 自己学习了几个月,有人要赶鸭子上架,丢人
自己学习了几个月,有人要赶鸭子上架,丢人了,
  
10楼:guest 2004年7月13日13:02
 误人子弟
不懂装懂,还把30H改成32H呢,神经!
  
11楼:CHITIE 2004年7月13日19:07
 谢谢高手,



谢谢高手,


  
12楼:guest 2004年7月13日16:47
 楼上的好好看程序,确实30H有错,不要不
楼上的好好看程序,确实30H有错,不要不懂装懂,乱放狗屁
  
13楼:guest 2004年7月14日08:48
 key2:cjne a,#32h,key
key2:cjne a,#32h,key3

       clr  a               ;相等送P2口状态
       mov a, p2
       mov sbuf,a 
       jnb ti,$
       clr   ti
key3:转向结束。   

程序流程基本清晰,慢慢来多看看书,多多练习。

  
14楼:guest 2004年7月14日18:11
 现在还有人用汇编吗?
现在还有人用汇编吗?
  
15楼:justrong 2004年7月15日09:19
 汇编咋啦,我一直用汇编都十年了!C51胡
汇编咋啦,我一直用汇编都十年了!C51胡编出来的又臃肿又不好看,我就看到过C51汇编出来的一段程序:为了要右移一位居然是先左移一位再右移两位!
  
16楼:lenglianxi 2004年7月16日13:56
 haha
你对C51了解多少?老兄。
  
17楼:CHITIE 2004年7月14日22:43
 才疏学浅,用不了别的,见笑了
才疏学浅,用不了别的,见笑了
  
18楼:CHITIE 2004年7月16日00:01
 ***************MOV S
***************MOV SP,#80H;栈底!!!!!太过分啦吧!
51只有128(7FH)的RAM(52的高128不能做栈),你栈底就设到80H?
80H是P0口的地址,一有数据进栈,P0口能保留数据就神啦。********************* 

这是01单片机论坛的斑竹:光明使者"给我的说明现在问题解决了,
真是惭愧,也不知当时设置的时候是怎么想的,出现问题时在也没看过
这些设置,总是觉得主程序有问题,被斑竹一语道破,足以见得斑竹深厚扎实的
基础,希望大家引以为戒,另外,用C51的那个人,不要瞧不起别人
你都”稀了”干嘛不做点“干”事?照样没看出问题,


向所有提供帮助的人致敬

  
19楼:justrong 2004年7月16日09:23
 靠,误人不浅!我一直用的都是52,哎!没
靠,误人不浅!我一直用的都是52,哎!没想到:( ,不过这也说明无论他人有多牛总有失误和疏忽的时候!敬告做人不要太狂啊......

>>>>>>对该主题发表你的看法

本主题贴数19,分页: [第1页]


[上一篇主题]:关于NMEA 0183码

[下一篇主题]:用过ds1340或x1226/7/8的。请帮帮忙!!!