📄 main.c
字号:
/*
****************************************************
****************************************************
*/
#include <reg52.H>
#include "Typedef.H"
#include "UserDef.H"
#include "Disp.H"
#include "ADC0809.H"
/* 常数定义 */
#define T_ADDA 10 //ADDA周期:10ms
#define V_REF_AD0 5.0 //ADC0809的基准电压值
/* 全局变量 */
bit bDispRef = FALSE; //信号灯:显示更新时间到
bit bADDARef = FALSE; //信号灯:ADDA采样时间到
sbit b00 = P2^0;
sbit b01 = P2^1;
/***************************************
****************************************/
void main(void)
{
INT8U AD;
float Volt_AD,Volt_AD0;
//初始化
TMOD = 0x11;
TH0 = (INT8U)(KTDLY>>8);
TL0 = (INT8U)(KTDLY);
TR0 = 1;
ET0 = 1;
EA = 1;
DispInit(); //LCD初始化
AD0809_init(); //AD0809初始化
/* LCD清屏 */
DispCls();
/* 显示固定的文字 */
DispXYSet(0,35);
DispHZ(0); //欢
DispHZ(1); //迎
DispHZ(2); //使
DispHZ(3); //用
DispXYSet(2,20);
DispHZ(4); //光
DispHZ(5); //照
DispHZ(6); //度
DispHZ(7); //测
DispHZ(8); //量
DispHZ(9); //仪
DispXYSet(6,10);
DispHZ(4); //光
DispHZ(5); //照
DispHZ(6); //度
DispFontSet(1);
DispXYSet(4.5,10);
DispStr("AD=");
DispFontSet(1);
DispXYSet(6.5,55);
DispStr("=");
while(TRUE)
{
/* 显示扫描刷新,输出可变的文字 */
if (bDispRef == TRUE)
{
bDispRef = FALSE;
// 显示当前的AD、DA数值
DispFontSet(1);
DispXYSet(4.5,35);
DispInt(AD,3);
// 显示当前的AD、DA所对应的实际电压值
DispFontSet(0);
DispXYSet(6.5,65);
DispFloat(Volt_AD,6); DispStr("cd");
}
/* ADDA采样,进行AD、DA转换并计算AD、DA值对应的实际电压值 */
if (bADDARef == TRUE)
{
bADDARef = FALSE;
if (P2==0xfe)
/*----------------------<<< 修改3 >>>---------------------------------*/
// 根据公式计算AD,DA所对应的实际电压值
{AD = AD0809(0);
Volt_AD = AD / 256.0 * V_REF_AD0*1000.0;}
if (P2==0xfd)
{
AD = AD0809(0);
AD = AD/5;
Volt_AD0 = AD / 256.0 * V_REF_AD0;
Volt_AD =Volt_AD0 /5.0*1000.0;
}
/*--------------------------------------------------------------------*/
}
}
}
/*************************************
定时器中断程序
**************************************/
void int_t0(void) interrupt 1 using 1
{
static int cnt = 0;
TH0 = (unsigned char)(KTDLY>>8);
TL0 = (unsigned char)(KTDLY);
cnt ++;
/* 显示扫描信号灯 */
if ((cnt % T_DISPREF) == 0)
{
bDispRef = TRUE;
}
/* ADDA采样信号灯 */
if ((cnt % T_ADDA) == 0)
{
bADDARef = TRUE;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -