×
单片机 > 单片机程序设计 > 详情

MAX525示例程序

发布时间:2020-06-04 发布时间:
|

MAX525示例程序

#include                        //绝对地址访问函数

#include                        //各种不同类型的数学函数 
#include 
#define uchar unsigned char 

sbit P1_0=P1^0; 
sbit P1_1=P1^1; 
sbit P1_2=P1^2; 
sbit P1_3=P1^3; 
sbit P1_4=P1^4; 
sbit P1_5=P1^5; 
sbit P1_6=P1^6; 
sbit P1_7=P1^7; 

/*MAX525完成两路DAC模拟电压输出,待转换的12位二进制数据分别存放在变量dacdac1,dacdac2中*/ 
void dac(unsigned long dacdata1,dacdata2) 

  uchar a=0; 
  unsigned long xdata dacdatrfer=0; 
  P1_6=0; 
  P1=P1&0xdf;                    //片选CS端置低电平 
for(a=0;a<4;a++) 

P1_6=0; 
P1=P1&0xef; 
dacdatrfer=dacdata1; 
dacdatrfer=((dacdatrfer>>(3-a))&0x01)<<3; 
P1=P1|dacdatrfer; 
P1_6=1; 

P1_6=0; 
for(a=0;a<12;a++) 

    P1_6=0; 
P1=P1&0xef; 
dacdatrfer=dacdata2; 
dacdatrfer=((dacdatrfer>>(11-a))&0x01)<<3; 
P1=P1|dacdatrfer; 
P1_6=1; 

P1_6=0; 
P1=P1|0x20; 


/*MAX1247的A/D转换,其中P1_1为片选端,P1_0为时钟输入端,P1_2为数据输入端,P1_3为数据输出*/ 
unsigned int j,i; 
void adc() 

  uchar adcadres; 
  uchar adcadrestrfer; 
  uchar strdata; 
  uchar ldata[12]; 
  P1_1=0; 
  P1_0=0; 
  adcadres=0x9e;                //送控制命令字节 
  for(i=0;i<8;i++) 

adcadrestrfer=adcadres; 
adcadrestrfer=(adcadrestrfer>>(7-i))&0x01; 
P1_3= adcadrestrfer;                //右移一次,送到P1_2口 
P1_0=0;                    //此处为送时钟信号 
for(j=0;j<2;j++);                //空操作,延时 
P1_0=1; 
for(j=0;j<2;j++);                //空操作,延时 
P1_0=0;                    //时钟信号周期等于执行4条指令的时间 

P1_1=0; 
for(j=0;j<2;j++);                    //空操作,延时 
P1_1=0; 
strdata=0; 
P1_0=1; 
for(j=0;j<12;j++) 

    P1_0=0; 
    P1_0=1; 
    strdata=P1_2;                //读出12位串行数据 
    strdata= strdata<    ldata[j]=ldata[j]|strdata; 
   } 
strdata=ldata[j]; 
for(j=0;j<4;j++) 

P1_0=0; 
P1_0=1; 

P1_1=1; 




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容