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

📄 last.c

📁 将采集到的模拟数据转换成为数字信号并传给电脑
💻 C
字号:
#include <pic16f7x.h>
unsigned short i=0,j=0;
char flag=1,Temp=0;
unsigned char d[11]={0x18,0xf9,0x2c,0x68,0xc9,0x4a,0x0a,0xf8,0x08,0x48,0xff};
unsigned char cnt=0;
unsigned char AD0[6]={1,10,2,3,4,10},AD1[6]={2,10,3,4,5,10};
unsigned char ADD0=34,ADD1=143;
unsigned char m=0;
unsigned char n=0;
unsigned int p=0;
initial()
{ 
	GIE=1;
    PEIE=1;
	TMR1CS=0;//工作于定时方式
	T1CKPS1=1;
	T1CKPS0=0;//4分频
	PSA=0;
	TMR1IF=0;// 关标志位
	TMR1IE=1; //中断使能
	TMR1H=0xFC;  //设置时间
	TMR1L=0x17;
	TRISB=0X00;
}
ADinitial()
{
	ADCS1=1;
	ADCS0=0; //16M/32
	CHS2=0;
	CHS1=0;
	CHS0=0;//0通道RA0
	PCFG2=0 ;
	PCFG1=0 ;
	PCFG0=0 ;//全部为模拟输入口
	ADON=1;
	TRISA=0xff;
	ADIF=0;
	ADIE=1;
}

del_AD()
{
		AD0[2]=ADD0/100;
		AD0[3]=(ADD0%100)/10;
		AD0[4]=ADD0%10;
		AD1[2]=ADD1/100;
		AD1[3]=(ADD1%100)/10;
		AD1[4]=ADD1%10;
}

RS_ini()
{
	SPBRG=0x19;//波特率为9600
	BRGH=0;//低速模式
	SYNC=0;//异步
	SPEN=1;//串口使能位
	TRMT=0;
	TX9=0;//8位数据
	TRISC6=0;//TX
	TXEN=1;//允许发送
}

delay()
{
	unsigned int zz=0;
	for(zz=0;zz<0x4ff;zz++)
			;
}
void main()
{	
	initial();
	ADinitial();
	RS_ini();
	TMR1ON=1; //使能TMR1
	ADGO=1;
	while(1)
	{	
		del_AD();
	}
}

void interrupt HI_ISR()
{
	if(TMR1IF)
	{	
		TMR1IF=0;//清标志位 以便于下次的判断
		i++;
		TMR1H=0xfc;
		TMR1L=0x17;
		if(i>500)	
			{	
				i=0;
					if(m<6)
					{
						PORTB=d[AD0[m]];
					}
					else if(m<12)
					{
						PORTB=d[AD1[m-6]];
					}
					else if(m>12)
					{
						m=0;
						PORTB=d[AD0[m]];
					}
					m++;
				if(m%2==0)
				{
					TXREG=AD0[0]+0x30;
					delay();
					TXREG=AD0[2]+0x30;
					delay();
					TXREG=AD0[3]+0x30;
					delay();
					TXREG=AD0[4]+0x30;
					delay();
					TXREG='@';
					delay();
					TXREG=AD1[0]+0x30;					
					delay();
					TXREG=AD1[2]+0x30;
					delay();
					TXREG=AD1[3]+0x30;
					delay();
					TXREG=AD1[4]+0x30;
					delay();
					TXREG='@';
				}
			}
	}
    if(ADIF)
	{	
		ADIF=0;
		flag=-flag;
		if(flag==1)	
		{
	        CHS0=0;
			CHS1=0;
			CHS2=0;	
				ADD0=ADRES; 		
				for(j=0;j<0xff;j++);
				ADGO=1;  	
		}
		else
		{
			CHS0=1;
			CHS1=0;
			CHS2=0;
				ADD1=ADRES;
				for(j=0;j<0xff;j++);
		       	ADGO=1;	
		}
	}
}

⌨️ 快捷键说明

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