當前位置:編程學習大全網 - 編程語言 - 單片機電子鐘程序的迫切要求

單片機電子鐘程序的迫切要求

節目太長了。給我留個郵件。這只是第壹部分。

disp first EQU 30H;顯示第壹地址存儲單元

貝爾EQU p 1.4;門鈴

康布斯EQU 2FH;節省時間的次數

ORG 0000H程序執行開始地址

LJMP啟動;跳到標簽開始保持

ORG 0003H外部中斷0中斷程序

RETI;外部中斷0中斷返回

ORG 000BH定時器T0中斷過程

LJMP INTT0跳轉到INTT0執行。

ORG 0013H;外部中斷1中斷程序

RETI;外部中斷1中斷返回

ORG 001BH;定時器T1中斷過程

LJMP intt 1;跳轉到INTT1執行。

ORG 0023H串行中斷程序入口

RETI;串行中斷程序返回

QQQQ: MOV A,#10H

MOV灣,79H

MUL AB

加壹個,78H

MOV·康布斯

bs loop:LCALL ds 20 ms;短期電話

LCALL DL1S

LCALL DL1S

LCALL DL1S

DJNZ CONBS,BSLOOP

CLR 08H清除小時標誌

AJMP START1

;* * * * * * * * * * * * * *主程序開始* * * * * * * * * * * * * *

啟動:CLR鈴聲;

LCALL ST開機顯示年、月、日和班號。

MOV R0,# 00H清除00H~H存儲單元

MOV R7 # 80H

清除顯示:MOV @R0,#00H

INC R0

DJNZ R7,CLEARDISP

MOV 20H,# 00H清除20小時(用於標記)

MOV 7AH,# 0AH輸入“熄滅”數據

MOV TMOD,# 11H;設t0和t1為16位定時器。

MOV TL0,# 0B0H50毫秒計時初始值(用於T0計時)

MOV TH0,# 3CH50毫秒計時初始值

MOV TL1,# 0B0H50毫秒計時初始值(T1閃爍計時)

MOV TH1,# 3CH50毫秒計時初始值

SETB EA;完全中斷開啟

SETB ET0;允許T0中斷

SETB TR0;打開T0中斷

MOV R4,# 14H;1s計時計數(50毫秒*20)

MOV DISPFIRST,# 70H顯示單位為70H~75H。

;下面是主程序循環

START1: LCALL顯示;呼叫顯示子程序

JNB P1.0,setmm 1;當P1.0端口為0時,轉到時間調整程序。

JNB P1.1,FUNSS秒表功能,按P1.1鍵調整時間,做減1的操作。

JNB P1.2,FUNPT秒表停止,按鈕,時鐘

JNB P1.3,TSFUN定時鬧鐘設置

JB 08H,QQQQ符號為1時,報時。

AJMP start 1;當P1.1為1時,跳回START1。

FUNPT:LJMP FUNPT

;以下是報警時間設置程序。按P1.3輸入設置。

t fun:LCALL ds20 ms

JB P1.3,START1

wait 113:JNB p 1.3,wait 113;等待按鍵釋放。

JB 05H,CLOSESP如果鬧鐘開著,就關掉它。

MOV DISPFIRST,# 50H進入鬧鈴設置程序,顯示鬧鈴計時單位50H~55H。

MOV 50H,# 0CH"-"設置鬧鈴時,顯示方式為00:00:-

MOV 51H,# 0AH“黑色”

等待:SETB EA

LCALL顯示

JNB P1.2,DSFINC單獨添加1

JNB P1.0,DSDEC負1

JNB P1.3,DSSFU入境調整

AJMP DSWAIT

CLOSESP:CLR 05H;關閉警報標誌

CLR貝爾

AJMP START1

DSSFU:LCALL ds 20 ms;防抖

JB P1.3,DSWAIT

LJMP DSSFUNN進入時的調整

SETMM 1:LJMP SETMM;轉到時間調整程序設置mm。

ds finc:LCALL ds 20 ms;防抖

JB P1.2,DSWAIT

DSWAIT12: LCALL顯示;等額債券發行

JNB P1.2,DSWAIT12

CLR EA

MOV R0,#53H

LCALL add 1;報警設置分為1

MOV A,R3;子數據放入

clr C;清除進位標記

CJNE A,#60H,ADDHH22

addhh 22:JC ds wait;當小於60分鐘時,返回。

ACALL CLR0當大於或等於60分鐘時,分鐘計時單位被清除為0。

AJMP DSWAIT

ds dec:LCALL ds 20 ms;防抖

JB P1.0,DSWAIT

dswaite:LCALL顯示;等額債券發行

JNB P1.0,德斯威特

CLR EA

MOV R0,#53H

LCALL sub 1;報警設置減少1。

LJMP DSWAIT

;下面是秒表功能/時鐘轉換程序。

;按P1.1進行函數轉換。

FUNSS: LCALL DS20MS

JB P1.1,START11

等待11:JNB p 1.1

CPL 03H

JNB 03H,蒂姆芬

MOV DISPFIRST,# 60H顯示秒表數據單元

MOV 60H,#00H

MOV 61H,#00H

MOV 62H,#00H

MOV 63H,#00H

MOV 64H,#00H

MOV 65H,#00H

MOV TL1,# 0F0H10ms定時初始值

MOV TH1,# 0D8H10ms定時初始值

SETB TR1

SETB ET1

開始11: LJMP開始1

TIMFUN: MOV DISPFIRST,# 70H顯示時鐘數據單元

CLR ET1

CLR TR1

START12: LJMP START1

;下面是秒表暫停和清除功能程序。

;按P1.2暫停或清除0,按P1.1退出秒表並返回時鐘。

FUNPTT: LCALL DS20MS

JB P1.2,START12

等待22: JNB P1.2,等待21

CLR ET1

CLR TR1

等待33: JNB P1.1,有趣

JB P1.2,WAIT31

LCALL DS20MS

JB P1.2,等待33

等待66: JNB P1.2,等待61

MOV 60H,#00H

MOV 61H,#00H

MOV 62H,#00H

MOV 63H,#00H

MOV 64H,#00H

MOV 65H,#00H

等待44: JNB P1.1,有趣

JB P1.2,WAIT41

LCALL DS20MS

JB P1.2,等待44

等待55: JNB P1.2,等待51

SETB ET1

SETB TR1

AJMP START1

;以下是鍵等待釋放時不會熄滅的顯示

WAIT21: LCALL顯示

AJMP等待22

WAIT31: LCALL顯示

AJMP等待33

WAIT41: LCALL顯示

AJMP等待44

WAIT51: LCALL顯示

AJMP等待55

WAIT61: LCALL顯示

AJMP等待66

;* * * * * * * * * * * * * * 1s計時程序* * * * * * * * * * * * * * * *

  • 上一篇:世界七大奇觀名單有哪些
  • 下一篇:第壹誌願(心儀的職業)
  • copyright 2024編程學習大全網