3448|7

77

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

高分!!请大家帮忙挑挑错 [复制链接]

这是一个下位机(89c52)的程序,下位机和上位机通过串口通信,当上位机发送字符a,下位机就发送msga中的字符串给上位机,当上位机发送b,下位机就发送msgb给上位机,一次类推.程序还没有正式测试,请大家帮忙挑挑错
;;;;;;;;;;;;;;;;;;;;;;;;;;下位机程序;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0000h
ajmp main
org 0023h
clr ri
clr es
mov r0,sbuf;接受数据
jnb ri,$
clr ri
pop dph
pop dpl
mov dptr,#sendproc;跳到发送去
push dpl
push dph
reti
main:     mov tmod,#20h;采用定时器1,工作方式为方式2做波特率发生器
          mov th1,#0e6h;波特率1200,晶振12Mhz
          mov tl1,#0e6h
          mov scon,#50h;1200,0,8,1
          setb tr1
          setb ea
          setb es
          setb ren
back:     sjmp $
sendproc: clr ren                 
          cjne r0,#'a',label1;判断上位机发送的字符以便发送相应的字符串
          mov dptr,#msga
          sjmp label3
label1:   cjne r0,#'b',label2
          mov dptr,#msgb
          sjmp label3
label2:   cjne r0,#'c',main
          mov dptr,#msgc
label3:   mov a,#0
          movc a,@a+dptr
          cjne a,'*',label4
          sjmp main
label4:   mov sbuf,a
          jnb ti,$
          clr ti
          inc dptr
          sjmp label3
msga:     db 'areaID:099!tel:123!pulse:0.45$*';字符串
msgb:     db 'areaID:045!tel:455!pulse:0.32$*'
msgc:     db 'areaID:088!tel:788!pulse:0.66$*'
          end

最新回复

问题以解决,是程序有问题,要把那两个jbc改成jnb,呵呵,大家都没给我正确的解决方法我就结贴了  详情 回复 发表于 2007-4-21 13:14
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有错
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
编译的时候是没有错,我倒希望一切错误都出在编译时期,我在调试的时候遇到一些麻烦,把ri的值修改成1后总是进不了中断,请问怎样进入中断进行调试??
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
汇编程序员怎么就没有结构化的设计思想的??

如果独立出功能模块

再用分支来取得对应传入字符的地址,这不就很快吗?

耦合度这么高的代码,而且几乎没有通用性,不是很郁闷?
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢楼上的批评,可我现在是要解决进入中断进入中断程序进行调试,验证程序是否正确
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

6
 

                org  0000h
                sjmp main  
main:
                mov tmod,#20h   
                mov th1,#0e6h   
                mov tl1,#0e6h              
                setb tr1   
                mov scon,#50h         
                jbc ri,$
                mov a,sbuf
                mov sbuf,a
                jbc ti,$                     
                sjmp $
                ret         
                end
我现在写了一个简单的程序,通过串口调试助手发送a,收不到,但按了单片机板子上的复位就可以收到了,这是为什么啊??????????????
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
按了单片机板子上的复位就可以收到了,

是上电复位电路的问题?

看一下那个电容有没有问题
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

8
 
问题以解决,是程序有问题,要把那两个jbc改成jnb,呵呵,大家都没给我正确的解决方法我就结贴了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表