LED数码管实验程序

发布者:徽宗古泉最新更新时间:2018-01-07 来源: eefocus关键字:LED  数码管  实验程序 手机看文章 扫描二维码
随时随地手机看文章

DISPBUF EQU 50H   ;50H,51H,52H,53H是显示缓冲区 
LED1  EQU P2.0    ;第一位数码管的位控制 
LED2  EQU P2.1    ;第二位数码管的位控制 

LED3  EQU P2.2    ;第三位数码管的位控制 
LED4  EQU P2.3    ;第四位数码管的位控制 
LED5  EQU P2.4 
LED6  EQU P2.5 
LED7  EQU P2.6 
LED8  EQU P2.7 
;============================================================== 
    org 0000h 
    LJMP MAIN 
    ORG 0003H 
    RETI 
    ORG 000BH 
    RETI 
    ORG 0013H 
    RETI 
    ORG 001BH 
    RETI 
    ORG 0023H 
    RETI 
MAIN: 
    MOV    R0,#50H 
    MOV    65H, #2 
    MOV    64H,  #3 
    MOV    63H,  #5 
    MOV    62H,  #9 
    MOV    61H,  #5 
    MOV    60H,  #9 
    MOV    59H,  #1 
    MOV    58H,  #2 

    ACALL    OUT 
LOOP1:ACALL DISP          ;调用显示程序 
       
      JNB   P3.2,K1 
      JNB   P3.3,K2 
       
      ACALL  TIME 
      AJMP  LOOP1 
K1:   LJMP   CLEAR 
K2:   LJMP   PAUSE 
TIME: 
      MOV    R0,#59H     ;指向毫秒计时单元 
      ACALL   ADD1        ;调用加1程序(加1毫秒操作) 
      MOV   A,R3          ;毫秒数据放入A(R3为2位十进制数组合) 
      CLR    C              ;清进位标志 
      CJNE     A,#60H,ADDS 
ADDS:  JC   OUT            ;小于60毫秒时中断退出 
      ACALL    CLR0        ;大于或等于60毫秒时对秒计时单元清0 
      MOV   R0,#61H        ;指向秒计时单元 
      ACALL   ADD1         ;调用加1程序(加1秒操作) 
      MOV   A,  R3         ;秒数据放入A(R3为2位十进制数组合) 
      CLR   C              ;清进位标志 
      CJNE     A,  #60H,ADDM 
ADDM:  JC   OUT             ;小于60秒时中断退出 
     ACALL    CLR0         ;大于或等于60秒时对秒计时单元清0 
      MOV    R0,#63H         ;指向分计时单元 
      ACALL   ADD1          ;分计时单元加1分钟 
      MOV    A,R3           ;分数据放入A 
      CLR   C               ;清进位标志 
      CJNE    A,#60H,ADDH 
ADDH:  JC   OUT              ;小于60分时中断退出 
      ACALL    CLR0          ;大于或等于60分时分计时单元清0 
      MOV    R0,#65H         ;指向小时计时单元 
      ACALL    ADD1          ;小时计时单元加1小时 
      MOV    A,R3             ;时数据放入A 
      CLR   C                 ;清进位标志 
      CJNE    A,#24H,HOUR 
HOUR:  JC   OUT             ;小于24小时中断退出 
       ACALL    CLR0          ;大于或等于24小时计时单元清零 
OUT: 
    MOV   DISPBUF,   65H 
    MOV   DISPBUF+1, 64H 
    MOV   DISPBUF+2, 63H 
    MOV   DISPBUF+3, 62H 
    MOV   DISPBUF+4,61H 
    MOV   DISPBUF+5, 60H 
    MOV    DISPBUF+6,59H 
    MOV    DISPBUF+7,58H 

    RETI 
;====================================================================== 
           ;清零程序 
;====================================================================== 
CLR0: 
    CLR   A            ;清累加器 
    MOV    @R0,A       ;清当前地址单元 
    DEC    R0          ;指向前一地址 
    MOV    @R0,A       ;前一地址单元清零 
    RET 

;====================================================================== 
                     ;加1子程序 
;====================================================================== 
ADD1: 
   MOV    A,@R0        ;取当前计时单元数据到A 
   DEC   R0            ;指向前一地址 
   SWAP     A          ;A中数据高四位与低四位交换 
   ORL    A,@R0        ;前一地址中数据放入A中低四位 
   ADD   A,#01H        ;A加1操作 
   DA    A             ;十进制调整 
   MOV    R3,A         ;移入R3寄存器 
   ANL    A,#0FH       ;高四位变0 
   MOV    @R0,A        ;放回前一地址单元 
   MOV    A,R3         ;取回R3中暂存数据 
   INC   R0            ;指向当前地址单元 
   SWAP    A           ;A中数据高四位与低四位交换 
   ANL    A,#0FH       ;高四位变0 
   MOV    @R0,A        ;数据放入当前地址单元中 
   RET 
;====================================================================== 
             ;显示程序 
;====================================================================== 
DISP: 
    ;----------------------------------------------------------- 
    MOV     A,DISPBUF   ;取第一个待显示数 
    MOV     DPTR,#DISPTAB 
    MOVC    A,@A+DPTR   ;取字形码 
    CPL A ; 
    MOV     P0,A        ;将字形码送P0位(段口) 
    CLR     LED1       ;开第一位显示器位口 
    LCALL   DELAY       ;延时5毫秒 
    SETB    LED1       ;关闭第一位显示器(开始准备第二位的数据) 
    ;----------------------------------------------------------- 
    MOV     A,DISPBUF+1 ;取显示缓冲区的第二位 
    MOV     DPTR,#DISPTAB 
    MOVC    A,@A+DPTR 
    CPL A ; 
    MOV     P0,A        ;将第二个字形码送P0口 
    CLR     LED2      ;开第二位显示器 
    LCALL   DELAY       ;延时5毫秒 
    SETB    LED2      ;关第二位显示 
    ;----------------------------------------------------------- 
    MOV     A,DISPBUF+2   ;取显示缓冲区的第三位 
    MOV     DPTR,#DISPTAB 
    MOVC    A,@A+DPTR   ;取字形码 
    CPL A ; 
    MOV     P0,A        ;将第三个字形码送P0位(段口) 
    CLR     LED3       ;开第三位显示器位口 
    LCALL   DELAY       ;延时5毫秒 
    SETB    LED3       ;关闭第三位显示器 
    ;----------------------------------------------------------- 
    MOV     A,DISPBUF+3   ;取显示缓冲区的第四位 
    MOV     DPTR,#DISPTAB 
    MOVC    A,@A+DPTR   ;取字形码 
    CPL A ; 
    MOV     P0,A        ;将第四个字形码送P0位(段口) 
    CLR     LED4       ;开第四位显示器位口 
    LCALL   DELAY       ;延时5毫秒 
    SETB    LED4       ;关闭第四位显示器 
    ;----------------------------------------------------------- 
    MOV     A,DISPBUF+4    ;取显示缓冲区的第五位 
    MOV     DPTR ,#DISPTAB 
    MOVC    A,@A+DPTR     ;取字形码 
    CPL  A 
    MOV    P0,A           ;将第五个字形码送P0位(段口) 
    CLR    LED5           ;开第五位显示器位口 
    LCALL   DELAY         ;延时5毫秒 
    SETB    LED5          ;关闭第五位显示器 

    ;----------------------------------------------------------- 
    MOV     A,DISPBUF+5    ;取显示缓冲区的第六位 
    MOV     DPTR  ,#DISPTAB 
    MOVC    A,@A+DPTR      ;取字形码 
    CPL    A 
    MOV    P0,A            ;将第六个字形码送P0位(段口) 
    CLR    LED6            ;开第六位显示器位口 
    LCALL   DELAY          ;延时5毫秒 
    SETB    LED6           ;关闭第六位显示器 

    ;----------------------------------------------------------- 
    MOV    A,DISPBUF+6     ;取显示缓冲区的第七位 
    MOV    DPTR   ,#DISPTAB 
    MOVC   A,@A+DPTR       ;取字形码 
    CPL    A 
    MOV     P0,A           ;将第七个字形码送P0位(段口) 
    CLR     LED7           ;开第七位显示器位口 
    LCALL      DELAY       ;延时5毫秒 
    SETB     LED7          ;关闭第七位显示器 

    ;----------------------------------------------------------- 

    MOV    A,DISPBUF+7    ;取显示缓冲区的第八位 
    MOV     DPTR  ,#DISPTAB 
    MOVC    A,@A+DPTR     ;取字形码 
    CPL     A 
    MOV    P0,A           ;将第八个字形码送P0位(段口) 
    CLR     LED8          ;开第八位显示器位口 
    LCALL     DELAY       ;延时5毫秒 
    SETB     LED8         ;关闭第八位显示器 

    ;----------------------------------------------------------- 
    RET 
PAUSE:                     
   ACALL DISP 
   JNB    P3.2,K3 
   AJMP PAUSE 
  K3:    acall CLEAR 
CLEAR:                      
         MOV   58H, #0 
         MOV   59H, #0 
         MOV   60H, #0 
         MOV   61H, #0 
         MOV   62H, #0 
         MOV   63H, #0 
         MOV   64H, #0 
         MOV   65H, #0 
         LJMP LOOP1 
         RETI 
  
       
         
      
;====================================================================== 
                ;延时程序 
;====================================================================== 
DELAY: 
    MOV     R6,#20H  ;延时约5mS 
D1: MOV     R7,#10H 
D2: DJNZ    R7,D2 
    DJNZ    R6,D1 
    RET 
;====================================================================== 
DISPTAB:    DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0ffh 


关键字:LED  数码管  实验程序 引用地址:LED数码管实验程序

上一篇:18B20温度LCD显示程序
下一篇:计数测试数码管显示程序

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

LED生鲜灯的混光方案及模拟技术深度解析
  生鲜灯为了满足对各种颜色生鲜食品的 照明 需求,其光谱变得多样化。虽然特制光谱的 LED 光源虽然理论上可行,但是实际上无法做到每种特殊光谱的 LED产品 都存在;所以很多生鲜灯依然会采用混光方案。但是为了获得合适的混光方案,通常的计算方法非常繁琐;本文中,合理选择现有的白光LED和彩色LED,利用LightTools进行模拟得到混色光谱,通过对颜色参数的分析评价,进而获得合适的生鲜灯混光方案和效果指标。   随着固态照明的进一步发展,人们对照明品质的要求也越来越高,很多照明领域提出了个性化的光谱要求,生鲜灯在食物方面的照明就是一个很好的例子。我们知道,在低显指高色温的灯管下,人脸会显得苍白无生气,这在食品方面也是一样,使用不
[电源管理]
<font color='red'>LED</font>生鲜灯的混光方案及模拟技术深度解析
打造LED高光效COB封装产品的具体方法详解
随着 LED 封装技术的不断创新以及国内外节能减排政策的执行,LED光源应用在照明领域的比例日益增大,新的封装形式不断推出。源磊高级工程师欧阳明华表示:“LED在散热、光效、可靠性、性价比方面的表现依然是关注点,如果这些得不到突破,或者未来有LED以外新的产品能够取得突破,那么照明领域选择的可能不会是LED。”COB正是在这种背景下业界推出的 LED封装 产品,相比传统分立式LED封装产品,具备更好的一次散热能力,高密度的光通量输出。本文除了阐述COB的一些特点外,重点从基本原理上探讨如何提高COB的光效,寻求满足照明核心价值点的方法。    COB具备良好散热能力   在设计LED封装结构时,应尽可能降低芯片结温。COB封装
[电源管理]
打造<font color='red'>LED</font>高光效COB封装产品的具体方法详解
51单片机静态数码管显示
1、设计要求 用一个共阳极数码管循环显示数值“0~F”,显示变换时间为1s,由P1口输出要显示的数值 2、硬件设计 使用proteus Isis仿真,选择元器件,AT89C51、7SEG-COM-AN-GRN、RESPACK8 3、软件设计 源程序: #include reg51.h #include intrins.h typedef unsigned char u8; typedef unsigned int u16; u8 smgduan = {0x3f ,0x06 ,0x5b ,0x4f ,0x66 ,0x6d ,0x7d ,0x07 , 0x7f ,0x6f ,0x77
[单片机]
51单片机静态<font color='red'>数码管</font>显示
苹果避受限三星AMOLED 切入Micro LED
光电协进会指出,主动有机发光二极管(AMOLED)受制于南韩三星显示器公司,独占9成以上市场,苹果积极寻求替代显示技术, 微发光二极管(Micro LED)显示器动向最受瞩目。 光电科技工业协进会表示,苹果针对iPhone智能手机的面板频放消息,其中最受业界瞩目的便是MicroLED显示器。 就如液晶(LCD)、AMOLED,Micro LED是一种颠覆传统显示器。 利用已普遍的LED作为单一画素来显示,但在功能上凌驾于液晶和OLED。 工业协进会强调,由于LED的普及,使得显示器的供应链即将产生变化,称为显示器的颠覆性技术。 对于Micro LED的应用,最先使用的产品应是扩增实境(AR)、 虚拟现实(VR)装置上的微型显示器,
[手机便携]
LED显示屏用电源的设计
摘要:介绍一种5V/120ALED显示屏专用电源的设计方案,简述无损吸收技术和原边电流合成技术在电路中的应用,并给出了实验结果。 关键词:有源功率因数校正;双正激变换;无损吸收   1 引言 LED显示屏是一种迅速发展起来的新型信息显示媒体。随着我国经济的不断发展,已被广泛应用于车站、宾馆、银行、医院等公共场合。显示屏电源是其重要组成部分,主要用来给显示屏发光二极管提供必要的工作电流,保证屏体正常显示。为简单起见,通常采用由一小功率电源带3到4个显示驱动板的供电方案。这样,一个较大面积的显示屏需要配接许多电源模块,例如一个2m×1.5m的屏体,就需要提供24个5V/20A的模块电源。该设计存在以下的缺点。 1)接
[电源管理]
<font color='red'>LED</font>显示屏用电源的设计
单片机(AT89C51)按钮控制LED灯实现流水灯,闪烁流水灯
前言 好久没有写单片机系列了,话不多说,直接进入正题吧!本次要讲解和分享的实验是一个比较著名的流水灯实验,但这个实验是通过自己点击按钮实现“流水”的,和我的一篇(单片机(AT89C51)的仿真实验——流水灯和逐一闪烁灯(输入与输出))Blog有所不同,对于纯编码的流水灯有兴趣的也可以去看看这篇文章。还有我推出了一系列的单片机知识点总结和实验分享:单片机大全,对此有兴趣的也可以关注一下,方便后续的学习。 实验要求和目的 实验一:每按一次独立键盘的S1键,与P1口相连的八个发光二极管中点亮一个往下移动一位 实验二:上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,按下一次开关,使得下一个灯开始闪烁点亮,如此循环。 实
[单片机]
单片机(AT89C51)按钮控制<font color='red'>LED</font>灯实现流水灯,闪烁流水灯
一种智能LED路灯监控系统的设计
城市智能 LED 照明系统是智能交通系统重要组成部分。利用智能物联网技术能够有效提高如何节约能源,提高路灯能源的利用率并对路灯进行自动化、智能化的管理等急需解决的问题。 ZigBee 技术以其低功耗、通信可靠、网络容量大等特点为路灯自动控制领域提供了较合适的解决方案。而基于 ZigBee 自组网的 LED 智能照明控制系统是将 ZigBee 在短距离无线传输的优势与 LED 照明寿命长和节能的优势相结合。具有安全、智能、便于控制、方便维护等特点。 本文提出了一种基于物联网技术的交通照明控制系统。利用用ZigBee 技术与新型传感器、功率控制器及LED 路灯相结合,完成对城市路灯照明系统的集中监控。 1 系统设计方案 对路
[电源管理]
一种智能<font color='red'>LED</font>路灯监控系统的设计
LED灯具光辐射安全相关标准
  随着照明技术的发展,特别是LED 照明光源的出现,光源的光辐射安全问题越来越为人们所关注。   早在上世纪30 年代人们就开始研究各种光谱对人体的影响,80 年代初,美国的Sliney 和Wolbarsht 发表了有关激光和其他光源安全性的手册。目前世界上许多国家或地区都在不断完善灯和灯系统的光生物安全性要求、光辐射的安全标准。本文意在厘清目前世界上主要的光辐射安全标准情况,对这些标准作简单的差异比较和联系分析。   1 国际非电离辐射防护委员会发布的导则   国际非电离辐射防护委员会( ICNIRP) 的研究范围之一是确定人类曝露于非电离辐射中时,非电离辐射对人类的不利影响。曝辐导则是该委员会发布的基于各种科学研究结果
[电源管理]
<font color='red'>LED</font>灯具光辐射安全相关标准
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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