好文档 - 专业文书写作范文服务资料分享网站

51单片机C语言编程100例

天下 分享 时间: 加入收藏 我要投稿 点赞

//实例56-2:数据接收程序

#include //包含单片机寄存器的头文件

/***************************************************** 函数功能:接收一个字节数据

***************************************************/ unsigned char Receive(void) {

unsigned char dat;

while(RI==0) //只要接收中断标志位RI没有被置“1” ; //等待,直至接收完毕(RI=1) RI=0; //为了接收下一帧数据,需将RI清0 dat=SBUF; //将接收缓冲器中的数据存于dat return dat; }

/***************************************************** 函数功能:主函数

***************************************************/ void main(void) {

TMOD=0x20; //定时器T1工作于方式2

SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1) PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值

TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 REN=1; //允许接收 while(1) {

P1=Receive(); //将接收到的数据送P1口显示 } }

//实例57-1:数据发送程序

#include //包含单片机寄存器的头文件 sbit p=PSW^0;

unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量

/*****************************************************

精选

函数功能:向PC发送一个字节数据

***************************************************/ void Send(unsigned char dat) {

ACC=dat; TB8=p; SBUF=dat; while(TI==0) ; TI=0; }

/************************************************************** 函数功能:延时约150ms

**************************************************************/ void delay(void) {

unsigned char m,n; for(m=0;m<200;m++) for(n=0;n<250;n++) ; }

/***************************************************** 函数功能:主函数

***************************************************/ void main(void) {

unsigned char i;

TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2 SCON=0xc0; //SCON=1100 0000B,串口工作方式3, //SM2置0,不使用多机通信,TB8置0 PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值 TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 while(1) { for(i=0;i<8;i++) //模拟检测数据 { Send(Tab[i]); //发送数据i delay(); //50ms发送一次检测数据 } } }

精选

//实例57-2:数据接收程序

#include //包含单片机寄存器的头文件 sbit p=PSW^0;

/***************************************************** 函数功能:接收一个字节数据

***************************************************/ unsigned char Receive(void) {

unsigned char dat;

while(RI==0) //只要接收中断标志位RI没有被置\ ; //等待,直至接收完毕(RI=1) RI=0; //为了接收下一帧数据,需将RI清0 ACC=SBUF; //将接收缓冲器中的数据存于dat if(RB8==p) {

dat=ACC; return dat; } }

/***************************************************** 函数功能:主函数

***************************************************/ void main(void) {

TMOD=0x20; //定时器T1工作于方式2

SCON=0xd0; //SCON=1101 0000B,串口工作方式1,允许接收(REN=1) PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值

TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 REN=1; //允许接收 while(1) {

P1=Receive(); //将接收到的数据送P1口显示 } }

精选

//实例58:单片机向PC发送数据

#include //包含单片机寄存器的头文件

unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量

/***************************************************** 函数功能:向PC发送一个字节数据

***************************************************/ void Send(unsigned char dat) {

SBUF=dat; while(TI==0) ; TI=0; }

/************************************************************** 函数功能:延时约150ms

**************************************************************/ void delay(void) {

unsigned char m,n; for(m=0;m<200;m++) for(n=0;n<250;n++) ; }

/***************************************************** 函数功能:主函数

***************************************************/ void main(void) {

unsigned char i;

TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2 SCON=0x40; //SCON=0100 0000B,串口工作方式1 PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值 TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 while(1) { for(i=0;i<8;i++) //模拟检测数据 { Send(Tab[i]); //发送数据i delay(); //150ms发送一次数据 }

精选

} }

//实例59:单片机接收PC发出的数据

#include //包含单片机寄存器的头文件

/***************************************************** 函数功能:接收一个字节数据

***************************************************/ unsigned char Receive(void) {

unsigned char dat;

while(RI==0) //只要接收中断标志位RI没有被置“1” ; //等待,直至接收完毕(RI=1) RI=0; //为了接收下一帧数据,需将RI清0 dat=SBUF; //将接收缓冲器中的数据存于dat return dat; }

/***************************************************** 函数功能:主函数

***************************************************/ void main(void) {

TMOD=0x20; //定时器T1工作于方式2

SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1) PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值

TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 REN=1; //允许接收 while(1) {

P1=Receive(); //将接收到的数据送P1口显示 } }

精选

51单片机C语言编程100例

//实例56-2:数据接收程序#include//包含单片机寄存器的头文件/*****************************************************函数功能:接收一个字节数据***************************************************/
推荐度:
点击下载文档文档为doc格式
988wi2t5o6667gj1yjqg01k8300wxv01cpk
领取福利

微信扫码领取福利

微信扫码分享