?? 5_uart_sst.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 + -