8051单片机动态显示数码管

发布者:牟牟的侬最新更新时间:2015-02-11 来源: 51hei关键字:单片机  动态显示  数码管 手机看文章 扫描二维码
随时随地手机看文章

    本*表示看了独立键盘和LED直接串联起来的东西,表示比之前的提升了一个档次,所以研究了有一会儿。这段程序之后和按键一起写奉上。
    数码管是个很神奇的东西-。- 本*表示数码管分两种,共阴和共阳。一般开发板上都是共阴,我这块x宝买的也是一样。
    我先看了郭天祥的视频,发现他只介绍了静态数码管。而静态数码管的显示简单很多,硬件设计上也简单很多,用到了两块74HC573。
    但是动态又提升了一个档次,首先是寄存器不一样,其次,设计上也负责了很多,本*表示研究了半天还一知半解。什么级联什么的,表示电路分析,模电,数电还没学好有难度。但是大致意思就是一个锁存器是8位,两个就是16位,相当于当做16位用,然后在传输数据时候一个个退一个这样最后锁存住。这里就要定义三个位变量。 数据,移位,还有锁存。
    好了现在放出程序。是要在数码管上显示123456789.
    #include

    sbit DIG_DATA = P0^2;   //数据
    sbit DIG_SHCP = P0^4;   //移位
    sbit DIG_STCP = P2^3;   //锁存

    code unsigned char Segment[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 
    code unsigned char Select[] = {0xff,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 
    void DigOutput(unsigned char SelectByte, unsigned char SegmentByte)
    {
        unsigned char i;
   
for(i=0; i<8; i++)
{
DIG_SHCP = 0;
   if(SegmentByte&0x80)
        {
       DIG_DATA = 1;
        }
else
        {
   DIG_DATA = 0;
        }
DIG_SHCP = 1;
SegmentByte <<= 1;
}
for(i=0; i<8; i++)
{
DIG_SHCP = 0;
   if(SelectByte&0x80)
        {
       DIG_DATA = 1;
        }   
else
        {
   DIG_DATA = 0;
        }
DIG_SHCP = 1;
SelectByte <<= 1;
}
DIG_STCP = 0;
DIG_STCP = 1;

    }

    void main(void)
    {
        while(1)
        {
            DigOutput(Select[8],Segment[1]);   
            DigOutput(Select[7],Segment[2]);   
            DigOutput(Select[6],Segment[3]);  
            DigOutput(Select[5],Segment[4]);   
            DigOutput(Select[4],Segment[5]);   
            DigOutput(Select[3],Segment[6]);   
            DigOutput(Select[2],Segment[7]);   
            DigOutput(Select[1],Segment[8]);   
        }
    }
   表示要显示一个数字或者几个也是一样的方法,只不过如果是一个的话就不用写函数了,直接在主函数里面就可以了。我觉得静态的没什么用处,动态的用处比较多,所以学习一下还是有好处的。

关键字:单片机  动态显示  数码管 引用地址:8051单片机动态显示数码管

上一篇:Linux下构建stc51单片机开发环境
下一篇:基于单片机的在线激光功率检测系统设计

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

基于PIC单片机的六挡调控电涡流缓速器的设计
针对国内重卡的制造工艺,设计了一种基于PIC单片机的新型电涡流缓速器。该缓速器分六挡位调控,可很好地实现恒速、现场编程以及声光提示挡位等功能。 电涡流缓速器是一种高效汽车制动辅助装置,它既可以使汽车在坡道行驶时,方便地实行缓速和恒速行驶,也可以在高速公路或者路况较差的情况下,及时轻松地进行缓速,因此可极大提高汽车行驶时的安全性与舒适性。 目前国外使用的缓速器有两种形式,一种是利用液体的压力来实现的,称为“液力缓速器”,液力缓速器存在着结构复杂,维护困难等诸多缺点。另一种是“电涡流缓速器”,相比液力缓速器,它结构简单,维护方便。但国外的电涡流缓速器大多采用继电器作为控制元件(如法国的TELMA等),由于继电器频繁吸合,
[应用]
如何模拟实现应用在数据采集系统中的89C51单片机I/O口串行通信?
目前普遍采用的MCS51 和PIC 系列单片机通常只有一个(或没有)UART异步串行通信接口,在应用系统中若需要多个串行接口(例如在多机通信系统中,主机既要和从机通信又要和终端通信)的情况下,通常的方法是扩展一片8251 或 8250 通用同步/异步接收发送芯片(USART),需额外占用单片机I/O 资源。 MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS
[单片机]
如何模拟实现应用在数据采集系统中的89C51<font color='red'>单片机</font>I/O口串行通信?
AT89S52单片机温度监测系统的系统硬件设计
系统的结构 整个系统由采集板、通信板和PC机监控程序组成。采集板以温度监测芯片DS18B20t21、单片机芯片AT89S52和蓝牙芯片BC4为核心分时完成 监听主机的命令和数据采集以及数据发送的功能。可以根据接收到的主机的命令随时改变系统的工作状态。 如图1。通信板以USB 芯片PDIUSBD12、单片机芯片AT89S52为核心,实现数据接收、数据发送,以及将采集回来的外部信号通过波形图实时显示在PC机界面上。同时把 数据保存到数据库中。如图 2 系统硬件设计 2.1 采集板电路设计 2.1.1 蓝牙模块 无线接收发射电路 系统采用了CSR公司蓝牙芯片BC417143.该芯片采用Blue2.0、支持主或从模式、
[单片机]
基于C8051F310和CS5460A的电压电流表设计
0 引言 CS5460A是美国Crystal公司推出的一款用于测量电压、电流、功率、能量的集成芯片,该芯片的主要特点是精度高、性能强、成本低且无需微控制器也可独立运行,它是CS5460的增强版。C8051F310是美国Silicon Labs公司推出的一款具有8051内核的高性能单片机,它的运行速度为普通8051单片机的12倍,主要特点是高速率、低功耗、外围器件少、可靠性高。所以,本文基于芯片CS5460A和单片机C8051F310设计了一种用于测量电压电流值的电压电流表。 1 系统电路设计 1.1 C8051F310简介 C8051F310是一款完全集成的混合信号片上系统型MCU芯片。它具有高速、流水线结构且与
[电源管理]
跟我学51单片机(二):单片机内部定时/计数器和中断系统
上讲通过讲述用单片机控制一个外部的LED闪烁实验来向读者介绍了单片机的工作原理与开发流程。这一讲将介绍单片机内部非常重要的两个资源——定时/ 计数器和中断系统。通过该讲,读者可以掌握定时器的工作原理和单片机的中断系统。   从而设计定时器计数程序和中断服务程序。   一、原理简介   首先让我们举闹钟为例,将它定时在一分钟后闹铃,这就需要秒针走一圈(60 次)。即一分钟时间转化为秒针走的次数,也就是计数的次数,计数到了60 次然后闹铃,而每一次计数的时间是1 秒。   单片机内部的定时/ 计数器跟闹钟类似,可以通过编程来设定要定时的时间、定时时间到了进行相应的操作。那么在单片机内部计数一次的时间是多少呢,51 单片机输入
[单片机]
跟我学51<font color='red'>单片机</font>(二):<font color='red'>单片机</font>内部定时/计数器和中断系统
PIC16F887 实战编程 单片机编程 基础实验教程
基础操作需要看一下以下的博客,跟着走一遍。 安装MPLAB V4.05+XC8 V1.41,老师不会管你用什么版本,别的版本bug多,老版本反而好用: https://blog.csdn.net/x1131230123/article/details/100907773 安装proteus 8.9: https://blog.csdn.net/x1131230123/article/details/106951776 做一个基础实验(想改写到MPLAB V5+XC8 V2也看这里的博客6.3 移植操作指南): https://blog.csdn.net/x1131230123/article/details/108757436
[单片机]
PIC16F887 实战编程 <font color='red'>单片机</font>编程 基础实验教程
基于CPLD和单片机的任意波形发生器设计
    引言     在电子子工程设计与测试中,常常需要一些复杂的、具有特殊要求的信号,要求其波形可任意产生,频率方便可调。通常的信号产生器难以满足要求,市场上出售的任意信号产生器价格昂贵。结合实际需要,我们设计了一种 任意波形发生器 。电路设计中充分利用MATLAB的 仿真 功能,将希望得到的波形信号在MATLAB中完成信号的产生、抽样和 模数转换 ,并将得到的数字波形数据存放在数据存储器中,通过 单片机 和CPLD控制,将波形数据读出,送入后向通道进行A/D转换和放大处理后得到所需的 模拟 信号波形。利用上述方法设计的任意波形发生器,信号产生灵活方便、功能扩展灵活、信号参数可调,实现了硬件电路的软件化设计。具有电路结构简单
[测试测量]
基于CPLD和<font color='red'>单片机</font>的任意波形发生器设计
国产MCU的GD32E230串口通信
之前一直使用ST的STM32F031单片机,但是由于疫情还是啥啥原因,ST的芯片价格涨得没法看,因为我们是做产品,而且量比较大,ST的芯片就无法再用了,这个成本真的扛不起。 于是在很多国产MCU里面做了甄选,最终GD的因为新能优越,价格便宜获选。GD32E230对标的STM32F031,实现了PIN TO PIN兼容,寄存器不是完全兼容,但是GD的主频可以实现72M,这就很恐怖,STM32F031才48M,之前还得超频到56M使用。不得不说,GD强! 仅仅对比固件库,GD的库函数封装的比ST的库要好很多,当然,ST现在主推HAL库,这个HAL库确实也很好。 在使用串口之前同样要配置引脚,时钟。 GPIO引脚配置 void
[单片机]
国产<font color='red'>MCU</font>的GD32E230串口通信
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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