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

  • 3
  • 0
  • 约1.7万字
  • 约 12页
  • 2021-11-28 发布于辽宁
  • 举报
. 实验 单片机与 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++;

文档评论(0)

1亿VIP精品文档

相关文档