当前位置:首页 > 单片机 > 单片机
[导读]数码管的显示原理都一样,都靠点亮内部发光二极管来发光。TX-1C 的单片机开发板是6位数码管。数码管的引脚是10个,显示8字需要7个小段,外加一个小数点,共有8个发光二极管,还有一个公共端。公共端分为共阳极和共阴

数码管的显示原理都一样,都靠点亮内部发光二极管来发光。TX-1C 的单片机开发板是6位数码管。数码管的引脚是10个,显示8字需要7个小段,外加一个小数点,共有8个发光二极管,还有一个公共端。公共端分为共阳极和共阴极,共阴极即8个二极管的阴极连在一起,共阳极即8个二极管的阳极连在一起。TX-1C开发板的数码管位共阴极。多为一体的数码管,内部的公共端是独立的,而负责显示什么数字的断线是全部连在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连在一起的段线可以能控制这位数码管能亮出什么数字。公共端叫作位选线,连在一起的段线叫作段选线。有了这两根线,就能通过单片机控制任意的数码管显示任意的数字。

(1) 数码管的静态显示

在同一时刻,位选选通的数码管显示的数字始终是相同的,因为它们的段选是连在一起的,所以送入的数码管的段选信号是相同的。数码管的这种显示方法叫静态显示法。

6个数码管的位选端与74HC573锁存器U2的低六位连接,锁存器的数据输入端连接到P0口。6个数码管的a、b、c、d、e、f、g、h的引脚分别连在一       起,然后与74HC573锁存器U1的数据输出端连接,锁存器的数据输入端也与P0口相连。U1 、U2的锁存端与P2口的6、7位相连。

      代码

      #include

      sbit dula=P2^6;    // 申明U1锁存器的锁存端

      sbit wela=P2^7;    // 申明U2锁存器的锁存端

      void main()

      {

          wela=1;      //打开U2锁存器

          P0=0xfe;      //送入位选信号

          wela=0;      //关闭U2锁存器

          dula=1;      //打开U1锁存器

          P0=0x7f;      //送入段选信号

          dula=0;      //关闭U1锁存器

      }

以上就是数码管静态显示的代码。

(2)数码管的动态显示

第一个数码管显示1,时间为0.5秒,然后关闭它。第二个数码管显示2,时间为0.5秒………………

代码如下:

#include

#define uchar unsigned char

#define uint unsigned int

uchar code table_1[]={ 0x1, 0x2, 0x4, 0x8, 0x10, 0x20 };      //位选信号

uchar code table_2[]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };    //段选信号

void delays(uint);    //延时函数

uint h;

void main()

{

while(1)

 {   for( h=1; h<=6; h++)

    {    dula=1;            //打开段选

        P0=table_2[h];         // 送入段选信号

        dula=0;            // 关闭段选

        P0=0xff;          // 消影语句,每次送入段选信号后,P0口仍然保留着上次的段选数据,若不加 P0=0xff; 在执行打开位选锁存器命令后,P0口

                        段选数据会立即加在数码管上,,接下来才是再次通过P0口给位选锁存器送入位选数据。这个过程很短暂,但我们仍能看见                         数码管显示混乱的现象。加上消影语句后就能避免这样的状况发生

        wela=1;            // 打开位选

        P0=table_2[h];        //送入位选信号

        wela=0;           // 关闭位选

        delay(500);

    } 

  }  

}

void delay( uint xms)          // 延时函数 (在下篇会和锁存器一并作出叙述)

{

    uint i,j;

    for( i=mxs; i>0; i--)

      for( j=110; j>0; j--);

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在单片机的世界里,“字节”(Byte)是一个贯穿始终的核心概念。从存储数据到执行指令,从变量定义到外设通信,字节无处不在。很多初学者在学习单片机时,往往更关注复杂的程序逻辑和外设驱动,却忽略了字节这个基础知识点,导致在后...

关键字: 单片机 字节

在单片机的数字逻辑中,我们通常最关注的是高电平和低电平两种状态,它们构成了二进制数字世界的基础。然而,除了这两种状态之外,还有一种至关重要但常常被忽视的状态——高阻态(High Impedance State)。高阻态就...

关键字: 单片机 高阻态

对于PIC入门者来说,不需要盲目追求高端开发板,一块功能均衡、资料丰富的入门款就能满足需求。比如Microchip官方推出的PIC16F84A开发板,它搭载经典的8位PIC内核,引脚布局清晰,自带LED、按键等基础外设,...

关键字: PIC 单片机

该低功耗器件支持5V运行,在实现高性能的同时,能有效保障系统简洁性与成本效益

关键字: MCU 单片机 工业自动化

CH558T 采用 BASIC-52 系统,并具备蓝牙连接功能。CH558T 的运行频率为 48 MHz,拥有 4KB 的 xRAM,足以满足常规应用需求。

关键字: 单片机 BASIC-52 系统 CH558T

RGB显示屏凭借高分辨率、真彩色显示优势,在工业控制、智能终端、消费电子等领域应用广泛。裸屏RGB显示屏无内置驱动电路,需搭配专用LCD驱动芯片才能与单片机协同工作,其核心作用是将单片机输出的图像数据转换为屏幕可识别的R...

关键字: 显示屏 驱动芯片 单片机

在嵌入式系统开发中,单片机(MCU)作为控制核心,广泛应用于工业自动化、智能家居等领域。然而,当需要控制继电器或电磁阀等大功率负载时,直接连接单片机引脚往往会导致系统故障甚至硬件损坏。

关键字: 单片机 MCU

在嵌入式系统领域,单片机作为核心控制单元,其软硬件结合机制是理解电子设备运行逻辑的关键。

关键字: 单片机 CPU‌

物联网与智能控制蓬勃发展,温度传感器作为感知环境温度变化的关键元件,广泛应用于工业生产、智能家居、医疗设备等众多领域。而单片机凭借其强大的控制能力和灵活的编程特性,成为处理温度传感器数据的理想平台。下面将深入剖析单片机程...

关键字: 单片机 温度传感器

在医疗科技飞速发展的当下,便携式医疗设备以其便捷、高效的特点,逐渐成为人们日常健康管理的重要工具。其中,便携式心率监测仪凭借其实时监测心率、为健康状况提供关键数据的功能,受到了广泛关注。而单片机程序开发作为便携式心率监测...

关键字: 单片机 医疗设备
关闭