微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机STC5A60S2完成音频采集与输出

单片机STC5A60S2完成音频采集与输出

时间:08-21 来源:互联网 点击:

//IPH=0X20; //AD中断设置为最高优先级 0x20
//IP=0X20;
//开启中断总开关及AD中断开关0x20
//EA=1;
//EADC=1; //开启AD中断开关,AD的开关标志位同89C52的T2标志位
//AUXR1=0; //AD转化结果寄存器的存储方式8高+2低 这是默认值可以不设置
PLASF=0x01; //设置P1.0作为模拟口
ADC_RES=0 ; //清空AD输出高八位寄存器
//默认的AD输出存储方式为8+2
ADC_CONTR=0xe8; //(ADC_POWER|ADC_SPEEDLL|ADC_START|0x00); //开启AD电源,以90个时钟速度采样,并选择P1.0作为输入口
delay(1000); //初次打开内部AD模拟电源需要适当延时,使电源稳定。
}
/*--------------------------------------------------------*/

.H文件2(PWM.H):

#define uchar unsigned char
#define uint unsigned int
sfr CCON=0XD8; //PCA控制寄存器
sfr CMOD=0XD9; //工作模式寄存器
sfr CL=0XE9 ; //PCA计数器低8位寄存器
sfr CH=0XF9 ; //PCA计数器高8位寄存器
sfr CCAPM0=0XDA ; //PCA模块0的比较/捕获寄存器
sfr CCAP0L=0XEA ; //PCA模块0低8位捕捉/比较寄存器
sfr CCAP0H=0XFA ; //PCA模块0高8位捕捉/比较寄存器
sfr PCAPWM0=0XF2; //PCA模块0的PWM寄存器
sbit CCF0=CCON^0 ; //PCA模块0中断标志位,必须软件清零
sbit CCF1=CCON^1 ; //PCA模块1中断标志位,必须软件清零
sbit CR=CCON^6 ; //PCA计数控制位
sbit CF=CCON^7 ; //PCA计数器溢出标志位

void Init_PWM() //初始化PWM相关的寄存器
{
CCON=0; //PCA控制寄存器清零
CL=0; //PCA计数器低8位寄存器
CH=0; //PCA计数器高8位寄存器
CMOD=0X08; //计数脉冲选择:系统时钟(越高越好),禁止CF位的中断 ??????
CCAPM0=0X42; //8位PWM,无中断
PCAPWM0=0X00; //与CCAP0H,CCAP0L组成9位数
CR=1; //启动PCA计数,必须软件清零
}
void PWM(uchar dutyfactor) //调节占空比子程序
{
CCAP0H=CCAP0L=255-dutyfactor; //控制占空比
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top