久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20639|回復: 14
打印 上一主題 下一主題
收起左側

單片機制作—6位LED數碼管時鐘 匯編程序+電路圖

  [復制鏈接]
跳轉到指定樓層
樓主
ID:85192 發表于 2015-7-14 17:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

6位共陰數碼管,可作時鐘也可作秒表(估計沒人用這么多位的秒表喲)
時、分和秒可分別調整,有開始、暫停和清零鍵。


程序清單:

;12M晶振 2010 01 14 調試完成  03 15 修改  2011 03 03 注釋

STRT EQU P2.6
STP EQU P2.7
CLRR EQU P3.0
SEC EQU P3.5
MIN EQU P3.6
HOUR EQU P3.7

ORG 00H
SJMP MAIN
ORG 0BH
AJMP T0INT0
ORG 30H

MAIN: MOV  SP,#60H
MOV R4,#20
MOV TMOD,#01H
MOV TH0,#03CH  ;#9EH 12M晶振時定時初值取#3CB0H,還可細調,如 TL=#0B7H,可以更準  
MOV TL0,#0B0H   ;#58H
SETB ET0
SETB EA
;MOV 28H,#12

kS: LCALL DISP ;秒調整按鍵
JB SEC,KM
LCALL DISP
JNB SEC,$-3
AJMP SINC

kM: JB MIN,KH ;分調整按鍵
LCALL DISP
JNB MIN,$-3
AJMP MINC

KH: JB HOUR,K1 ;時調整按鍵
LCALL DISP
JNB HOUR,$-3
AJMP HINC

SINC: INC 26H ;秒調整
MOV A,26H
CJNE A,#60,SINC0
MOV 26H,#0
SINC0: AJMP KS

MINC: INC 27H ;分調整
MOV A,27H
CJNE A,#60,MINC0
MOV 27H,#0
MINC0: AJMP KM

HINC: INC 28H ;時調整
MOV A,28H
CJNE A,#24,HINC0
MOV 28H,#0
HINC0: AJMP KH  
  

k1: LCALL DISP ;開始鍵
JB STRT,K2
LCALL DISP
JNB STRT,$-3
AJMP START

k2: JB STP,K3 ;暫停鍵
LCALL DISP
JNB STP,STOP
K3: JB CLRR,KS
LCALL DISP
JNB CLRR,CLEAR ;清零鍵
AJMP KS

START: SETB TR0     ;開始
AJMP K1

STOP: CLR TR0 ;暫停
AJMP K2

CLEAR: CLR     TR0 ;清零
MOV A,#0
MOV 26H,A
MOV     27H,A
MOV 28H,A
AJMP KS

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 P0,A
CLR P2.0
ACALL DLY
SETB P2.0
MOV A,21H  ;秒十位
ACALL SEG7
MOV P0,A
CLR P2.1
ACALL DLY
SETB P2.1
MOV A,22H  ;分個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.2
ACALL DLY
SETB P2.2
MOV A,23H  ;分十位
ACALL SEG7
MOV P0,A
CLR P2.3
ACALL DLY
SETB P2.3
MOV A,24H  ;時個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.4
ACALL DLY
SETB P2.4
MOV A,25H  ;時十位
ACALL SEG7
MOV P0,A
CLR P2.5
ACALL DLY
SETB P2.5
RET


T0INT0: MOV TH0,#03CH;#9EH ;定時中斷子程序。重裝定時常數
MOV TL0,#0B0H;#58H
DJNZ R4,T0INTR ;50msX20=1S,未滿20次,跳出中斷子程序
MOV R4,#20
INC 26H  ;1S,秒存儲單元內數+1
MOV A,26H
CJNE A,#60,T0INTR    ;未滿60S,跳出中斷。
MOV 26H,#0  ;滿60S,秒單元清零
INC 27H  ;分+1
MOV A,27H
CJNE A,#60,T0INTR
MOV 27H,#0
INC 28H
MOV A,28H
CJNE A,#24,T0INTR
MOV 28H,#0
T0INTR: RETI

DLY10:  MOV R3,#30
D0: ACALL DLY
DJNZ R3,D0
RET
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







;2011 11 25   更新。加上鬧鈴 ,按鍵功能稍作改動 E:\DPJ\CLOCK\CLOCK-MX\CLOCKADJCC-MX.ASM

STRT EQU P2.6
STP EQU P2.7
CLRR EQU P3.0
SEC EQU P3.5
MIN EQU P3.6
HOUR EQU P3.7

ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 1BH
AJMP T1INT
ORG 30H

MAIN:
MOV  SP,#60H
MOV R4,#20
MOV TMOD,#11H
MOV TH0,#03CH;#9EH 12M晶振時定時初值取#3CB0H,還可細調如 TL=#0B7H,可以更準  
MOV TL0,#0B0H;#58H
MOV TH1,#0FEH
MOV TL1,#0CH
SETB EA
SETB ET0
SETB ET1

kS:
ACALL DISP
ACALL ALARM

JB SEC,KM   ;秒調整按鍵
ACALL DISP
JNB SEC,$-2
AJMP SINC

kM:
JB MIN,KH   ;分調整按鍵
ACALL DISP
JNB MIN,$-2
AJMP MINC

KH:
JB HOUR,K1   ;時調整按鍵
ACALL DISP
JNB HOUR,$-2
AJMP HINC

SINC:
JB 7FH,SINC_A
INC 26H ;秒調整
MOV A,26H
CJNE A,#60,SINC0
MOV 26H,#0
AJMP SINC0
SINC_A:
INC 36H ;鬧秒調整
MOV A,36H
CJNE A,#60,SINC0
MOV 36H,#0
SINC0: AJMP KS

MINC:
JB 7FH,MINC_A
INC 27H ;分調整
MOV A,27H
CJNE A,#60,MINC0
MOV 27H,#0
MINC_A:
INC 37H ;鬧分調整
MOV A,37H
CJNE A,#60,MINC0
MOV 37H,#0
MINC0:
AJMP KM

HINC:
JB 7FH,HINC_A
INC 28H ;時調整
MOV A,28H
CJNE A,#24,HINC0
MOV 28H,#0
HINC_A:
INC 38H ;鬧時調整
MOV A,38H
CJNE A,#24,HINC0
MOV 38H,#0
HINC0:
AJMP KH  
  

k1:
ACALL DISP ;開始鍵
JB STRT,K2
ACALL DISP
JNB STRT,$-2
AJMP START

k2:
JB STP,K3 ;暫停鍵
ACALL DISP
JNB STP,$-2
AJMP CL_AL
K3:
JB CLRR,KS0
ACALL DISP
JNB CLRR,CLEAR ;清零鍵
KS0:
AJMP KS

START:
CPL TR0       ;開始/暫停
CPL 7DH  ;7DH為開始鍵按下標志,此作為允許鬧鈴標志
AJMP K1

CL_AL:
CPL 7FH  ;7FH作時鐘和鬧鈴標志位?
AJMP K2

CLEAR:
CLR     TR0  ;清零
MOV A,#0
MOV 26H,A  
MOV   27H,A
MOV 28H,A
MOV 36H,A
MOV   37H,A
MOV 38H,A

AJMP KS

DISP:
JB 7FH,DISP_A
MOV 29H,26H  ;秒送秒顯示緩存
MOV 2AH,27H
MOV 2BH,28H
AJMP DISP1
DISP_A:
MOV 29H,36H
MOV 2AH,37H
MOV 2BH,38H
DISP1:
MOV A,29H
MOV B,#10
DIV AB
MOV 20H,B   ;余數(秒個位數)
MOV 21H,A   ;商(秒十位數)
MOV A,2AH
MOV B,#10
DIV AB
MOV 22H,B   ;余數(分個位數)
MOV 23H,A   ;商(分十位數)
MOV A,2BH
MOV B,#10
DIV AB
MOV 24H,B   ;余數(時個位數)
MOV 25H,A   ;商(時十位數)
MOV A,20H   ;秒個位
ACALL SEG7
MOV P0,A
CLR P2.0
ACALL DLY
SETB P2.0
MOV A,21H   ;秒十位
ACALL SEG7
MOV P0,A
CLR P2.1
ACALL DLY
SETB P2.1
MOV A,22H   ;分個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.2
ACALL DLY
SETB P2.2
MOV A,23H  ;分十位
ACALL SEG7
MOV P0,A
CLR P2.3
ACALL DLY
SETB P2.3
MOV A,24H    ;時個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.4
ACALL DLY
SETB P2.4
MOV A,25H    ;時十位
ACALL SEG7
MOV P0,A
CLR P2.5
ACALL DLY
SETB P2.5
RET

ALARM:
JNB 7DH,ALRT
MOV A,28H    ;比較小時
CJNE A,38H,RT   ;不等返回。 相等,轉分鐘比較
MOV A,27H    ;比較分鐘
CJNE A,37H,RT
MOV A,26H    ;比較秒
CJNE A,36H,RT
SETB TR1
MOV R0,#0    ;鬧鈴時間到,鬧鈴計時清零
ALRT:
RET

RT:
RET

T0INT: MOV TH0,#03CH;#9EH ;定時中斷子程序。重裝定時常數
MOV TL0,#0B0H  #58H
DJNZ R4,T0INTR  ;50msX20=1S,未滿20次,跳出中斷子程序
MOV R4,#20
INC 26H    ;1S,秒存儲單元內數+1
INC R0     ;響鈴時間
MOV A,26H
CJNE A,#60,T0INTR     ;未滿60S,跳出中斷。
MOV 26H,#0    ;滿60S,秒單元清零
INC 27H    ;分+1
MOV A,27H
CJNE A,#60,T0INTR
MOV 27H,#0
INC 28H
MOV A,28H
CJNE A,#24,T0INTR
MOV 28H,#0
T0INTR:
RETI

T1INT:
MOV TH1,#0FEH
MOV TL1,#0CH
CPL P1.0
CJNE R0,#5,T1RTI   ;鬧鈴時間設為5秒
CLR TR1     ;關鬧鈴
T1RTI:
RETI

DLY:
MOV R7,#20
MOV R6,#25
DJNZ R6,$
DJNZ R7,$-4
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

;12M晶振 2010 01 14 調試完成  3.15 修改  2011 03 03 注釋
;2011 11 25   加上鬧鈴  E:\DPJ\CLOCK\CLOCK-MX\CLOCKADJCC-MX.ASM
;2011 12 03   加上整點提醒,響1S   鬧鈴響3 S   E:\DPJ\CLOCK\CLOCK-定時整點\CLOCKADJCC-ZDNL.ASM


STRT EQU P2.6
STP EQU P2.7
CLRR EQU P3.0
SEC EQU P3.5
MIN EQU P3.6
HOUR EQU P3.7

ORG 00H
AJMP MAIN
ORG 0BH
AJMP T0INT
ORG 1BH
AJMP T1INT
ORG 30H

MAIN:
MOV  SP,#60H
MOV R4,#20
MOV TMOD,#11H
MOV TH0,#03CH;#9EH 12M晶振時定時初值取#3CB0H,還可細調如 TL=#0B7H,可以更準  
MOV TL0,#0B0H;#58H
MOV TH1,#0FEH
MOV TL1,#0CH
SETB EA
SETB ET0
SETB ET1

kS:
ACALL DISP
ACALL ALARM

JB SEC,KM   ;秒調整按鍵
ACALL DISP
JNB SEC,$-2
AJMP SINC

kM:
JB MIN,KH   ;分調整按鍵
ACALL DISP
JNB MIN,$-2
AJMP MINC

KH:
JB HOUR,K1   ;時調整按鍵
ACALL DISP
JNB HOUR,$-2
AJMP HINC

SINC:
JB 7FH,SINC_A
INC 26H ;秒調整
MOV A,26H
CJNE A,#60,SINC0
MOV 26H,#0
AJMP SINC0
SINC_A:
INC 36H ;鬧秒調整
MOV A,36H
CJNE A,#60,SINC0
MOV 36H,#0
SINC0: AJMP KS

MINC:
JB 7FH,MINC_A
INC 27H ;分調整
MOV A,27H
CJNE A,#60,MINC0
MOV 27H,#0
MINC_A:
INC 37H ;鬧分調整
MOV A,37H
CJNE A,#60,MINC0
MOV 37H,#0
MINC0:
AJMP KM

HINC:
JB 7FH,HINC_A
INC 28H ;時調整
MOV A,28H
CJNE A,#24,HINC0
MOV 28H,#0
HINC_A:
INC 38H ;鬧時調整
MOV A,38H
CJNE A,#24,HINC0
MOV 38H,#0
HINC0:
AJMP KH  
  

k1:
ACALL DISP ;開始鍵
JB STRT,K2
ACALL DISP
JNB STRT,$-2
AJMP START

k2:
JB STP,K3 ;暫停鍵
ACALL DISP
JNB STP,$-2
AJMP CL_AL
K3:
JB CLRR,KS0
ACALL DISP
JNB CLRR,CLEAR ;清零鍵
KS0:
AJMP KS

START:
CPL TR0       ;開始/暫停
SETB 7DH  ;7DH為開始鍵按下標志,此作為允許鬧鈴標志
AJMP K1

CL_AL:
CPL 7FH  ;7FH作時鐘和鬧鈴標志位
AJMP K2

CLEAR:
CLR     TR0  ;清零
MOV A,#0
MOV 26H,A  
MOV 27H,A
MOV 28H,A
MOV 36H,A
MOV   37H,A
MOV 38H,A

AJMP KS

DISP:
JB 7FH,DISP_A
MOV 29H,26H  ;秒送秒顯示緩存
MOV 2AH,27H
MOV 2BH,28H
AJMP DISP1
DISP_A:
MOV 29H,36H
MOV 2AH,37H
MOV 2BH,38H
DISP1:
MOV A,29H
MOV B,#10
DIV AB
MOV 20H,B   ;余數(秒個位數)
MOV 21H,A   ;商(秒十位數)
MOV A,2AH
MOV B,#10
DIV AB
MOV 22H,B   ;余數(分個位數)
MOV 23H,A   ;商(分十位數)
MOV A,2BH
MOV B,#10
DIV AB
MOV 24H,B   ;余數(時個位數)
MOV 25H,A   ;商(時十位數)
MOV A,20H   ;秒個位
ACALL SEG7
MOV P0,A
CLR P2.0
ACALL DLY
SETB P2.0
MOV A,21H   ;秒十位
ACALL SEG7
MOV P0,A
CLR P2.1
ACALL DLY
SETB P2.1
MOV A,22H   ;分個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.2
ACALL DLY
SETB P2.2
MOV A,23H  ;分十位
ACALL SEG7
MOV P0,A
CLR P2.3
ACALL DLY
SETB P2.3
MOV A,24H  ;時個位
ACALL SEG7
MOV P0,A
SETB P0.7
CLR P2.4
ACALL DLY
SETB P2.4
MOV A,25H  ;時十位
ACALL SEG7
MOV P0,A
CLR P2.5
ACALL DLY
SETB P2.5
RET

ALARM:
JNB 7DH,RT  ;開始鍵未按下跳出
MOV A,28H  ;開機時,時分秒都 為0,跳出
JZ AL0M
AJMP ALARM1
AL0M:
MOV A,27H
JZ AL0S
AJMP ALARM1
AL0S:
MOV A,26H
JZ RT   
ALARM1:
MOV A,28H  ;比較小時
CJNE A,38H,AL  ;不等返回,相等,轉分鐘比較
MOV A,27H  ;比較分鐘?
CJNE A,37H,AL
MOV A,26H  ;比較秒
CJNE A,36H,AL
AJMP ALARM2 ;轉鬧鈴

AL:    ;整點提醒
MOV A,28H
JZ RT   ;小時不是00,判分是不是00
MOV A,27H
JNZ RT   ;分不是00,跳出
MOV A,26H
JNZ RT
AJMP ALARM3 ;秒不為00,跳出。為00,整點提醒
ALARM2:   ;鬧鈴3 S
SETB TR1  
MOV R0,#0
AJMP RT
ALARM3:   ;整點提醒1S
SETB TR1
MOV R0,#2
RT:
RET

T0INT:
MOV TH0,#03CH;定時中斷子程序。重裝定時常數
MOV TL0,#0B0H  
DJNZ R4,T0INTR  ;50msX20=1S,未滿20次,跳出中斷子程序
MOV R4,#20
INC 26H    ;1S,秒存儲單元內數+1
INC R0     ;響鈴時間
MOV A,26H
CJNE A,#60,T0INTR     ;未滿60S,跳出中斷。
MOV 26H,#0    ;滿60S,秒單元清零
INC 27H    ;分+1
MOV A,27H
CJNE A,#60,T0INTR
MOV 27H,#0
INC 28H
MOV A,28H
CJNE A,#24,T0INTR
MOV 28H,#0
T0INTR:
RETI

T1INT:
MOV TH1,#0FEH
MOV TL1,#0CH
CPL P1.0
CJNE R0,#3,T1RTI   ;鬧鈴時間設為5秒
CLR TR1     ;關鬧鈴
T1RTI:
RETI

DLY:
MOV R7,#20
MOV R6,#25
DJNZ R6,$
DJNZ R7,$-4
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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:27825 發表于 2015-10-31 11:26 | 只看該作者
線路圖在哪兒
回復

使用道具 舉報

板凳
ID:72781 發表于 2016-1-16 01:00 | 只看該作者
這用的什么仿真軟件,一直沒用過仿真做,但是這個仿真軟件看起來很溜啊
回復

使用道具 舉報

地板
ID:121550 發表于 2016-5-19 19:52 | 只看該作者
暗光 發表于 2016-1-16 01:00
這用的什么仿真軟件,一直沒用過仿真做,但是這個仿真軟件看起來很溜啊

Professional
回復

使用道具 舉報

5#
ID:72781 發表于 2016-5-20 14:30 | 只看該作者

謝謝你回復,這個軟件是protues,那個時候沒用過,現在用過了
回復

使用道具 舉報

6#
ID:257970 發表于 2017-12-5 23:21 | 只看該作者
請問,這個要怎么改一下能改成倒計時器呢,再加一個報警功能
回復

使用道具 舉報

7#
ID:458568 發表于 2018-12-30 16:10 | 只看該作者
為什么我連完之后不亮 在線等 挺急的
回復

使用道具 舉報

8#
ID:591032 發表于 2019-7-26 21:49 來自手機 | 只看該作者
樓主,有原文件嗎?能不能發給我,郵箱:13423799975@163.com
回復

使用道具 舉報

9#
ID:591032 發表于 2019-7-26 21:50 來自手機 | 只看該作者
不需要鬧鐘
回復

使用道具 舉報

10#
ID:782387 發表于 2020-11-3 21:34 | 只看該作者
代碼復制到keil軟件上怎么亂碼了?
回復

使用道具 舉報

11#
ID:782387 發表于 2020-11-5 18:16 | 只看該作者
這個代碼復制了以后編譯不了,不能形成hex文件
回復

使用道具 舉報

12#
ID:622100 發表于 2021-5-16 13:31 | 只看該作者
LIUSHENGXUE 發表于 2020-11-5 18:16
這個代碼復制了以后編譯不了,不能形成hex文件

這是匯編語言
回復

使用道具 舉報

13#
ID:906597 發表于 2021-5-25 15:37 來自手機 | 只看該作者
沒有C語言的代碼?
回復

使用道具 舉報

14#
ID:862334 發表于 2021-6-1 13:00 | 只看該作者
感覺有一點復雜 看不太懂
回復

使用道具 舉報

15#
ID:278457 發表于 2021-12-16 02:55 | 只看該作者
剛學匯編,有點入門,謝謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久av网站| 在线视频第一页 | 国产色网| 国产欧美精品 | 国产大片黄色 | 一级a性色生活片久久毛片 午夜精品在线观看 | 本道综合精品 | 中文字幕一区在线 | 国产1区2区在线观看 | 欧美二区乱c黑人 | 久久精品二区 | 国产精品久久国产精品久久 | 一区视频在线 | 伊人伊人 | 精品国产免费一区二区三区演员表 | 中国三级黄色录像 | www.日日干 | 国产精品永久久久久久久www | 午夜精品久久久久久久星辰影院 | 色999日韩| 亚洲欧美日韩国产综合 | 国产精品不卡一区 | 人人看人人搞 | 国产成年人视频 | 亚洲性视频 | 在线观看欧美一区 | aaa天堂| 精品欧美激情精品一区 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 久久国产婷婷国产香蕉 | 日本三级网站在线观看 | av国产精品毛片一区二区小说 | 国产一级片在线观看视频 | 亚洲国产成人精品久久久国产成人一区 | 精品久久久久久久 | 日日操天天射 | 国产精品一区二区三区在线 | 99久久99久久精品国产片果冰 | av片在线观看 | 久久久久久久av | 久久男人天堂 |