我用processing作为上位机向单片机发送信息会利用到串行通信和虚拟串口配对软件接收系统由AT89C51单片机和88点阵屏组成processing向单片机发送0x01时点阵屏显示1的图案processing向单片机发送0x02时点阵屏的图案由1滚动显示到2以此类推一直到9我会给你一部分的代码请你完善单片机的接收程序代码如下#include reg51h#include intrinsh#def
完善单片机的接收程序如下:
void Serial_Receive() interrupt 4 { unsigned char val=0; TMOD=0x20; //设置定时器1为模式2 SCON=0x50; //设置串口为模式1,允许接收 PCON=0x00; //PCON寄存器设置SMOD=0 TH1=0xFD;TL1=0xFD; //设置波特率为9600 TR1=1; //启动定时器1 while(1) { while(RI==0); //等待接收完成 RI = 0; //清除接收中断标志位 val=SBUF; //读取接收到的数据 if (val==0x01) //接收到0x01时,显示数字1 { for (int i=0; i<8; i++) { P0 = ~Table[i]; delay(100); } } else if (val>=0x02 && val<=0x09) //接收到0x02-0x09时,滚动显示数字1-9 { int index = val - 0x02; for (int i=0; i<8; i++) { P0 = ~Table[index*8+i]; delay(100); } } } }
其中,delay函数可以自己实现,用于延时显示
原文地址: https://www.cveoy.top/t/topic/dWPN 著作权归作者所有。请勿转载和采集!