一个8XX51单片机的双机通信系统波特率为9600bps,fosc=12MHz,用中断方式编写程序,将甲机片内RAM 30H~3FH的数据块通过串行口传送到乙机的片内RAM 40~4FH单元中。
二、调试原理
使用keil软件完成本实验程序在keil软件中的编辑,编译和调试,然后再Proteus软件上实现。
三、调试过程
1.实验代码。
发送程序: #include<reg51.h> #define uchar unsigned char uchar data *p,*q; uchar code tab[16]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0}; void int4(); void csh(); void main() { csh(); p=0x30; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0x40; TR1=1;EA=1;ES=1; SBUF=*p; while(1);} void int4() interrupt 4 { int i; if(TI==1) {TI=0; for(i=1;i<=10000;i++); p++; SBUF=*p; } if(p==0x3f)EA=0; } void csh() { int i; q=0x30; for(i=0;i<16;i++) { *q=tab[i]; q++; } } 接收程序: #include<reg51.h> #define uchar unsigned char uchar data *p; sbit P10=P1^0; void int4(); void main() { p=0x40; TMOD=0x20; TL1=0xfd;TH1=0xfd; SCON=0x50; TR1=1;EA=1;ES=1; for(;;); } void int4()interrupt 4 { int i; if(RI==1) {RI=0; P10=~P10; for(i=1;i<=10000;i++); *p=SBUF; p++;} if(p==0x4f)EA=0; }2.keil软件进行调试。
3.proteus实验原理图。
4.实验过程仿真运行图。
仿真结束,本次实验结束。