📄 max262.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 + -