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

📄 int.c

📁 这是一个利用短信实现抄表的工程的源码,单片机通过串口与TC35通讯.同时单片机通过485与表记通讯,获得表记数据后以短信的形式发给用户.
💻 C
字号:
#include "uart.h"
#include "sfr_r811.h"
#pragma interrupt timer_x
#pragma interrupt timer_y
#pragma interrupt timer_z
#pragma interrupt timer_c

#pragma interrupt uart0_rx
#pragma interrupt uart0_tx
#pragma interrupt uart1_rx
#pragma interrupt uart1_tx
#pragma interrupt xint0
unsigned int timycount[3],seccount;
unsigned char u0count,u1count,timxcount;
char u0tp,u1tp;
#pragma newnews ROM
static const char newnews[]="\r\n+CMTI: ";
/***********************************************************/
void timer_x(void)
{
	timxcount++;
	if(timxcount>=10){timxcount=0;seccount++;}
	if(seccount==65535)seccount=0;
}
void timer_y(void)
{
	timycount[0]++;
	timycount[1]++;
	timycount[2]++;
	if(timycount[0]==62235)timycount[0]=0;
	if(timycount[1]==62235)timycount[1]=0;
	if(timycount[2]==62235)timycount[2]=0;
}
void timer_z(void)
{
}
void timer_c(void)
{
}

void uart0_rx(void)
{       
	u0tp=u0rb;
	u0rxbuf[uirxcount[0]]=u0tp;
	uirxcount[0]++;
	if(uirxcount[0]>=u0RXBUFSIZE) uirxcount[0]=0;
	
	if(u0count<9)
	 {
	   if(u0tp==newnews[u0count])u0count++;
	   else if(u0tp=='\r')u0count=1;
	   else u0count=0;
	 }
	else if(u0count>=9&&u0count<13)
	{
	   news_mem[u0count-9]=u0tp;
	   u0count++;
	}
	
	else if(u0count>=13)
	{  if(u0tp==',')
	    {    	
		u0count++;
                news_mem[u0count-9]='\0';	
	    }
	   else if(u0tp!='\r')
	    {
	   news_index[u0count-14]=u0tp;
	   u0count++;
	    }
	   else if(u0tp=='\r')
	   {
	   news_index[u0count-14]='\0';
	   u0count=0;
	   flag.bit.newmsg=1;
	   }
	} 

	
	
}
void uart0_tx(void)
{    unsigned int i;
	u0tb=*u0txptr;
	*u0txptr=0;
	u0txptr++;
	uitxcount[0]++;
	if(uitxcount[0]>uinumoftx[0])
	{
		stop_u0tx();
		timycount[0]=0;
		start_timery();
		flag.bit.u0txbusy=0;
		//RTS0=1;
	}
}

void uart1_rx(void)
{ 	u1tp=u1rb;
	u1rxbuf[uirxcount[1]]=u1tp;
	uirxcount[1]++;
	if(uirxcount[1]>=u1RXBUFSIZE) uirxcount[1]=0;
	p1_1=0;
	if(u1count<9)
	 {
	   if(u1tp==newnews[u1count])u1count++;
	   else if(u1tp=='\r')u1count=1;
	   else {u1count=0;p1_1=1;}
	 }
	else if(u1count>=9&&u1count<13)
	{
	   news_mem[u1count-9]=u1tp;
	   u1count++;
	}
	
	else if(u1count>=13)
	{  if(u1tp==',')
	    {    	
		u1count++;
                news_mem[u1count-9]='\0';	
	    }
	   else if(u1tp!='\r')
	    {
	   news_index[u1count-14]=u1tp;
	   u1count++;
	    }
	   else if(u1tp=='\r')
	   {
	   news_index[u1count-14]='\0';
	   u1count=0;
	   flag.bit.newmsg=1;
	   }
	}    
	
	
}

void uart1_tx(void)
{
unsigned int i;
   u1tb=*u1txptr;
   *u1txptr=0;
   u1txptr++;
   uitxcount[1]++;
	if(uitxcount[1]>uinumoftx[1])
	{
		stop_u1tx();
		timycount[1]=0;
		start_timery();
		flag.bit.u1txbusy=0;
	}
}
void xint0(void)
{
}

⌨️ 快捷键说明

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