📄 max038.c
字号:
//MAX038试验程序
#include <INTRINS.H>
#include <ABSACC.H>
#include <AT89x051.H>
#define uchar unsigned char
#define unint unsigned int
//#################################################
//D0,D1,D2,D3;-----P10,P11,P12,P13;
//A0,A1,A2;--------P14,P15,P16;
//ST;--------------P17; //定义MC145146P2接口引脚
//#################################################
#define MC_A0 P1_4 //定义MC145146P2接口引脚
#define MC_A1 P1_5
#define MC_A2 P1_6
#define MC_ST P1_7
#define MC_D0 P1_0
#define MC_D1 P1_1
#define MC_D2 P1_2
#define MC_D3 P1_3
//#################################################
#define TLC_SDA P1_0 //定义TLC5615接口引脚
#define TLC_SCK P1_1
#define TLC_CS P1_2
//#################################################
//#################################################
void Delayl(uchar T) {uchar S;while (T--) //延时子程序
{for (S=200;S>0;S--){_nop_();_nop_();_nop_();} } }
//*************************************************
void Delays (uchar t){ while (t--) {_nop_();_nop_(); } }//短时间延时子程序
//*************************************************
//*************************************************
void Mc_data(unint a,n,r){P1=0x00;a=a&0x007f;n=n&0x03ff;r=r&0x0fff;
MC_A2=0;MC_A1=0;MC_A0=0; //A寄存器赋值
a<<=8;MC_D3=(bit)(a&0x8000);
a<<=1;MC_D2=(bit)(a&0x8000);
a<<=1;MC_D1=(bit)(a&0x8000);
a<<=1;MC_D0=(bit)(a&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
MC_A2=0;MC_A1=0;MC_A0=1;
a<<=1;MC_D3=(bit)(a&0x8000);
a<<=1;MC_D2=(bit)(a&0x8000);
a<<=1;MC_D1=(bit)(a&0x8000);
a<<=1;MC_D0=(bit)(a&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
//*****************************************
MC_A2=0;MC_A1=1;MC_A0=0; //N寄存器赋值
n<<=4;MC_D3=(bit)(n&0x8000);
n<<=1;MC_D2=(bit)(n&0x8000);
n<<=1;MC_D1=(bit)(n&0x8000);
n<<=1;MC_D0=(bit)(n&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
MC_A2=0;MC_A1=1;MC_A0=1;
n<<=1;MC_D3=(bit)(n&0x8000);
n<<=1;MC_D2=(bit)(n&0x8000);
n<<=1;MC_D1=(bit)(n&0x8000);
n<<=1;MC_D0=(bit)(n&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
MC_A2=1;MC_A1=0;MC_A0=0;
n<<=1;MC_D3=(bit)(n&0x8000);
n<<=1;MC_D2=(bit)(n&0x8000);
n<<=1;MC_D1=(bit)(n&0x8000);
n<<=1;MC_D0=(bit)(n&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
//*****************************************
MC_A2=1;MC_A1=0;MC_A0=1; //R寄存器赋值
r<<=4;MC_D3=(bit)(r&0x8000);
r<<=1;MC_D2=(bit)(r&0x8000);
r<<=1;MC_D1=(bit)(r&0x8000);
r<<=1;MC_D0=(bit)(r&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
MC_A2=1;MC_A1=1;MC_A0=0;
r<<=1;MC_D3=(bit)(r&0x8000);
r<<=1;MC_D2=(bit)(r&0x8000);
r<<=1;MC_D1=(bit)(r&0x8000);
r<<=1;MC_D0=(bit)(r&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0;
MC_A2=1;MC_A1=1;MC_A0=1;
r<<=1;MC_D3=(bit)(r&0x8000);
r<<=1;MC_D2=(bit)(r&0x8000);
r<<=1;MC_D1=(bit)(r&0x8000);
r<<=1;MC_D0=(bit)(r&0x8000);MC_ST=1;_nop_();
_nop_();_nop_();_nop_();_nop_();MC_ST=0; }
//*************************************************
//*************************************************
void Tlc5615(unint d){ uchar i; d<<=6; TLC_CS=0; TLC_SCK=0;//Tlc5615b DA转换程序
for (i=0;i<12;i++){ TLC_SDA=(bit)(d&0x8000);
TLC_SCK=1; d<<=1; TLC_SCK=0; }
TLC_CS=1; TLC_SCK=0; for (i=0;i<12;i++); }
//*************************************************
//*************************************************
main(){ unint a;
Mc_data(0x007f,0x03ff,0x0fff);Tlc5615(0x1ff);
Delayl(0x00);Delays(0x00);
while(1){for(a=0;a<0x03ff;a++){Tlc5615(a);Delays(0x00);} }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -