51单片机串口通信实现16+16点阵显示.doc

上传人:hw****26 文档编号:3519396 上传时间:2019-06-01 格式:DOC 页数:18 大小:579.50KB
下载 相关 举报
51单片机串口通信实现16+16点阵显示.doc_第1页
第1页 / 共18页
51单片机串口通信实现16+16点阵显示.doc_第2页
第2页 / 共18页
51单片机串口通信实现16+16点阵显示.doc_第3页
第3页 / 共18页
51单片机串口通信实现16+16点阵显示.doc_第4页
第4页 / 共18页
51单片机串口通信实现16+16点阵显示.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、51 单片机开发的点阵实验附录 2 中讲到 Proteus 调试单片机串口的方法附录 1 中讲到 8*8 点阵的显示原理以下程序有本人编写,请参考:用串口调试助手发送个 16 进制 01 是个笑脸;02 是个哭脸。可以用上图,基于 proteus 做仿真。C51 程序:#include#define uchar unsigned char#define uint unsigned intsbit le1=P10;sbit le2=P11;sbit le3=P12;sbit le4=P13;uchar code tab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7

2、f;uchar code tac88=0x00,0x00,0xf8,0x04,0x32,0x4a,0x02,0x02,0x02,0x12,0x22,0xc2,0x04,0xf8,0x00,0x00,0x00,0x00,0x1f,0x20,0x4c,0x52,0x40,0x40,0x40,0x48,0x44,0x43,0x20,0x1f,0x00,0x00,/笑脸0x00,0x00,0xf8,0x04,0x02,0x4a,0x32,0x02,0x02,0x02,0xc2,0x22,0x04,0xf8,0x00,0x00,0x00,0x00,0x1f,0x20,0x40,0x52,0x4c,0x4

3、0,0x40,0x40,0x43,0x44,0x20,0x1f,0x00,0x00,/哭脸;uchar a=0;int b=0,c=0,flag=0,i;void init()/初始化TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;SM0=0;SM1=1;REN=1;EA=1;ES=1;void delay(uint n)uint i,j;for(i=n;i0;i-)for(j=80;j0;j-);void display()/显示if(b=1)c=0;if(b=2)c=4; P1=0xff;P0=0x00;P2=0xff;le2=0;le4=0;for(i=0;i8;i+

4、)P2=tabi;P0=tac0+ci;delay(1);P1=0xff;P0=0x00;P2=0xff; le1=0;le4=0;for(i=0;i8;i+)P2=tabi;P0=tac1+ci;delay(1);P1=0xff;P0=0x00;P2=0xff; le1=0;le3=0;for(i=0;i8;i+)P2=tabi;P0=tac2+ci;delay(1);P1=0xff;P0=0x00;P2=0xff; le2=0;le3=0;for(i=0;i8;i+)P2=tabi;P0=tac3+ci;delay(1);void main()init();while(1) if(flag

5、=1) if(b=1|b=2)display(); void ser()interrupt 4/串口中断RI=0;a=SBUF;if(a=0x01)b=1;if(a=0x02)b=2;flag=1;附 1:目前我会的有 3 种1.单片机+虚拟终端(作为串口输入设备)+串口2.单片机+虚拟终端(作为串口输入设备)+MAX232+串口3.单片机+串口+虚拟串口程序(virtual serial port)+串口调试助手4.单片机+MAX232+串口+虚拟串口程序(virtual serial port)+串口调试助手(这个不会,主要是不知道该怎么在 Proteus 中连线,理论上方法 4 和 3

6、的连线方法是没有太大差别的,我也不知道哪里设置不对,一直没弄成功,问题出在加入了 MAX232 后)方法 1 和 2 的区别不大,只是在串口和单片机中间多接个 MAX232,因为是仿真软件,所以串口有和没有 MAX232 的仿真结果是一样的,就是细节上的设置不同方法 1 连线如下:方法 2 连线图如下:方法 1 和方法 2 的区别在 PCT(虚拟终端输入串口的 PCT 计算机发送端)的一个设置参数不同,(当波特率改变的时候虚拟终端里面的波特率设置也要改变)方法 1 设置如下 方法 2 设置如下不同的地方在 PCT,串口这边的虚拟终端的 RX/TX Polarity 的设置不同,当在单片机和串口间没接入 MAX232,该项设置为 normal,当在其间接入了 MAX232 该项设置为inverted。综上所述:方法 1 和方法 2 其实是 1 类方法,共同点是单片机的发送端(TXD)与串口接收端(RXD)相连,单片机接收端(RXD)与串口发送端(TXD)相连。(这种连接是交叉连接)方法 3 和方法 4 区别不大,只是在串口和单片机之间多加入了 MAX232,其实实物连接时是要加入 MAX232 的,但是加入 MAX232 的方法 4 用 Proteus 仿真不出来,就仿真效果而言方法 3 和方法 4 是一样的。方法 3 连线图如下:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。