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

📄 icl7135ok1.c

📁 AVR下的对ICL7135的操作,直接读取方式,GCC-AVRstudio环境
💻 C
字号:
#include<avr/io.h>
#include<avr/interrupt.h>
#define uchar unsigned char
#define uint unsigned int


unsigned  char DisTab[]={
0xfc,0x60, 0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,
0xfd,0x61,0xdb,0xf3,0x67,0xb7,0xbf,0xe1,0xff,0xf7,0x00,0x02,
};
unsigned char DisBuffer[9]={20,20,20,20,20,20,20,20,};


unsigned char DScnt;	//STR次数
unsigned char BCD7135[6];//7135数据
unsigned char b1,b2,b3,b4,b5;
unsigned char flag;
unsigned char SAMPLEcnt;//采样次数
#define RH_of_7135 PB4
#define set_RH_of_7135 PORTB |= _BV(RH_of_7135);
#define clr_RH_of_7135 PORTB &=~ _BV(RH_of_7135);

#define CLK	PB6
#define DAT	PB7

#define set_clk		PORTB |= _BV(CLK);
#define clr_clk		PORTB &= ~_BV(CLK);
#define set_dat		PORTB |= _BV(DAT);
#define clr_dat		PORTB &= ~_BV(DAT);
//模拟串口发送数据
void send_data(uchar dat)
{
	uchar bits;
	clr_dat;
	set_clk;
	for(bits=0;bits<8;bits++)
	{
		if(dat & 0x01)
		{
			set_dat;
		}else 
			{
				clr_dat;
			}
		clr_clk
		set_clk;
		dat>>=1;
	}

}
//串口显示
void SelDis(void)
{
	uchar sel;
	uint i;
	for(sel=0;sel<8;sel++)
	{
		send_data(DisTab[DisBuffer[sel]]);
	}
	//for(i=0;i<40000;i++);
}
void initAVR(void)
{
	PORTB=0xff;	//PB口输出
	DDRB=0xff;

	PORTA=0x00;
	//DDRA=0x00;

	MCUCR |= _BV(ISC01)+ _BV(ISC11);//中断控制寄存器INT1,0上升沿触发
	GICR |= _BV(INT0) + _BV(INT1);	//通用中断控制寄存器,使能外部中

	//TCCR0=0x19;     //为CTC PWM模式,比较匹配输出,分频系数为1
	//TIMSK=0x00;     //定时器0不允许定时中断 
	//TIFR=0x00;      //清除定时器0中断标志位
	//TCNT0=0x00;
    //OCR0=0x10;      //输出比较寄存器(125Khz)
	//SREG=0x80;
	sei();
	set_RH_of_7135;	//启动转换
}
int main()
{	
	initAVR();
	DisBuffer[0]=0;
//	SelDis();
	
	while(1)
	{
		if(flag==1)
		{
			cli();
			flag=0;
			
			DisBuffer[3]=b1;
			DisBuffer[4]=b2;
			DisBuffer[5]=b3;
			DisBuffer[6]=b4;
			DisBuffer[7]=b5;
			SelDis();			
			set_RH_of_7135;
			sei();	
		}
		;
	}
}
SIGNAL(SIG_INTERRUPT0)	//外部中断0服务程序
{
	
DScnt++;
	BCD7135[DScnt]=PINA;
	if(DScnt>=5)
	{
		SREG=0x00;
		DScnt=0;
		flag=1;
		clr_RH_of_7135;//7135转换保持
		b1=BCD7135[1] & 0x01;
		b2=BCD7135[2] & 0x0f;
		b3=BCD7135[3] & 0x0f;
		b4=BCD7135[4] & 0x0f;		
	
		//sei();
	}
	
}

⌨️ 快捷键说明

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