用51单片机编一个电子时钟的程序 八个数码管 要汇编编的 最简单的 只要能工作就行 走时就行 不要别的功能

如题所述

ORG 00H

AJMP MAIN

ORG 0BH

AJMP T0INT

ORG 30H

MAIN:

MOV  SP,#60H

MOV R4,#20

MOV TMOD,#01H

MOV TH0,#03CH;12M晶振时定时初值

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R0,#20

DISP:

MOV A,26H

MOV B,#10

DIV AB

MOV 20H,B ;余数(百分秒位数)

MOV 21H,A ;商(十分秒位数)

MOV A,27H

MOV B,#10

DIV AB

MOV 22H,B ;余数(秒个位数)

MOV 23H,A ;商(秒十位数)

MOV A,28H

MOV B,#10

DIV AB

MOV 24H,B ;余数(分个位数)

MOV 25H,A ;商(分十位数)

MOV A,20H ;秒

ACALL SEG7

MOV P1,A

CLR P2.0

ACALL DLY

SETB P2.0

MOV A,21H ;十秒

ACALL SEG7

MOV P1,A

CLR P2.1

ACALL DLY

SETB P2.1

MOV P1,#40H ;"-"

CLR P2.2

ACALL DLY

SETB P2.2

MOV A,22H ;分

ACALL SEG7

MOV P1,A

CLR P2.3

ACALL DLY

SETB P2.3

MOV A,23H ;十分

ACALL SEG7

MOV P1,A

CLR P2.4

ACALL DLY

SETB P2.4

MOV P1,#40H ;"-"

CLR P2.5

ACALL DLY

SETB P2.5

MOV A,24H ;时

ACALL SEG7

MOV P1,A

CLR P2.6

ACALL DLY

SETB P2.6

MOV A,25H ;十时

ACALL SEG7

MOV P1,A

CLR P2.7

ACALL DLY

SETB P2.7

AJMP DISP

T0INT:

MOV TH0,#03CH

MOV TL0,#0B0H

DJNZ R0,T0INTR

MOV R0,#20

INC 26H ;

MOV A,26H

CJNE A,#60,T0INTR    ;未1S,跳出中断。

MOV 26H,#0

INC 27H ;秒+1

CPL 7FH

MOV A,27H

CJNE A,#60,T0INTR

MOV 27H,#0

INC 28H

MOV A,28H

CJNE A,#60,T0INTR

MOV 28H,#0

T0INTR:

RETI

DLY:

MOV R7,#2

D1:

MOV R6,#40

DJNZ R6,$

DJNZ R7,D1

RET

SEG7:

INC A

MOVC A,@A+PC

RET

DB      03FH ;0          共阴

DB      006H ;1

DB      05BH ;2

DB      04FH ;3

DB      066H ;4

DB      06DH ;5

DB      07DH ;6

DB      007H ;7

DB      07FH ;8

DB      06FH ;9

END

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-19
不知道

51单片机驱动八位数码管电子钟
uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};\/\/八位位选码表 \/\/0 1 2 34 5 6 7 uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};\/\/段选码表 \/\/ 0, 1,2, 3, 4 , 5,6,7 ,8,9 uchar flag=0; \/\/ sbit...

基于51单片机简易时钟闹钟八位数码管显示Proteus仿真
本设计旨在实现一个基于51单片机的多功能数字时钟闹钟,其主要功能包括显示时、分、秒,并能设置时间和闹钟。该设计采用单片机内部定时器实现计时功能,通过八位数码管显示当前时间。用户可以对时、分、秒进行独立设置,设置时数码管将闪烁。此外,闹钟功能可让用户设置特定时间,当时间到达,蜂鸣器将每秒鸣响...

51单片机设计数码管显示时钟的程序怎么写
include<reg51.h>#define uchar unsigned charuchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};\/\/0-9unsigned char sec=0,min=0,hour=12,scanled;unsigned char key,flashbit,mode,time; unsigned char disdat[8];sbit led=P1^0;void delay(unsigne...

用c语言循环语句怎么写一个51单片机的时钟啊,用8个数码管显示时间。
delay(50);dischg();delay(80);break;

51单片机显示八位数码管的C语言程序
2、接着,我们要定义好库函数,想要实现动态数码灯,这个步骤是很重要的。3、接着,我们加上一条循环语句。4、最后,我们把先前定义的延时语句delayms写好。5、最后,点击这里进行编译,生成一个hex文件。6、如果这里无错误警告的话,就说明我们的程序写对了,那我们就可以点亮动态数码管了。

求一个用汇编语言编写一个8051单片机的时钟程序(急急急啊)
DIS_DIGIT: DS 1 SEC: DS 1 DIS_INDEX: DS 1 HOUR: DS 1 MIN: DS 1 SEC100: DS 1 DIS_BUF: DS 8 BUF_HOUR_H EQU DIS_BUF ; 小时十位 BUF_HOUR_L EQU DIS_BUF+1 ; 小时个位 BUF_MIN_H EQU DIS_BUF+3 ; 分十位 BUF_MIN_L ...

51单片机时钟程序设计
朋友以下是本人历时一个月殚精竭虑自主开发的一个8位51单片机时钟程序,望吾之兄弟姐妹习之,此程序乃采用一键控制,通过感知按下键持续时间的长短来进行调整时间,闹铃,6只共阳数码管输出显示,此外还包括整点铃声功能,在看程序之前我先交代一下运行该程序的硬件要求:12M晶振,P0端口驱动显示,P2.0...

51单片机控制8个数码管并显示1-8
数码管段选连接到单片机P0口,位选连接到P2口 ORG 0000h MAIN:CALL DISPLAY AJMP MAIN DISPLAY:MOV R0,#0 MOV R1,#0x01 MOV DPTR,#TAB LOOP:INC R0 MOV A,R0 MOVC A,@A+DPTR MOV P0,#0 ;消隐 MOV P0,A ;送段码 CALL DELAY MOV A,R1 ;送位码 RL A ;移位 MOV P2,A MOV ...

基于51单片机利用八个数码管花样显示如下
其实很简单,你把1--8对应的共阴极或共阳极的编码寻在一个数组里(C语言)或者表里(汇编语言查表法),在P0口和P2口接上8个7段数码管,P2口做位选,P0口做段选,每次从表中查询你要显示的数据的编码写到P0口,再把你要在哪一个数码管上显示写到P2口(比如位选为低电平有效,向P2口写入0xFE...

在51单片机中用c语言写程序实现用一个按键控制8个灯的亮和灭(按下按 ...
你首先要确定你的电路。选择什么单片机和数码管,8个按键最简单8个IO口控制。一般简单的是用三极管驱动数码管。如果你会C语言的话,很容易上手。自己先从控制1个数码管学,在控制2个数码管(2个数码管基本上可以完成上面试验,8个就可以类推)\\r\\n\\r\\n1、初始值为0:上电复位后,单片机驱动数码管...

相似回答