导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助,关于ADC0809,卡了很长时间,郁闷啊[mariana]

 *第31947篇: 求助,关于ADC0809,卡了很长时间,郁闷啊

  
楼 主:mariana 2005年6月2日23:43
 求助,关于ADC0809,卡了很长时间,郁闷啊
毕业设计的一个模块要用51单片机控制ADC0809采样信号。先问一个问题:ADC0809的CLK必须要小于640KHZ吗?是不是因为我用1MHZ所以才出问题?
描述一下我的设计[很常见的接法,就是不通:(],望做过的高手指点:
51的P0口与0809的D0-D7相连,同时接74LS373锁存地址连到0809的ABC端。51的/WR和P2.7通过或非门控制0809的START和ALE。 51的/RD和P2.7通过或非门控制0809的OE端。0809的EOC接51的P3.3口。
我想让ADC0809大约每一秒转换一次,然后数据进51送P1口接发光二极管,以检测其是否能工作。虽然不一定精确,但至少当我给0809一个缓变的正弦波,二极管应该有亮暗变化。
程序如下:MAIN:    MOV  R7,#0FFH
               ADDR:    MOV  DPTR,#7FF8H(由于用P2.7口控制又是选通0809的INO)
               START:  MOVX @DPTR,A(启动ADC0809)
               DELAY:  MOV  R6,#10H(稍微延时个20uS)
                             DJNZ R6,DELAY
               CHK:     JNB  P3.3,CHK(查询EOC信号)
               FINISH:    MOVX A,@DPTR(读转换结果)
                             MOV  P1,A
                             ACALL WAIT(控制ADC0809转换频率大致1HZ)
                             DJNZ R7,ADDR
               WAIT:   MOV  R1,#0FFH
               LOOP1:  MOV  R2,#0FFH
               LOOP2:  DJNZ R2,LOOP2
                             DJNZ R1,LOOP1
                             RET      
通过仿真和检测,EOC,START,ALE,OE端都有信号,但A寄存器里始终看不见转换结果。0809的ABC三端的信号有办法检测吗?我怀疑要么问题出在地址锁存上,要么是晶震不对?我做了一切努力,黔驴技穷了,请各位指点迷津啊,谢谢!!!
  
2楼:liufutom 2006年6月4日14:56
 我也来胡乱说几句
首先说时钟频率没有资料上要求的那么严格,不是时钟频率有问题,我曾经在89C51上用过24MHZ的晶振,ADC0809时钟直接取自89C51的ALE端,没加分频,算起来ADC0809的时钟已经达到了4MHZ,仍然工作。
你的硬件图没看到,不知道你的LED是怎么接的,如果电流来自P1口内部,可能发光会很暗。P1口的内部上拉电阻有10K左右。
你说的几个端口都有信号,说明ADC0809已经工作,不然EOC没有变化的电平。
另外ADC0809的基准电压怎么取的,V+和V-有没有接错?
如果你怀疑是地址锁存的不是零地址可以直接将ABC端接地,将ALE端也接地,这样ADC0809就一直工作在零地址上了,只有IN0是被选中的输入端。


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

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


[上一篇主题]:pic 问题,过来帮帮我[求助]

[下一篇主题]:新手利用Aduc814QS评估版做USB(CH375模块)接口遇到难题