?? max532.c
字號(hào):
//-----------------------函數(shù)聲明--------------------------------------------------------
#include "reg51.h"
#include "intrins.h"
//-----------------------管腳聲明--------------------------------------------------------
sbit CS_max532=P1^0;
sbit CLK_max532=P1^1;
sbit DI_max532=P1^2;
sbit DO_max532=P1^3;
sbit LDAC=P1^4; //異步加載DAC輸入,作為同步信號(hào)
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: delay
// 入口參數(shù): N
// 函數(shù)功能:延時(shí)子程序,實(shí)現(xiàn)(16*N+24)us的延時(shí)
// 系統(tǒng)采用11.0592MHz的時(shí)鐘時(shí),延時(shí)滿足要求,其它情況需要改動(dòng)
//--------------------------------------------------------------------------------------------------
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: SEND_1
// 函數(shù)功能: 送1位數(shù)據(jù)"1"
//--------------------------------------------------------------------------------------------------
void SEND_1(void)
{
DI_max532=1;
CLK_max532=1;
_nop_();
CLK_max532=0;
_nop_();
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: SEND_0
// 函數(shù)功能: 送1位數(shù)據(jù)"0"
//--------------------------------------------------------------------------------------------------
void SEND_0(void)
{
DI_max532=0;
CLK_max532=1;
_nop_();
CLK_max532=0;
_nop_();
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: SEND_BYTE
// 入口參數(shù): dd,待發(fā)送的數(shù)據(jù)
// 函數(shù)功能: 送1BYTE數(shù)據(jù)
//--------------------------------------------------------------------------------------------------
void SEND_BYTE(unsigned char dd)
{
unsigned char i;
for (i=0;i<8;i++)
{
if (dd>=0x80) SEND_1();
else SEND_0();
dd=dd<<1;
}
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: SEND_4bit
// 入口參數(shù): dd,待發(fā)送的數(shù)據(jù)
// 函數(shù)功能: 送1BYTE數(shù)據(jù)
//--------------------------------------------------------------------------------------------------
void SEND_4bit(unsigned char dd)
{
unsigned char i;
dd=dd<<4;
for (i=0;i<4;i++)
{
if (dd>=0x80) SEND_1();
else SEND_0();
dd=dd<<1;
}
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: B_only
// 入口參數(shù): Bdata_H,Bdata_L 12位數(shù)據(jù)
// 函數(shù)功能: B通道單獨(dú)轉(zhuǎn)換,A通道輸出任意數(shù)
//--------------------------------------------------------------------------------------------------
void B_only(unsigned char Bdata_H,unsigned char Bdata_L) //B通道數(shù)據(jù)發(fā)送
{
//Bdata_H為DA通道B數(shù)據(jù)高4位
//Bdata_L為DA通道B數(shù)據(jù)低8位
LDAC=1;
SEND_4bit(Bdata_H);
SEND_BYTE(Bdata_L);
LDAC=0;
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: A_only
// 入口參數(shù): Adata_H,Adata_L 12位數(shù)據(jù)
// 函數(shù)功能: B通道輸出零,A通道單獨(dú)轉(zhuǎn)換
//--------------------------------------------------------------------------------------------------
void A_only(unsigned char Adata_H,unsigned char Adata_L) //B通道數(shù)據(jù)發(fā)送
{
//Adata_H為DA通道B數(shù)據(jù)高4位
//Adata_L為DA通道B數(shù)據(jù)低8位
LDAC=1;
SEND_4bit(0);
SEND_BYTE(0); //高12位寫零
SEND_4bit(Adata_H);
SEND_BYTE(Adata_L);
LDAC=0;
}
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: A_only
// 入口參數(shù): Bdata_H,Bdata_L 12位數(shù)據(jù)
// Adata_H,Adata_L 12位數(shù)據(jù)
// 函數(shù)功能: A\B通道同時(shí)轉(zhuǎn)換
//--------------------------------------------------------------------------------------------------
void AB_both(unsigned char Bdata_H,unsigned char Bdata_L,
unsigned char Adata_H,unsigned char Adata_L) //B通道數(shù)據(jù)發(fā)送
{
//Bdata_H為DA通道B數(shù)據(jù)高4位
//Bdata_L為DA通道B數(shù)據(jù)低8位
//Adata_H為DA通道B數(shù)據(jù)高4位
//Adata_L為DA通道B數(shù)據(jù)低8位
LDAC=1;
SEND_4bit(Bdata_H);
SEND_BYTE(Bdata_L); //寫高12位
SEND_4bit(Adata_H);
SEND_BYTE(Adata_L); //寫低12位
LDAC=0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -