|
#include<reg51.h> //包含單片機寄存器的頭文件
/*****************************************************
函數(shù)功能:接收一個字節(jié)數(shù)據(jù)
***************************************************/
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只要接收中斷標(biāo)志位RI沒有被置“1”
; //等待,直至接收完畢(RI=1)
RI=0; //為了接收下一幀數(shù)據(jù),需將RI清0
dat=SBUF; //將接收緩沖器中的數(shù)據(jù)存于dat
return dat;
}
/*****************************************************
函數(shù)功能:主函數(shù)
***************************************************/
void main(void)
{
TMOD=0x20; //定時器T1工作于方式2
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允許接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值
TL1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值
TR1=1; //啟動定時器T1
REN=1; //允許接收
while(1)
{
P1=Receive(); //將接收到的數(shù)據(jù)送P1口顯示
}
}
#include<reg51.h> //包含單片機寄存器的頭文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水燈控制碼,該數(shù)組被定義為全局變量
/*****************************************************
函數(shù)功能:向PC發(fā)送一個字節(jié)數(shù)據(jù)
***************************************************/
void Send(unsigned char dat)
{
SBUF=dat;
while(TI==0)
;
TI=0;
}
/**************************************************************
函數(shù)功能:延時約150ms
**************************************************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++);
}
/*****************************************************
函數(shù)功能:主函數(shù)
***************************************************/
void main(void)
{
unsigned char i;
TMOD=0x20; //TMOD=0010 0000B,定時器T1工作于方式2
SCON=0x40; //SCON=0100 0000B,串口工作方式1
PCON=0x00; //PCON=0000 0000B
TH1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值,波特率9600
TL1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值
TR1=1; //啟動定時器T1
while(1)
{
for(i=0;i<8;i++) //模擬檢測數(shù)據(jù)
{
Send(Tab[ i]); //發(fā)送數(shù)據(jù)i
delay(); //50ms發(fā)送一次檢測數(shù)據(jù)
}
}
}
#include<reg51.h> //包含單片機寄存器的頭文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水燈控制碼,該數(shù)組被定義為全局變量
/*****************************************************
函數(shù)功能:向PC發(fā)送一個字節(jié)數(shù)據(jù)
***************************************************/
void Send(unsigned char dat)
{
SBUF=dat;
while(TI==0)
;
TI=0;
}
/**************************************************************
函數(shù)功能:延時約150ms
**************************************************************/
void delay(void)
{
unsigned char m,n;
for(m=0;m<200;m++)
for(n=0;n<250;n++);
}
/*****************************************************
函數(shù)功能:主函數(shù)
***************************************************/
void main(void)
{
unsigned char i;
TMOD=0x20; //TMOD=0010 0000B,定時器T1工作于方式2
SCON=0x40; //SCON=0100 0000B,串口工作方式1
PCON=0x00; //PCON=0000 0000B
TH1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值,波特率9600
TL1=0xfd; //根據(jù)規(guī)定給定時器T1賦初值
TR1=1; //啟動定時器T1
while(1)
{
for(i=0;i<8;i++) //模擬檢測數(shù)據(jù)
{
Send(Tab[ i]); //發(fā)送數(shù)據(jù)i
delay(); //50ms發(fā)送一次檢測數(shù)據(jù)
}
}
} |
-
評分
-
查看全部評分
|