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

📄 temperature.bak

📁 TI 集成高性能24位A/D转换器的8052 核心单片机MSC1210 内置温度传感器测量代码。
💻 BAK
字号:
#include <REG1210.H>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
extern signed long bipolar(void);
extern void put_string(char code *string);
data char ROM_temp0 _at_ 0x000a;  // For put_string function
data char ROM_temp1 _at_ 0x000b;
extern void putspace4(void);
extern void tx_byte(char);
// recursive digit display routine
void prt_digit(unsigned long int i, signed char d) reentrant
{	unsigned long int j; char c;
	j=i/10; c=i-j*10; d--;
	if (j!=0 || !(d &0x80)) prt_digit(j,d);
	if (d==0) tx_byte('.');
	tx_byte(c+48);
}
// Display long integer number with sign and decimal
void print(signed long int i, unsigned char d) 
{
	if (i<0) { tx_byte('-'); i*=-1;}
	prt_digit(i,d); putspace4();		
}
void main(void)
{
	signed long int data adres, ienob, iu;
   float x,u,sd ; unsigned char j; int i;
   T2CON  = 0x34;   // T2 as baudrate generator 
   RCAP2  = 65535;  // 57600 Baud @ 1.8432MHz
   SCON   = 0x52;   // Async mode 1, 8-bit UART, enable rcvr, TI=1, RI=0
	put_string("\x1b[1;33;46m\x1b[2J\x1b[12CTemperature Sensor\n");
	PDCON &= 0x0f7;			//turn on adc
	ACLK = 1;					// ACLK = 1.8432MHz/(1+1)= 0.9216MHz
	DECIMATION = 0x7ff;	
	ODAC=0;
	ADCON0 = 0x20;			   // Vref on 1.25V, Buff off, BOD off, PGA 1
	ADMUX=0xff;
	ADCON1 = 0x01;				// bipolar, auto, self calibration, offset, gain
	for (j=0;j<5;j++)adres=bipolar(); // discard initial 5 conversions
	while(1){
		adres=0;
		for (j=0;j<10;j++)adres+=bipolar(); // discard initial 5 conversions
		print((((1.25/8388608)*(float)adres-1150e-3)/3750e-6 + 25)*100,2);	
		put_string("degC\n");
	}
}

⌨️ 快捷键说明

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