单片机U1通过串口将一段控制程 序发送到U2,来控制U2的P1口上连接的LED循环亮灯。顺序为D0→D1→D2 >... →D6→D7→学号,即8只发光二极管依次点亮,之后8只发光二极管显示你的学号后4位的二进制数,其中D7D6显示班级 号,D5~D0显示最后2位学号,例如,当前图片显示的是1班40号。设主频fosc为12MHz,波特率为1200,每点亮1只二极管后等待150ms。点亮学号后多等待150ms。采用定时中断方法控制LED灯循环显示以上过程。电路原理图如下。用C51编程,完成源程序的编写、编译。并加载到电路图中运行验证。将源程序、编译成功的可执行文件和电路图打包上传,文件名为你的10位学号。
1个回答
关注
展开全部
亲,让您久等了本实验主要是U1通过串口线TXD端将流水灯控制码以方式1发送到单片机U2的RXD,U2再利用接受的控制码控制流水灯点亮其P1口的8个发光二极管
希望我的回答可以帮到您,也希望您工作顺利,生活愉快,如果您对我回答还满意的话,麻烦记得给我一个赞哟~谢谢啦~
咨询记录 · 回答于2022-05-23
单片机U1通过串口将一段控制程 序发送到U2,来控制U2的P1口上连接的LED循环亮灯。顺序为D0→D1→D2 >... →D6→D7→学号,即8只发光二极管依次点亮,之后8只发光二极管显示你的学号后4位的二进制数,其中D7D6显示班级 号,D5~D0显示最后2位学号,例如,当前图片显示的是1班40号。设主频fosc为12MHz,波特率为1200,每点亮1只二极管后等待150ms。点亮学号后多等待150ms。采用定时中断方法控制LED灯循环显示以上过程。电路原理图如下。用C51编程,完成源程序的编写、编译。并加载到电路图中运行验证。将源程序、编译成功的可执行文件和电路图打包上传,文件名为你的10位学号。
亲,让您久等了本实验主要是U1通过串口线TXD端将流水灯控制码以方式1发送到单片机U2的RXD,U2再利用接受的控制码控制流水灯点亮其P1口的8个发光二极管希望我的回答可以帮到您,也希望您工作顺利,生活愉快,如果您对我回答还满意的话,麻烦记得给我一个赞哟~谢谢啦~
如果我的解答对您有所帮助,还请给个赞(在左下角进行评价哦),期待您的赞,您的举手之劳对我很重要,您的支持也是我进步的动力。如果觉得我的解答还满意,可以点我头像一对一咨询。最后再次祝您身体健康,心情愉快![比心]
可否发过来操作步骤
好的亲,稍等
单片机U1发送端首先建立建立一个文件夹send,之后建立工作send,再添加一个send.c源文件,代码如下#includeunsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};void Send(unsigned char dat){SBUF=dat;while(TI==0) //若发送中断标志位没有置"1",就等待
{;}TI=0;}void delay(void){unsigned char m,n;for(m=0;m<200;m++)for(n=0;n<250;n++);}void main(){unsigned char i;TMOD=0x20; //定时器工作在方式2SCON=0x40; //串口工作方式1PCON=0x00; //设置波特率为9600b/sTH1=0xfd;TL1=0xfd;TR1=1;while(1){for(i=0;i<8;i++){Send(Tab[i]);delay();}}}
单片机U2接收端首先建立建立一个文件夹receid,之后建立工作receive,再添加一个receid.c源文件,代码如下#includeunsigned char Receive(void){unsigned char dat;while(RI==0) //只要接受中断标志位RI没有被置"1"就等待,直至接受完毕;RI=0;dat=SBUF;return dat;}void main(void){TMOD=0x20; //定时器T1工作在方式2SCON=0x50; //串口工作在方式1,允许接受(REN=1)PCON=0x00; //主要设置波特率为9600b/s
TH1=0xfd;TL1=0xfd;TR1=1; //启动定时器T1while(1){P1=Receive();}}
1、感谢您的耐心等待,以上是我的全部回复。 2、还有问题需要咨询吗?我可以继续为您解答哦~ 3、希望本次服务能帮到您,祝您生活愉快,一切顺利! 4、如果对我的服务满意,请给个赞,再次祝您事事顺心!平安喜乐!
可以发下操作的图片吗,我有点操作不明白,用的是keil uVision2
学号为1909060218
【问一问自定义消息】
亲,在的
可以看的到吗
可以
好的哦
多谢