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

上传人:痛*** 文档编号:156552754 上传时间:2022-09-27 格式:DOC 页数:18 大小:579.50KB
收藏 版权申诉 举报 下载
51单片机串口通信实现16+16点阵显示_第1页
第1页 / 共18页
51单片机串口通信实现16+16点阵显示_第2页
第2页 / 共18页
51单片机串口通信实现16+16点阵显示_第3页
第3页 / 共18页
资源描述:

《51单片机串口通信实现16+16点阵显示》由会员分享,可在线阅读,更多相关《51单片机串口通信实现16+16点阵显示(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,0x7f;uchar code tac8

2、8= 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,0x40, 0x40,0x

3、40,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

4、(i=0;i8;i+) 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()

5、init(); while(1) if(flag=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)+串口调试助手(这个不会,主要是不知道该怎

6、么在Proteus中连线,理论上方法4和3的连线方法是没有太大差别的,我也不知道哪里设置不对,一直没弄成功,问题出在加入了MAX232后)方法1和2的区别不大,只是在串口和单片机中间多接个MAX232,因为是仿真软件,所以串口有和没有MAX232的仿真结果是一样的,就是细节上的设置不同方法1连线如下:方法2连线图如下:方法1和方法2的区别在PCT(虚拟终端输入串口的PCT计算机发送端)的一个设置参数不同,(当波特率改变的时候虚拟终端里面的波特率设置也要改变)方法1设置如下方法2设置如下不同的地方在PCT,串口这边的虚拟终端的RX/TX Polarity的设置不同,当在单片机和串口间没接入MAX

7、232,该项设置为normal,当在其间接入了MAX232该项设置为inverted。综上所述:方法1和方法2其实是1类方法,共同点是单片机的发送端(TXD)与串口接收端(RXD)相连,单片机接收端(RXD)与串口发送端(TXD)相连。(这种连接是交叉连接)方法3和方法4区别不大,只是在串口和单片机之间多加入了MAX232,其实实物连接时是要加入MAX232的,但是加入MAX232的方法4用Proteus仿真不出来,就仿真效果而言方法3和方法4是一样的。方法3连线图如下:方法4连线图如下:Proteus串口设置如下图:串口调试助手设置如下:虚拟串口程序界面如下:单片机虚拟终端的选项作用如下:如

8、果输入的是ASCII码,那么就不要勾选Hex Display mode如果输入的是16进制,那么就要勾选Hex Display modeclear screen 是清屏echo typed characters 是当你在虚拟终端窗口输入字符时,输入的字符显示在虚拟中断窗口内。综上所述:方法3和方法4是一类,串口接线是单片机的RXD接串口的RXD,单片机的TXD接串口的TXD。是一一对应的接线方式。注意:单片机晶振频率的设置,Proteus串口接COM2,调试程序接COM3方法1和方法2这类与 方法3和方法4这类的区别在哪呢?区别就在与串口的接线方式不同,方法1和方法2是单片机和串口是交叉接线方

9、法3和方法4是单片机和串口是非交叉接线(一一对应)附2:8X8 LED点阵显示原理与编程技术1实验任务 在8X8LED点阵上显示柱形,让其先从左到右平滑移动三次,其次从右到左平滑移动三次,再次从上到下平滑移动三次,最后从下到上平滑移动三次,如此循环下去。 2实验目的掌握用单片机I/O口进行LED点阵扫描显示。3实验工具PROTEUS6.9, Keil uVision2软件 4. 原理图5. 相关知识1)LED点阵八十年代以来出现了组合型IED点阵显示器,以发光二极管为像素,它用高亮度发光二极管芯阵列组合后,环氧树脂和塑模封装而成。具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀

10、等特点。点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。LED点阵有44、48、57、58、88、1616、2424、4040等多种; 根据像素的数目分为等,双基色、三基色等,根据像素颜色的不同所显示的文字、图象等内容的颜色也不同,单基色点阵只能显示固定色彩如红、绿、黄等单色,双基色和三基色点阵显示内容的颜色由像素内不同颜色发光二极管点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极管的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。图1-5示出几种LED点阵显示器的内部电路结构和外型规格,其它型号点阵的结构与引脚可试验获得。2)LED点阵扫描驱动方案:由LE

11、D点阵显示器的内部结构可知,器件宜采用动态扫描驱动方式工作,由于LED管芯大多为高亮度型,因此某行或某列的单体LED驱动电流可选用窄脉冲,但其平均电流应限制在20mA内多数点阵显示器的单体LED的正向压降约在2V左右但大亮点10的点阵显示器单体LED的正向压降约为6V。大屏幕显示系统一般是将由多个LED点阵组成的小模块以搭积木的方式组合而成的,每一个小模块都有自己的独立的控制系统,组合在一起后只要引入一个总控制器控制各模块的命令和数据即可,这种方法既简单而且具有易展、易维修的特点。3)LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际

12、应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可显示各种图形或文字信息。LED点阵显示器单块使用时,既可代替数码管显示数字,也可显示各种中西文字及符号如5 x 7点阵显示器用于显示西文字母58点阵显示器用于显示中西文,8 x 8点阵用于显示中文文字,也可用于图形显示。用多块点阵显示器组合则可构成大屏幕显示器,但这类实用装置常通过微机或单片机控制驱动。8X8点阵LED工作原理说明 8X8点阵LED结构如下图所示 从图中可以看出,8X8点阵共需要64个发光二

13、极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如图49所示,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述: 一根竖柱:对应的列置1,而行则采用扫描的方法来实现。 一根横柱:对应的行置0,而列则采用扫描的方法来实现。6C语言源程序 #include #include unsigned char code taba=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code tabb=0x01,0x02,0x04,

14、0x08,0x10,0x20,0x40,0x80;/*void delay(void)unsigned char i,j;for(i=10;i0;i-)for(j=248;j0;j-);*/void delay1(void)unsigned char i,j,k;for(k=10;k0;k-)for(i=20;i0;i-)for(j=248;j0;j-);void main(void)unsigned char i,j;while(1)for(j=0;j3;j+)/from left to right 3 timefor(i=0;i8;i+)P2=tabai;P0=0xff;delay1();for(j=0;j3;j+)/from right to left 3 timefor(i=0;i8;i+)P2=taba7-i;P0=0xff;delay1();for(j=0;j3;j+)/from top to bottom 3 timefor(i=0;i8;i+)P2=0x00;P0=tabb7-i;delay1();for(j=0;j3;j+)/from bottom to top 3 timefor(i=0;i8;i+)P2=0x00;P0=tabbi;delay1();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!