?? serial.h
字號:
/*
*********************************************************************************************************
* uC/OS-II
* 實時內核
*
* (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
* 版權所有
*
* MCU-51 專用代碼
* KEIL C51大模式編譯
*
* 文件名 : SERIAL.H
* 作者 : Jean J. Labrosse
* 改編 : 楊屹 gdtyy@ri.gdt.com.cn 巨龍公司系統集成開發部 2002.09.27
*********************************************************************************************************
*/
//**********************************************************************************
//楊屹 2002/08/20 第一版
//基于中斷的串口驅動及顯示程序
//聯系方法:gdtyy@ri.gdt.com.cn(2003/07/31以前有效)
//**********************************************************************************
//使用方法:(此范例自包含,獨立于其他程序。)
// 1.開頭加入#include <reg51.h>語句,一定要有。
// 2.初始化串口 InitSerial();//本例中為20MHz晶體,300波特率,模式2初始化
// 3.初始化串口緩沖區 InitSerialBuffer();
// 4.使用顯示字節,字,長字,字符,字符串,清屏函數。
//**********************************************************************************
//波特率計算公式:
// TH1=256-(2^SMOD/32*Fosc/12*1/Bound)
// 其中:SMOD=0,1;Fosc=晶體或晶振頻率;Bound=波特率
// 本例中,SMOD=0;Fosc=20*10E6;Bound=300,所以TH1=0x52。
//**********************************************************************************
//書寫風格:
// 1.帶yy前綴標志的函數為楊屹改寫的等效C庫函數。
// 2.單個單詞用小寫,yy定義為前綴,不算一個單詞。
// 3.多個單詞(2個及以上),每個單詞首字母大寫。(有時變量名第一個單詞首字母小寫)
// 4.采用內縮風格,每次縮進8個空格。
//**********************************************************************************
void InitSerial() reentrant;//串口初始化
void InitSerialBuffer(void) reentrant;//串口緩沖區初始化
bit yygetch(unsigned char *ch) reentrant;//從串口緩沖區讀1字節數據
void PrintChar(unsigned char ch) reentrant;//顯示字符
void PrintCh(unsigned char ch) reentrant;//內部使用,不建議用戶使用。
void PrintByte(unsigned char Byte) reentrant;//以十六進制格式顯示1個字節數據
void PrintWord(unsigned int Word) reentrant;//以十六進制格式顯示1個字數據
void PrintLong(unsigned long LongWord) reentrant;//以十六進制格式顯示1個長字數據
void PrintStr(unsigned char *str) reentrant;//顯示字符串
void clrscr() reentrant;//清屏
void yyprintf(char *fmt,...) reentrant;//自編簡單printf等效函數
void PrintN(int n,int b) reentrant;//十進制顯示整形數
void PrintUN(unsigned int n,unsigned int b) reentrant;//十進制顯示無符號整形數
void PrintLN(long n,long b) reentrant;//十進制顯示長整形數
void PrintLUN(unsigned long n,unsigned long b) reentrant;//十進制顯示無符號長整形數
void DispF(float f) reentrant;//用科學記數法顯示浮點數,在float全范圍內精確顯示,超出范圍給出提示。
void PrintW(unsigned long w,char j) reentrant;//科學記數法,顯示十進制尾數和階碼。
void serial(void) reentrant;//串口中斷服務子程序
//收發緩沖區長度
#define LenTxBuf 2000 //Don't too small,because it will cause display abnormal.
#define LenRxBuf 50
#define MaxLenStr 100 /*buf[MaxLenStr+1] for '\0'*/
#define TABNum 4 //TAB鍵移動長度
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -