对单片机数码管显示段选位选的理解

发布者:诚信与爱最新更新时间:2021-06-30 来源: eefocus关键字:单片机  数码管显示  段选位选 手机看文章 扫描二维码
随时随地手机看文章

在51单片机的数码管的应用开发中一些小的细节还是应该注意到的。


其中位选信号应该在段选之前打开,下面是一段示例代码(我用的是国信长天开发板):


#include  //   包含51单片机寄存器定义的头文件  

#include 

#define uint unsigned int       

sbit buzz=P0^6; 

/**************************************************  

函数功能:d延时函数,延时一段时间  

***************************************************/  

  void delay(int x)          //延时Xms 

{  

   uint i,j;  

   for(i=0;i    for(j=0;j<120;j++);         //大约1ms 

           

}  

/**************************************************  

函数功能:主函数  

***************************************************/  

void main(void)  

{  

  unsigned char temp;  

  unsigned char code  

  Tab[]={0x80,0xc0,0xc6,0x92,0xf9};     

               //数码管显示0~9的段码表,程序运行中当数组值不发生变化时 

               //前面加关键字code ,可以大大节约单片机的存储空间  

  P2=0xa0;     //令蜂鸣器的锁存器打开 

  buzz=0;      //关闭蜂鸣器               

  temp=0x01;      //设定中间变量temp 

  while(1)      //无限循环  

   { int i;    

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

      {       

         P2=0xc0;      //位选,令com公共端的锁存器打开 

         P0=temp;      //控制哪个数码管亮 

 

             P2=0xe0;     //令数码管的锁存器打开 

                 P0=Tab[i];            //让P0口输出数字的段码  

 

          //   temp=temp<<1;       //左移一位 与下句效果效果相同 

         temp=_crol_(temp,1);  //左移一位 

         delay(100);          //调用延时函数  

       }     

      temp=0x01;              //当移到最左端时,再设定temp,重新开始 

   }   

}  

  

由于段选信号,位选信号都是从P0端送出,所以在同一时刻只能是输出位选信号或者是段选信号。此刻位选,段选的刷新频率是一致的。


就本例来说,段选信号的作用在delay(3)的时刻分别显示8,0,C,5,1。既是说假如八个数码管同时选通,那么显示的是8 0 C 5 1依次间隔delay(3)时间的显示。 位选的作用就是让不同的数码管显示不同的字段,本身在一个时刻只能显示一个数码管,结果整个效果是五个数码管显示80C51,ps:如果扫描6个数码管那么显示的就是80c518.


关键字:单片机  数码管显示  段选位选 引用地址:对单片机数码管显示段选位选的理解

上一篇:单片机系统抗干扰,软件 VS 硬件孰轻孰重?
下一篇:老工程师对嵌入式学习之51单片机的一些心得体会

推荐阅读最新更新时间:2024-11-10 12:42

EM78系列单片机的编程技巧
笔者在某智能水表开发中使用了EM78P447芯片,对EM78系列芯片有了较深认识,在实践中总结了一些开发此类芯片应注意的问题,同时给出了应用中的编程技巧。 市面上常见的介绍EM78系列的参考书中,都给出了一些应用实例,但这些实例一般程序代码量较小,功能单一。虽然这些实例对于新手确实起到了很好的作用,但一个产品可能功能很复杂,程序可能达到几千行,这就会出现一些短程序中没有遇见的问题。以笔者的开发为例,程序总共5千多行,有效的汇编语句代码有3千多行。由于义隆没有提供C的编译环境,只能以汇编进行编码,而汇编的结构、条理性与C语言比较不是很清晰,再加上EM78单片机结构的独特性,所以当程序代码量较大的时候总会出现一些新的问题。下面将实践中遇
[单片机]
EM78系列<font color='red'>单片机</font>的编程技巧
按键及矩阵键盘程序------/* 自己实验确认并总结 */
新型的按键扫描程序 不过入式处理器上面我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉。我非常坚信这种按键处理办法的便捷和高效,你可以移植到任何一种嵌,因为C语言强大的可移植性。 同时,这里面用到了一些分层的思想,在单片机当中也是相当有用的,也是本文的另外一个重点。 对于老鸟,我建议直接看那两个表达式,然后自己想想就会懂的了,也不需要听我后面的自吹自擂了,我可没有班门弄斧的意思,hoho~~但是对于新手,我建议将全文看完。因为这是实际项目中总结出来的经验,学校里面学不到的东西。 以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,
[单片机]
按键及矩阵键盘程序------/* 自己实验确认并总结 */
基于单片机数控直流稳压电源的设计与实现
   1 引言   直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多 功能直流稳压电源功能简单、难控制、可靠性低、干扰大、精度低且体积大、复杂度高。普 通直流稳压电源品种很多.但均存在以下问题:输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出,或需要在一个小范围内改变时(如 1.02~1.03V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。常常通过硬件对过载进行限流或截流型保护,电路构成复杂,稳压精度也 不高。本文设计了一种以单片机为核心的智能化高精度简易直流电源,克服了传统直流电压 源的缺点,具有很高的应用价值。
[单片机]
基于<font color='red'>单片机</font>数控直流稳压电源的设计与实现
51单片机程序深入编写裸机代码有助于了解硬件的特性
单片机是没有上操作系统的东西,在keil中编写的代码都是裸机代码,深入编写裸机代码有助于了解硬件的特性。 若不是硬件特性已定的情况之下的其它流程都是代码作祟。忽然想到来探探51单片机的执行流程。这个念头起源于最初见到每个51程序里面的主函数里面最终都挂一个while(1);语句。为何要加一句while死循环让程序停留在main函数中呢。将while(1);语句去掉有什么影响么? 写一个很简单的程序试一下。 执行以上程序,由P1端口控制的流水灯闪了一下。程序最终进入while(1);里纠缠去了,这个到好解释。 现将while(1);语句屏蔽掉。我还以为程序不能被正确执行了呢,因为退出了main主函数,就像Rende
[单片机]
51<font color='red'>单片机</font>程序深入编写裸机代码有助于了解硬件的特性
采用P87LPC767单片机实现智能型剩余电流保护器的应用方案
电磁兼容(EMC)是指设备或系统在其电磁环境中能工作且不对该环境中任何物体构成不能承受的电磁骚扰的能力。剩余电流保护器作为电网末端供电线路保护装置(400 V以下),必须满足。EMC国家标准GB/T17626.5—1999要求,取得3C认证,才能投入电网运行。图1为用P87LPC767单片机设计的智能型剩余电流保护器系统框图,在电路设计、软件设计、PCB板设计等方面同步考虑其电磁兼容设计。剩余电流保护器是一种低压电器设备,内部没有大功率的高频电路,电磁辐射微弱,它产生的电磁骚扰对其他设备影响很小,这方面不是电磁兼容设计的重点。剩余电流保护器电磁兼容设计的重点是其在受到其他设备产生的电磁干扰时能保持稳定工作的能力,也即抗干扰能力。剩
[单片机]
采用P87LPC767<font color='red'>单片机</font>实现智能型剩余电流保护器的应用方案
基于单片机的负离子空气净化系统设计
本系统采用了STC89C52为系统的微处理器控制芯片,通过负离子空气净化器实现对室内空气杀菌、去除有害气体、保持空气清新等功能,进而达到提高室内空气质量的目的。系统整体采用了模块化的设计思想,依次对各模块进行了软硬件设计,然后将各模块整合到一起进行总体调试,最后实现净化功能。 本文主要任务是设计出一款基于单片机的微型负离子空气净化器,并采用了模块化思想,此系统主要包括:电源转化模块、数据采集模块、净化模块、显示输出模块与其它外围电路模块。 1、电源转化模块:本系统主要采用的51系列单片机,电源为DC5V,同时由于传感器需DC5V电源,因此,本系统的电源模块,主要由锂电池作为输入电源,通过LM7809、LM7805两个芯片进
[单片机]
基于<font color='red'>单片机</font>的负离子空气净化系统设计
基于STC单片机的ISP下载线设计
  本文首先介绍了在线编程技术,然后给出了基于STC单片机两种下载线设计电路,最后阐述了ISP下载线的性能特点。实践表明:本设计具有低成本、高灵活性,对单片机爱好者,尤其是初学者,具有很强的实用价值。   一.ISP技术   在单片机的实际应用中,往往要求系统能够脱机运行,这就要求必须将用户程序代码固化到非易失性的程序存储器中。把用户程序代码固化到程序存储器的过程称为编程。传统对程序存储器的编程是通过编程器完成的,用户需要将单片机从目标板上取下来放到编程器上,然后通过烧写软件将程序代码固化到程序存储器中,这种编程方式通常称为脱机烧写(也叫离线编程)。但随着芯片制造工艺的不断提高,贴片式封装得到快速发展,这就使得单片机不可能轻易取下
[单片机]
单片机学习笔记——中断原理及应用
单片机中断原理(外部中断) 中断概念: 中断发生:CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理。 中断响应和中断服务:CPU暂时中断当前的工作,转去处理事件B。 中断返回:待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A。 这一过程被称为中断。 中断过程示意图: 一些关于中断过程的名词: 中断源:引起CPU中断的根源。 中断源向CPU提出中断请求。 断点:原来被中断的地方。 中断系统:实现上述中断功能的部件。 80C51中断系统的结构: 5个中断源(8052有6个),2个优先级。 可实现二级中断嵌套。 结构如下图: 中断过程: I
[单片机]
<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