积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> 汇编
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
51单片机数码管动态显示程序
 
作者:未知   来源:东哥单片机学习网    点击数:103   更新时间:2008-8-1
您可以添加到网摘 让更多人关注此文章:

    

// 单片机数码管动态显示程序实验,
  数码管显示一般分静态显示及动态显示两种驱动方式,静态显示占用口线比较多,本文介绍的是如何实现数码管动态显示,应该说数码管动态显示是单片机外部指令输出的重要途径,因此如何设计数码管以及数码管的工作原理、数码管显示的方法、数码管显示的抗干扰设计等在单片机系统设计中占有重要地位。这个例子在系统硬件的基础上设计了软件查询程序、软件延时程序(防止干扰),大致讲述了一种数码管动态显示的工作原理与读取方式。 
 
        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  
 

 



相关文章
· Microchip推出适用于8位、16位及32位PIC®单片机和...[87]
· 基于SPE61A单片机的非接触式高压验电器的开发[173]
· 多通道智能温湿度测试仪的研制[206]
· 多通道智能温湿度测试仪的研制[167]
· 51系列单片机输出PWM的两种方法[235]
热门评论排行
·VHDL设计中电路简化问题的
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·基于实时操作系统μC/OS-
·ARM嵌入式系统基础教程(N

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
赛普拉斯为用于机器视觉与运动分析应用
赛普拉斯针对机器视觉与全息数据存储应
金融危机来袭 台湾LED产
半导体市场环境恶化 安森美
Vishay 的新型&nb
Intersil推出采用小尺寸QFN
富士通微电子携手西安电子科技大学成立
纤巧和高压的 LDO&nb
华为计划收购北电业务 华为
华为计划收购北电业务 华为
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
四折批发各种数码相机,摄相机等...
最低价销售各种品牌手机...
震撼出售各种品牌笔记本电脑等!...
IC design 的流程...
电子工程师,别拿一分钱不当回事...
新款安全多用途非接触式芯片(T...
关于ARM启动的一篇文章!...
Linux网络设备驱动编程...
linux文件系统基础知识...
求奇想达QXD-DM642开发...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网