51单片机学习笔记——第九天:LED点阵显示数字与取模软件的使用

大家好!今天是学习51单片机的第九天,昨天介绍了74hc595,今天继续学习74HC595。学习笔记如下:

之前我们学习了如何在LED点阵上显示一个点,现在使用LED点阵显示数字;

回顾一下显示点的方法;

 

 将LED点阵左边第一列设置为0,即LED阴极为低电平,其余列为1,即高电平,即P0=0x7f。并且第一行A1需要设置成高电平,那么SER=0x80。

同理,我们要显示第二行第二列的点我们就需要设置:P0=0xbf;SER=0x40。

那么如果我们要两个点共同显示,要如何做呢?

原理就是和数码管共同显示的原理一样,视觉停留!只要我们在显示一个点后迅速显示另一个,然后不断交换,在我们看来就会觉得是两个点同时显示。

然后我们假如要显示数字0,这时我们需要用到文字取模软件,网上流行的取模软件有很多,介绍一下我用的PCtoLCD2002:

 第一步:单击基本操作>>新建图像,设置宽度和高度这里我们设置8*8。这时中间就会出现8*8的白格。

第二步:单击模拟动画>>放大格点,可以放大个点,进行取模。

 

第三步:参数设计>>其他选项,出现下面的选项框。

 

我们一般设置:纵向取模,字节倒序

第四步:取模方式>>C51格式,即可

0x00,0x7C,0x82,0x82,0x7c,0x00,0x00.

需要注意的是:这里是纵向取模,横向我们设置的是0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f

代码如下:

实验现象:下载程序后,8*8LED点阵显示数字0

#include "reg51.h"

typedef unsigned int u16;    //对系统默认数据类型进行重定义
typedef unsigned char u8;

//定义74HC595控制管脚
sbit SRCLK=P3^6;    //移位寄存器时钟输入
sbit RCLK=P3^5;        //存储寄存器时钟输入
sbit SER=P3^4;         //串行数据输入

#define LEDDZ_COL_PORT    P0    //点阵列控制端口

u8 gled_row[8]={0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00};//LED点阵显示数字0的行数据
u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示数字0的列数据

void delay_10us(u16 ten_us)
{
    while(ten_us--);    
}

void hc595_write_data(u8 dat)
{
    u8 i=0;
    
    for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
    {
        SER=dat>>7;//优先传输一个字节中的高位
        dat<<=1;//将低位移动到高位
        SRCLK=0;
        delay_10us(1);
        SRCLK=1;
        delay_10us(1);//移位寄存器时钟上升沿将端口数据送入寄存器中    
    }
    RCLK=0;
    delay_10us(1);
    RCLK=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出    
}

void main()
{    
    u8 i=0;

    while(1)
    {            
        for(i=0;i<8;i++)//循环8次扫描8行、列
        {
            LEDDZ_COL_PORT=gled_col[i];//传送列选数据
            hc595_write_data(gled_row[i]);//传送行选数据
            delay_10us(1000);//延时一段时间,等待显示稳定
            hc595_write_data(0x00);//消影    
        }                                
    }        
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值