登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 蜂鸣器

[复制链接]
发表于 2022-2-27 16:46:24 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 蜂鸣器
学习安排: 蜂鸣器
开始时间: 2022-02-27
结束时间: 2022-02-27

#include <STC12C5A60S2.H>
sbit PWM = P1^3;                                      //高电压NPN通电,低电压PNP通电
unsigned char T0RH = 0;                            //高八位重载值
unsigned char T0RL = 0;
unsigned int i;

void OpenPWM (unsigned int frequ);
void StopPWM ();

void main()
{
  EA = 1;        
  TMOD = 0x01;                                              //模式1
      
      
      
        while(1)
        {
          OpenPWM(4000);
                for(i=0;i<40000;i++);
                StopPWM();
                for(i=0;i<2000;i++);
          OpenPWM(1000);
                for(i=0;i<40000;i++);
                StopPWM();
                for(i=0;i<40000;i++);

        }
}


void OpenPWM (unsigned int frequ)
{
        unsigned int reload;
        reload = 65536 -(12000000/12)/(frequ*2);
        T0RH = (unsigned char) (reload>>8);
        T0RL = (unsigned char) reload;
        TH0 = 0xFE;
        TL0 = 0xFE;
        ET0 = 1;
        TR0 = 1;
}
void StopPwm()
{
        ET0 = 0;
        TR0 = 0;
}

void InterruptTimer0() interrupt 1
{
        TH0 = T0RH;
        TL0 = T0RL;
        PWM = ~PWM;
}







好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表