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

📄 max262.h

📁 12位的数字电位器,在参加电子设计大赛的时候用的.
💻 H
字号:
/*****************************************************
工程:程控滤波器MAX262的驱动
日期:07.09.03
******************************************************/
#ifndef _max262_H
#define _max262_H
#define uchar unsigned char
#define uint unsigned int

/*****************定义MAX262端口********************/
sbit max262_d0=P2^5;
sbit max262_d1=P2^4;//数据D0,D1输入口

sbit max262_a0=P2^0;
sbit max262_a1=P2^1;
sbit max262_a2=P2^2;

sbit max262_a3=P2^3;

sbit wr_max262=P1^2;
uchar addr=0;
uchar nn[6]={0};
uchar qq[7]={0};


/***************************************
工程:max262的驱动
功能:直接写进262的
****************************************/
void write_max262(uchar D0,uchar D1)
{
   wr_max262=0;
   max262_d0=D0;
   max262_d1=D1;	//每次写入两个位
   wr_max262=1;
}
/**************************************************
函数:void send_max262(uchar q,uchar n)
功能:用数字写入Q值和N值得到十进制数
     因为只用方式3,所以d0 d1 是固定数  1 0
**************************************************/
void send_max262(uchar a3,uchar n, uchar q)
{
   uchar i;
   
   for(i=0;i<6;i++)
    {
	  nn[i]=n&0x01;
	  n=n>>1;
	}
   for(i=0;i<7;i++)
    {
	 qq[i]=q&0x01;
	 q=q>>1;
	}				   //先把所以数取好


   max262_a3=a3;
   max262_a2=0;
   max262_a1=0;
   max262_a0=0;	      //先写地址

   wr_max262=0;
   max262_d0=1;
   max262_d1=0;  //只选择方式3
   wr_max262=1;


  for(i=0;i<3;i++)	     //写入n值,6位
   {
      addr+=1;
      max262_a0=addr&0x01;
	  max262_a1=addr&0x02;
	  max262_a2=addr&0x04;
	  wr_max262=0;
	  write_max262(nn[2*i],nn[2*i+1]);
	  wr_max262=1;
   }

   addr=0;
   for(i=0;i<3;i++)	     //写入n值,6位
   {
      addr+=1;
      max262_a0=addr&0x01;
	  max262_a1=addr&0x02;
	  max262_a2=addr&0x04;
	  wr_max262=0;
	  write_max262(qq[2*i],qq[2*i+1]);
	  wr_max262=1;
   }

    max262_a0=1;	 //最后一个Q值
	max262_a1=1;
	max262_a2=1;
	wr_max262=0;
	max262_d0=qq[6];
	wr_max262=1;
}
#endif

⌨️ 快捷键说明

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