51单片机入门之点阵

目录

前言

一、74hc595

二、使用步骤

1.点阵心形

2.流动心形 

总结



前言

LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示期间,通常由显示模块、控制和电源组成。led点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。

一、74hc595

说到点阵就必须说起74hc595,一个8位串行输入并行输出的移位寄存器

二、使用步骤

1.点阵心形

#include <REG51.h>  //51专属头文件
#include <public.h>	//延时函数头文件
#include "intrins.h"
#define led P0		//数码管io

sbit STCP =P3^5;
sbit SHCP =P3^6;
sbit DS = P3^4;


unsigned int arr1[8]={0x30,0x78,0x7C,0x3E,0x3E,0x7C,0x78,0x30,};   //74hc595列控制
unsigned int arr2[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};   //P0行控制
                                       

int hc595(unsigned char dat)            //1字节8bit输入
{
 unsigned int i;
  for(i=0;i<8;i++)
   {
   	DS=dat>>7;
	dat=dat<<1;						//74hc595输出传输与存储
	SHCP=0x00;
	delay_10us(1);
	SHCP=0x01;
   }
   STCP=0x00;
   delay_10us(1);				   //存贮
   STCP=0x01;
}
int main()
{
   unsigned int i=0;
   while(1)
   {
   for(i=0;i<8;i++)
   {
   led=arr2[i];
   hc595(arr1[i]);		   //行列扫描
   delay_ms(1);
   hc595(0x00);   		   //消影
   }
   }
return 0;
}

流动心形

#include <REG51.h>  //51专属头文件
#include <public.h>	//延时函数头文件
#include "intrins.h"
#define led P0		//数码管io

sbit STCP =P3^5;
sbit SHCP =P3^6;
sbit DS = P3^4;


unsigned int arr1[8]={0x30,0x78,0x7C,0x3E,0x3E,0x7C,0x78,0x30,};   //74hc595列控制
//unsigned int arr2[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,};   //P0行控制
                                       

int hc595(unsigned char dat)            //1字节8bit输入
{
 unsigned int i;
  for(i=0;i<8;i++)
   {
   	DS=dat>>7;
	dat=dat<<1;						//74hc595输出传输与存储
	SHCP=0x00;
	delay_10us(1);
	SHCP=0x01;
   }
   STCP=0x00;
   delay_10us(1);				   //存贮
   STCP=0x01;
}
int main()
{
   unsigned int i=0;
   unsigned int z=0;

   while(1)
   for(z=0;z<8;z++)
   {
   for(i=0;i<8;i++)
   {
   led=_cror_(0x7f,i+z);
   hc595(arr1[i]);		   //行列扫描
   delay_ms(1);
   hc595(0x00);   		   //消影
   }
    delay_ms(100);
   }
return 0;
}


总结

 在驱动74h595时开始用了int 来定义数据,在移位过程中,传递到第二个字节导致显示异常0

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是DS小龙哥编写的(STC)51单片机开发手册,适合51单片机入门初学者,大学生等当做工具书使用。实验的平台采用的是普中科技单片机平台,文章中的知识点详细,代码清晰,注释清楚,可以复制粘贴,配套代码详细。目前写了4个大章节,后续会持续更新,更新后重新下载即可。 每个例子的完整的工程源码在PDF里有百度云盘的下载链接。失效了可以私信发送。 目前PDF里包含的目录如下: 51单片机开发手册 1 一、 单片机开发入门知识介绍 1 1.1 51单片机介绍 1 1.2 市场上的主流单片机种类 1 1.3 FPGA与单片机区别 2 1.4 DSP和单片机区别 3 二、搭建开发环境 4 2.1 STC单片机命名介绍 4 2.2 安装keil软件 4 2.3 新建工程 5 2.4 下载程序 8 2.5 使用辅助工具计算延时时间 12 2.6 STC90C51系列单片机引脚图 13 三、 基础入门学习 14 3.1 LED灯模块 14 3.2 蜂鸣器模块 17 3.5 独立按键 18 3.6 矩阵键盘 22 3.7 独立数码管(静态数码管) 26 3.8 动态数码管 29 3.9 LED 16*16点阵 33 3.10 采用38译码器驱动8位数码管 48 四、单片机提高篇 53 4.1 定时器 53 4.2 中断 60 4.3 串口通信 71 4.4 NEC红外线遥控器解码 80 4.5 DS18B20温度传感器 87 4.6 EEPROM存储芯片(AT24C02) 96 4.7 DS1302 实时时钟芯片 107 4.8 PCF8591(ADC/DAC)转换芯片 119 4.9 (HC-SR04)超声波测距模块 130 4.10 使用计数器测量NE555脉冲频率 134 4.11 LCD1602显示屏 139 四、 单片机项目篇 146 5.1 16x16点阵滚动显示 146

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值