导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请教怎样用51单片机的可编程时钟输出[guest]

 *第22747篇: 请教怎样用51单片机的可编程时钟输出

  
楼 主:guest 2004年6月8日16:46
 请教怎样用51单片机的可编程时钟输出
小弟使用欲使用单片机控制步进电机驱动器,需要可变频率的脉冲,昨天才发现原来87c52本身有个T2定时器可将p1.0用作可编程时钟输出(60hz到4Mhz),但书上介绍太简单,没有例子,从来没有见过哪里有类似的介绍,自己试验了一下好像没反应,不知那位仁兄会用,麻烦给指点一下,最好写个汇编小程序出来,不胜感激。
另外请教一个或许很菜的问题:87c51与89c51有何区别?
  
2楼:guest 2004年6月9日13:37
 #pragma cd pl(30000)
#pragma cd pl(30000)

#include   <types.h>  
#include   <reg8252.h>  

#define PWMCYCLE ( 4096 + 2 * 256 )
#define PWMvalue ( PWMCYCLE / 5 ) // 1V


main()
{
  TMOD = T0_M0_ | T0_M1_ | T0_GA_ | T1_M1_; // T0: split,
      // TL0 with gate
      // T1: auto reload
  TCON = IT0_ | TR1_;    // run T1,
      // EX0 transition activated
  T2MOD = T2OE_;    // T2: clock out mode
  T2CON = TR2_;     // stop T2

  IP = PX0_ | PT0_;
  IE = EA_ | EX0_ | ET0_;
  P1 &= ~1;     // output pin = 0
  RCAP2W = -PWMvalue;
  T2W = -1;
  TR2 = 1;     // run T2

  for(;;);
}


int_ex0() interrupt INT_EX0   // 1-0 transition
{
  RCAP2W = -PWMCYCLE - RCAP2W;
  TL0 = 0xFF;
  TR0 = 1;
}


int_t0() interrupt INT_T0   // 0-1 transition
{
  RCAP2W = -PWMCYCLE - RCAP2W;
  TR0 = 0;
}


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

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


[上一篇主题]:招聘硬件工程师

[下一篇主题]:那位用过tlc4541???