论坛» 嵌入式开发» MCU

如何用51单片机输出500kHz的时钟频率

菜鸟
2013-12-03 13:36 1楼
想用ADC0809处理红外传感器的返回值,但是它要求500kHz的工作频率,求教如何用软件编程产生?看到有人说51的12MHz的晶振不能产生,捉急了,硬件分频不会啊,也木有相关硬件...
专家
2013-12-03 13:44 2楼
利用单片机定时器完成。
高工
2013-12-03 22:28 3楼
2楼说的就是基本方法,单片机又不是FPGA,不需要硬件分配,定时器最好了,延时函数基本上所有应用都会用到,如果不会找个例子参考,算好频率即可
菜鸟
2013-12-04 15:35 4楼
如果是STC的MCU,则可以用定时器产生.这个频率有点偏差不要紧的。我还是建议使用实际点的ADC,8腿的,或者使用MCU自带的ADC。
高工
2013-12-04 19:50 5楼

12MHz原始51系统时钟也才1M

貌似控制ADC以500KHZ采样确实是不太可能


高工
2013-12-04 19:51 6楼

另外红外编码为什么要用ADC去采?

直接整形送IO口解码就行啦


菜鸟
2013-12-09 17:33 7楼
要那么高频率干嘛,降一点嘛
助工
2013-12-16 14:35 8楼
用ATMEL或STC的单片机,它们的T2定时器可设置成在P1.0管脚上可编程时钟输出
助工
2013-12-17 17:42 9楼
TL2=RCAP2L=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))%256;
 TH2=RCAP2H=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))/256;
T2CON=0x00; //C/T2=0, CP/RL2=0
T2MOD=0x02; // T2OE=1,在P1.0输出方波
TR2=1; //开始输出方波
EXEN2=1; //允许T2EX触发T2中断
ET2=1; EA=1;

助工
2013-12-18 14:08 10楼
STC89C52内部不带AD模块的,手上还有一块PCF8591,不会用~~~早知道0809这么麻烦我也不买这个咯~
共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]