機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
C51串口輸出輸入函數(shù)
C51串口輸出輸入函數(shù)
 更新時間:2008-7-27 16:15:38  點擊數(shù):2
【字體: 字體顏色

C51串口輸出輸入函數(shù)

外部聲明 ComFun.h
Copyright 2003 http://www.cdle.net
All rights reserved.
明浩 E-mail: pnzwzw@cdle.net
----------------------------------------*/
#include <reg51.h>

//串口初始化 晶振為11.0592M 方式1 波特率300-57600
void InitCom(unsigned char BaudRate)
{
unsigned char THTL;
switch (BaudRate)
{
case 1: THTL = 64; break; //波特率300
case 2: THTL = 160; break; //600
case 3: THTL = 208; break; //1200
case 4: THTL = 232; break; //2400
case 5: THTL = 244; break; //4800
case 6: THTL = 250; break; //9600
case 7: THTL = 253; break; //19200
case 8: THTL = 255; break; //57600
default: THTL = 208;
}
SCON = 0x50; //串口方式1,允許接收
TMOD = 0x20; //定時器1定時方式2
TCON = 0x40; //設(shè)定時器1開始計數(shù)
TH1 = THTL;
TL1 = THTL;
PCON = 0x80; //波特率加倍控制,SMOD位
RI = 0; //清收發(fā)標志
TI = 0;
TR1 = 1; //啟動定時器
}

//向串口輸出一個字符(非中斷方式)
void ComOutChar(unsigned char OutData)
{
SBUF = OutData; //輸出字符
while(!TI); //空語句判斷字符是否發(fā)完
TI = 0; //清TI
}

//向串口輸出一個回車換行
void ComOutEnter(void)
{
SBUF = 0x0D;
while(!TI);
TI = 0;
SBUF = 0x0A;
while(!TI);
TI = 0;
}

//向串口輸出一個字符串(非中斷方式)
void ComOutStr(unsigned char *Str)
{
while(*Str != 0x00) //判斷是否到了字符串的尾部
{
SBUF = *Str; //輸出字符
while(!TI); //空語句判斷字符是否發(fā)完
TI = 0; //清TI
Str++; //字符串指針加一
}
}

//從串口接收一個字符(非中斷方式)
unsigned char ComInChar()
{
unsigned char InData;
while(!RI); //空語句判斷字符是否收完
InData = SBUF; //保存COM緩沖字符
RI = 0; //清RI
return (InData); //返回收到的字符
}

//從串口接收一個定長字符串(非中斷方式,只用于字符需有一個的idata字符串數(shù)組)
//如unsigned char *Str;
//unsigned char i[]="abcd";
//InHandStr = &i;
void ComInStr(unsigned char *Str)
{
while(*Str != 0x00) //判斷是否到了字符串的尾部
{
while(!RI); //空語句判斷字符是否收完
*Str = SBUF; //保存字符
RI = 0; //清RI
Str++; //字符串指針加一
}
}

<!-- #EndEditable -->
 
<!-- #BeginLibraryItem "/Library/頁尾.lbi" -->
  • 上一篇: 淺談C語言教材的若干問題
  • 下一篇: 精確定時--實戰(zhàn)篇
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1