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

📄 m_usart.c.bak

📁 PIC单片机模拟串口 11.0592时钟 支持2400波特及以下稳定收发 一位起始
💻 BAK
字号:
#include "m_usart.h"


unsigned char	m_TXBUF;		//(全局)模拟发送缓冲字节
unsigned char	m_RXBUF;		//(全局)模拟接收缓冲字节
bit				m_TX_BIT9;		//(全局)模拟发送第九位
bit				m_RX_BIT9;		//(全局)模拟接收第九位
unsigned char	p_m_TXBUF;		//(全局)发送指针		
unsigned char	p_m_RXBUF;		//(全局)接收指针

bit				m_8_OR_9;		//(全局收发模式标志:1为9位收发,0位8位收发

//bit				m_TXIF;			//(全局发送完标志(1发送完,0正在发)
bit				m_TX_enble;		//发送允许

bit				m_RCIF;			//(全局接收完标志(1接收完,0在接收或等待接收)
bit				m_RX_enble;		//接收允许

unsigned char	m_BT_reLoad_H;	//(全局时钟1初值重载_H
unsigned char	m_BT_reLoad_L;	//(全局时钟1初值重载_L


//---------------------------------------------------------------------------


//初始化模拟串口
//Bt:		波特率代码
//Flag89:	9位还是8位收发
void	Init_m_usart(unsigned char Bt, unsigned char Flag89)
{

	//初始化全局内存变量
	if(Flag89)
	{
		m_8_OR_9=1;	
	}
	else
	{
		m_8_OR_9=0;	
	}//9位接收标志

	p_m_TXBUF=0;		//发送初始
	p_m_RXBUF=0;		//接收初始

	//m_TXIF=1;			//初始发送完
	m_TX_enble=0;		//发送允许(不允许)

	m_RCIF=0;			//初始等待接收
	m_RX_enble=0;		//接收允许(不允许)

	//初始波特率时钟T1

	m_BT_reLoad_H=0xF7;	//(全局时钟1初值重载_H
	m_BT_reLoad_L=0x00;	//(全局时钟1初值重载_L
	T1CON=1;			//不分频,时钟开起来

	//m_BT_reLoad_H=0x00;	//(全局时钟1初值重载_H
	//m_BT_reLoad_L=0x00;	//(全局时钟1初值重载_L
	//T1CON=0x31;			//不分频,时钟开起来

	TMR1H=m_BT_reLoad_H;
	TMR1L=m_BT_reLoad_L;
	TMR1IE=1;			//允许时钟1中断

	//模拟串口的口线输入输出类型设定
	IOStyle_TX_Line=0;	//发送口线类型	(输出)
	TX_Line=1;			//发送口线		(高)


	IOStyle_RX_Line=0;	//接收口线类型	(输出)
	RX_Line=1;			//接收口线		(高)
	IOStyle_RX_Line=1;	//接收口线类型	(输入)

	//接收外部中断(PB端口电瓶变化)开起来
	RBIE=1;
	RBIF=0;
	
}
//---------------------------------------------------------------------------

//模拟串口发送字节
//Ch:		要发送的字节
void 	m_putch(unsigned char Ch)
{
	m_TXBUF=Ch;
	while(m_TX_enble);
	p_m_TXBUF=0;
	m_TX_enble=1;	
}
//--------------------------------------------------------------------------

//模拟接收查询服务
//在背景中执行
//启动接收波特标志
void	SERVER_m_recive(void)
{
	if(0==p_m_RXBUF)
	{
		if(!m_RX_enble)
		{
			if(!RX_Line)
			{
				m_RX_enble=1;
			}
		}
	}
}

⌨️ 快捷键说明

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