【51单片机16*16LED点阵(显示图像)学习总结】

51单片机16*16LED点阵显示图像—笑脸

利用STC89C51的单片机开发板16*16点阵模块(独立)+开发资料、电路图+4个74HC595芯片+取模软件+c语言编程实现笑脸显示。笑脸图像取模软件取模

一、 学习思路—基于STC89C51单片机(A7)

1. 电路图详情

  1. STC89C51(A7)版本的单片机各模块独立,还需要用的是4片74HC595芯片。

16*16LED点阵电路

  1. 74HC595芯片特点是8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。

    三态:8位串行输入、 8位串行或并行输出、 存储状态寄存器。
    移位寄存器和存储器是分别的时钟。
    74HC595电路图

  2. 74HC595有三态,SER(数据输入)、SRCLK(移位寄存器时钟)和RCLK(锁存器时钟),且SER/SRCLK和RCLK均需要连接到51I/O引脚上,这里将SER连接到 P0-3,SRCLK连接到P0-5和RCLK连接到P0-4引脚。

  3. 74HC595(A)、74HC595(B)、74HC595©、74HC595(D)四个芯片由QH非相互连接
    SER负责数据输入,第一个数据通过SER输入,通过SRCLK移位到QA,第二个数据通过SER输入,通过SRCLK移位时,原来第一个SER输入的数据QA被移位到QB,第二个数据就进入到QA中以此类推。 直至74HC595(A)中 QA-QH的8位被填满。这是第一个8位对应74HC595(A),当有第二组8位数据传入的时候,第一组8位中的74HC595(A)也会被移位到74HC595(B)中,并且依次类推。 这样74HC595A/B/C/D四个芯片依次被依次传入8位数据。

  4. 具体为:通过SER口输入串行的数据,当SRCLK有上升沿信号时,数据就往下移一位,当数据满了8位时,给RCLK上升沿信号时,8位数据就锁存到QA~QH,QH’连接到下一片74HC595,继续拓展16位、32位…,这里只是3线拓展到8线,QH’就不用接了。这样单片机通过3个I/O口连接74HC595,输出4*8=32位数据上升锁存

2. 独立模块的接线和验证

STC89C51(A7)版本各模块独立,所以使用时需要接线使用。根据电路图显示 U6/U7分别连接J27和J32,这里需要强调一下,电路图中的现实不一定正确,所以需要验证连接是否正确!需要注意!!!本实验J10连接J34、J27连接J28,现实是正极。QA–QH为低到高位
AB接线连接
C/D芯片显示为NEG,所以为阴极。C/D电路图
74HC595程序:

void _HC595_DATA(u8 dat1, u8 dat2, u8 dat3, u8 dat4)
{
   
	u8 i  = 0;
	RCLK  = 0;
	SRCLK = 0;
	 for(i=0; i<8; i++)
	{
   
		SER = dat4 >> 7;
		dat4 <<= 1;
		SRCLK = 0;
		SRCLK = 1;
	}
	for(i=0; i<8; i++)
	{
   
		SER = dat3 >> 7;
		dat3 <<= 1;
		SRCLK = 0;
		SRCLK = 1;
	}
	for(i=0; i<8; i++)
	{
   
		SER = dat2 >> 7;
		dat2 <<= 1;
		SRCLK = 0;
		SRCLK = 1;
	}
	for(i=0; i<8; i++)
	{
   
		SER = dat1 >> 7;
		dat1 <<= 1;
		SRCLK = 0;
		SRCLK = 1;
	}
	RCLK = 0;
	Dately_10us(10);
	RCLK = 1;
	}

3. 取模软件进行取模(横向取模)

取模软件取模方法:取模方向——横向取模,字节倒序,取模方式——C51格式,取出的字模样式如图:取模软件图

数组我们用U8别名变量保存下来:(横向取模两两对应— —)
后续使用的时候需要取反

u8 _hc595_xiaolian_L[32] = {
   
	0x00,0x00,0x00,0x00,0x10,0x04,0x28,0x0A,
	0x44,0x11,0x00,0x00,
### HTML Script Tag with Type Module Meaning and Usage In modern web development, using `<script type="module">` allows developers to work directly with ECMAScript (ES) modules within HTML documents. This attribute indicates that the contained or linked JavaScript code should be treated as an ES module rather than a traditional script. When specifying `type="module"` on a `<script>` tag: - The browser treats the content as an ES6-style module. - Modules execute in strict mode automatically without needing `"use strict";`. - Variables declared inside these scripts do not become global properties by default; they remain scoped locally unless explicitly exported[^1]. For example, when including external files as modules: ```html <script type="module" src="./main.js"></script> ``` Or inline scripting can also leverage this feature: ```html <script type="module"> import { myFunction } from './utilityFunctions.js'; myFunction(); </script> ``` Modules support both named exports and default exports, providing flexibility in how components interact across different parts of applications[^2]. Additionally, browsers fetch all imported dependencies before executing any part of the main module, ensuring proper initialization order[^4]. #### Features Enabled Through Using `type="module"` - **Top-Level Await**: Unlike regular scripts where asynchronous operations need explicit handling via functions, top-level await is supported natively within modules starting from certain versions of major browsers. - **Access Control Headers Required for Cross-Origin Imports**: When loading cross-origin JS files, appropriate CORS headers must be set server-side because modules enforce stricter security policies compared to standard scripts.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值