📄 luyin2.c
字号:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define ulong unsigned long
#define ADC0809 XBYTE[0x7fff]
#define DAC0832 XBYTE[0xbfff]
#define RAM XBYTE[0xc000]
sbit P32=P3^2;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P15=P1^5;
sbit P16=P1^6;
sbit P17=P1^7;
uchar shijian=0,ly=0,hf=0,anjian=0; // anjian =1 2 3 4 分别对应 录音,停止,回放,停止
uchar xdata *point; //怎样把62256的初地址赋给 p
uchar gw=0;
ulong ram=0;
void delay(void)
{
uchar i,m;
for(i=0;i<100;i++)
{
for (m=0;m<100;m++)
;
}
}
void timer1(void) interrupt 3
{
//TR1=0;
//adc0809 eoc 需要否?
if(anjian==1)
{
ly=1;
hf=0;
ADC0809=0X00;
}
else if(anjian==3)
{
ly=0;
hf=1;
}
//TR1=1;
}
void int0(void) interrupt 0
{
delay();
while (P32==0) // 若若按键不释放,则等待
{;}
anjian++;
if(anjian>=5)
anjian=1;
delay();
}
void luyin(void)
{
uchar adnum;
TH1=0X83; //TIMER1 125us
TL1=0X83;
P10=0;
P11=0;
P16=1; //红指示灯亮
P17=0;
P15=0; // 选择AD->FILRE->RAM
TR1=1;
gw=0;
ADC0809=0x00;
point=&RAM;
while(anjian==1)
{
if(ly==1)
{
adnum=ADC0809;
*point=adnum;
point++;
ram++;
if(ram==0x1fff)
{
gw++;
if(gw==0)
{
P10=0;
P11=0;
}
else if(gw==1) //62256 高位选择
{
P10=1;P11=0;
}
else if(gw==2)
{
P10=0;P11=1;
}
else if(gw==3)
{
P10=1;P11=1;
}
if(gw==4)
{
anjian++;
}
point=&RAM;
ram=0;
}
ly=0;
}
;
}
}
void huifang(void)
{
uchar danum;
TH1=0X83; //TIMER1 125us
TL1=0X83;
P16=0;
P17=1; // 绿指示灯亮
P15=1;// 选择DA->FILRE->LAM386
TR1=1;
gw=0;
point=&RAM;
ram=0;
while (anjian==3)
{
if(hf==1)
{
danum=*point;
DAC0832=danum;
point++;
ram++;
if(ram==0x1fff)
{
gw++;
if(gw==4)
{
gw=0;
}
if(gw==0)
{
P10=0;
P11=0;
}
else if(gw==1) //62256 高位选择
{
P10=1;P11=0;
}
else if(gw==2)
{
P10=0;P11=1;
}
else if(gw==3)
{
P10=1;P11=1;
}
point=&RAM;
ram=0;
}
hf=0;
}
;
}
}
void main(void)
{
//P32=0;
P1=0x00;
P10=0;
P11=0;
P16=0;
P17=0;
TMOD=0x21; //计时器 0 1 分别工作于方式 1,2
//TH1=0X93; //TIMER1 125us
//TL1=0X93;
EA=1;
EX0=1;
ET0=1;
ET1=1;
while(1)
{
if(anjian==1)
luyin();
else if(anjian==2||anjian==4)
{
P16=0;
P17=0;
}
else if(anjian==3)
huifang();
else
;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -