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

📄 datlv5618.c

📁 DATLV5618.rar
💻 C
字号:
  /*********************************************
1.功能:  本程序针对74165驱动芯片键盘驱动程序
2.I/O脚使用
				3个
3.调试环境:12M晶振(51系列12时钟模式)
			

3.程序大小(ROM估计):
				
4.数据大小(RAM估计):

5.运行时间(与调用函数有关):
***********************************************/
//
//#define  __DATLV5618_DEBUG__
#ifdef __DATLV5618_DEBUG__
 
  	#include<wywcomm.h>
	
	#include<REGX52.H>



	sbit io_DAdin     = P2^6;	  // 串行数据,单向通信(输入)
	sbit io_DAsclk    = P2^5;	  // 串行通信时钟,下降沿有效
	sbit io_DAcs      = P2^7;	  // AD片选信号,低电平有效

	//此模块调用其它模块的外部变量和函数的声明(此程序无)
     
//  #include  "E:\diansai2006\ts128647921chuank\src\ts128647921chuank.h"
//  #include  "E:\diansai2006\ADTLC2543\src\ADTLC2543.h"


	#define DELAY1US_M  _nop_()

	#include  "E:\diansai2006\chengxu\delaycomm\src\delaycomm.h"
#else 

	 #include  "system.h"	  //所有的项目用相同的系统头文件,但存放的路径不同,各自存放在对应的项目文件夹。


#endif


//此模块的宏定义(常数等)


//此模块必要的库函数包含(include)

#include<intrins.h>


//全局变量(静态或一般)的定义

 

	
//以下为函数定义



void v_DATLV5618A_f(uint8 x,uint16 shu)
//功能:进行DA转换并输出模拟信号
//说明:输入: x  表示:选择DA输出的通道,输入范围:1xx0、0xx0、0xx1、x1xx、x0xx、xx0x、xx1x(二进制)
//							 0xx0(0)表示:写锁存器B 和 缓冲器(B),			DAC B 单独输出。
//							 1xx0(8)表示:写锁存器A 和 缓冲器(B)写锁存器B,	DAC A 输出(B同时更新)。
//							 0xx1(1)表示:缓冲器(B),						DAC A 与 DAC B 都不输出。
//							 xx0x表示:正常操作
//							 xx1x表示:断电方式
//							 x0xx表示:快速模式
//							 x1xx表示:慢速模式
//      输入:shu 表示:一个无符号16位DA输出数。输入范围:0~4095。
//
//备注:1、当要使DAC A、DAC B同时有输出,则必须先将DAC B的数据写到缓冲器(B),
//		   之后写锁存器A 和 缓冲器(B)写锁存器B,
//		   即需要写两次:v_DATLV5618A_f(0xx1,DAC B)、v_DATLV5618A_f(1xx0,DAC A)。
//      2、1xx1表示:保留
//--------------------------------------------------------

{
 uint8 i;	
 io_DAcs=0;
 x<<=4; shu<<=4;

 for(i=0;i<16;i++)
 	{
	 
    io_DAsclk = 1;   
	DELAY1US_M;

	if(i < 4) {x <<= 1;io_DAdin = CY;}
	
	else      {shu <<= 1; io_DAdin=CY; }
	
	DELAY1US_M;

	io_DAsclk = 0;

	DELAY1US_M;
	DELAY1US_M; 
	 }

  io_DAsclk = 1;
 io_DAcs=1;

 v_DelayX10us_f(3);
}








#ifdef 	__DATLV5618_DEBUG__

void main(void)
{ 
 uint16 i;

// const uint8 code xianshi[][16]={"DA/AD 程序测试:","基准电压为 2.77v","选择模拟通道:  ","转换电压        "};
 

  
//  v_LcdWriteCharIni_f(); 
// v_LcdWriteCharScreen_f(xianshi); 


// v_LcdWriteChar_f(0x27,"10");
																									 
 do{



 for(i=0;i<2048;i++)  {v_DATLV5618A_f(1,i);
 					   v_DATLV5618A_f(8,i);  
					 //  v_LcdWriteNumber_f(0x37,3,u16_ReadADTLC2543_f(10));
					   v_DelayX10ms_f(10);}
 
  for(i=2048;i>=1;i--)  {v_DATLV5618A_f(1,i);
  						v_DATLV5618A_f(8,i); 
					//	v_LcdWriteNumber_f(0x37,3,u16_ReadADTLC2543_f(10));
						v_DelayX10ms_f(10);}

 }while(1);
 }


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -