⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chuankou.c

📁 c51单片机 dac0832 LM324 心电波形输出 
💻 C
字号:
 /* 
DAC0832(c编程) 
[ 2007-7-27 15:59:00 | By: 小刚 ] 
  
DA0832测试程序
 用单片机输出一个数字波形输入到DAC里检测DAC硬件
 P2.7接DAC的CS端,P3.6接WR1, P0口接D
\********************************************************/
#include <AT89X51.H>
#include <intrins.h>
#include <absacc.h>

#define uchar unsigned char
#define data_OUT XBYTE[0x7fff]  // 数据输出口
uchar flag;
 uchar  code table1[]={
0 , 0 , 2  ,4 , 7 , 10 , 14 , 18  ,23  ,25  ,25 , 25 , 25 , 22 , 18 , 14 , 10,  6  ,2 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0  ,0 , 0  ,0 , 0 , 0  ,0 , 0 , 0 , 1 , 3 , 5 , 7 , 9  ,11, 
14 , 17 , 20 , 23 , 23,  23  ,23 , 20  ,16 , 12  ,8 , 4 , 0 , 0 , 0 , 1 , 1 , 1 , 2 , 2 ,
2 , 6  ,10  ,15  ,20  ,25 , 27 , 27 , 27  ,27 , 25 , 23  ,19 ,15 , 11  ,7  ,3  ,0 , 0,
 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,  0 , 0 , 0,  2  ,5  ,8 , 12 , 16 , 20 , 25 , 25 , 25 , 25 , 
24  ,24  ,22 , 23  ,22 , 21 , 20 , 19 , 18  ,17 , 15 , 14 , 12 , 8 , 4,  0,  0 , 1 , 1  ,2 ,
2 , 6 , 9  ,13  ,17  ,21 , 26  ,26  ,26 , 22 , 17 , 12 , 7  ,3 , 0  ,0 , 0 , 0 , 0  ,0 , 2 ,
4,  6 , 8  ,8 , 8 , 6 , 4 , 2 , 0,  0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,  0,
0  ,0 , 0 , 0 , 0 , 0  ,2 , 5 , 8  ,12,  16  ,20  ,26  ,28  ,28 , 28  ,26 , 24 , 22  ,20 ,
18 , 16 , 14 , 11 , 8  ,5 , 3 , 1 , 0  ,0  ,0 , 0,  0,  0  ,0  ,0 , 0  ,0 , 0 , 0 , 0 , 0 ,
1  ,3, 5,  8,  11 , 14  ,17  ,20 , 22 , 22  ,22  ,20 , 18  ,16 , 14  ,12  ,10 , 8 , 6  ,4 , 2 , 
1,0 , 0  ,0,  0  ,0 , 0,  0 , 0  
 };
 uchar  code table2[]={
 0 , 1 , 1 , 2 , 2 , 3  ,3 , 4  ,4 , 5 , 5 , 5  ,4  ,4  ,3  ,3 , 2 , 2,  1 , 1,  0 ,0  ,0  ,5  ,10 , 20, 
 30 , 50 , 60  ,60  ,55 , 50  ,38 , 31 , 25 , 17  ,12 , 6 , 0,  0 , 0,  0,  0,  0  ,0,  1 , 1  ,1,
  1 , 1 , 2 , 2  ,2  ,3  ,3 , 3 , 4  ,4,  4 , 5 , 5 , 5 , 6 , 6 , 7 , 7  ,8 , 8 , 9 ,9 ,10, 10 , 11,
  11 , 12 , 12 , 13 , 13 , 13 , 13  ,12  ,11 , 10,  9,  8 , 7 , 6 , 5  ,4 , 3 , 3 , 1,  1,  0 , 0 , 0,11 
 };



void delay(unsigned  int N)  
{
 unsigned int i; 
 for(i=0;i<N;i++);

}



/****************************数字信号输出*******************/
void conversion_once_0832(unsigned char out_data)
{
 data_OUT = out_data; //输出数据
 delay(10);    //延时等待转换 
}

/****************************三角波信号(一个周期)**********/
//void triangle()
//{
// uchar k;
// for(k=0;k<2000;k++)
//  conversion_once_0832(k);
// for(;k>0;k--)
//  conversion_once_0832(k);
//}

/***************************方波信号(一个周期)***************/
//void pulse()
//{
// conversion_once_0832(0xff);
// delay(1000);
// conversion_once_0832(0x00);
// delay(1000);
//}

void main()
{
  TMOD=0x02; 
  TH0=0x06; 
  TL0=0x06; 
  TR0=1; 
  ET0=1; 
  EA=1;

	
	
	 while(1) 
    { 
   if(P1_0==0) 
        { 
          delay(1000);
          if(P1_0==0) 
            { flag++;if(flag==4)flag=1;
            
             
              while(P1_0==0); 
            } 
        } 


	}
}

void t0(void) interrupt 1 using 0 
{ 
  unsigned int tcnt,i; 
  tcnt++; 
  if(tcnt==200) 
    { 
      tcnt=0; 
      if(flag==1)
      {P2=0xf5;
          conversion_once_0832(table1[i]);i++;
	       if(i==220)i=0;
         }
       if(flag==2)
         
        { P2=0x0f;
          conversion_once_0832(table2[i]);i++;
	      if(i==100)i=0;
         }

         
     }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -