北京交大单片机课程设计8x8点阵实验报告.docx

上传人:牧羊曲112 文档编号:5066225 上传时间:2023-06-01 格式:DOCX 页数:13 大小:624.39KB
返回 下载 相关 举报
北京交大单片机课程设计8x8点阵实验报告.docx_第1页
第1页 / 共13页
北京交大单片机课程设计8x8点阵实验报告.docx_第2页
第2页 / 共13页
北京交大单片机课程设计8x8点阵实验报告.docx_第3页
第3页 / 共13页
北京交大单片机课程设计8x8点阵实验报告.docx_第4页
第4页 / 共13页
北京交大单片机课程设计8x8点阵实验报告.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《北京交大单片机课程设计8x8点阵实验报告.docx》由会员分享,可在线阅读,更多相关《北京交大单片机课程设计8x8点阵实验报告.docx(13页珍藏版)》请在三一办公上搜索。

1、点阵式LED显示器一、实验目的1. 了解点阵式led显示原理。2. 掌握单片机与8X8点阵块之间接口电路设计及编程。3. 掌握8155工作原理及与单片机的接口电路设计。二、设计任务及要求系统设计要求:利用8X8点阵显示屏,自己设计、焊接并调试电路板,实现在单片机的控 制下,点阵显示屏显示“电子设计”,显示方式分别为单字循环显示、左右滚动 显示、上下滚动显示。系统功能说明:系统在正常工作模式下为单字循环显示“电子设计”四个字,当按下第一 个开关时,点阵显示屏开始上下滚动显示“电子设计”,循环显示三次。而当按 下第二个开关时,点阵显示屏开始左右滚动显示“电子设计”,循环显示三次。 当按下复位开关时

2、,单片机复位,程序重新开始。三、工作原理及设计思路(1) 电路原理图:点阵显示模块的硬件电路设计如图1所示:UJVMEi- 咎-X.访口- awt.El nAAn_ QT-Z.一口?惶r-rid 曰 End E*Ed kLM.EEd LM-rTHn- _1萤 口nd Nd itIBNd 0.帝NtL nvtNa. 二每Nd a.有Md EMTrMdNspx图1复位电路的基本功能是:系统上电时提供复位信号,在加电瞬间,RST端出现一 定时间的高电平,直至系统电源稳定后,撤销复位信号。如下图:(2)电路设计原理:8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线 的交叉点上,当

3、对应的某一列置0电平,某一行置1电平,则相应的二极管就亮; 8X8点阵的列输入为C0C7,行输入为R0R7,它们通过驱动电路(芯片1416及 74LS245)接全发光二极管的阴极和阳极。要显示某一个字,首先要设计该字 的点阵字形,编好行(或列)点阵码,然后在单片机的控制下对点阵进行逐行(或 列)扫描。在人眼的暂存效应下我们会看到完整的字形,从而实现了字体在点阵 显示屏上的输出。(3)设计思路:由于只控制8*8点阵显示屏,故不需要扩展单片机的I/O接口。考虑到P0 口需 要接上拉电阻,使得电路较为复杂,因此利用单片机的P1 口来控制点阵的行,用 P2 口控制点阵的列。(4)芯片原理1.单片机ST

4、C89C51RC引脚功能:4KB程序存储器,512B的数据存储器,中断源8个,定时器3个,32位I/O口,有看 门狗电路。T2/P1. 0 T2EX/P1. 1 Pl. 2 Pl. 3 Pl. 4 Pl. 5 Pl. 6 Pl. 7RST RXD/P3.0 TXD/P3.1 INTQ/P3. 2 INT1/P3. 3 T0/P3. 4 T1/P3. 5 WP3. 6 RD/P3. 7 XT AL 2 XTAL1VSSVCCPO.O/ADO PO. 1/AD1 PO. 2/AD2 PO. 3/AD3 PO. 4/AD4 PO.5/AD5 PO.6/AD6 PO.7/AD7EA ALE/FROG

5、PSENP2. 7/A15 P2. 6/A14 P2. 5/A13 P2. 1/A12 P2. 3/A11 P2.2/A10 P2. 1/A9 P2.O/ASSTC89C51RC/RD+系列单片机IS P编程原理2.74HC245管脚图如下:LOGIC AND CONNECTION DIAGRAMS DIP (TOP VIEW)Vcc E B1 B2 B3 B4 B5 B6 B7 B8| 20 | wlRl E函同EEEEDIR A1 A2 陌 A4 场 A6 A7 A8 GND芯片中数据传输方向:TRUTH TABLEINPUTSOUTPUTEDIRLLBus B Data to Bus A

6、LHBus A Data to Bus BHXIsolationH 二 HIGH Voltage Level L = LOW Voltage Level X = Immaterial根据所设计的电路原理图,数据由A口传向B口,故应使E =0, DIR=1。数据从A口输出后需接1K电阻,再接到点阵的行。3.MC1416BP管脚图如下:SNOHO山 NNOONO:由于需要八个数据传送口,故应有两片MC1416BP,任选其中八个即可。此芯片不 用接电源,8脚接地。数据直接接到点阵的列。(5)字模表生成:字模由LEDDOT生成,字模的提取方式为:逐行提取,字模的显示方式为:单字单行显示,生成的字模格式

7、:C51十六进制以下是生成的字模表:/*这是“电”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/ int8u gRowBuff18 = 0x10,0xFE,0x92,0xFE,0x92,0xFE,0x91,0x1F;/*这是“子”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/ int8u gRowBuff28 = 0xFE,0xC,0x10,0xFF,0x10,0x10,0x10,0x30;/*这是“设”的字模;该字模由LEDDOT

8、生成;字模的提取方式为:逐行提取;字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/ int8u gRowBuff38 = 0xDC,0x54,0xF7,0x7E,0x52,0x7C,0x4C,0x37;/*这是“计”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取; 字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/int8u gRowBuff48 = 0xC4,0x44,0xBF,0x44,0x44,0x64,0x44,0x04;上下循环:int8u gRowBuffa二(0x04,0x7F,0x49,0x7F,0x49,0x7F,0x84,0x

9、F4,0x00,/电0x7E,0x20,0xFE,0x10,0x10,0x10,0x14,0x10,0x00,/子0x72,0xDF,0x05,0xF5,0x54,0x24,0x5C,0x85,0x00,/设0x22,0x27,0xFC,0x24,0x24,0x24,0x2C,0x24,0x00/计;左右循环:int8u gRowBuff=(0xC0,0xBE,0xAA,0xAA,0x7F,0x2A,0x2A,0x3E,0x00,电0x04,0x04,0x05,0x45,0xFD,0x07,0x05,0x02,0x00,子0x02,0x03,0xFE,0xCA,0x5B,0x29,0x5B,0

10、x8A,0x00,设0x02,0x03,0xFE,0x88,0xD8,0x7F,0x08,0x08,0x00/计;四、软件设计(1) 设计说明:主函数中共分为三部分,主循环为单字循环显示,外部中断0的中断函数为 上下循环,外部中断1的中断函数为左右循环。采用边沿触发方式产生中断,每 次中断都循环显示“电子设计”。(2) 软件参数设置:1.Keil 软件:在Keil中选择AT89C52进行仿真,选择频率为11MHZ,如下图:选择仿真输出.hex文件,方便进行烧录,如下图:设置Debug,如下图:2.ST C烧录软件:(3) 源程序:#include #define Row P1#define C

11、ol P2#define ResetBit(byte,i) (byte) &= (0x01(i);typedef unsigned int int16u;typedef unsigned char int8u;/*模块级变量申明一一单字循环显示*/ /*这是“电”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取; 字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/int8u gRowBuff18 = 0x04,0x7F,0x49,0x7F,0x49,0x7F,0x84,0xF4;/*这是“子”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;字模的显示方

12、式为:单字单行显示;生成的字模格式:C51十六进制*/int8u gRowBuff28 = 0x7E,0x20,0xFE,0x10,0x10,0x10,0x14,0x10;/*这是“设”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/int8u gRowBuff38 = 0x72,0xDF,0x05,0xF5,0x54,0x24,0x5C,0x85;/*这是“计”的字模;该字模由LEDDOT生成;字模的提取方式为:逐行提取;字模的显示方式为:单字单行显示;生成的字模格式:C51十六进制*/int8u gRowBuf

13、f48 = 0x22,0x27,0xFC,0x24,0x24,0x24,0x2C,0x24;/*模块级变量申明一一上下循环*/ int8u gRowBuffa=0x04,0x7F,0x49,0x7F,0x49,0x7F,0x84,0xF4,0x00,0x7E,0x20,0xFE,0x10,0x10,0x10,0x14,0x10,0x00, 0x72,0xDF,0x05,0xF5,0x54,0x24,0x5C,0x85,0x00, 0x22,0x27,0xFC,0x24,0x24,0x24,0x2C,0x24,0x00 ;模块级变量申明左右循环*/ int8u gRowBuff=0xC0,0xB

14、E,0xAA,0xAA,0x7F,0x2A,0x2A,0x3E,0x00, 0x04,0x04,0x05,0x45,0xFD,0x07,0x05,0x02,0x00, 0x02,0x03,0xFE,0xCA,0x5B,0x29,0x5B,0x8A,0x00, 0x02,0x03,0xFE,0x88,0xD8,0x7F,0x08,0x08,0x00 ;int8u i,j,n,s;int16u sec;void Delay1(void);void Delay2(void);/*子函数定义*/ void main(void)IT0=1;/INT 0边沿触发IT1=1;/INT 1边沿触发EA=1;/

15、允许所有中断EX0=1;允许INT 0中断EX1=1;允许INT 1中断while(1)Col = 0xff;屏幕清零sec+;if(sec = 200) 每个汉字显示四秒;for(i=0;i 200) & (sec = 400)for(i=0;i 400)&(sec = 600)for(i=0;i 600)&(sec = 800)for(i=0;i800)&(sec=801)for(s=0;s0;j-)每屏显示时间for(i=0;i801)&(sec=802)for(s=0;s0;j-)每屏显示时间for(i=0;i0;i-)for(j=248;j0;j-);void Delay2(void

16、) unsigned char i,j;for(i=2;i0;i-) for(j=248;j0;j-); /*End Of File*/五、调试及过程分析:本次试验调试中出现了很多问题,首先是管脚座的误接很容易引发错误, 这个经过自习排查之后可以排除,后面的则主要在于烧制,在烧程序的时候,我 发现很多实验板烧完之后蜂鸣器响报警,但是经过排查之后,发现我使用的是P1 口和P2口,对应了开发板上面的蜂鸣器,但是程序始终少不上去,经过多方试验 之后通过找同学借到了一块可以烧制的。在最开始,本人买的单片机芯片为AT 系列的,后来发现AT的烧制必须要有相对应的烧制接口,并非串口烧制,所以 在换了 RST

17、芯片之后就解决了。最后在于程序,程序的最大难度就在于字码表, 最开始出现了左右相反的问题,经过调试之后,我画了一张8x8的点阵图,然后 在图上画出相应的字就可以通过图轻松画出来了。六、实验总结这次实验经历了很多问题,一共焊了两块板子,感觉第一块主要是自己太过 于急功近利,所以导致很多东西并不算是很懂的情况下就开始做了,其中的单片 机试用了 P0 口作为输出,这个时候P0 口的输出一般只有2.2v左右,需要使用 上啦电阻才能实现正常功能,然后我就只有改用P1 口,其次对于245芯片的不 了解,因为其A通道到B通道使用的是不同的连接方式,在做第二块板子的时 候,重新做的时候就好多了,而且经历了之前的失败,也让我小心很多避开了很 多失误。然后在于板子的程序方面,主要在于子码表,子码表其实原理很简单,我的 方法就是自己画一个8x8的矩阵,然后自己把字画出来,然后把对应的点的标为 1,然后写出其代码就可以了。只要仔细点就不会出现问题了。整个实验我经历了很多,我慢慢也发现做单片机其实还是存在很多了去,经 过仔细研究,我觉得单片机可以做更深层次的探究,而且最后经历了各种错误之 后也学习到了很多东西,这几天通过网上查资料,问同学都又学习到了很多东西。 也感谢在这次试验中给我提供帮助的各位老师和同学。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号