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

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 带小数点代码

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 管材 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved