⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max038.c

📁 该程序用来测试89C51与IDE硬盘的接口
💻 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 + -