📄 main.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 + -