51单片机笔记《三》

举报
万里羊 发表于 2021/08/24 23:35:01 2021/08/24
【摘要】 用8*8点阵显示爱心 LED点阵屏介绍: LED点阵屏通过LED(发光二极管)组成,以灯珠量灭来显示文字、字母、动画、视频等。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报战器...

用8*8点阵显示爱心

LED点阵屏介绍:

LED点阵屏通过LED(发光二极管)组成,以灯珠量灭来显示文字、字母、动画、视频等。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报战器、广告牌、银行窗口屏、叫好屏以及停车场系统等等。

LED点阵屏展示:

在这里插入图片描述

74HC595芯片

74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。它是8位串行输入/输出或者并行输出移位寄存器。如果没有该芯片那么对于8*8点阵则需要64个IO口。而加上两块74HC595芯片以后则需要3个IO口。
在这里插入图片描述
所以加上74HC595以后的点阵屏:
在这里插入图片描述
这样各个引脚的作用是:在这里插入图片描述

#include <reg52.h>
#include <intrins.h>
sbit DIO = P3^4;//串行数据接口
sbit S_CLK = P3^5;//移位寄存器时钟
sbit R_CLK = P3^6;//移除锁存器时钟
//0x3E,0x2A,0xFF,0xAA,0xBE,0xC0,0x00,0x00//
unsigned char a[10]={0x7F,0xBF,0xDF,0xE0,0xDF,0xBF,0x7F,0xFF};
void sent(unsigned char dat)
{
 unsigned char i;
 S_CLK=0;
 R_CLK=0;
 for(i=0;i<8;i++)
 {
  S_CLK = 0;
  R_CLK = 0;
  if(dat & 0x01)
   DIO=1;
  else
   DIO = 0;
  S_CLK = 1;//产生上升沿
  dat >>=1;//右移移位
 } 
 S_CLK=0;//产生下降沿
}
void main()
{
 //ROW 0X80,COL 0XFE
 unsigned char j,temp;
 while(1)
 {
  temp=0x80;
  for(j=0;j<8;j++)
  {
   sent(a[j]);
   sent(temp);
   R_CLK=1;
   R_CLK=0;
   temp=_cror_(temp,1);
  }
 }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

文章来源: wlybsy.blog.csdn.net,作者:万里羊,版权归原作者所有,如需转载,请联系作者。

原文链接:wlybsy.blog.csdn.net/article/details/89716944

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。