STC89C52学习笔记(八)

news2025/6/20 7:05:57

STC89C52学习笔记(

综述:本文讲述了LED点阵屏、如何进行数据串行输入,并行输出以及LED点阵屏显示一列多列图形。

一、LED点阵屏

1.介绍

LED点阵屏由多个LED组成,以矩阵形式排列(类似于矩阵键盘),像素一般为8*8或16*16(这里用到的是8*8)。

(注意:当使用LED点阵屏的时候,需要将跳线帽插到相应的位置。)

2.显示原理

类似于数码管

3.74hc595芯片介绍

①74hc595芯片是串行输入,并行输出的移位寄存器。

②OE是输出使能端,RCLK是时钟,SRCLR串行清零端,SRCLK串行时钟,SER串行数据。

③74hc595芯片主要通过控制RCLK、SRCLK和SER来控制数据输出。SRCLK上升沿移位,RCLK下降沿锁存。

4.代码配置

①位声明

因为在写代码时很容易遗忘是对应哪个引脚,所以,进行相应的位声明可以方便后面代码的撰写,位声明一般放在头文件下方,main函数前。

sbit RCK=P3^5;//RCLK
sbit SCK=P3^6;//SRCLK
sbit SER=P3^4;
②将数据串行输入

将数据串行移位的思路是先提取一位数据,然后通过SRCLK上升沿移位,将数据传输进去。在进行串行移位时,是从最高位一位一位移动的,所以这里将数据先将最高位提取出来。Byte&0x80;表示想要取第8位的数,因为第8位的数在二进制里就只有两种1或0, 第八位是1,就是1000 0000,用16进制讲就是0x80,如果Byte的第八位数据为1时,和0x80相与就是1,如果Byte的第8位数据为0时,与0x80相与为0。同理,可以将第7位、第6位……数据传输进去。

        SER=Byte&0x80;
		SCK=1;
		SCK=0;
		SER=Byte&0x40;
		SCK=1;
		SCK=0;
		SER=Byte&0x20;
		SCK=1;
		SCK=0;
         ……

一次一次写代码太冗长了,可以利用for语句和右移来表示,也即是:

for(i=0;i<8;i++)
	{
		SER=Byte&(0x80>>i);
		SCK=1;
		SCK=0;
	}
③将数据并行输出

先将RCK初始化为0,当数据全部输入完毕后,将RCK置为1,由于RCK是下降沿锁存,上升沿传输,所以,数据就能够被并行输出了。

void _74HC595_WriteByte(unsigned char Byte)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		SER=Byte&(0x80>>i);
		SCK=1;
		SCK=0;
	}
	RCK=1;
	RCK=0;
}

void main()
{
	SCK=0;
	RCK=0;
	_74HC595_WriteByte(0xf0);
	while(1)
	{
		
	}
}
④只显示某一列LED点阵屏

把每一列看作某一位数码管,把每一行看作某一个数码管的段码。

(假设第一列计为Coulmn=0)由于第一列是P07,那么当选中第一列时也就是P07=0,也就是P0=~0x80;选中第二列时也就是P07=0,也就是P0=~0x40;那么需要写很多行代码

    if(Coulmn==0){P0=~0x80;}
	if(Coulmn==1){P0=~0x40;}
	if(Coulmn==2){P0=~0x20;}
    ……

于是,这里可以用P0=~(0x80>>Column);代替,使得代码简洁凝练。

于是,在某一列显示点亮某几个LED灯的代码如下:

(这里显示的是LED点阵屏的第一列的第1、3、5、7LED被点亮)

void _74HC595_WriteByte(unsigned char Byte)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		SER=Byte&(0x80>>i);
		SCK=1;
		SCK=0;
	}
	RCK=1;
	RCK=0;
}

void MatrixLED_ShowColumn(unsigned char Column,Data)
{
	_74HC595_WriteByte(Data);
	P0=~(0x80>>Column);
}

void main()
{
	SCK=0;
	RCK=0;
	MatrixLED_ShowColumn(1,0x55);
	while(1)
	{
		
	}
}
⑤显示多列LED点阵屏

思路:段选→位选→延时→位清零→段选……

void MatrixLED_ShowColumn(unsigned char Column,Data)
{
	_74HC595_WriteByte(Data);
	P0=~(0x80>>Column);//位选
	Delay(1);
	P0=0xff;//位清零
	
}

void main()
{
	SCK=0;
	RCK=0;
	
	while(1)
	{
		MatrixLED_ShowColumn(0,0x80);
		MatrixLED_ShowColumn(1,0x40);
		MatrixLED_ShowColumn(2,0x20);
		MatrixLED_ShowColumn(3,0x10);
        MatrixLED_ShowColumn(0,0x08);
        MatrixLED_ShowColumn(0,0x04);
        MatrixLED_ShowColumn(0,0x02);
        MatrixLED_ShowColumn(0,0x01);
	}
}

参考视频:51单片机学习.视频

侵权联系删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1585037.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

分布式锁-redission

5、分布式锁-redission 5.1 分布式锁-redission功能介绍 基于setnx实现的分布式锁存在下面的问题&#xff1a; 重入问题&#xff1a;重入问题是指 获得锁的线程可以再次进入到相同的锁的代码块中&#xff0c;可重入锁的意义在于防止死锁&#xff0c;比如HashTable这样的代码…

作业习题

实验代码&#xff1a; import java.util.Scanner;class chazhao {public static void main(String[] args) {Scanner scnew Scanner(System.in);System.out.println("请输入你要的数组");String line sc.nextLine();String[] lineArrline.split(" ");int[…

Mybatis分页查询用PageHelper插件

首先看接口文档需求 看响应数据样例&#xff0c;那么咱们先自定义一个bean来满足这个需求&#xff0c;这里定义PageBean实体类 package com.itheima.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.List;//分…

uniapp+springboot实现一个简单的音乐播放器移动端+服务端(第一阶段计划有流程制定)

一、项目概述 本项目旨在通过uniapp开发移动端音乐播放器&#xff0c;并利用Spring Boot构建后端服务&#xff0c;实现用户登录、音乐列表获取、音乐播放与暂停、音乐收藏等功能。 二、开发流程 需求分析 确定音乐播放器的核心功能&#xff0c;如用户登录、音乐列表展示、音乐播…

STM32 H7系列学习笔记

必备的API知识 第 1 步&#xff1a;系统上电复位&#xff0c;进入启动文件 startup_stm32h743xx.s&#xff0c;在这个文件里面执行复位中断服务程序。 在复位中断服务程序里面执行函数 SystemInit&#xff0c;在system_stm32h7xx.c 里面。*之后是调用编译器封装好的函数&…

R语言复现:轨迹增长模型发表二区文章 | 潜变量模型系列(2)

培训通知 Nhanes数据库数据挖掘&#xff0c;快速发表发文的利器&#xff0c;你来试试吧&#xff01;欢迎报名郑老师团队统计课程&#xff0c;4.20直播。 案例分享 2022年9月&#xff0c;中国四川大学学者在《Journal of Psychosomatic Research》&#xff08;二区&#xff0c;I…

第十届蓝桥杯大赛个人赛省赛(软件类) CC++ 研究生组2.0

A立方和 #include<iostream> #include<cmath> using namespace std; int main(){int n, t, flag, x;long long ans 0;for(int i 1; i < 2019; i){t i;flag 0;while(t && !flag){x t % 10;if(x 2 || x 0 || x 1 || x 9) flag 1;t / 10;}if(fl…

1571. 【基础赛】游戏(game)

1571. 【基础赛】游戏&#xff08;game&#xff09; (Input: game.in, Output: game.out) 题目描述 Introl 在玩一种特殊的游戏——凑顺子。 他现在有 n 张牌&#xff0c;每张牌的点数为 ai​&#xff0c;他希望凑出尽可能多的顺子。 在该游戏中&#xff0c;顺子的定义为&…

【c++】string类常见接口函数

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好啊&#xff0c;本节我们来到STL内容的第一部分&#xff1a;string类接口函数的介绍 目录 1.string类的认识2.常见接口讲解2.1 string类对象的常见构造2.2 对string对象的遍历和…

day7 nest商业项目初探·三(java转ts全栈/3R教室)

背景&#xff1a;从头一点点学起太慢了&#xff0c;直接看几个商业项目吧&#xff0c;看看根据Java的经验&#xff0c;自己能看懂多少&#xff0c;然后再系统学的话也会更有针对性。今天看下一个项目 * 【法国 | 3.75w】Nextjs&#xff1a;小雯工作室创意官网 &#xff08;2023…

【Java】Java使用Swing实现一个模拟计算器(有源码)

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 今天翻了翻之前写的代码&#xff0c;发现自己之前还写了一个计算器&#xff0c;今天把我之前写的代码分享出来。 我记得那会儿刚学不会写&#xff0c;写的乱七八糟&#xff0c;但拿来当期末作业还是不错的哈哈。 直接上…

48-基于腾讯云EKS的容器化部署实战

准备工作 在部署IAM应用之前&#xff0c;我们需要做以下准备工作&#xff1a; 开通腾讯云容器服务镜像仓库。安装并配置Docker。准备一个Kubernetes集群。 开通腾讯云容器服务镜像仓库 在Kubernetes集群中部署IAM应用&#xff0c;需要从镜像仓库下载指定的IAM镜像&#xff…

基于springboot实现医院管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现医院管理系统演示 摘要 随着信息互联网信息的飞速发展&#xff0c;医院也在创建着属于自己的管理系统。本文介绍了医院管理系统的开发全过程。通过分析企业对于医院管理系统的需求&#xff0c;创建了一个计算机管理医院管理系统的方案。文章介绍了医院管理系…

【YOLOv8实战】手把手带你入门YOLOv8,你也能训练自己的检测器,以SAR目标检测为例(源码+数据集+Gradio界面)

&#x1f4a1;&#x1f4a1;&#x1f4a1;本文摘要&#xff1a;基于YOLOv8的SAR图像目标检测系统&#xff0c;覆盖数据制作、数据可视化、模型训练/评估/推理/部署全流程&#xff0c;最后通过 Gradio 界面进行展示。 0 写在前面 上篇分享【飞浆AI实战】交通灯检测&#xff1a…

抖音视频无水印采集拓客软件|视频批量下载提取工具

抖音视频无水印批量采集拓客软件助力高效营销&#xff01; 随着抖音平台的崛起&#xff0c;视频已成为各行各业进行营销的重要工具。但是&#xff0c;传统的视频下载方式往往效率低下&#xff0c;无法满足快速获取大量视频的需求。针对这一问题&#xff0c;我们开发了一款视频无…

Java项目:基于SSM+vue框架实现的人力资源管理系统设计与实现(源码+数据库+毕业论文+任务书)

一、项目简介 本项目是一套基于SSM框架实现的人力资源管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功能…

中介者模式【行为模式C++】

1.简介 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 亦称&#xff1a; 调解人、控制器、Intermediary、Controller、Mediator 2.示例 中介者模式在…

【氧化镓】β-Ga2O3肖特基势垒二极管的缺陷识别

本文是一篇关于β-Ga2O3肖特基势垒二极管在电子辐射和退火调节下缺陷识别的研究。文章首先介绍了β-Ga2O3作为一种高性能器件材料的重要性&#xff0c;然后详细描述了实验方法&#xff0c;包括样品制备、电子辐照、热退火处理以及电学特性和深能级瞬态谱&#xff08;DLTS&#…

深度学习环境搭建问题汇总

pip无法通过国内源下载&#xff0c;could not find a version that satisfies the requirement 当遇见could not find a version that satisfies the requirement问题时&#xff0c;可以通过下载whl的方式进行离线安装&#xff0c;以torch1.12.0为例&#xff0c;如果用的是阿里…

一网统管/安防监控/视频综合管理EasyCVR视频汇聚平台解决方案

一、当前现状分析 当前视频资源面临以下问题&#xff1a; 1&#xff09;不同单位在视频平台建设中以所属领域为单位&#xff0c;设备品牌众多&#xff0c;存在的标准不一&#xff0c;各系统之间也没有统一标准&#xff1b; 2&#xff09;各单位视频平台建设分散、统筹性差&a…