文档详情

实验单片机与PC机串口通信.pdf

发布:2019-11-08约1.41万字共8页下载文档
文本预览下载声明
实用标准 实验 单片机与 PC机串口通信( C51编程)实验 要求: 1、 掌握串行口的控制与状态寄存器 SCON 2、 掌握特殊功能寄存器 PCON 3、 掌握串行口的工作方式及其设置 4、 掌握串行口的波特率( bond rate )选择 任务: 1、实现 PC机发送一个字符给单片机, 单片机接收到后即在个位、 十位数码管上进行显示,同时将其回发给 PC 机。要求:单片机 收到 PC机发来的信号后用串口中断方式处理,而单片机回发给 PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和 KEIL C,或串口 调试助手和 PROTEUS分别仿真。 需要用到以下软件: KEIL,VSPD XP5(virtual serial ports driver xp5.1 虚拟串口软件),串口调试助手, Proteus 。 (1)虚拟串口软件、串口调试助手和 KEIL C 的联调 首先在 KEIL 里编译写好的程序。 #include reg51.h #define uchar unsigned char #define uint unsigned int 文案大全 实用标准 uchar code SEG7[10]={0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f};// 数码管位值 uchar code ACT[4]={0XFE,0xfd,0xfb,0xf7};% 数码管位选信号 uchar code as[]=Receving data:\0;% 回送预置数据 uchar a=0x30,b; //initiate ,串口设置为波特率 9600, void init(void){ TMOD=0X20; TH1=0XFD; TL1=0XFD; SCON=0X50; TR1=1; ES=1; EA=1; } //DELAY ,为数据管交替显示 void delay(uint k){ uint data i,j; for(i=0;ik;i++){ for(j=0;j121;j++) {;} 文案大全 实用标准 } } //main void main(void){ uchar i; init(); while(1){ // 用数码管显示 PC发给单片机的数据,并回送给 PC P1=SEG7[(a-0x30)/10]; P2=ACT[1]; delay(500); P1=SEG7[(a-0x30)%10]; P2=ACT[0]; delay(500); if(RI){ RI=0; i=0; while(as[i]!=\0){ SBUF=as[i]; while(!TI){ ; 文案大全 实用标准 } TI=0; i++; } SBUF=b; while(!TI){ ; } TI=0; EA=1; } } } //INTERRUPT 4, 将收到的信息进行转存 void serial_serve(void) interrupt 4 { a=SBUF; b=a; EA=0; } 文案大全 实用标准 打开 VSPD,界面如下图所示:(注明:这个软件用来进行 串口的虚拟实现。在其网站上可以下载,但使用期为 2 周)。 左边栏最上面的是电脑自带的物
显示全部
相似文档