数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP)这个小数点可以更精确的表示数码管想要显示的内容;按能显示多少个(8)可分为1位、2位、3位、4位、5位、6位、7位等数码管。

数码管也称LED数码管,不同行业人士对数码管的称呼不一样,其实都是同样的产品。

按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

数码管驱动方式

概述

数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

静态显示驱动

静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5&TImes;8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

利用单片机数码管程序模拟是时钟显示时间

本电子时钟主要是由AT89S51单片机及8个共阳数码管组成。由于数码管引脚比较多,占用单片机的I\O口也比较多,由于单片机最多只有32个I\O口,在数码管比较多时(两个以上),就满足不了实际需要,因此在数码管比较多时,采用动态扫描的方式使数码管逐个点亮。本电子时钟就是采用的这种显示方式。利用取表指令“MOV DPTR,#TABLE与MOVC A,@A+DPTR”和条件转移指令“CJNE A,#data,rel”所要显示的时间送入单片机的端口(P0口和P2口)并放大后,驱动数码管显示出所要显示的具体时间。采用单片机内部定时器定时,计数,时间非常准确!

显示的时间格式为:12—00—00,即“小时—分钟—秒”。P0口为数码管的各段位接口,P2口为8个数码管的电源端。P3.2口为“小时”调整,P3.3口为“分钟”调整,P3.4口为“秒”调整。但每个调整键只能加,不能减。晶振为12MHZ。

汇编源程序如下:

SECOND EQU 30H

MINITE EQU 31H

HOUR EQU 32H

HOURK BIT P3.2

MINITEK BIT P3.3

SECONDK BIT P3.4

DISPBUF EQU 40H

DISPBIT EQU 48H

T2SCNTA EQU 49H

T2SCNTB EQU 4AH

TEMP EQU 4BH

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START:MOV SECOND,#00H

MOV MINITE,#00H

MOV HOUR,#12

MOV DISPBIT,#00H

MOV T2SCNTA,#00H

MOV T2SCNTB,#00H

MOV TEMP,#0FEH

LCALL DISP

MOV TMOD,#01H

MOV TH0,#(65536-2000) / 256

MOV TL0,#(65536-2000) MOD 256

SETB TR0

SETB ET0

SETB EA

WT:JB SECONDK,NK1

LCALL DELY10MS

JB SECONDK,NK1

INC SECOND

MOV A,SECOND

CJNE A,#60,NS60

MOV SECOND,#00H

NS60:LCALL DISP

JNB SECONDK,$

NK1:JB MINITEK,NK2

LCALL DELY10MS

JB MINITEK,NK2

INC MINITE

MOV A,MINITE

CJNE A,#60,NM60

MOV MINITE,#00H

NM60:LCALL DISP

JNB MINITEK,$

NK2:JB HOURK,NK3

LCALL DELY10MS

JB HOURK,NK3

INC HOUR

MOV A,HOUR

CJNE A,#24,NH24

MOV HOUR,#00H

NH24:LCALL DISP

JNB HOURK,$

NK3:LJMP WT

DELY10MS:MOV R6,#10

D1:MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

DISP:MOV A,#DISPBUF

ADD A,#8

DEC A

MOV R1,A

MOV A,HOUR

MOV B,#10

DIV AB

MOV @R1,A

DEC R1

MOV A,B

MOV @R1,A

DEC R1

MOV A,#10

MOV @R1,A

DEC R1

MOV A,MINITE

MOV B,#10

DIV AB

MOV @R1,A

DEC R1

MOV A,B

MOV @R1,A

DEC R1

MOV A,#10

MOV@R1,A

DEC R1

MOV A,SECOND

MOV B,#10

DIV AB

MOV @R1,A

DEC R1

MOV A,B

MOV @R1,A

DEC R1

RET

INT_T0:MOV TH0,#(65536-2000) / 256

MOV TL0,#(65536-2000) MOD 256

MOV A,#DISPBUF

ADD A,DISPBIT

MOV R0,A

MOV A,@R0

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,DISPBIT

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV P2,A

INC DISPBIT

MOV A,DISPBIT

CJNE A,#08H,KNA

MOV DISPBIT,#00H

KNA:INC T2SCNTA

MOV A,T2SCNTA

CJNE A,#100,DONE

MOV T2SCNTA,#00H

INC T2SCNTB

MOV A,T2SCNTB

CJNE A,#05H,DONE

MOV T2SCNTB,#00H

INC SECOND

MOV A,SECOND

CJNE A,#60,NEXT

MOV SECOND,#00H

INC MINITE

MOV A,MINITE

CJNE A,#60,NEXT

MOV MINITE,#00H

INC HOUR

MOV A,HOUR

CJNE A,#24,NEXT

MOV HOUR,#00H

NEXT:LCALL DISP

DONE:RETI

TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH

TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH

END

本程序已通过实践验证!!!

数码管在c语言中显示时间,如何利用单片机数码管程序模拟是时钟显示时间?...相关推荐

  1. 关于linuxC语言中创建进程,利用execlp函数执行.c程序问题

    关于linuxC语言中创建进程,利用execlp函数执行.c程序问题 对于一个小白来说,这个系统调用真的太难了,完全摸不着头脑啊,一搜execlp函数,全是执行的命令,什么传参硬是没懂. 不过说到底, ...

  2. c语言中读取flash值的作用,flash读写程序

    原标题:flash读写程序 在电子工程世界为您找到如下关于"flash读写程序"的新闻 msp430F149单片机的flash读写程序 //基于msp430F149单片机的flas ...

  3. C语言中如何把位赋值给字节,优秀程序员必须知道的20个位运算技巧

    一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读&l ...

  4. win7任务栏时钟显示秒_如何使Windows 10的任务栏时钟显示秒数

    win7任务栏时钟显示秒 Windows 10's taskbar clock can display the precise time down to the second. This featur ...

  5. matlab程序模拟汽车理论中的数据特性图动力特性图,matlab程序模拟汽车理论中的数据特性图1.doc...

    matlab程序模拟汽车理论中的数据特性图1.doc 车辆理论作业第三组第一大题确定一辆轻型货车的动力性能1.绘制发动机的使用外特性曲线N60014000NN/1000T1931329527N/100 ...

  6. 浙江万里学院c语言题库答案,浙江万里学院单片机原理及应用模拟试卷八.doc

    浙江万里学院单片机原理及应用模拟试卷八 浙江万里学院单片机原理及应用模拟试卷八 一.填空(每空1分,共30分) 1.把计算机的CPU. 和多种接口集成在一块芯片上,称为微处理器,也叫微控制器,简称 . ...

  7. 三菱梯形图转换c语言软件,三菱梯形图转51单片机软件使用程序超过100步又要使用软件的朋友.pdf...

    三菱梯形图转51单片机软件使用程序超过100步又要使用软件的朋友 三菱梯形图转51单片机软件使用 希望这个软件 能降低你的电气控制成本. 1:运行三菱软件,选择PLC型号为FX1N,画好梯形图并保存. ...

  8. c语言让数码管显示时间,请问51单片机肿么编写程序让8个数码管显示时间(时分秒)...

    //*******时间程序**************// //*******2010-7-14 00:31:39 *******// //******* Z X C **************** ...

  9. c语言数码管流动显示一个数,51单片机数码管动态显示 - 数码管动态扫描显示01234567程序(三种方案)...

    数码管动态扫描显示01234567程序二--51单片机动态显示共阳数码管01234567 原理图 c语言程序 程序如下: #include #define uint unsigned int #def ...

最新文章

  1. Opengl-几何着色器(劫持顶点的家伙)
  2. Python实现与LeetCode--堆
  3. 20160808_安装JDK7u79
  4. ConcurrentHashMap的初步使用及场景
  5. Python网络爬虫--Scrapy使用IP代理池
  6. 数据结构(六)查找---多路查找树(2-3-4树)
  7. 3-1:类与对象入门——类的引入和类的定义以及访问限定符和封装还有对面向对象的理解
  8. Safari 最新技术预览版来啦,为开发者带来了哪些新功能?
  9. BZOJ【1609】 麻烦的聚餐
  10. 通过python实现txt中,字母概率的计算,以及信源熵的计算,并且输出
  11. JAVA排课教务系统
  12. 左程云 Java 笔记--图
  13. linux recv函数 参数,linux send recv函数详解
  14. QQGame找茬游戏辅助工具
  15. python工具方法 10 h5py批量写入文件、读取文件,支持任意维度的数据
  16. 姚舜:北漂后悔一阵子,不北漂后悔一辈子
  17. Sublime Text 超美丽主题配色
  18. php将数组变成字符串implode和explode
  19. 计算机室免费开放活动方案,免费低收费开放方案
  20. Arduino实现两个HC-05蓝牙模块控制蓝牙小车

热门文章

  1. Adobe Audition cs6打不开视频文件怎么办?
  2. Throughput Optimization for Grant-Free Multiple Access With Multiagent Deep Reinforcement Learning
  3. 铁匠smith_铁匠中的独特角色阴影
  4. html如何把图片填充颜色渐变,css图片怎么设置透明度渐变?
  5. chatgpt赋能python:Python微信聊天记录:如何导出并分析聊天记录
  6. 操作系统educoder
  7. 计算机二级word突出显示,计算机二级word真题:调查报告美化排版
  8. (转载)最全各种浏览器网页星号点号密码查看最简方法(技术小白也能看懂使用)
  9. flavor android build,Android build.gradle从另一个文件导入flavor
  10. 大觉寺到鹫峰线路_串起回忆的行程—大觉寺-鹫峰公园-阳台山-凤凰岭公园穿越之旅...