单片机喇叭音量调节
来源:互联网 发布:广告牌制作什么软件 编辑:程序博客网 时间:2024/04/28 17:30
#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include <intrins.h> //包含NOP空指令函数_nop_(); #define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址 sbit Sda=P2^1; //定义总线连接端口 根据此定义连接杜邦线 sbit Scl=P2^0; sbit spk=P1^2; //喇叭端口/*------------------------------------------------ 延时程序------------------------------------------------*/ void mDelay(unsigned char j) { unsigned int i; for(;j>0;j--) { for(i=0;i<125;i++) {;} } }/*------------------------------------------------ 初始化定时器1------------------------------------------------*/void Init_Timer1(void){ TMOD |= 0x10; TH1=(65536-500)/256; //初始化值 TL1=(65536-500)%256; //PT1=1; //优先级 EA=1; //中断使能 ET1=1; //定时器中断使能 TR1=1; //打开定时器} /*------------------------------------------------ 启动IIC总线------------------------------------------------*/ void Start(void) { Sda=1; _nop_(); Scl=1; _nop_(); Sda=0; _nop_(); Scl=0; }/*------------------------------------------------ 停止IIC总线------------------------------------------------*/ void Stop(void) { Sda=0; _nop_(); Scl=1; _nop_(); Sda=1; _nop_(); Scl=0; }/*------------------------------------------------ 应答IIC总线------------------------------------------------*/ void Ack(void) { Sda=0;_nop_();Scl=1;_nop_();Scl=0;_nop_();}/*------------------------------------------------ 发送一个字节------------------------------------------------*/void Send(unsigned char Data){ unsigned char BitCounter=8; unsigned char temp; do {temp=Data;Scl=0;_nop_();if((temp&0x80)==0x80) Sda=1;else Sda=0;Scl=1;temp=Data<<1;Data=temp;BitCounter--; } while(BitCounter); Scl=0; }/*------------------------------------------------ 写入DA数模转换值------------------------------------------------*/ void DAC(unsigned char Data) { Start(); Send(AddWr); //写入芯片地址 Ack(); Send(0x40); //写入控制位,使能DAC输出 Ack(); Send(Data); //写数据 Ack(); Stop(); }/*------------------------------------------------ 主程序------------------------------------------------*/void main(){unsigned char num; //DA数模输出变量 Init_Timer1();while(1) { DAC(num); //DA输出,可以用LED模拟电压变化 num++; //累加,到256后溢出变为0,往复循环。显示在LED上亮度逐渐变化 mDelay(20); //延时用于清晰看出变化 }}/*------------------------------------------------ 定时器中断程序------------------------------------------------*/void Timer1_isr(void) interrupt 3 using 1//定时器1{ TH1=(65536-500)/256;//重装初始化值 TL1=(65536-500)%256; spk=!spk; //取反喇叭,产生固定频率方波,驱动喇叭发声 }
0 0
- 单片机喇叭音量调节
- 单片机喇叭音量调节
- 喇叭音量调节
- 喇叭音量调节
- 喇叭音量调节
- 音量调节
- 音量调节
- 音量调节
- 51单片机驱动喇叭
- IOS音量调节--隐藏系统音量调节
- 拦截音量键调节音量
- 音量调节及静音
- Delphi调节音量
- 调节系统音量(话筒)
- 调节全部音量
- 音量调节及静音
- PCM 音量调节
- brew音量调节
- Bootstrap学习(一)
- VS2015 x64环境下编译flann源代码错误:serialize 左边必须有类/结构/联合 的解决方法
- CSS3 新特性
- 1058. A+B in Hogwarts
- LeetCode 48 --- Rotate Image
- 单片机喇叭音量调节
- 1059. Prime Factors
- Leetcode 494 python 解题报告
- 张高兴的 UWP 开发笔记:用 Thumb 控件仿制一个可拖动 Button
- GitHub 上 57 款最流行的开源深度学习项目【转】
- Y400双硬盘安装WIN10和Ubuntu
- 用g++编译生成动态链接库 *.so 的方法
- 1060. Are They Equal
- Left Join 右表数据不唯一解决方法