找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6212|回復(fù): 5
收起左側(cè)

單片機(jī)與PC機(jī)通訊(C語(yǔ)言)

[復(fù)制鏈接]
ID:51707 發(fā)表于 2013-7-11 02:41 | 顯示全部樓層 |閱讀模式
PC機(jī)發(fā)送數(shù)據(jù)給單片機(jī),然后單片機(jī)將數(shù)據(jù)返發(fā)給PC機(jī)!硬件介紹:P0口接LED燈,P3.1與P3.0接串口通訊端!
#include <reg52.h>//頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
bit a;//定義一個(gè)變量位
uchar yin;//定義一個(gè)暫存器

/**************主函數(shù)************/
void main()
{
TMOD=0X20;//設(shè)置寄存器1工作方式為2
TR1=1;//打開(kāi)定時(shí)器1
TH1=0XFD;//賦值給TH1
TL1=0XFD;//賦值給TL1,波特率為9600
SM0=0;//設(shè)置串口工作方式為1
SM1=1;//設(shè)置串口工作方式為1
REN=1;//打開(kāi)允許接收控制端
EA=1;//打開(kāi)總中斷
ES=1;//打開(kāi)串口中斷
while(1)
{
  if(a)//判斷位是否為1,若為1就執(zhí)行下語(yǔ)句
  {
   a=0;//將位置1
   ES=0;//串口中斷關(guān)掉,防止它發(fā)送數(shù)據(jù)時(shí)又會(huì)產(chǎn)生中斷,造成發(fā)送死循環(huán)。
   SBUF=yin;//將暫存器數(shù)據(jù)給SBUF寄存器
   while(TI==0);//判斷數(shù)據(jù)是否發(fā)送完成了?
   TI=0;//將發(fā)送標(biāo)志位清0
   ES=1;//將中斷打開(kāi),以下一次發(fā)送數(shù)據(jù)
  }
}
}

/**************中斷服務(wù)子程序************/
void yin1() interrupt 4
{
RI=0;//有接收到數(shù)據(jù)后就清0
P0=SBUF;//將數(shù)據(jù)給P0
yin=SBUF;//將數(shù)據(jù)給yin暫存器
a=1;//將標(biāo)志位置1
}
回復(fù)

使用道具 舉報(bào)

ID:59867 發(fā)表于 2014-4-2 14:56 | 顯示全部樓層
不錯(cuò)喔
加油
回復(fù)

使用道具 舉報(bào)

ID:62967 發(fā)表于 2014-6-15 14:30 | 顯示全部樓層
參考下                        
回復(fù)

使用道具 舉報(bào)

ID:63039 發(fā)表于 2014-6-17 16:37 | 顯示全部樓層
謝謝分享,加油
回復(fù)

使用道具 舉報(bào)

ID:46838 發(fā)表于 2014-6-28 18:00 | 顯示全部樓層
參考了
回復(fù)

使用道具 舉報(bào)

ID:63641 發(fā)表于 2014-7-5 19:38 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表