首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
51单片机控制节拍产生示例程序
来源:本站整理  作者:佚名  2011-02-05 21:45:51



51 单片机 控制节拍产生示例程序

#include <reg51.h>
sbit speaker=P3^7;
unsigned char Do=108;
unsigned char beat_H=(65536-62500)/256,beat_L()=(65536-62500)%256;
unsigned char tone_H=(65536-1908)/256,tone_L()=(65536-1908)%256;
char times,counts=5;
bit beat_flag;
//=====Timer0中断子程序======================
void tone_timer(void)interrupt 1
{TH0=tone_H;
 TL0=tone_L;

 speaker=~speaker;
 }
main()
{char i;
 IE=0x82;
 TH0=beat_H;
 TL0=beat_L;
 for(i=0;i<counts;i++)
 {times=2;
  beat_flag=0;
  TR0=1;
  if(beat_flag==0)
  {speaker=~speaker;delay8us(tone[Do]);}
  //===静音(1/4拍)=====================================
  speaker=0;
  times=2;
  beat_flag=0;
  TR0=1;
  while(beat_flag=0);
 }
}
//======================================================
void beat_timer(void)interrupt 1
{TH0=beat_H;
 TL0=beat_L;
 if(--times==0)
   {beat_flag=1;
    TR0=0;
   }
}
//============================================
void delay8us(unsigned charx)
{unsigned char i,j;
  for(i=0;i<x;i++)
     for(j=0;j<1;j++);
}



















关键词:

·上一文章:电子琴程序
·下一文章:定时中断30秒倒计时程序

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:10,492.19000 毫秒