单片机2——动态数码管的一些实例

发布者:炫酷骑士最新更新时间:2020-07-17 来源: eefocus关键字:单片机  动态数码管  滚动显示 手机看文章 扫描二维码
随时随地手机看文章

1.8只数码管滚动显示单个数字


#include

#include

unsigned char code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9

unsigned char code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//分别对应相应的数码管点亮,即位码

unsigned char tempdata[8]; 

void delay(int ms)

{

     unsigned char j;

     for(;ms>0;ms--)

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

}

void main()

{

   int i;

   P1=0x7f;

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

  {

   P0=duanma[i];

   delay(2000);

   P1=_cror_(P1,1);        //cror在流水灯中实际效果是左移,而在数码管中就是右移

   } 

}


2.数码管上显示12345,从右往左移动


实现这种功能有几种方法,此处列举两种原理


原理一:从数码管成像原理出发


#include

#include

unsigned char code duanma[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};// 显示段码值0~9

unsigned char code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//分别对应相应的数码管点亮,即位码

unsigned char tempdata[8]; 

void delay(int ms)

{

     unsigned char j;

     for(;ms>0;ms--)

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

}

void main()

{

   int i,j,k;

   float K1=0xef,K2=0xef;

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

   {  

      for(k=0;k<50;k++)

      {    

          for(j=1;j<6;j++)

          {

              P1=0xff;

              P1=K1;

              P0=duanma[j];

              delay(5);

              K1=_cror_(K1,1);

          }

          K1=_crol_(K1,5);

       }

       K2=_crol_(K2,1);

       K1=K2;

    }

 


原理二:改变段码的值,使其循环可以首尾相接


#include

     void delay(unsigned char ms)

   {

       unsigned int j;

    for(;ms>0;ms--)

    {

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

    }


}

unsigned char code DuanMa[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf9,0xa4,0xb0,0x99,0x92,0xff,0xff,0xff,0xf9,0xa4,0xb0,0x99,0x92,0xff,0xff,0xff,0xff,0xff,0xff,};// 改变段码的值

       unsigned char code WeiMa[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//分别对应相应的数码管点亮,即位码

       unsigned char TempData[8];   //用于存放4位数码管显示数字的段码

        void Display(unsigned char FirstBit,unsigned char Num)

{

    unsigned char i;

      

    for(i=0;i    { 

        P1=0xff;   //清空数据,防止有交替重影      

      

              P0=TempData[i]; //取显示数据,段码

        P1=WeiMa[i+FirstBit]; //取位码 

        delay(2); // 扫描间隙延时,时间太长会闪烁,太短会造成重影

    }

}

     void main()

{

    unsigned int a=8,j;

    while(1)

    {

        j++;

        if(j==30) 

        {

            j=0;

            a++;

            if(a==26)

                a=18;

         }

        TempData[0]=DuanMa[a-8];

        TempData[1]=DuanMa[a-7];

        TempData[2]=DuanMa[a-6];

        TempData[3]=DuanMa[a-5];

        TempData[4]=DuanMa[a-4];

        TempData[5]=DuanMa[a-3];

        TempData[6]=DuanMa[a-2];

        TempData[7]=DuanMa[a-1];

        Display(0,8);

    }

}

关键字:单片机  动态数码管  滚动显示 引用地址:单片机2——动态数码管的一些实例

上一篇:51单片机之数码管动态循环左移显示手机号
下一篇:基于proteus的51单片机仿真实例六十、8位数码管显示实例

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

STM8 单片机调试笔记
1、休眠唤醒后串口异常问题 STM8L主要用来做低功耗产品,这里就有休眠前跟唤醒后有差异的情况,在调试的时候碰到如果使用串口,在休眠前都正常,当唤醒后,串口发送的数据会出现异常的情况,发送的数据感觉会有丢帧。后来发现跟系统时钟有关,如果系统时钟采用外部时钟就会有问题,内部时钟就OK。 /* 这里要用内部时钟 用外部时钟在进入halt之后会出现 串口发送异常 */ CLK_HSICmd(ENABLE); while (CLK_GetFlagStatus(CLK_FLAG_HSIRDY) == RESET); CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI); CLK_SYSCLKDi
[单片机]
单片机协处理器在电力系统中的应用
摘要:单片机协处理器能分担主处理器的部分工作,使电力测控系统在运行速度、功能需求等性能上有明显的改善。 关键词:单片机协处理器 硬件略图 软件 前言 在电力测量及保护系统中,通常是由单片机构成数个乃至数十个前端处理器。它们通过串行通信与微机构成的中央处理器相连接,形成一个完整的系统,以实现对电力系统的遥测、遥信、遥调、遥控等功能。 前端处理器的核心就是单片机,从目前的情况来看,以Intel公司的16位单片机80C196系列(KB、KC等)应用最广。单片机要处理的问题很多。如I/O量、A/D模数转换、键盘、通信、显示等,处理一圈所花费的时间常称之为前端处理器的运行周期。在整个系统中,前端处理器的数量较多,中央处理器对其进行巡
[单片机]
51单片机实现通过串口用delay延时方式发送一串数据
一、使用proteus绘制简单的电路图,用于后续仿真 二、编写程序 /******************************************************************************************************************** ---- @Project: USART ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200713 ---- @ModifiedTime: 20200713 ----
[单片机]
51<font color='red'>单片机</font>实现通过串口用delay延时方式发送一串数据
LPC2100系列ARM7微控制器的加密方法
1. 加密原理说明 LPC2100系列ARM7微控制器是世界首款可加密的ARM芯片,对其加密的方法是通过用户程序在指定地址上设置规定的数据。PHILIPS公司规定,对于LPC2100芯片(除LPC2106/2105/2104外),当片内FLASH地址0x000001FC处的数据为0x87654321时,芯片即被加密。在加密设置后,JTAG调试接口无效,ISP功能只提供读ID及全片擦除功能。注意:将带有加密设置的程序下载到芯片内部FLASH,在下一次系统复位后加密生效。 2. 加密程序实现 为了实现加密设置,用户必须保证在0x000001FC处定义数据0x87654321。我们先来分析一下带有加密设置的程序结构,如图1所
[单片机]
8051微控制器架构的简要说明
此前已经介绍了关于8051微控制器基础知识和引脚图说明等相关知识,而在本文中,将重点介绍8051微控制器的硬件方面内容,如 I/O 端口、RAM、ROM、定时器和串行端口等。 微控制器的基本组件 微处理器和微控制器之间的区别在于片上外围设备的可用性,如内存(RAM 和 ROM)、I/O 端口、定时器/计数器、通信接口(如串行端口)等。 下图显示了微控制器的基本组件。由于所有组件(以及一些其他组件)都集成在单个芯片(集成电路IC)上,因此可以将微控制器视为微型计算机(或单片机)。 1、CPU(中央处理器);它是微控制器的大脑,主要由算术逻辑单元(ALU)和控制单元(CU)等重要部件组成。CPU是与内存、输入和输出等外围设
[单片机]
8051<font color='red'>微控制器</font>架构的简要说明
基于STM32单片机的摇头风扇设计
本设计的硬件构成: STM32F103C8T6单片机最小系统板+时钟晶振电路+复位电路(上电自复位,手动复位),LCD1602显示屏电路,独立按键电路,ULN2003步进电机驱动电路,蓝牙模块,语音识别模块,总电源供电电路; 功能介绍: 1.LCD1602液晶显示当前风扇等级,语音控制状态,摇头状态; 2.共设置有4个按键,按键1为摇头开关键;按键2为语音识别功能的开关键;按键3为风扇挡位上调键;按键4为风扇挡位下调键; 3.可通过蓝牙模块,在手机APP上对风扇状态进行监控和控制; 4.可通过语音识别模块,用户说出相应语音,实现对风扇的语音控制(演示视频有详细的演示过程); 主要物料清单及型号: 显示屏:LCD1602-5V;
[单片机]
基于STM32<font color='red'>单片机</font>的摇头风扇设计
从零开始51单片机教程 —— 17 单片机定时器与计数器
一、单片机计数概念的引入 从选票的统计谈起:画“正”。这就是计数,生活中计数的例程处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例程,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的办法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就能知道走过的线有多长了。 二、单片机计数器的容量 从一个生活中的例程看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴持续落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录
[单片机]
从零开始51<font color='red'>单片机</font>教程 —— 17 <font color='red'>单片机</font>定时器与计数器
集Hi-Fi、智能和USB多通道等特征于一体的微控制器
随着诸多技术突破和全新流媒体服务的不断融合,在智能家居和智能音箱市场日益繁荣的今天,消费者对于音频的需求已不再仅仅局限于音质本身,更多的是追求高品质的生活体验和便捷的智慧互联。因此,要想更好的迎接数字音频新时代,当今的数字音频,不仅要能够提供Hi-Fi的音质,而且还能够作为智能设备的人机界面,同时还能够用USB多通道等方式方便连接...... XMOS在其最新的xcore器件中集成了边缘AI、DSP、控制单元和I/O等功能,因而可以在新一代音频、电机控制、工业自动化和边缘计算等许多应用和场景中,利用软件就能开发出功能非常先进的系统。这种在实现高性能硬件的同时,保持灵活性和可编程性的特性,可以为工程师和系统企业带来更快的产品上市
[嵌入式]
集Hi-Fi、智能和USB多通道等特征于一体的<font color='red'>微控制器</font>
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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