首先咱要搞明白一个问题,可能有不少人会没注意,就是工作频率和时钟频率,对于单片机,咱们通常使用时钟的说法,而接受单片机控制的片子,如ADC0809是用工作频率的说法。
ADC0809处理信号的快慢,是通过CLK端的输入信号频率控制的,而对于ADC0809来说,最高工作频率是640KHZ。因此,CLK的输入信号不要大于640KHZ。
可以说有两种方法,一种就是通过单片机的ALE口,由于ALE口的频率是单片机时钟频率的1/6,所以在ALE接入CLK时,如果单片机的时钟频率是6MHZ,那么CLK的频率是1MHZ,大于规定的最大值640KHZ,因此还要在ALE与CLK之间加一个二分频,此时ADC0809的工作频率是500KHZ,可以工作。
另一种编程也是可以的,但是此时的CLK要接在P1.X口。这个可以通过编程让定时/计数器定时多少US或者是MS(根据用户要求的ADC0809转换速率来确定),定时计数到0后给一个脉冲通过P1.x输出,建议用电路实现吧,虽然编程也不是很难,可是编程写得太多,总不是件好事
ADC0809的Datasheet建议工作频率500KHz,最高不超过640KHz,用软件定时当然可以,单片机的ALE输出为640KHz以下时能直接使用,超过的话就只能先分频再给ADC使用了。
可以 好像不能高于多少忘了 12M晶振可以用ALE 也可以定时
TH0=216; //利用T0中断产生CLK信号
TL0=216; //12M