喇叭音量调节
来源:互联网 发布:python 调用c语言 编辑:程序博客网 时间:2024/04/28 00:50
/*-----------------------------------------------
名称:IIC协议 PCF8591ADDA转换
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:通过DA输出电压变化控制喇叭声音音量,P1.0用杜邦线连接J42 B1端子
J33插针OUT信号端用一根杜邦线连接到J51插针PWM/DAC Signal IN端子。本程序适用于LY-51S V2.2版本开发板
现象:喇叭声音由弱到强连续变化。
------------------------------------------------*/
#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; //取反喇叭,产生固定频率方波,驱动喇叭发声
}
名称:IIC协议 PCF8591ADDA转换
论坛:www.doflye.net
编写:shifang
日期:2009.5
修改:无
内容:通过DA输出电压变化控制喇叭声音音量,P1.0用杜邦线连接J42 B1端子
J33插针OUT信号端用一根杜邦线连接到J51插针PWM/DAC Signal IN端子。本程序适用于LY-51S V2.2版本开发板
现象:喇叭声音由弱到强连续变化。
------------------------------------------------*/
#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
- 喇叭音量调节
- 单片机喇叭音量调节
- 喇叭音量调节
- 单片机喇叭音量调节
- 喇叭音量调节
- 音量调节
- 音量调节
- 音量调节
- IOS音量调节--隐藏系统音量调节
- 拦截音量键调节音量
- 音量调节及静音
- Delphi调节音量
- 调节系统音量(话筒)
- 调节全部音量
- 音量调节及静音
- PCM 音量调节
- brew音量调节
- Delphi 音量调节源码
- 一些单片机所遗忘的知识(入职之后发现)
- 键盘事件
- 第一次实现百度地图API
- Ubuntu常用软件合集
- call apply
- 喇叭音量调节
- python的2.x与3.x的安装与一些基本常识和集合很多模块的安装包。
- 使用Nuget管理dll
- 今天傻逼了一把 angular2
- iOS每日一记之——————————基于Socket的简单封装和使用
- angularjs2入门1-文件结构分析
- having的用法以及与where区别介绍
- consul 配置---K/V存储及ACL
- linux 依赖旧的包 如何解决