📄 temperature.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 + -