单片机8×8点阵显示简单汉字的程序_干货 | 浅析单片机制作贪吃蛇游戏

本文介绍了如何使用51单片机通过动态扫描方法驱动16×16点阵显示汉字,详细讲解了74HC138译码器控制行选择和74HC595移位缓存器进行列输出的工作原理。此外,还阐述了利用摇杆和ADC功能实现贪吃蛇游戏的方向控制,提供了STC8单片机的C语言代码框架。
摘要由CSDN通过智能技术生成

为了让大家更深入地了解底层的原理,在讲解时特意选择了51单片机(而非STM系列),另外16*16点阵由译码器和移位缓存器直接驱动(而非MAX系列芯片),摇杆也利用ADC功能判断方向。

9217783b07e47957c259f1ac4a6d3e68.png 73c64023c3e91e2a10b2bedcf502a586.png 3e1f292c17492a9e05b2db2a03224313.png 73c64023c3e91e2a10b2bedcf502a586.png eb3020265ecef29ccdb8ca254346a152.gif

那如何让单片机驱动这256个点呢?直接用IO口驱动显然不够且十分浪费。为了解决这个问题,我们要引入动态扫描的方法,它利用了人类的视觉暂留现象:如果让点阵的每一行分别轮流显示,当扫描速度足够高时,我们并不会看到一行一行地闪动,而是一幅完整的图像。

在驱动这个16*16点阵时,单片机会首先选中一行,然后将16位的数据输出以显示一行,在做短时间的停顿后接着再选择下一行输出,如此往复对这16行进行高速扫描就可以在点阵上看到要显示的图像。

先来讲解一下16*16点阵的原理。为了方便大家理解,我们先来看一下8*8点阵的电路图。它实际上由64个LED组成,每行共阴,每列共阳,当某行输出信号为低电平时,整一行LED阴极均为低电平,当在列上分别输入不同的电平信号时,交叉点的LED就会有不同的亮灭情况,以此不断循环扫描,就可以显示完整的图像。

de0cabfab4924afc5f87dc86728c4b4b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值