Proteus一个简单51程序的仿真

    科技2025-07-13  12

    Proteus一个简单51程序的仿真

    一、调试任务

    一个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.实验过程仿真运行图。

    仿真结束,本次实验结束。

    Processed: 0.011, SQL: 8