新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)C語言程序設(shè)計: 單片機(jī)與 PC 通信

單片機(jī)C語言程序設(shè)計: 單片機(jī)與 PC 通信

作者: 時間:2013-10-29 來源:網(wǎng)絡(luò) 收藏

/* 名稱:與 PC 通信

說明:可接收 PC 發(fā)

送的數(shù)字字符,按下

K1 鍵后,單片機(jī)可向 PC 發(fā)送

字符串。在 Proteus 環(huán)境下完成

本 實 驗 時 , 需 要 安 裝 Virtual

Serial Port Driver 和串口調(diào)試助

手。本例緩沖 100 個數(shù)字字符,

緩沖滿后新數(shù)字從前面開始存放(環(huán)形緩沖)。

*/

#includereg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar Receive_Buffer[101]; //接收緩沖


uchar Buf_Index=0;

//數(shù)碼管編碼

//緩沖空間索引


uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

//延時

void DelayMS(uint ms)

{

uchar i;

while(ms--) for(i=0;i120;i++);

}

//主程序

void main()

{

uchar i;

P0=0x00;

Receive_Buffer[0]=-1;

SCON=0x50; 串口模式 1,允許接收

TMOD=0x20; //T1 工作模式 2

TH1=0xfd; //波特率 9600

TL1=0xfd;

PCON=0x00; 波特率不倍增

EA=1;EX0=1;IT0=1;

ES=1;IP=0x01;

TR1=1;

while(1)

{

for(i=0;i100;i++)

{ //收到-1 為一次顯示結(jié)束

if(Receive_Buffer[i]==-1) break;

P0=DSY_CODE[Receive_Buffer[i]];

DelayMS(200);

}

DelayMS(200);

}

}


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉