标题: 单片机产生方波问题 [打印本页]

作者: yesonjob    时间: 2015-4-18 20:28
标题: 单片机产生方波问题
stc89c5系列单片机,想产生38k方波,理论上就是大概13us翻转一次电平状态。
可是实际却做不到,用示波器观察波形,只有翻转时间大于20us时才观察到波形(即最大能产生约25k方波),小于这个时间,就完全没有波形产生了。
是硬件速度问题还是其他问题?有没有人试过用这类型的单片机产生过38k的方波?或者有没有其他软件方法可以实现?在线等~
作者: 8055    时间: 2015-4-19 17:21
你是在哪里处理I/O状态的?
作者: yesonjob    时间: 2015-4-19 18:06
8055 发表于 2015-4-19 17:21
你是在哪里处理I/O状态的?

主函数里面,中断里面没试过,但感觉不会太大差距。
作者: 8055    时间: 2015-4-19 19:49
好像都告诉你了,如果是做调制,最好不要用这种方式产生38K的方波,不好使的~随便复制一个给你试一试,我也验证了一下,我现在只有110592的晶体,实际用示波器看了下,差不多吧,低点儿就是36K+,高点就是40K+
  1. #include <reg51.h>

  2. sbit out_38k_IO=P0^0;

  3. void InitTimer0(void)
  4. {
  5.     TMOD|= 0x02;                    
  6.     TH0 = 0xF4;                     
  7.     TL0 = 0xF4;
  8.     TR0 = 1;                        
  9.     ET0 = 1;                        
  10.     EA = 1;
  11. }

  12. void main(void)
  13. {
  14.     InitTimer0();
  15. }

  16. void Timer0Interrupt(void) interrupt 1
  17. {
  18.     out_38k_IO = !out_38k_IO;
  19. }
复制代码




作者: 8055    时间: 2015-4-19 21:16
用用这个方法吧,较为实用和准确
http://www.51hei.com/bbs/dpj-33672-1.html
作者: zhones    时间: 2015-4-20 08:41
8055 发表于 2015-4-19 21:16
用用这个方法吧,较为实用和准确
http://www.51hei.com/bbs/dpj-33672-1.html

这个好,学习了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1