今天是: 创芯电子 | 发布供求信息 | 设为首页 | 加入收藏  

首页   解密专栏   设计应用    初学实战   解决方案   下载中心   厂商信息   供求信息   资讯快递   联系我们
热点推荐
单片机芯片解密器原理
IC设计工程师需求剧增 芯..
2007年中国汽车电子市场发..
单总线单片机多机通讯系统..
红外遥控密码锁的设计与实..
IC产业下半年有何看点
MSP430F413设计的智能遥控..
嵌入式Linux系统中的快速启..
利用双电机控制技术简化高..
射频卡水控终端的设计

图片链接






 首页
单片机数码管显示程序实验
时间: 2008-6-18

// 单片机数码管动态显示程序实验,
  数码管显示一般分静态显示及动态显示两种驱动方式,静态显示占用口线比较多,本文介绍的是如何实现数码管动态显示,应该说数码管动态显示是单片机外部指令输出的重要途径,因此如何设计数码管以及数码管的工作原理、数码管显示的方法、数码管显示的抗干扰设计等在单片机系统设计中占有重要地位。这个例子在系统硬件的基础上设计了软件查询程序、软件延时程序(防止干扰),大致讲述了一种数码管动态显示的工作原理与读取方式。  
 
        s1     bit  p0.0        ;数码管位定义
        s2     bit  p0.1
        s3     bit  p0.2
        s4     bit  p0.3
        s5     bit  p0.4
        s6     bit  p0.5
        s7     bit  p0.6
        s8     bit  p0.7

 led_data   equ  p2      ;数码管数据定义

 org 00h                 ;程序开始
 jmp main                ;主程序开始处

 org 030h                ;主程序从30H开始
 main:  mov sp,#30h             ;设置堆栈
        lcall rest              ;调用初始化程序
        lcall pro_8led          ;调用数码管显示程序
        jmp main                ;返回

;********* 初始化程序  **************
  
   rest:mov a,#00h              ;清寄存器
 mov b,#00h              ;清寄存器
 mov p0,#0               ;禁止数码管显示
 mov p2,#255             ;
 mov p1,0ffh             ;禁止LED显示
        clr beep                ;禁止蜂鸣器
     ret                        ;返回

;********  数码管显示程序  ***************
pro_8led:
 mov b,#32                ;一共显示32个数字
 clr psw.3                ;重新设置寄存器组
 setb psw.4               ;

 mov r0,#00h              ;数据显示从0开始
 mov r1,#01h              ;数码管从第1个开始
   loop:mov p0,r1                ;点亮当前数码管
    mov a,r0                 ;准备第一个数据
 mov dptr,#tab_nu         ;获得表头
 movc a,@a+dptr           ;得到第一个数据
 mov led_data,a           ;输出到显示数据口
               
        lcall delay              ; 500 ms 延时
        lcall delay              ; 1   s  延时
        inc r0                   ;准备下一个数据
        mov a,r1                 ;准备下一位数码管
        rlc a                    ;设置下一个数码管
        jc c1                    ;8位全部显示,转移
        mov r1,a                 ;否则,设置下一位
        djnz b,loop              ;32个数没有显示完,返回显示   
        ret                      ;否则返回主程序

c1:   mov r1,#1                  ;8位显示完,重新开始循环
        clr c                    ;设置显示位
        djnz b,loop              ;32位显示完则返回重新显示
        ret                      ;否则返回到主程序
;*************  数码管显示   *******************************

;*************  软件延时 500ms  *****************************
delay:  push psw              ; 保存原来的寄存器内容
        clr psw.3             ;
 clr psw.4             ; 设置新的寄存器组
 mov r0,#2             ; 延时参数1
 mov r1,#250           ; 延时参数2
 mov r2,#2             ; 延时参数3
    dl1:djnz r0,dl1           ; 延时循环1
     mov r0,#250           ;
    dl2:djnz r1,dl1           ; 延时循环2
        mov r0,#240           ;
        mov r1,#248           ;
    dl3:djnz r2,dl1           ; 延时循环3
 nop                   ; 定时精度调整
 pop psw               ;  恢复原来的寄存器
        ret                   ;   返回
;**********************************************************

;**********************************************************
;这是数字显示表格,其中 带小数点的数字比不带小数点的数字大16
; 比如 0 的显示代码为 0;那么 0.的显示代码为 16;如此类推

tab_nu:
       db 0c0h,  0f9h, 0a4h,  0b0h,  99h ,  92h ,  82h, 0f8h ; 数字0-7 不带小数点代码
       db 80h ,  90h,  88h ,  83h ,  0c6h,  0a1h,  86h, 8eh  ; 数字8-f   不带小数点代码
       db 40h ,  79h,  24h ,  30h ,  19h ,  12h ,  02h, 78h  ; 数字0-7  带小数点代码
       db 00h ,  10h,  08h ,  03h ,  46h ,  21h ,  06h, 0eh  ; 数字8-f   带小数点代码

      end  

来源:恒坚电器    作者:恒坚

 
上一篇: 测控专业单片机课程设计实例
下一篇: 新形势下的世界半导体业及中国半导体业的前景
打印】 【关闭

【资讯版权声明】
 1. 凡本网站注明“来源:单片机基地”的所有作品,版权均属于单片机基地,转载请注明“来源:单片机基地”。
 2. 本网转载自其它媒体的信息,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
 3. 未经本站明确许可,任何网站不得非法盗链软件下载连接及抄袭本网站原创内容资源。
 4. 违反上述声明者,本网将追究其相关法律责任。谢谢!

网站地图  广告服务  版权声明  友情连接  关于我们 
Copyright©2005-2008 单片机基地,创芯电子技术 版权所有
技术支持:0755-21976338 82701553 E-mail:mcubase@163.com QQ:719659769
致力于单片机解密,IC解密,芯片解密加密技术研究,提供芯片解密服务,仅供合法研究学习用途
基地资源仅供学习参考,部分内容来源于网络,如侵犯您的版权,请通知本站即撤
ICP备案序号:粤ICP备06120039号