导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[kexiner]求助:一个单片机串口通信的程序,请帮忙找



No.104426
作者:kexiner
邮件:kexinerdd@163.com
ID:72511
登陆:6次
文章数:10篇
最后登陆IP:222.184.15.50
最后登陆:2007/5/16 9:59:23
注册:2007/3/24 9:04:38
财富:142
发帖时间:2007/4/9 19:03:22
发贴者IP:222.184.15.50
标题:kexiner:求助:一个单片机串口通信的程序,请帮忙找下错误
摘要:No.104426求助:一个单片机串口通信的程序,请帮忙找下错误 将单片机与计算机通过RS232相连,单片机的P1.4接蜂鸣器,P1.5接红灯,P1.6接绿灯。调试时使用串口调试助手。当从输入18H时,要求蜂鸣器响,19H时红、绿灯一起亮,1AH时红灯亮,1BH时绿灯亮。
下面是我的程序。调试时基本已实现了要求,可是,有一点毛病,比如我先输入18H,蜂鸣器响了,然后我再输入1AH,正确的结果是红灯亮,我的程序是先是蜂鸣器响,然后再发一次,红灯才会亮,我搞了好久,真不知道怎么办了,哪位高手帮帮忙啊! 

ORG    0000H
          LJMP   START
          ORG    0023H    
        
  START:  MOV    SP,#30H
          MOV    TMOD, #21H     ; 定时计数器0工作于方式1,1工作于方式2
          MOV    TH1,  #0FDH    ; 波特率9600
          MOV    TL1,  #0FDH
          MOV    SCON, #50H     ; 置串口为方式1,允许接收
          SETB   TR1
          SETB   EA             ; 开中断
          SETB   ES             ; 允许串口中断   
           
 LOOP:    LCALL  SIN         
          LCALL  DELAY_1
          AJMP   LOOP   
          
 SIN:     MOV    A,SBUF
          JNB    RI,$
          CLR    RI                                
          CJNE   A,#18H,GR        ;如果收到18H,即"↑",蜂鸣器响 
          JNB    RI,$
          CLR    RI
          CLR    P1.4
          LCALL  DELAY_1
          SETB   P1.4
          RET
                    
 GR:      CJNE   A,#19H,RED        ;如果收到19H,即"↓",红、绿灯一起亮
          JNB    RI,$
          CLR    RI
          CLR    P1.6             
          CLR    P1.5
          LCALL  DELAY_1 
          SETB   P1.6
          SETB   P1.5
          SETB   ES
          RET
                    
 RED:     CJNE   A,#1AH,GREEN          ;如果收到1AH,即"→",红灯亮          
          JNB    RI,$
          CLR    RI 
          CLR    P1.5
          LCALL  DELAY_1
          SETB    P1.5
          SETB    ES
          RET
                    
 GREEN:   CJNE   A,#1BH,ENT0           ;如果收到1BH,即"←",绿灯亮         
          CLR    RI
          CLR    P1.6
          LCALL  DELAY_1
          SETB   P1.6
          SETB   ES
          RET
                 
  ENT0:   SETB   ES                   ;允许串行中断
          RETI                        ;中断返回
          
 
         
       
DELAY_1:
        MOV  R0, #0FFH
  LOOP2:MOV  R1, #0FFH
  LOO ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:31毫秒 最大:16127毫秒 查询6次