- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机与接口技术实验报告
专业:电子信息工程 班级: 姓名: 学号: 成绩:
实验二 点阵LED显示
1、实验目的:(1)了解8×8点阵LED显示器的基本原理;
(2)掌握单片机控制点阵LED显示字符程序的设计方法。
2、实验仪器:PC机一台,Keil仿真开发环境,SW-51PRO-II单片机综合实验平台系统一套。
3、实验原理:点阵的LED显示器是将许多LED用类似矩阵的结构排列在一起组成的显示器件,当用单片机输出控制信号,使得点阵中的LED有些发光,有些不发光,即可显示出特定的信息,包括汉字、图形等,由计算机控制点阵LED大屏幕广告宣传牌就是采用的这样的显示技术。
SW-51PRO-II单片机综合实验平台上设有四个8×8的点阵LED显示器,其点阵结构如图所示。
SW-51PRO-II单片机综合实验平台上的点阵LED及驱动连接电路如附录的电路图所示(其中点阵LED与AT89S52单片机输入输出口之间的连接需要实验者自己连接)。
接线方式:
(1)P0.0----P0.7连接到点阵模块的D0-----D7
(2)点阵模块的A3 A2 A1 A0 CS LE1 LE2 OE1 依次分别连接到MCU的P1口的P1.0-P1.7
(3)OE2连接到P2.0
例如:如果显示汉字“年”,采用逐列循环发光。首先由“年”的点阵轮廓确定点阵代码。“年”字的点阵轮廓如右图所示,如果按照共阳极的电路分析,8×8的点阵LED显示器的阳极已经接好,行线Y0-Y7满足正电压条件,如果需要每一列指定的位置上的发光二极管点亮,只需要在列线上I0-I7输入相对应控制电平,顺序循环控制,就可以实现发光组合成“年”字。
1、列线I7-I0输FBH,第一行的1个LED发光;
2、列线I7-I0输01H,第二行的7个LED发光;
3、列线I7-I0输EEH,第三行的2个LED发光;
4、列线I7-I0输83H,第四行的5个LED发光;
5、列线I7-I0输EBH,第五行的2个LED发光;
6、列线I7-I0输00H,第六行的8个LED发光;
7、列线I7-I0输EFH,第七行的1个LED发光;
8、列线I7-I0输EFH,第八行的1个LED发光;
在以上每一步骤之间插入1ms左右的延时,重复进行以上1―8步骤,即可在LED上稳定的显示出“年”字。这里的8字节数据:FH,01H,EEH,83H,EBH,00H,EFH,EFH,称为“年”的显示代码。
实验内容:将单片机的连接线分别与4个8×8LED点阵的行、列驱动电路分别相连。可以实现4个8×8LED点阵分别循环显示4个字符“年年有余”。
5、课前预习:
(1)认真阅读实验报告的内容,明确实验的内容;
(2)根据课本的讲解,对照下面的实验程序,理解指令的含义和执行方法,回答问题;
(3)认真阅读下面的程序,为指令行添加注释,说明其功能。
6、参考程序:
//-----------------------------------------------------------------------------------
#include reg52.h
//-----------------------------------------------------------------------------------
sbit A3 = P1^0;
sbit A2 = P1^1;
sbit A1 = P1^2;
sbit A0 = P1^3;
sbit CS = P1^4;
sbit LE1 = P1^5;
sbit LE2 = P1^6;
sbit OE1 = P1^7;
sbit OE2 = P2^0;
//-----------------------------------------------------------------------------------
#define leftOutEnable() { OE1 = 0;LE1 = 1; }
#define leftOutDisable() { OE1 = 1;LE1 = 0; }
#define rightOutEnable() { OE2 = 0;LE2 = 1; }
#define rightOutDisable() { OE2 = 1;LE2 = 0; }
//-----------------------------------------------------------------
文档评论(0)