实验目的:掌握两个单片机之间串口通信的工作原理 实验内容:将甲单片机按键按下的次数通过串口发送给乙单片机,并控制乙的LED流水灯显示的效果(按下几次就产生几个LED的流水显示效果,假定不超过8个LED);同时,按下乙单片机的按键,也通过串口控制甲单片机的数码管(显示乙按键按下的次数) 实验代码: - #include<reg51.h>
- sbit P3_3=P3^3;
- sbit P3_4=P3^4;
- void delay(){
- unsigned int i;
- for(i=0;i<=35000;i++);
- }
- void delay1(){
- unsigned int i;
- for(i=0;i<=30000;i++);
- }
- void delay2(){
- unsigned int i;
- for(i=0;i<=5000;i++);
- }
- int main(){
- EA=1;
- EX0=1;//允许外部中断申请中断
- IT0=1;//下降沿触发方式
- EX1=1;
- IT1=1;
- IP=0x04;
- while(1){
- P1=0xc0;//1100 0000
- delay2();
- P1=0xff;
- delay2();
- }
- }
- void int0(void) interrupt 0 using 0{ //外部中断0
- char a[9]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
- int x;
- for(x=0;x<9;x++){
- P1=a[x];
- delay();
- }
- }
- void int1(void) interrupt 2 using 2{ //外部中断1
- int i,l,j;
- char o[7]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf};
- P1=0xff;
- delay1();
- for(j=1;j<=3;j++){
- for(l=0;l<7;l++){
- P1=o[l];
- delay1();
- }
- for(i=6;i>=0;i--){
- P1=o[i];
- delay1();
- }
- }
- }
复制代码
|