C8051F020 实现 ADC 采样芯片外的模拟电压,通过 LCD 显示,并通过串口发送到 PC 机
/***************************************************************
功能:实现 ADC 采样芯片外的模拟电压,通过 LCD 显示,并通过串口(J13)发送到 PC 机
注:试验时把 ADC0 的工作基准 VREF0(J7_5 和 J7_6 或 J7_2 和 J7_6)和 LCD 电源跳线(J18_1 和 J18
_2)联接好!
作者:ZDP
时间:2005-11-30
版本:V1.0
用外部基准:
J7
NC 1 2 内部 VREF
外部 VREF 3 4 内部 DAC 工作基准输入
外部 VREF 5 6 内部 ADC0 工作基准输入
外部 VREF 7---8 内部 ADC1 工作基准输入
或用内部基准:
J7
NC 1 2- 内部 VREF
外部 VREF 3 4 | 内部 DAC 工作基准输入
外部 VREF 5 6 | 内部 ADC0 工作基准输入
外部 VREF 7 8- 内部 ADC1 工作基准输入
***************************************************************/
#include <c8051f020.h> // SFR declarations
#include <stdio.h>
#include <INTRINS.H>
//-----------------------------------------------------------------------------
// 16-bit SFR Definitions for 'F02x
//-----------------------------------------------------------------------------
sfr16 DP = 0x82; // data pointer
sfr16 TMR3RL = 0x92; // Timer3 reload value
sfr16 TMR3 = 0x94; // Timer3 counter
sfr16 ADC0 = 0xbe; // ADC0 data
sfr16 ADC0GT = 0xc4; // ADC0 greater than window
sfr16 ADC0LT = 0xc6; // ADC0 less than window
sfr16 RCAP2 = 0xca; // Timer2 capture/reload
sfr16 T2 = 0xcc; // Timer2
sfr16 RCAP4 = 0xe4; // Timer4 capture/reload
sfr16 T4 = 0xf4; // Timer4
sfr16 DAC0 = 0xd2; // DAC0 data
sfr16 DAC1 = 0xd5; // DAC1 data
#define BAUDRATE 115200 // Baud rate of UART in bps
#define SYSCLK 22118400 // SYSCLK frequency in Hz
#define SAMPLE_RATE 50000 // Sample frequency in Hz