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

📄 temperature.c

📁 单片机实行温度 的测量原理的的程序,简单,明了
💻 C
字号:
#include <io8535v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#pragma interrupt_handler ad_handler:15

#define Vref 5.0

const unsigned char tabel[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0x89,0xA3,0x8C,0xC8};
uchar addata;


void delay(uint temp)//10ms,16M晶振
{
	uchar i,j;	
	while(temp--)
	{
		for(j=213;j>0;j--)//1ms,58
			for(i=148;i>0;i--);//1ms,53	
	}	
}

void LEDSCAN(temp)//显示程序
{
 uchar disdata[3] ={0};
 
 disdata[0]=temp/1000;//取最高位
 disdata[1]=temp%1000/100;//取最二位
 disdata[2]=temp%100/10;//取最三位
	
 PORTC|=0x01;//显示第一位
 PORTB=tabel[disdata[0]]&0x7f;
 delay(1);
 PORTC&=0X00;
 
 PORTC|=0x02;//显示第二位
 PORTB=tabel[disdata[1]];
 delay(1);
 PORTC&=0X00;
 
 PORTC|=0x04;//显示第三位
 PORTB=tabel[disdata[2]];
 delay(1);
 PORTC&=0X00;
}

void ad_handler(void)//中断进入
{
     uint Vin;
//	 uint Vref;
 	 addata=ADC;
	 Vin=((float)ADC*Vref/1024)*1000;
	 LEDSCAN(Vin);
	 ADCSR|=BIT(ADSC);
}
void main()//主程序
{
 	 PORTA=0;
	 DDRA=0;
	 PORTC=0x00;
	 DDRC=0xFF;
	 DDRB=0xFF;
	 PORTB=0xFF;
	 ADMUX=0x00;
	 ADCSR=0x80;
	 ADCSR|=BIT(ADIE);
	 //SREG=0x80;
	 SEI();
	 ADCSR|=BIT(ADSC);
	 while(1);
}


⌨️ 快捷键说明

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