导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→我详细说一下

* 95383: 单片机窜口问题

   zheng_wei339 
zheng_wei339发表的帖子 

 我详细说一下
我用的正是51,所有设置和你说得的一样,并且将晶体振荡器的一侧的电容,换成5/25pf
的可调电容,以方便调节频率。在程序编写时,采用窜口工作方式1,接收采用窜口中断
程序如下:
org 0000h
ljmp satar
org 0023h
ljmp zd
org 0100

satar:mov tmod,#20h
       mov th1,#0fdh
       mov tl1,#0fdh
       mov pcon,#00h    ;晶振11。0592mhz,波特率9600
       setb ea          ;cpu 开中断
     setb es          ;开窜行中断
     clr et1          ;ti中断关
     setb tr1         
       mov scon,#50h
       ajmp satar
;中断接收
zd:   mov r0,#04h
       mov r1,#30h
 loop:jnb ri,$
       clr ri
       mov a,sbuf
       mov @r1,a
       inc r1
       djnz r0,loop
;发射       
           mov r0,#04h
  mov r1,#30h
 loop1:       mov a,@r1
  mov sbuf,a
                 jnb ti,$
  clr ti
                 inc r1
  djnz r0,loop1
  reti
end
另外,当我改成接收为一个字节数据时,比如pc发ox0d,单片机在9600b时,在8位数据,一个停止位,无效验的情况下,接收数据大多为ox8d,偶尔才有ox0d.在7位数据,一个停止位,无效验的情况下,接收数据大多为ox4d,偶尔才有ox0d.由此,我也怀疑波特率不准
,又换了刚买的3个11.0592晶振,且没用频率计调,效果一样。单片机我也换了。
我实在想不出该怎么调试了,请帮忙分析一下可能的原因。
谢谢

发表时间:2006年7月6日10:12:15

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  95387.[详细]用不着 clr et1
摘要:还有就是mov scon,#50h 应该放在set es前面 ajmp satar不是每个循环都要初始化吗  ......(80字)
- [CnRedLeaf][863次] 2006年7月6日

[上一篇帖子]:嵌入式MiniGUI 最新版本 V2.0.3和 V1.6.9隆重上市!
[下一篇帖子]:moden 卡 tone 音资料的读取各位前辈指点指点。