导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→請教[guest]

 *第14962篇: 請教

  
楼 主:guest 2003年7月28日19:44
 請教
請問一個問題:我用p1.0口發送20khz的訊息,然后用P1.1來接受這個訊息,我應該怎么做,才能實時跟蹤?
  
2楼:a12345678 2003年7月28日20:30
 RE:
若要求半双工,则标准51需要采用24MHz~40MHz才能做到
若要求全双工,则标准51做不到, 需要采用高速51,例如77E58/C8051Fxxx
  
3楼:guest 2003年7月28日20:40
 我用如下程序寫,麻煩看看是不是可以的呢?
我用如下程序寫,麻煩看看是不是可以的呢?
sent20khz:
  clr c
  mov p1,#00h
  mov r0,#0ah                 ;做循環次數
turn0:
  cpl p1.0  
  mov a,r0
  jb acc.0,turn1                 ;判斷是奇數次還是偶數次延時
  acall pluse20khz1
  djnz r0,turn0
turn1:
  acall pluse20khz0

pluse20khz1:
  mov c,p1.0
  anl c,/p1.1              ;前次數值判斷
  jnc error
  mov r7,#20
turnt:
  djnz r7,turnt
  mov c,p1.0
  anl c,p1.1              ;當前數值判斷
  jnc error
  mov r7,#20
turnt0:
  djnz r7,turnt0
  jnb p1.1,error
  ret

pluse20khz0:
  mov c,p1.0
  anl c,/p1.1
  jc error
  mov r7,#20
turnt2:
  djnz r7,turnt2
  mov c,p1.0
  anl c,p1.1
  jc error
  mov r7,#20
turnt3:
  djnz r7,turnt3
  jb p1.1,error
  ret

error:
...
  end

  
4楼:zhengjl 2003年7月28日21:59
 建议用定时器做
1,设置为8位定时器自动重装模式,
2,在TH,TL装入相同的时间常数,
   例:12m晶体最长定时为256uS,
   20kHz频率高低脉宽均为25uS,
    所以定时常数为256-25=231(#0e7h)。
3,在定时器中断程序里编程每次中断输出口线cpl,
4,开启中断,启动定时器。
     一切OK!


  
5楼:a12345678 2003年7月28日20:54
 看不明白
  
6楼:guest 2003年7月28日21:04
 我是在P1.0輸出脈沖調延時的時候,檢測
我是在P1.0輸出脈沖調延時的時候,檢測p1.1上出現的脈沖,因為檢測p1.1上的脈沖要比p1.0輸出的脈沖晚一半的時間,所以兩次p1.1上的檢測分開來寫判斷程序,再因為p1.0輸出1或0會導致判斷不一樣,所以也分開類下。
基本上次序是:
   p1.0   p1.1
1: 1       0
2: 1       1

3: 0       1
4: 0       0

5: 1       0
6: 1       1

7: 0       1
8: 1       1

...

  
7楼:a12345678 2003年7月28日21:07
 建议; 定时器做
  
8楼:guest 2003年7月28日21:11
 用波特率?如果這樣,怎么能檢測波形是正確
用波特率?如果這樣,怎么能檢測波形是正確的呢?就是說,怎么樣才能知道我檢測到的脈沖是我出來的脈沖?沒有停止位啊
  
9楼:zhengjl 2003年7月28日22:10
 P1.1口做实时跟踪不如用INT0或INT1口控制定时器计数测脉宽的方法

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

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


[上一篇主题]:急!!需无大小限制的keil c51完全版,小弟先谢过

[下一篇主题]:16位lcd只亮前面8位,后面8位不亮,是怎么回事?