上位机与51单片机串口通信_第1页
上位机与51单片机串口通信_第2页
上位机与51单片机串口通信_第3页
上位机与51单片机串口通信_第4页
上位机与51单片机串口通信_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、上位机与51单片机串口通信目录:1、单片机串口通信的应用2、PC控制单片机IO口输出3、单片机控制实训指导及综合应用实例4、单片机给计算机发送数据:实验任务单片机串口通信的应用,通过串口,我们的个人电脑和单片机系统进行通信。个人电脑作为上位机,向下位机单片机系统发送十六进制或者ASCLL码,单片机系统接收后,用LED显示接收到的数据和向上位机发回原样数据。硬件电路图实验原理RS-232是美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准,用来实现计算机与计算机之间、计算机与外设之间的数据通讯。RS-232串行接口总线适用于:设备之间的通讯距离不大于15m,传输速率最大为20k

2、Bps。RS-232协议以-5V15V表示逻辑1;以+5V15V 表示逻辑0。 我们是用MAX232芯片将RS232电平转换为TTL电平的。 一个完整的RS-232接口有22根线,采用标准的25芯插头座。我们在 这里使用的是简化的9芯插头座。注意我们在这里使用的晶振是11.0592M的,而不是12M。因为波特率的设置需要11.0592M的。“串口调试助手V2.1.exe” 软件的使用很简单,只要将串口选择CMO1波特率设置为9600 数据位为 8 位。打开串口(如果关闭)。然后在发送区里输入要发送的数据,单击手动发送就将数据发送出去了。注意,如果选中十六进制发送那么发送的数据是十六进制的,必须

3、输入两位数据。如果没有选中,则发送的是ASCLL码,那么单片机控制的数码管将显示ASCLL码值。数字二进制Px0Px7Abcdefg p十六进制00xco10xf920xa430xb040x9950x9260x8270xf880x8090x90A0x88B0x83C0xc6D0xa1E0x86F0x8e ASCII常用代码表字符代码字符代码字符代码字符代码字符3252472H92112p33!53573I93113q34”54674J94114r35#55775K95_115s36$56876L96116t37%57977M97a117u38&58:78N98b118v3959;79O99c1

4、19w40(6082R102f122z43+63?83S103g12344,6484T104h124|45-65A85U105i12546.66B86V106j12647/67C87W107k48068D88X108l49169E89Y109m50270F90Z110n51371G91111o/参考源程序#include reg52.h /包函8051 内部资源的定义unsigned char dat; /用于存储单片机接收发送缓冲寄存器SBUF里面的内容sbit gewei=P24; /个位选通定义sbit shiwei=P25; /十位选通定义sbit baiwei=P26; /百位选通定

5、义unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,; /110void Delay(unsigned int tc) /延时程序while( tc != 0 )unsigned int i;for(i=0; i100; i+);tc-;void LED() /LED显示接收到的数据(十进制)gewei=0; P0=tabledat%10; Delay(10); gewei=1;shiwei=0; P0=tabledat/10; Delay(10); shiwei=1;baiwei=0; P0=

6、tabledat/100; Delay(10); baiwei=1;/功能:串口初始化,波特率9600,方式1/void Init_Com(void)TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd;TL1 = 0xFd;TR1 = 1;/功能:把从上位机接收到的数据原样发送回去/void main()Init_Com();/串口初始化while(1) if ( RI ) /扫描判断是否接收到数据,dat = SBUF; /接收数据SBUF赋与datRI=0; /RI 清零。SBUF = dat; /在原样把数据发送回去(接收数据为发送数据的ASCI

7、I码,如发送q显示为113)LED(); /显示接收到的数据/这一个例子是以扫描的方式编写的,还可以以中断的方式编写,请大家思考/实验任务PC控制单片机IO口输出#include reg52.h /包函8051 内部资源的定义unsigned char dat; /用于存储单片机接收发送缓冲寄存器SBUF里面的内容void Delay(unsigned int tc) /延时程序while( tc != 0 )unsigned int i;for(i=0; i100; i+);tc-;/功能:串口初始化,波特率9600,方式1/void Init_Com(void)TMOD = 0x20;PC

8、ON = 0x00;SCON = 0x50;TH1 = 0xFd;TL1 = 0xFd;TR1 = 1;/主程序功能:实现接收数据并把接收到的数据原样发送回去/void main()Init_Com();/串口初始化while(1) if ( RI ) /扫描判断是否接收到数据,dat = SBUF; /接收数据SBUF赋与datif(dat=0x00)/如果PC发送十六进制00,单片机P1口全亮。P1=0x00;else if(dat=0x01)P1=0x01;else if(dat=0x02)P1=0x02;else if(dat=0x03)P1=0x03;else if(dat=0x04

9、)P1=0x04;RI=0; /RI 清零。SBUF = dat; /在原样把数据发送回去(接收数据为发送数据的ASCII码,如发送q显示为113) 实验任务单片机控制实训指导及综合应用实例#include reg52.h /包函AT89S52 内部资源的定义(注视参看书160页)#define uchar unsigned char /宏定义uchar led 10=0xbf,0x06,0xdb,0xcf,0x66,0xed,0xfd,0x87,0xff,0xef;/数字110,字符串uchar led164;/存储接收数据unsigned int i,j,t,k;sbit P32=P32;

10、 void scjs(void)interrupt 4 /定义中断ES=0;/ 使能串行口的中断k=1;while(1)RI=0;led1k-1=SBUF; /将接收数据送段码表k+;TH0=0x3c; /t0定时50sm内接收不到数据跳过接收TL0=0xb0;TR0=1;while(!RI)if(!TF0) goto FH;FH:TF0=0;/TF0不清零不能重新接收 TR0=0; P32=1;for(j=1;jk;j+)SBUF=ledj-1;/数据送回给pcwhile(!TI);TI=0;P32=0;delay(t)ES=1;SCON=0x50;for(i=0;it;i+);ES=0;S

11、CON=0x00;void main (void)int a,c;TMOD=0x21;TH1=0Xfd;TL1=0xfd;SCON=0x50;PCON=0x00;IE=0x90;TR1=1;k=1;P32=0;while(1)ES=0;SCON=0x00;for(a=0;a=0;c-)if(a+ck+1/k*8+1)if(k=1)SBUF=leda+c;else SBUF=led1a+c;else SBUF=0x00;while(!TI);TI=0;delay(39000);#include reg52.h /包函8051 内部资源的定义#define uchar unsigned chars

12、bit P3_2=P32;uchar zdzt=0x0c;uchar zsgw=0x02;uchar zsdw=0x00;uchar bs=0;uchar zqsbw=0;uchar zqssw=0;uchar zqsgw=0;uchar yxsj=0x11;uchar zs=20;int zqs=0;uchar zqsgzj=0x00;uchar zqsdzj=0x00;uchar zsscgw=0x1f;uchar zsscdw=0x00;uchar bzsj;uchar ztsj;void key (void);void keyprc();void binbcd();void disp(

13、);void delay();code uchar tab13=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x39;code uchar zssc160=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66

14、,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77

15、,0x7c,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x7f,0x6f,0x77,0x7c,;void key(void)TR0=0;if(!(P2&0X01)delay();while(!(P2&0X01);zdzt=0x0a;disp();else if(!(P3&0X08)delay();while(!(P3&0X08);zdzt=0x0b;disp();else if(!(P3&0X10)delay();while(!(P3&0X10);zs=zs+1;keyprc();disp();else if(!(P2&0X02)delay();while(!(P2

16、&0X02);zs=zs-1;keyprc();disp();void keyprc()if(zs99)zs=99;zsgw=zs/10;zsdw=zs%10;void djzd(void) interrupt 1TH0=zssc(zs-20)*2;TL0=zssc(zs-20)*2+1;if(zdzt=0x0a)yxsj=yxsj7;else if (zdzt=0x0b)yxsj=yxsj1;else if(zdzt=0x0c)P1=0xff;goto LP;P1=yxsj;bs+;if(bs=48)bs=0;zqs+;LP:binbcd();disp();void binbcd()zqsb

17、w=zqs/100;zqssw=zqs%100/10;zqsgw=zqs%10;void disp()TR1=0;ES=0;SCON=0x00;TMOD=0x01;SBUF=tabzqsgw;while(!TI);TI=0;SBUF=tabzqssw;while(!TI);TI=0;SBUF=tabzqsbw;while(!TI);TI=0;SBUF=tabzsdw;while(!TI);TI=0;SBUF=tabzsgw;while(!TI);TI=0;SBUF=tabzdzt;while(!TI);TI=0;TMOD=0x02;TH1=0Xfd;TL1=0xfd;SCON=0x50;TR1

18、=1;ES=1;void delay()int k;for(k=0;k1200;k+);void sin()interrupt 4P1=0xff;ES=0;bzsj=SBUF;RI=0;while(!RI);RI=0;ztsj=SBUF;if(bzsj=0x30)zdzt=ztsj-0x37;if(bzsj=0x31)if(ztsj=0x49)zs+;else zs-;ES=1;P3_2=0;keyprc();zqs=0;disp();main()TMOD=0x21;TH1=0xfd;TL1=0xfd;SCON=0x50;PCON=0x00;IE=0X92;PS=1;TR1=1;P3_2=0;

19、TH0=0x1f;TL0=0x00;SP=0x60;disp();while(1)key();if(zdzt=0x0c)TR0=0;P1=0xff;else TR0=1;单片机给计算机发送数据:#include reg52.h /包函8051 内部资源的定义unsigned char dat; /用于存储单片机接收发送缓冲寄存器SBUF里面的内容unsigned char fan;int i,j;void Delay() /延时程序for(i=0; i100; i+)for(j=0; j100; j+);void delays()int k;for (k=0;k1200;k+);/功能:串口初始化,波特率9600,方式1/void Init_Com(void)TMOD = 0x20;PCON = 0x00;SCON = 0x50;TH1 = 0xFd;TL1 = 0xFd;TR1 = 1;/主程序功能:实现接收数据并把接收到的数据原样发送回去/void main()Init_Co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论