登录  | 立即注册

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

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 蜂鸣器

[复制链接]
发表于 2022-1-12 18:34:38 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 单片机
学习安排: 蜂鸣器
开始时间: 2022-01-12
结束时间: 2022-01-12
本帖最后由 房一鹏 于 2022-1-14 11:36 编辑

蜂鸣器中的频率是随便写的,不怎么好听。改变数组中的赋值和whlie(1)中的部分内容可以实现播放歌曲,歌曲频率自己找吧

#include<reg52.h>

sbit pwmout = P1^3;

void openpwmout(unsigned int frequ);
void closepwmout();

unsigned char T0RH=0;
unsigned char T0RL=0;


void main()
{
        unsigned int b,i=0;
        unsigned int a[7]={
                57568,14663,47566,78215,60147,25874,12345
        };
        
        EA=1;
        TMOD=0x01;

        while(1)
        {
                for(b=0;b<7;b++)
                {
                openpwmout(a);
  for(i=0;i<40000;i++);
                closepwmout();
                for(i=0;i<40000;i++);
                }        
        }
}        

void openpwmout(unsigned int frequ)
{
        unsigned int reload;
        
        reload=65536-(32768000/12)/(frequ/2);
        T0RH=(unsigned char)(reload>>8);
        T0RL=(unsigned char)reload;
        
        TH0=0xFF;
        TL0=0xF1;
        
        ET0=1;
        TR0=1;
}
void closepwmout()
{
        ET0=0;
        TR0=0;
}
void interruptTime() interrupt 1
{
        TH0=T0RH;
        TL0=T0RL;
        pwmout = ~pwmout ;
}




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

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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