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

📄 rs485.c

📁 一个超全的仿真程序含C源码,包括1602LED显示,两位共阴数码管显示,ADC0809模块转换,拔码地址开关,18B20温度显示,max485联机通迅,max232串口通迅
💻 C
字号:
/****************************************Copyright (c)**************************************************
**                               广州周立功单片机发展有限公司
**                                     研    究    所
**                                        产品一部 
**
**                                 http://www.zlgmcu.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名: PCF8563.C
**创   建   人: 叶皓贲
**最后修改日期:  2003-3-4
**描        述: DP-1581的8563T及7289a键盘LED演示程序
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 叶皓贲
** 版  本: 1.0
** 日 期: 2003-3-4
** 描 述: DP-1581演示程序
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版  本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人: 
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

#include "REG52.h"

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};


sbit KEY_INT=P3^2;
sbit RS485_RE=P3^0;

sbit led1=P1^0;
sbit led2=P1^1;
bit rec_data;

unsigned char rec_temp=1;

/* 全局变量 */

unsigned char disp_buf[8]={0,0,0,0,0,0,0,0};

/*********************************************************************************************************
** 函数名称: 	display
** 功能描述: 	7298A led显示
** 输 入: *sd :	显示缓冲区的头地址
**         
** 输 出: 0 :	OK;
**         1 :	FAIL;
** 全局变量:	无
** 调用模块: 	ZLG7289_SendBuf
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

void dispchar(char infotext)
{

	if (led1==0)
	{
		led2=0;
		P2=dispcode[infotext/10];
		delay02s();
		led1=1;

    } else
	{
		led1=0;
		P2=dispcode[infotext%10];
		delay02s();
		led2=1;
	}
	delay02s();

}

unsigned char DelayNS(unsigned char  no)
{ 
	unsigned char  i,j;					//延时参数

  	for(; no>0; no--)
  	{ 
		for(i=0; i<100; i++)
     		for(j=0; j<100; j++);
  	}
  	return 0; 
}

/*********************************************************************************************************
** 函数名称: 	delay
** 功能描述: 	短软件延时
** 输 入: j :	延时参数,值越大时延时越久
**         
** 输 出: 0 :	OK;
**         1 :	FAIL;
** 全局变量:	无
** 调用模块: 	无
**
** 作 者: 叶皓贲
** 日 期: 2003-3-4
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
unsigned char  delay(unsigned char  j)
{
  	unsigned char  k,l;
  	for(l=0;l<=j;l++)
    	for(k=0;k<=250;k++);
	return 0;
}


void main()
{
	unsigned char key;
	rec_data=0;
	
	//====设置波特率===================
	delay(100); 
	TMOD = 0X20;
	SCON=0X50;
	TH1=0XFA;
	TL1=0XFA;
	PCON=0X80;
	TR1=1;
	EA=1;
	ES=1;

	RS485_RE=0;

	while(1)
	{
	/*	if(KEY_INT==0)
		{
			key=ZLG7290_GetKey();
			delay(20);
 //		    display_send(key);
			RS485_RE=1;
			SBUF=key;
			delay(30);
		}
*/

		if(rec_data)
		{

			rec_data=0;
			rec_temp=SBUF;
			dispchar(rec_temp);
		//	dispchar(rec_temp);
		//	display_rec(rec_temp);
            if (rec_temp==23)
				{
			//		dispchar(rec_temp);

				}	
			delay(20);
		}

	}
}

void Serial_ISR() interrupt 4
{
	if(TI)
	{
		TI=0;
		RS485_RE=0;
	}
	else
	{
		RI=0;
		rec_data=1;
		rec_temp=SBUF;
      led1=0;
      led2=1;

	}
}

⌨️ 快捷键说明

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