標(biāo)題:
單片機(jī)與PC機(jī)通訊(C語(yǔ)言)
[打印本頁(yè)]
作者:
wendi
時(shí)間:
2013-7-11 02:41
標(biāo)題:
單片機(jī)與PC機(jī)通訊(C語(yǔ)言)
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;//打開定時(shí)器1
TH1=0XFD;//賦值給TH1
TL1=0XFD;//賦值給TL1,波特率為9600
SM0=0;//設(shè)置串口工作方式為1
SM1=1;//設(shè)置串口工作方式為1
REN=1;//打開允許接收控制端
EA=1;//打開總中斷
ES=1;//打開串口中斷
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;//將中斷打開,以下一次發(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
}
作者:
leeclyc
時(shí)間:
2014-4-2 14:56
不錯(cuò)喔
加油
作者:
ruya3699
時(shí)間:
2014-6-15 14:30
參考下
作者:
凌豪
時(shí)間:
2014-6-17 16:37
謝謝分享,加油
作者:
botao258
時(shí)間:
2014-6-28 18:00
參考了
作者:
openpppp2008
時(shí)間:
2014-7-5 19:38
謝謝分享
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1