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

📄 main.c

📁 由SPCE061A控制的A/D转换器AD977的驱动程序
💻 C
字号:
//==============================================================//
//工程:AD977ACN驱动程序
//		AD977ACN为AD公司生产的16位串行高精度ADC转换器芯片,输入
//		范围可调,时序可选择,可选为SPI的输出,或者是类似SPI的
//		串行时序,其中可选择内部通讯时钟或者是外部输入时钟,本
//		例程采用外部输入的时钟,采用的模式为:外部时钟输入的无SYNC
//		同步标识串行通讯
//		具体可参考AD977的数据手册中第9页的时序
//连线:
//      IOB0		DATA			输入口			默认下拉输入口
//		IOB1        CLK(DATACLK)	输出口         	默认低电平
//		IOB2		BUSY			输入口         	默认上拉输入口
//		IOB3		CS				输出口         	默认低电平
//		IOB4		RC				输出口         	默认高电平
//		IOB5		SYNC			输入口			默认下拉输入口
//注意:IO端口采用5V供电
//		小丑于2006年3月				Mz出口  时序经典
//==============================================================//

#include "SPCE061A.h"
#include "SPLC501User.h"				//包含SPLC501液晶模组驱动程序的用户接口API函数声明的头文件
#include "Chinese_Table.h"              //包含"电压"两个字字模数据的头文件

Keycode[] = {'0','1','2','3','4','5','6','7','8','9' ,0};
unsigned int uiqianfen;
unsigned int uibaifen;
unsigned int uishifen;
unsigned int uigewei;
unsigned int uiyushu;

int main(void)
{
	   unsigned int i;
 	   float	backdata,fVoltage;
 	   backdata=0;
	   fVoltage=0.000; 
	   LCD501_Init(0x00);	              //初始化LCD端口以及LCD初始化所需要的设置,在SPLC501User.c中定义
	   LCD501_ClrScreen(0);								//整屏清屏
	  
	   LCD501_Bitmap(0,0,(unsigned int *)encoding_00);		//显示"电"
	   LCD501_Bitmap(16,0,(unsigned int *)encoding_01);	//显示"压"
	   LCD501_PutChar(32, 0,':') ;                        //显示":"
	  
 	   AD977ACN_Initial();
 	    *P_Watchdog_Clear = 0x0001;     			//清看门狗 
 	   backdata=AD977ACN_Read();                        //第一次采样不准,丢弃
 	   backdata=0;
 	  
 	   while(1)
 	   {
 	   	  for(i=0;i<16;i++)		                   //采样16次累加				
	         {
		        *P_Watchdog_Clear=0x0001;
		        backdata+=AD977ACN_Read();
	         }
	 backdata /=16;                            //UIDATA/16取平均值							
	fVoltage=(float)backdata/0xffff*5.0;
	
	fVoltage=fVoltage*1000;
	 	 
	 	
	  uiyushu=	fVoltage/1;                 
	  uiqianfen=uiyushu%10;               //取千分位
	  
	  uiyushu=uiyushu/10;               //取百分位
	  uibaifen=uiyushu%10;
	  
	  uiyushu=uiyushu/10;              //取十分位
	  uishifen=uiyushu%10;
	  
	  uiyushu=uiyushu/10;              //取个位
	  uigewei=uiyushu%10;
	  
	  	*P_Watchdog_Clear = 0x0001;     			//清看门狗 
	  
	  LCD501_PutChar(40, 0,Keycode[uigewei]); 
	  LCD501_PutChar(48, 0,'.');   
	  LCD501_PutChar(56, 0,Keycode[uishifen]);  
	  LCD501_PutChar(64, 0,Keycode[uibaifen]);  
	  LCD501_PutChar(72, 0,Keycode[uiqianfen]);  
	  	*P_Watchdog_Clear = 0x0001;     			//清看门狗 
 	   	  
 	   	  *P_Watchdog_Clear=0x0001;
 	   }
}

⌨️ 快捷键说明

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