51单片机功能模块学习笔记 — 数码管

发布者:玄幻剑客最新更新时间:2018-08-17 来源: eefocus关键字:51单片机  功能模块  数码管 手机看文章 扫描二维码
随时随地手机看文章

1. 共阳数码管的基本连接方式

这里写图片描述

如上图所示,当数码管的公共段连接到电源时,就被称为共阳数码管。那么,相应的共阴数码管就是公共段连接到地的一类数码管。

2.数码管的显示原理

根据数码管的显示原理:可分为共阴数码管和共阳数码管这里写图片描述

如上图所示,左图所有的二极管的公共段都被连接到地,如果我们想要在a-dp上有所显示,就应该在对应端口送“1”。同理,如果我们想要使得共阳数码管上显示某些特定的字符,就应该在对应位送“0”。

根据这个原理,我们可以算出0-F对应的共阴数码管和共阳数码管显示的十六进制字符。我们可以将所有字符放在一个数组里面,以便查询。


下列是共阴极数码管和共阳数码管段码的常用码表总结:


unsigned char code distab[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} //共阴数码管段选码表,无小数点


unsigned char code distab[16]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1} //共阴数码管段选码表,有小数点


unsigned char code distab[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}  //共阳数码管段选码表,无小数点


unsigned char code distab[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e} //共阳数码管段选码表,有小数点



3.共阳数码管实验程序



/*利用共阳极数码管显示0-F*/


#define SEGPORT P0      


unsigned char code TableCA[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,

                                0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};  //共阳极数码管码表



/*** 共阳数码管显示0-F  ***/

void ShowSegCA()

{

    unsigned char i;


    //查表显示

    for(i = 0;i < 16;i++)

    {

        SEGPORT = TableCA[i];

        delay_ms(100);

    }


}

4.八位共阴数码管模块连接方式

这里写图片描述


如上图所示,两个74HC573锁存器分别连接到数码管的段码和位码端,分别进行位琐存控制和段琐存控制。那么,锁存器到底是干什么的呢?

4.1锁存器的电路原理图 
这里写图片描述

锁存器百度百科:


锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制器与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。


以下是我个人对于锁存器的理解:


    锁存器就像是一道门,平时的时候门并不打开。当锁存器的琐存使能有效时,这道们才打开。就举上面八位共阴极数码管的例子来说,我现在想要实现在第一位数码管上显示数字“0”。

    那我应该如何利用锁存器来工作呢?第一步,先选中第一个数码管。

    首先,将选中第一位数码管的数据发送到位锁存器,这时候位琐存的门还没有开;接着,使能位琐存,门开了,数据送到数码管,根据数据选中第一位数码管;最后,关闭门。(为什么一定要关闭门呢?因为段琐存的数据输入端口和位琐存数据的数据输入端口都是连接到同一个P0的。我们必须要让数码管区分到底是发送的是位选数据还是段选数据,所以一个位数据发送完,我们必须把门再关上。)第二部,发送段选信号。即将“0”的十六进制数据发送到段锁存器,段锁存器默认情况下数据是不会变化的。接下来的操作过程和位锁存器一样。完成这两步,即可以使得第一位数码管上显示数字“0”。


5.八位共阴极数码管实验程序


/*使得八位共阴极数码管上依次显示数字0-7 */


#include "bsp.h"


#define SEGPORT P0      

sbit Wei_LATCH = P2^0;   //位琐存信号

sbit Duan_LATCH = P2^1;  //段琐存信号



unsigned char code TableCA[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,

                                0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};  //共阳极数码管码表

unsigned char code TableCC[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,

                                0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  //共阴极数码管码表

unsigned char code TableSel[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};  //位选码表


/*** 共阳数码管显示0-F  ***/

void ShowSegCA()

{

    unsigned char i;


    //查表显示

    for(i = 0;i < 16;i++)

    {

        SEGPORT = TableCA[i];

        delay_ms(100);

    }


}


/*** 八位共阴极数码管分别显示0-8  ***/

void ShowSegCC()

{

    unsigned char i;


    for(i = 0;i < 8;i++)

    {

        SEGPORT = TableSel[i];

        Wei_LATCH = 1;

        Wei_LATCH = 0;


        SEGPORT = TableCC[i];

        Duan_LATCH = 1;

        Duan_LATCH = 0;


        delay_ms(200);

    }

}


Ps:若是博客中有问题,欢迎各位提出,大家一起学习,一起进步!

1

2


关键字:51单片机  功能模块  数码管 引用地址:51单片机功能模块学习笔记 — 数码管

上一篇:51单片机功能模块学习笔记 — 定时器
下一篇:51单片机功能模块学习笔记 — 发光二极管

推荐阅读最新更新时间:2024-03-16 16:11

51单片机-240128液晶程序与调试
今天终于把金鹏OCMJ8X15D-2液晶(240128点阵带字库无触屏液晶)调好了。 这块液晶能显示8行15个汉字,还有放大字形,从16*16点放大到32*32点的功能。对于觉得12864的4行8列内容过少,或者觉得0.5*0.5mm的点的大小过于粗糙的情况来说,这款液晶是很适合的,它的点大小为0.33*0.33mm。 可能是习惯了12864这样的液晶,结果在硬件连接上就出来了一个重大错误,结果弄了好久也只显示条形点阵,而且对比度很差。这个错误就是240128液晶的对比度调节电位器,两端一端接地,另一端接VOUT(22脚)!而我习惯性的接到了5V!在曹老师的提醒下才发现了这个问题,在手册的角落里发现了硬件连接图:
[单片机]
<font color='red'>51单片机</font>-240128液晶程序与调试
51单片机交通灯全套设计资料分享
1、用单片机stc89C52 设计一个交通灯系统,并用数码管显示时间,LED指示通行。 2、用protel 99se设计电路图,pcb图等 3、数码管用三极管驱动。 4、按键功能:黄灯常亮(深夜模式)、禁行、东西通行、南北通行、时间加、时间减、切换、确定。 仿真图: 1、单片机是通用的无论51还是52、无论stc还是at都一样,引脚功能都一样,原理图和程序也是一样的。 2、原理图中的. sch等格式是要用protel99se打开的,没有软件的不要紧,我已帮您转换成word格式和pdf格式的了。 3、程序中的.c文件可以用记事本打开,就是程序了。其他的是写程序是自动生成的,没什么用的。 4、可以按照正面布局,尽量不要按照实
[单片机]
<font color='red'>51单片机</font>交通灯全套设计资料分享
51单片机教程(一):单片机最小系统组成与I/O输出
简介:单片机是一门实践性较强的技术,很多初学者在学习单片机技术开发的时候往往一头雾水,不知何从下手。为此,笔者结合自己使用单片机多年的经验,特意设计了单片机开发所需的Study-c 整机和硬件套件,并结合套件精心编写了单片机从入门到精通系列教程。 一、内容提要 本讲主要向大家介绍51 系列单片机的最小系统的实现并通过编写程序来实现对单片机IO 口的输出控制。以点亮外部连接的LED(发光二极管)为例,简要的介绍单片机的原理、最小系统的组成,并通过简单的C51 程序设计来讲述编译软件Keil的使用并下载Hex 文件烧写单片机。 二、原理简介 在了解原理之前, 首先让我们思考一个问题,什么是单片机, 单片机有什么用? 这是一个有
[单片机]
<font color='red'>51单片机</font>教程(一):单片机最小系统组成与I/O输出
mouse.h头文件下载( 51单片机ps2 鼠标 驱动)
/****************************************************** 演示鼠标引脚定义 CLK : 白色 SDA : 绿色 GND: 橙色 VCC: 蓝色 *******************************************************/ #include delay52.h #ifndef MOUSE_H #define MOUSE_H sbit mouse_SDA=P3^4;//数据线P3_5 sbit mouse_CLK=P3^3;//时钟线P3_3 unsigned char bdata mouse_
[单片机]
基于51单片机的超声波测距系统的研究与设计
在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。 为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。 1 超声波测距原理 超声波传感器分机械方式和电气方式两类,它实际上是一种换能器,在发射端
[单片机]
基于<font color='red'>51单片机</font>的超声波测距系统的研究与设计
51单片机温控风扇仿真原理图+C语言程序与实物制作
温控风扇仿真原理图如下 电路原理图如下: 制作出来的温控风扇实物图如下: 单片机源程序如下: #include reg51.h #include intrins.h //包含头文件 #define uchar unsigned char #define uint unsigned int //宏定义 //////////////////// sbit dj=P1^0;//电机控制端接口 sbit DQ=P1^6;//温度传感器接口 //////////按键接口///////////////////////////////// sbit key1=P3^5;//设置温度 sbi
[单片机]
<font color='red'>51单片机</font>温控风扇仿真原理图+C语言程序与实物制作
基于AT89C51单片机16×16 LED汉字滚动显示屏的设计
O 引言 LED显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。它具有发光率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。并广泛的用于公交汽车、商店、体育场馆、车站、学校、银行、高速公路等公共场所的信息发布和广告宣传。LED显示屏发展较快,本文讲述了基于 AT89C51单片机 16×16LED汉字点阵滚动显示的基本原理、硬件组成与设计、程序编写与调试、Proteus软件仿真等基本环节和相关技术。 1 硬件电路组成及工作原理 本产品采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路(74HCl54)、16×16LED点阵5部分组
[单片机]
基于AT89C<font color='red'>51单片机</font>16×16 LED汉字滚动显示屏的设计
使用51单片机实现抢答器的设计资料和代码说明
在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统工作原理本系统采用8051单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号;利用语音芯片ISD1420 完成语音的录放功能; 利用存储程序; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号
[单片机]
使用<font color='red'>51单片机</font>实现抢答器的设计资料和代码说明
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved