资源简介
c8051f350 24位AD采集 4通道
代码片段和文件信息
/**********************************************************************************
爱芯电子 淘宝店
qq:470676567
***********************************************************************************/
//1个通道和1个DS18B20成功
#include “C8051F350.h“
#include // Standard I/O Library
#include
#include
//-----------------------------------------------------------------------------
//
#define uchar unsigned char
#define BAUDRATE 115200 // UART0 Baudrate (bps)
#define SYSCLK 24500000 //系统时钟
#define MDCLK 2457600 // 调制时钟 ADC性能最佳规定
#define OWR 10 // desired Output Word Rate in Hz ADC0 SINC3中抽取比1920,增益128
#define VREF 2.5 // Internal VREF (x 10^-2 V)
#define CLCS 1 // 测量次数
//sbit LED0 = P0^6; // LED0=‘1‘ means ON
//sbit LED1 = P0^7; // LED1=‘1‘ means ON
//sbit SW2 = P1^0;
sbit DataPortDS1820= P1^1;
sbit sw= P1^7;
long xdata sample_array[50]; // SW2=‘0‘ means switch pressed
unsigned char temp1lowtemp1hightemp2lowtemp2high;
float v1;
signed int newtemp;
//-----------------------------------------------------------------------------
// 函数原形定义
void PORT_Init(void);
void SYSCLK_Init (void);
void ADC0_Init (void);
void ADC0_Init1 (void);
ADC0_Sigle_Channel_ISR(uchar Channel); //查询采样时使用
void UART0_Init (void);
void Delay1us(unsigned char us);
void Delay15us(void);
void Delay10us(void);
bit RstDS1820(void);
//bit RstDS18201(void);
void WriteDS1820(unsigned char ch);
//void WriteDS18201(unsigned char ch);
unsigned char ReadDS1820(void);
//unsigned char ReadDS18201(void);
void GetTempValue(void);
void PORT1IN(void);
void PORT1OUT(void);
//*****************************************************************************
// 主程序
//
void main(void)
{
float t1t2;
float chanel1chanel2chanel3chanel4tempv;
float buchang;
PCA0MD &= ~0x40; // 禁止看门狗使能
PORT_Init();
SYSCLK_Init();
ADC0_Init ();
UART0_Init ();
EA = 1;
//printf(“\n\n\nMeasurements using the 24-bit ADC in C8051F350\n“);
//printf(“\nCalibrating ...\n“);
while (1)
{
GetTempValue();
// ADC0_Init ();
//ADC0_Sigle_Channel_ISR(0x08); //查询采样时使用 AIN0.0正输入
ADC0_Sigle_Channel_ISR(0x01); //AIN0.0and GND
chanel1=v1;
ADC0_Sigle_Channel_ISR(0x23); //AIN0.1and GND
chanel2=v1;
ADC0_Sigle_Channel_ISR(0x45); //AIN0.1and GND
chanel3=v1;
ADC0_Sigle_Channel_ISR(0x67); //AIN0.1and GND
chanel4=v1;
//ADC0_Sigle_Channel_ISR(0xff); //AIN0.2and 3
//tempv=v1;
//ADC0_Sigle_Channel_ISR(0x01);
//printf(“\n“) ;
newtemp=(temp1high<<8)|temp1low;
buchang=newtemp*0.062;
//t1=390.1808*chanel1-184.304; //通道1的数据用来测炉温
//t1=81.25*(chanel1*1000/118.69-4);
//t2=0.2265+24152.109*chanel2+67233.424*chanel2*chanel2+buchang;//用来测液体温度
printf(“T:%4.2f|%5.4f|%7.6f|“buchangchanel1chanel2);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-01-06 22:09 2\
文件 19243 2013-01-06 22:08 2\350电炉调试
文件 10665 2013-01-04 22:08 2\350电炉调试(128).hex
文件 23274 2013-01-06 22:08 2\350电炉调试.M51
文件 10886 2013-01-06 22:08 2\350电炉调试.hex
文件 63 2013-01-06 22:08 2\350电炉调试.lnp
文件 1236 2013-01-06 22:09 2\350电炉调试.plg
文件 71062 2013-01-06 22:09 2\350电炉调试.uvgui.lw
文件 71054 2013-01-06 21:42 2\350电炉调试.uvgui_lw.bak
文件 7123 2013-01-06 22:09 2\350电炉调试.uvopt
文件 13501 2013-01-06 21:21 2\350电炉调试.uvproj
文件 7125 2013-01-06 21:42 2\350电炉调试_uvopt.bak
文件 13471 2013-01-04 22:18 2\350电炉调试_uvproj.bak
文件 19 2013-01-04 23:23 2\ExtDll.iex
文件 6376 2009-05-07 14:37 2\STARTUP.A51
文件 14048 2013-01-06 22:08 2\STARTUP.LST
文件 749 2013-01-06 22:08 2\STARTUP.OBJ
文件 20974 2013-01-06 22:08 2\main.LST
文件 18927 2013-01-06 22:08 2\main.OBJ
文件 12233 2013-01-06 22:08 2\main.c
评论
共有 条评论