📄 max5541.c
字号:
/***************AD5541/MAX5541 C51*****************/
// 最后修改日期:2006年01月11日;调试通过
//
/**************************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCLK= P1^3; //定义串行时钟线所在口 使用时根据自己的需要来定义
sbit DIN= P1^4; //定义串行数据线所在口 使用时根据自己的需要来定义
sbit DA_CS= P1^5;
//extern void delayus(uchar us);
/*void delayms(uchar x)
{
uchar i;
for(i=0;i<x;i++);
}
*/
void ad5541_ck(void){
SCLK=0;_nop_();_nop_();
SCLK=1;_nop_();_nop_();
}
void ad5541(uint da1){
uchar r=16;
uint ch;
ch=da1;
DA_CS=1;
//dacs2=1;
ad5541_ck();
DA_CS=0;
while (r--){
DIN=ch&0x8000;
ad5541_ck();
ch<<=1;
}
DA_CS=1;
_nop_();_nop_();_nop_();
}
main() //发锯齿波
{
uint DA_i=0;
while(1)
{
//ad5541(DA_i++);
ad5541(0xffff); //输出最大值对应10V
//ad5541(0x7fff);
//ad5541(0x0);
//delayms(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -