实验一 孙金云 0220 LED点阵显示--孙金云加油 I LOVE U 笑脸

本文主要介绍基于C51单片机,设计8*8晶阵显示“孙”“金”“云”“加”“油”“I”“L”“O”“V”“E”“U”“笑脸颜文字”。

首先让我们先来了解一下C51单片机晶阵显示屏的原理吧!

前期知识储备


1.对于共阴极数码管来说,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。共阳极相反。

2.8X8点阵LED工作原理说明 :8X8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置0电平,某一行置1电平,则相应的二极管就亮。原理图如图所示:

LED点阵显示屏原理图

那么想让8*8的晶阵显示需要位选信号以及段选信号。先进行位选,再进行段选。也就是先给行送信号,再给列送信号。

(1)位选信号

基于C51中单片机中,本次实验位选信号通过P0端口。


位选信号为横着写的,利用位选信号选中一列显示;位选信号选中值为0的那一列。

位选信号为:0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe。


位选信号:由右向左,一列一列的选中扫描显示


(2)段选信号

基于C51单片机中,本次实验段选信号通过P3端口。由下图可知,段选信号竖着写,是给列发送,选中高电平的那一行显示。(74HC595是反向的,有待继续深入研究。)


段选信号:当位选信号确定之后,段选信号确定了显示的具体点

接下来我们确定字符的段选信号,方法有如下两种:

a:手动画图,写出十六进制的代码,如下图所示:


b:利用软件子模生成软件:PCtoLCD2002软件。点击百度云链接即可下载使用。

https://pan.baidu.com/s/1KFXI1MWZBEmrqWpTl4iHig

具体教程请看文章二。

通过以上两种方法我得出的段选信号为:

0x92,0x9F,0xB2,0xD4,0x0A,0xFF,0x08,0x04, //孙

0x11,0x2D,0x6B,0xBF,0xAB,0x6D,0x29,0x11,//金

0x00,0xA2,0xA6,0xAA,0xB2,0xA6,0xA2,0x01, //云

0x22,0xFC,0x22,0x3F,0x00,0x1C,0x14,0x1C, //加

0x91,0x4A,0x00,0x3E,0x2A,0xFE,0x2A,0x3E, //油

0x00,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,//I

0x00,0x00,0x7E,0x02,0x02,0x02,0x02,0x00,//L

0x00,0x00,0x7E,0x42,0x42,0x42,0x7E,0x00,//O

0x00,0xF8,0x04,0x02,0x02,0x04,0xF8,0x00,//V

0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x00,//E

0x00,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,//U

0x60,0x48,0x64,0x02,0x02,0x64,0x48,0x60,//笑脸颜文字

实验部分


一、打开Keil uVision5软件,进行编程。

新建项目

打开软件之后,鼠标点击Project后,单击红色选中栏目。

如图所示,完善名字点击保存

选择Atmel

选择AT89C52

点击否

右键单击Source group1

接下来写代码

初始定义与赋值

理解具体定义还需要结合51单片机原理图

延时函数:

了解延时函数请百度or查阅资料

向74HC595发送段选信号

具体原理查阅资料即可

主函数部分:

具体原理查阅资料即可

代码链接:https://pan.baidu.com/s/1tIWj_jG5W9GRDRNRFEPRag

Rebuild

注意进行如下操作:

打开普中科技软件

连接单片机,打开之后设置好,打开单片机,点击程序下载

下载成功后的实验结果:


GIF动图
I
L
O
V
E
U
笑脸颜文字

重点

消隐现象的解释:

单片机的LED数码动态显示需要消隐。因为动态显示是利用 人眼的暂留效应来多位显示的。原理是其多位数码管的每位段码控制只由一个IO口8 位输出,先位选 ,送段码,延时(1~3ms),关位选

(这个就是消隐作用,如果没关,下一位的段码送出时,这一位也显示下一位的段码,这样就乱了)再下一位,重复上述过程。

例子解释


未消隐


消隐

当位选选中最右边一列时,段选信号表示全部不选中(全部不亮)

tab++后,进入下一位位选

由于刷新时间较显示时间快,在第二个位选信号来临时第一个位选信号还在亮,这时没有给一个全部熄灭的段选(即0xff),会导致新的段选来临时,上一个位选尚未结束,就导致最右边第一列会亮第二列的段选信号,但是由于第一次位选已经持续了一段时间,其熄灭的快,颜色较浅。

(此现象我跟陈磊同学经过苦苦钻研终于得出结论,还有待考证)

个人编程心路


1.在之前的学习中,有些知识掌握的不是很扎实,当实践操作时才发现要想独立完成一个实验,前后联系很多,对于C51单片机的基础知识必须掌握透彻。

2.最开始的时候,我没有想到有代码可以参考(对云盘资料研究不够),自己照着课本写代码,没有成功,后来得知有参考代码,瞬间有了方向,自己写代码的话还是很难的。

3.单片机的跳线帽少一个,借用同学的,同时我还发现手指也能当跳线帽。

4.我总觉得手绘写出十六进制挺麻烦的,有点强迫症,找了小半天的字模生成软件。

5.感谢石雅文对于段选以及位选的指正!

5.实验不易,且做且心记。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、实验内容 在keil软件中编写程序,利用烧录软件下载hex文件实现在大板单片机的8*8点阵中显示“54”的指令...
    吴思思0130阅读 544评论 0 0
  • 实验步骤 一、确定汉字点阵 二、编写代码 #include "reg51.h"//定义单片机的特殊寄存器#incl...
    郑越华0125阅读 1,205评论 0 1
  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,859评论 0 5
  • 现在运城国际小学举办了一场篮球赛,一个班可以选一支队都可以参加这个比赛,于是我们班同学踊跃参与。我们组建了一个非常...
    王者你要阅读 294评论 0 0
  • 1.衣不如新,人不如故。 2.喜欢是乍见之欢,爱是久处不厌。
    咫尺天涯意相逢阅读 158评论 0 0