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

📄 dlt645.c

📁 是电表处理芯片CS5460A的单片机程序,已经经过产品的验证.
💻 C
字号:


#include <reg51.h>
#include <main.h>
#include <dlt645.h>
#include <interrupt.h>

extern uchar rs485_buf[MAX_485_LEN];
extern uchar pointer_send,send_len;
extern uchar oper_len,send_offset,chk_sum;
extern bit flag_send_data;

	uchar Get_Chksum(uchar *ps,uchar len)
	{
		uchar i,j=0;
		for(i=0;i<len;i++)
			j+=ps[i];

		if(len>10)
		{
			for(i=10;i<len;i++)
				ps[i]-=0x33;
		}
		return j;		
	}
	
	
/*	
	void Get_Send_Frame_Package(uchar len)
	{
		uchar i,j=0;
		
		rs485_buf[8]|=0x80;
		rs485_buf[9]=len;
		for(i=0;i<len;i++)
			rs485_buf[10+i]+=0x33;
			
		for(i=0;i<len+10;i++)
			j+=rs485_buf[i];				
		rs485_buf[i++]=j;
		rs485_buf[i]=0x16;
	}
*/
	
/*	
	void Send_Frame_To_485(void)
	{
		send_len=rs485_buf[9]+12;			
		pointer_send=1;
		TI=0;
		TB8=Get_Odd_Even_Bit(rs485_buf[0]);

		SBUF=rs485_buf[0];		
		REN_TEN=HIGH;
	}				
*/	

	void Send_Frame_To_485(uchar len,uchar head)
	{
		flag_send_data=1;
		ES=1;
		                           	
		oper_len=len;    			//len of sending data(L)
		send_offset=head;			//offset of sending buffer(spi_buf)
		
		rs485_buf[8]|=0x80;	
		send_len=len+12;			
		pointer_send=1;
		TI=0;
		TB8=Get_Odd_Even_Bit(rs485_buf[0]);
		chk_sum=rs485_buf[0];
				
		REN_TEN=HIGH;
		SBUF=rs485_buf[0];		
	}
	
	
 









































































































































⌨️ 快捷键说明

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