求数字时钟程序,是用51单片机做的,我们实验室里能提供六个数码管,一个74ls245,一个74ls138译码器,只需

作者&投稿:拔固 (若有异议请与网页底部的电邮联系)
74LS138的译码器可以直接作为数码管的驱动吗?~

直接作为数码管的驱动可能电流不够,看你要驱动多大的电流了,不够的话,可以加三极管放大。

74LS138是3线8线译码器,有8个输出端,可以带8个数码管,所以,13个数码管就要用2个74LS138。
想用74LS138驱动数码管有点问题,输出端在低电平时的最大输出电流只有4mA,而它的输出端是要接到数码管公共端的,数码管是点亮时公共端的电流要远远大于4mA的,而且数码管必须是共阴的,共阳是无效的。
74HC154是4线-16线译码器,有16个输出端,一片就可以带16个数码管了。更主要是它的输出端的输出电流可达到25mA,这个电流驱动数码管的公共端还可以。
结论,用1片74HC154就可以接13个数码管,而不能用74LS138。

74ls138三八译码器,A\B\C分别接P1.0\P1.1\P1.2,Y0~Y7分别接0~7号数码管(共阴极),输出格式是: 23-59-59,你只用6个数码管,就把中间的两个横杠去掉就行了,代码修改一下。(不仅是代码中用于显示-的部分,还有数码管的控制字,也就是三八译码器的3个输入端得信号,也要去掉两个)。P2.0~P2.7接数码管的八位(P2.0接a,依次。。。)
调整时间的用四个独立按键,控制时钟+的接P3.2,-的接P3.2,控制分钟+的接P1.0,-的接P1.1。这4个控制键可以自己改。
源程序:
COUNT1 EQU 30H
MIAO1 EQU 31H
MIAO2 EQU 32H
COUNT2 EQU 33H
FEN1 EQU 34H
FEN2 EQU 35H
COUNT3 EQU 36H
SHI1 EQU 37H
SHI2 EQU 38H
ORG 0000H
SJMP START
ORG 0030H
START:MOV SP,#60H
MOV P0,#0FFH
MOV P2,#0FFH
MOV DPTR,#TAB
MOV COUNT1,#0
MOV MIAO1,#0
MOV MIAO2,#0
MOV COUNT2,#0
MOV FEN1,#0
MOV FEN2,#0
MOV COUNT3,#0
MOV SHI1,#0
MOV SHI2,#0

MAIN: CALL PROCESS1
CALL PROCESS2
CALL PROCESS3
CALL DISPLAY
INC COUNT1
SJMP MAIN

PROCESS1:MOV A,COUNT1
CJNE A,#60,JIXU1
MOV COUNT1,#0
INC COUNT2
JIXU1: MOV A,COUNT1
MOV B,#10
DIV AB
MOV MIAO1,A
MOV MIAO2,B
RET
PROCESS2:MOV A,COUNT2
CJNE A,#60,JIXU2
MOV COUNT2,#0
INC COUNT3
JIXU2: MOV A,COUNT2
MOV B,#10
DIV AB
MOV FEN1,A
MOV FEN2,B
RET
PROCESS3:MOV A,COUNT3
CJNE A,#24,JIXU3
MOV COUNT3,#0
JIXU3: MOV A,COUNT3
MOV B,#10
DIV AB
MOV SHI1,A
MOV SHI2,B
RET

DISPLAY:MOV R2,#0FH
L1: MOV R3,#09H
L2: MOV A,MIAO1
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#06H
CALL DELAY
MOV A,MIAO2
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#07H
CALL DELAY
MOV P2,#40H
MOV P1,#05H
CALL DELAY
MOV A,FEN1
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#03H
CALL DELAY
MOV A,FEN2
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#04H
CALL DELAY
MOV P2,#40H
MOV P1,#02H
CALL DELAY
MOV A,SHI1
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#00H
CALL DELAY
MOV A,SHI2
MOVC A,@A+DPTR
MOV P2,A
MOV P1,#01H
CALL DELAY
DJNZ R3,L2
DJNZ R2,L1
RET

DELAY:MOV R0,#50
D2: MOV R1,#10
D1: DJNZ R1,D1
DJNZ R0,D2
RET

用!这是个显示系统日期和时间的程序。这个程序运行时按‘D’显示日期,按‘T’显示时间,注意一定要切换到大写状态下按,不然没用。

STACK SEGMENT STACK
DW 200 DUP (?)
STACK ENDS
DATA SEGMENT
SPACE DB 1000 DUP (' ')
PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ')
DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ')
DB 6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ')
DBUFFER DB 8 DUP (':'),12 DUP (' ')
DBUFFER1 DB 20 DUP (' ')
STR DB 0DH,0AH, 'PLEASE INPUT DATE(D) OR TIME(T) OR QUIT(Q): $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START: MOV AX,0001H ;设置显示方式为40*25彩色文本方式
INT 10H
MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV BP,OFFSET SPACE
MOV DX,0B00H
MOV CX,1000
MOV BX,0040H
MOV AX,1300H
INT 10H
MOV BP,OFFSET PATTERN ;显示矩形条
MOV DX,0B00H
MOV CX,120
MOV BX,004EH
MOV AX,1301H
INT 10H
LEA DX,STR ;显示提示信息
MOV AH,9
INT 21H
MOV AH,1 ;从键盘输入单个字符
INT 21H
CMP AL,44H ;AL='D'?
JNE A
CALL DATE ;显示系统日期
A: CMP AL,54H ;AL='T'?
JNE B
CALL TIME ;显示系统时间
B: CMP AL,51H ;AL='Q'?
JNE START
MOV AH,4CH ;返回dos状态
INT 21H
DATE PROC NEAR ;显示日期子程序
DISPLAY:MOV AH,2AH ;取日期
INT 21H
MOV SI,0
MOV AX,CX
MOV BX,100
DIV BL
MOV BL,AH
CALL BCDASC1 ;日期数值转换成相应的ASCII码字符
MOV AL,BL
CALL BCDASC1
INC SI
MOV AL,DH
CALL BCDASC1
INC SI
MOV AL,DL
CALL BCDASC1
MOV BP,OFFSET DBUFFER1
MOV DX,0C0DH
MOV CX,20
MOV BX,004EH
MOV AX,1301H
INT 10H
MOV AH,02H ;设置光标位置
MOV DX,0300H
MOV BH,0
INT 10H
MOV BX,0018H
REPEA: MOV CX,0FFFFH ;延时
DEC BX
JNZ REPEA
MOV AH,01H ;读键盘缓冲区字符到AL寄存器
INT 16H
JE DISPLAY
JMP START
MOV AX,4C00H
INT 21H
RET
DATE ENDP
TIME PROC NEAR ;显示时间子程序
DISPLAY1:MOV SI,0
MOV BX,100
DIV BL
MOV AH,2CH ;取时间
INT 21H
MOV AL,CH
CALL BCDASC ;将时间数值转换成ASCII码字符
INC SI
MOV AL,CL
CALL BCDASC
INC SI
MOV AL,DH
CALL BCDASC
MOV BP,OFFSET DBUFFER
MOV DX,0C0DH
MOV CX,20
MOV BX,004EH
MOV AX,1301H
INT 10H
MOV AH,02H
MOV DX,0300H
MOV BH,0
INT 10H
MOV BX,0018H
RE: MOV CX,0FFFFH
REA: LOOP REA
DEC BX
JNZ RE
MOV AH,01H
INT 16H
JE DISPLAY1
JMP START
MOV AX,4C00H
INT 21H
RET
TIME ENDP
BCDASC PROC NEAR ;时间数值转换成ASCII码字符子程序
PUSH BX
CBW
MOV BL,10
DIV BL
ADD AL,'0'
MOV DBUFFER[SI],AL
INC SI
ADD AH,'0'
MOV DBUFFER[SI],AH
INC SI
POP BX
RET
BCDASC ENDP
BCDASC1 PROC NEAR ;日期数值转换成ASCII码字符子程序
PUSH BX
CBW
MOV BL,10
DIV BL
ADD AL,'0'
MOV DBUFFER1[SI],AL
INC SI
ADD AH,'0'
MOV DBUFFER1[SI],AH
INC SI
POP BX
RET
BCDASC1 ENDP
CODE ENDS
END START


求数字时钟程序,是用51单片机做的,我们实验室里能提供六个数码管,一...
74ls138三八译码器,A\\B\\C分别接P1.0\\P1.1\\P1.2,Y0~Y7分别接0~7号数码管(共阴极),输出格式是: 23-59-59,你只用6个数码管,就把中间的两个横杠去掉就行了,代码修改一下。(不仅是代码中用于显示-的部分,还有数码管的控制字,也就是三八译码器的3个输入端得信号,也要去掉两个...

时钟是什么?
数字时钟是使用计时器控件的一个简单但非常有用的应用程序。一旦弄清这个应用程序的工作原理,就可以将它改进为闹钟、跑表或其他计时工具。数字时钟应用程序包括一个计时器和带有边框的标签。在设计时刻,应用程序如下图所示:数字时钟应用程序 在运行时刻,看不见计时器。控件 属性 设置 lblTime Caption T...

海尔电视数字时钟怎么用
以下是使用海尔电视数字时钟的基本步骤:1、打开电视:使用遥控器将电视打开,确保电视处于正常工作状态。2、寻找数字时钟功能:使用遥控器上的导航键,找到菜单或设置按钮。通常,这个按钮会显示为一个齿轮形状的图标。3、进入设置菜单:按下菜单或设置按钮后,屏幕会显示出电视的设置菜单。使用遥控器上的导...

请教一下数字时钟的工作原理是什么
数字时钟的工作原理是 【1】数字时钟,就是以数字显示取代模拟表盘的钟表,在显示上它用数字反应此时的时间,它还能同时显示时,分,秒,且能够对时,分,秒准确进行校时。【2】数字钟从原理上讲是一种典型的数字电路,一般是由振荡器、分频器、计数器、显示器等几部分组成。其中包括了组合逻辑电路和时...

用C语言编一个数字电子时钟的程序
1.textmode函数在turboc中没有办法使用,不知道是什么问题,而borland c就可以。2.无论怎么设置,自己的ctrlbreak函数在上述两个环境中都不能被调用,非常遗憾。所以不能够优雅的退出。只能按两次ctrlbreak。下面是程序。---#include <stdio.h>#include <stdlib.h>#include <stdio.h>#include <conio.h>#include ...

iphone桌面显示数字时钟
在时钟页面,选择“翻页时钟”选项,即可让iPhone手机主屏幕显示数字时钟。拓展知识:iPhone是苹果公司(Apple Inc. )于2007年1月9日开始发售的搭载iOS操作系统的系列手机产品 。截至2022年9月,苹果公司(Apple Inc. )已发布37款手机产品 ;iPhone系列产品静音键在设备正面的左侧 ;iPhone 5之前机型使...

怎么用C语言编程数字时钟
&graphmode,"C:\\\\TC2"); \/\/初始化VGA屏幕模式setbkcolor(BLACK); \/\/使用黑色的背景色while(!kbhit(0)) \/\/若有键盘输入,则跳出,即是结束程序{ setcolor(GREEN); \/\/把画笔设为绿色circle(mid_x,mid_y,180); \/\/钟的外圆circle(mid_x,mid_y,150); \/\/钟的内圆circle(mid_x,mid_y,...

华为锁屏显示超大数字时钟
1、打开“设置”应用程序。2、点击“显示”选项。3、在“显示”页面中,找到“锁屏样式”选项。4、点击“锁屏样式”,在弹出的页面中选择“时钟样式”。5、在“时钟样式”页面中,选择“数字时钟”。6、在“数字时钟”页面中,找到“时钟大小”选项。7、点击“时钟大小”,选择“超大”。8、设置完成...

怎样用数字电路设计一个数字时钟
今后在设计用到数字钟作单元电路的系统时可直接引用该电路,使系统得到简化。图1、数字电子钟结构图2、秒钟、分钟计时电路的设计利用集成十进制递增计数器(74160)和带主译码器的七段显示数码管组成的数字钟电路。计数器74160的功能真值表如图2所示。根据计数器74160的功能表真值表,利用两片74160组成的同步六十进制...

ipad锁屏显示超大数字时钟
可以通过下载并设置特定应用程序,在iPad锁屏界面显示超大数字时钟。要在iPad的锁屏界面显示超大数字时钟,用户需要下载一个支持此功能的应用程序。目前,App Store中有许多免费和付费的应用程序可供选择。其中一些受欢迎的应用包括“大时钟”和“巨大时钟”等。下载并安装应用程序后,用户需要打开该应用并进行...

成县18066101249: 求数字时钟程序,是用51单片机做的,我们实验室里能提供六个数码管,一个74ls245,一个74ls138译码器,只需
巧赖康得: 74ls138三八译码器,A\B\C分别接P1.0\P1.1\P1.2,Y0~Y7分别接0~7号数码管(共阴极),输出格式是: 23-59-59,你只用6个数码管,就把中间的两个横杠去掉就行了,代码修改一下.(不仅是代码中用于显示-的部分,还有数码管的控制字,...

成县18066101249: 急求基于51单片机数字电子钟的汇编程序 -
巧赖康得: #include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段共阴管显示定义*/ uchar code dispcode[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0...

成县18066101249: 急求单片机51c编写的时钟显示程序 -
巧赖康得: #include<reg51.h> #define uchar unsigned char sbit set=P1^0; sbit setsecond=P1^1; sbit setminute=P1^2; uchar temp,second,minute; void task1() {if(set==1) {delay(10); if(set==1) { while(1) {if(setsecond==1){second++; while(setsecond);}if(...

成县18066101249: 求一个基于AT89C51单片机的数字时钟程序,显示时、分、秒不要求闹钟!就在开发板上的数码管显示 -
巧赖康得: 时钟的话 你把数码管的显示的变量值放在定时器里 通过你的定时器 来实现时分秒的定时

成县18066101249: 求1个利用51单片机AT89c51做一个简易电子钟的程序,仿真图如下.求大神帮忙. -
巧赖康得: 好评哦,亲//======================================//数码时钟#include#include typedef unsigned char uint8; uint8 smgdate[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40}; uint8 smgbit[8]={...

成县18066101249: 求一份设计一个以51单片机为核心的数字钟,要求能够实时显示小时、分钟、秒钟三个数据. -
巧赖康得: 自己做的,带年月日的 P1口接8个按键 P2低四位接74ls48P2.4接数码管dp高三位接74ls138#include<reg51.h> //头文件//#define uchar unsigned char#define uint unsigned int#define ulint unsigned long int #define tn0h 0x70#define tn0l 0x00#...

成县18066101249: 求:一个基于51单片机的数字时钟程序 -
巧赖康得: 给你ds18b20温度传感器代码你参考,我的空间还有些资料/****************************************//DS18B20温度传感器////作者:jammylee//日期:2008-2-25//版本:V1.0//晶振:12MHZ ****************************************///包含头文件 #...

成县18066101249: 求使用AT89C51单片机和74LS245来实现数字钟的C语言代码,只要能显示时分秒就行.K3开关,K1是选择键,K2是 -
巧赖康得: 如只编程序,可以.如做实物:AT89C51单片机功能强大,不用74245,可用巡回显示法,但应加一个DS1302之类的时钟电路,否则时间不会太准,甚至用不了,还有就是一断电就要重调时间,你受得了吗.

成县18066101249: 求基于51单片机P01,P2 LED接数码管,用三极管驱动的电子时钟程序,大神求救啊! -
巧赖康得: 程序名称:51单片机数码管电子钟汇编程序 简要说明:实现24小时制电子钟,8位数码管显示,显示时分秒 显示格式:23-59-59(小时十位如果为0则不显示) P0口输出段选信号,P2口输出位选信号 P1.0为调时按钮,P1.1为调分按钮;晶...

成县18066101249: (51单片机)找一个电子时钟的(C语言)程序,用LED灯做秒表,四个数码管做时 - 分.急急急!
巧赖康得: 有XS128的 //延时控制 void delay(void) { int m,n; for(m=14000;m;m--) { for(n=1000;n;n--) {} } } void LED(void) { PORTB=0XFE; delay(); PORTB=0XFC; delay(); PORTB=0XF8; delay(); PORTB=0XF0; delay(); PORTB=0XE0; delay(); PORTB=0XC0; ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网