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

📄 5_uart_sst.h

📁 用SST89系列单片机实现6个UART串口的源程序
💻 H
字号:
//===========================SST MCU扩展的5个UART使用说明==============================
//	本例程是使用SST MCU(SST89E/V52RD,54RD,58RD,516RD)的特殊硬件功能做的,新增加2个扩展UART的功能.
//  扩展UART的特点:采用全双工方式,即:收发不用分时;采用半双工方式,可扩展5个新的UART
//  
//  1.发送和接收均采用中断方式,不占用标准8052的资源(定时器,硬件中断,RAM),
//    占用的资源均是SST MCU的特殊资源,因此这个例子只适合SST的单片机,不能用于其它非SST的MCU
//	2.发送采用UART4_SEND_OUT(data)函数,直接取要发送的数据即可.
//	3.接收采用中断方式接收,接收的数据放在自己定义的变量"UART4_SBUF"单元内.
//	4.使用本例程请参考MAIN.C函数.//
//		4.0	 加入本文件进行一些函数的声明和设置参数(晶振频率,通讯的波特率,缓冲区的大小,UART的I/O口定义)
//		4.2  对扩展UART进行初始化和打开:
//					UART4_INIT(); // 初始化UART4
//					UART4_RX_ENABLE(); // 允许UART4接收
//		4.3  接收首先查询UART通道的数据接收到标志--UART4_RI,若为1,说明已接收到数据,则从UART4_SBUF单元取出数据即可
//			  if (UART4_RI)				//已经接收到数据,将接收到的数据存入UART4_BUF的内存中
//					{	UART4_RI = 0;   // 清除接收标志,UART4_RI这个标志在接收到一个字节后会自动置1
//						UART4_BUF[] = UART4_SBUF; // 取出接收到的数据,送到缓冲区内
//					}
//	5. 本示例可用串口调试串口进行测试,上电开始即会发送--"12"2个字符到PC,
//		然后从PC端发送一串数据到UART,应在马上可收到返回的数据,从而验证了UART的收发结果.
//		然后再换成其余4个UART的I/O,应都能正常工作.
//  6.  在11.0592M晶振,双倍速模式下,波特率为9600,在单倍速模式下,波特率为4800,
//		对应的波特率和晶振的关系,在单倍速模式下:
//      4800--11.0592Mhz;     9600--18.432Mhz;    19200--40MHZ  
//===============================================================================================
//			香港弘微科技有限公司(SPAC)
//			技术支持:田伯运  0755-26010579    andy.tian@spacltd.com.cn
//===============================================================================================  

#ifndef __5_UART_SST_H__
#define __5_UART_SST__

#include <SST89x5xxRD2.H> // SFR声明

//--------------------------------------------------------------------
//扩展UART用到的硬件定义
//--------------------------------------------------------------------
//----------------------晶振和波特率可以根据实际改变------------------
#define BAUD_RATE 4800      //4800--11.0592Mhz,14.7456Mhz//9600--18.432Mhz	//19200--40MHZ  //57600 // 用户定义的UART0波特率
#define SYSCLK 	11059200	//40000000	//14745600	//18432000	//11059200	//18432000 // 系统时钟取自外部18.432MHz晶体

//--------------UART0通道所用的I/O管脚(暂时不能改变)-----------------
sbit UART0_RX = P1^3; // UART0 接收引脚,固定管脚,不能更换
sbit UART0_TX = P2^0; // UART0 发送引脚,可随需要更换为其它管脚
//--------------UART1通道所用的I/O管脚(暂时不能改变)-----------------
sbit UART1_RX = P1^4; // UART1 接收引脚,固定管脚,不能更换
sbit UART1_TX = P2^1; // UART1 发送引脚,可随需要更换为其它管脚
//--------------UART2通道所用的I/O管脚(暂时不能改变)-----------------
sbit UART2_RX = P1^5; // UART2 接收引脚,固定管脚,不能更换
sbit UART2_TX = P2^2; // UART2 发送引脚,可随需要更换为其它管脚
//--------------UART3通道所用的I/O管脚(暂时不能改变)------------------
sbit UART3_RX = P1^6; // UART3 接收引脚,固定管脚,不能更换
sbit UART3_TX = P2^3; // UART3 发送引脚,可随需要更换为其它管脚
//--------------UART1通道所用的I/O管脚(暂时不能改变)-----------------
sbit UART4_RX = P1^7; // UART4 接收引脚,固定管脚,不能更换
sbit UART4_TX = P2^4; // UART4 发送引脚,可随需要更换为其它管脚
//--------------------------------------------------------------------
//全局变量
//--------------------------------------------------------------------
extern unsigned int TIME_COUNT;			//将定义改为变量,以便他人修改
//--------------UART0通道所用的变量-----------------------------------
extern  bit UART0_RI; // 不能用字节变量,UART0接受完成标志
extern  bit UART0_TI; // 不能用字节变量,UART0 发送完成标志
extern   char UART0_SBUF; // UART0 发送和接收数据缓冲器
//--------------UART1通道所用的变量-----------------------------------
extern   bit UART1_RI; // UART1接受完成标志
extern   bit UART1_TI; // UART1 发送完成标志
extern   char UART1_SBUF; // UART1 发送和接收数据缓冲器
//--------------UART2通道所用的变量-----------------------------------
extern   bit UART2_RI; // UART2接受完成标志
extern   bit UART2_TI; // UART2 发送完成标志
extern   char UART2_SBUF; // UART2 发送和接收数据缓冲器
//--------------UART3通道所用的变量-----------------------------------
extern   bit UART3_RI; // UART3接受完成标志
extern   bit UART3_TI; // UART3 发送完成标志
extern   char UART3_SBUF; // UART3 发送和接收数据缓冲器
//--------------UART1通道所用的变量-----------------------------------
extern   bit UART4_RI; // UART4接受完成标志
extern   bit UART4_TI; // UART4 发送完成标志
extern   char UART4_SBUF; // UART4 发送和接收数据缓冲器

//--------------------------------------------------------------------
// 函数原型
//--------------------------------------------------------------------
//--------------UART0通道所用的函数-----------------------------------
extern  void UART0_INIT(); // UART0初始化程序
extern  void UART0_RX_ENABLE(); // UART0接收允许程序
extern  void UART0_SEND_OUT(unsigned char data_send); // UART0发送允许程序
//--------------UART1通道所用的函数-----------------------------------
extern  void UART1_INIT(); // UART1初始化程序
extern  void UART1_RX_ENABLE(); // UART1接收允许程序
extern  void UART1_SEND_OUT(unsigned char data_send); // UART1发送允许程序
//--------------UART2通道所用的函数-----------------------------------
extern  void UART2_INIT(); // UART2初始化程序
extern  void UART2_RX_ENABLE(); // UART2接收允许程序
extern  void UART2_SEND_OUT(unsigned char data_send); // UART2发送允许程序
//--------------UART3通道所用的函数-----------------------------------
extern  void UART3_INIT(); // UART3初始化程序
extern  void UART3_RX_ENABLE(); // UART3接收允许程序
extern  void UART3_SEND_OUT(unsigned char data_send); // UART3发送允许程序
//--------------UART4通道所用的函数-----------------------------------
extern  void UART4_INIT(); // UART4初始化程序
extern  void UART4_RX_ENABLE(); // UART4接收允许程序
extern  void UART4_SEND_OUT(unsigned char data_send); // UART4发送允许程序

#endif

⌨️ 快捷键说明

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