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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

led單片機定時鬧鈴程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2008年06月22日   【字體:

;*****led顯示單片機定時鬧鈴程序**************************************
; 變量地址分配
;*********************************************************
Hour EQU 3AH; 小時計數器的地址
Minute EQU 3BH; 分鐘計數器的地址
Second EQU 3CH; 秒計數器的地址
P1Val EQU 3DH; 數碼管位驅動值的地址
ClockMode BIT 20H.0; 模式(正常走時/鬧時)設置寄存器地址,
值為0時正常走時,為1時鬧時設定
AlarmOnOff BIT 20H.1; 鬧鐘開啟/關閉標志,為0關閉,為1開啟
AlarmTimeOn BIT 20H.2; 此位為1時表示鬧時時間到
DispHour EQU 21H; 小時顯示寄存器的地址
DispMinute EQU 22H; 分鐘顯示寄存器的地址
DispSecond EQU 23H; 秒顯示寄存器的地址
AlarmHour EQU 2EH; 鬧時小時計數器的地址
AlarmMinute EQU 2FH; 鬧時分鐘計數器的地址
k1 BIT P3.2; 鬧鐘設置鍵
k2 BIT P3.3; 小時設置鍵
k3 BIT P3.5; 分鐘設置鍵
;http://www.zg4o1577.cn 
 
;*************************************
; 程序開始
;*************************************
ORG 0000H
AJMP Main
ORG 0BH
AJMP TimeInt
ORG 0020H
Main:
MOV SP,#70H
MOV 39H,#14H
MOV Hour,#12
MOV Minute,#00
MOV Second,#00
MOV AlarmHour,#06
MOV AlarmMinute,#00
CLR ClockMode
CLR AlarmTimeOn
SETB p1.7
MOV TMOD,#00000001B
MOV TH0,#03CH
MOV TL0,#0B0H
MOV IE, #82H
SETB TR0
L1:
JB K1,CheckMinuteKey
LCALL Delay
JB K1,CheckMinuteKey
SETB ClockMode
LCALL AlarmSet
CheckMinuteKey:
JB K3,CheckHourKey
MOV A,Minute
ADD A,#1
MOV Minute,A;
CJNE A,#60,NotOver1
MOV Minute,#0
NotOver1:
JNB K3,$
CheckHourKey:
JB K2,CheckAlarm
MOV A,Hour
ADD A,#1
MOV Hour,A
CJNE A,#24,NotOver2
MOV Hour,#0
NotOver2:
JNB K2,$
CheckAlarm: ;
JNB AlarmTimeOn,ToReturn
LCALL LOOP
ToReturn:
AJMP L1
 
;**********************************************
; 定時器Timer0中斷服務程序
;**********************************************
TimeInt:
MOV TH0,#03CH
MOV TL0,#0B0H
PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
DJNZ 39H,NotoneSecond
MOV 39H,#14H
LCALL Clock
LCALL ConvertoBuffer
NotoneSecond:
LCALL ScanDisplay
POP PSW
POP ACC
RETI
ScanDisplay:
MOV R1,#30H
MOV R4,#11111110B
MOV A,R4
PLAY:
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
LCALL Delay
INC R1
MOV A,R4
RL A
JNB ACC.6,LD1
MOV R4,A
AJMP PLAY
LD1: RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
;共陽段碼表 "0""1""2" "3""4""5""6""7" "8""9""不亮"
Clock:
MOV A,Second
ADD A,#1
MOV Second,A
CJNE A,#3CH,NotOverFlow
MOV Second,#0
MOV A,Minute
ADD A,#1
MOV Minute,A
CJNE A,#3CH,NotOverFlow
MOV Minute,#0
MOV A,Hour
ADD A,#1
MOV Hour,A
CJNE A,#18H,NotOverFlow
MOV Hour,#0
NotOverFlow:
JNB AlarmOnOff,NotAlarm
MOV A,Minute
CJNE A,AlarmMinute,NotAlarm
MOV A,Hour
CJNE A,AlarmHour,NotAlarm
SETB AlarmTimeOn
NotAlarm:
RET
ConvertoBuffer:
MOV R1,#30H
JB ClockMode,DispAlarmSet
MOV A,Second;
MOV DispSecond,A;
MOV A,Minute;
MOV Dispminute,A;
MOV A,Hour;
MOV DispHour,A
AJMP Convert
DispAlarmSet:
JB AlarmOnOff,AlarmOn
MOV DispSecond,#00H
AJMP Next
AlarmOn:
MOV DispSecond,#11
Next:
MOV A,AlarmMinute
MOV Dispminute,A
MOV A,AlarmHour
MOV DispHour,A
Convert:
MOV A,DispSecond
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,DispMinute
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
INC R1
MOV A,DispHour
MOV B,#10
DIV AB
MOV @R1,B
INC R1
MOV @R1,A
RET
;*************************************
; 鬧時設置子程序
;*************************************
AlarmSet:
JNB K1,$
LCALL Delay
CheckArmMinuteKey:
JB K3,CheckArmHourKey
CL1: SETB AlarmOnOff
MOV A,AlarmMinute
ADD A,#1
MOV AlarmMinute,A
CJNE A,#60,ArmNotOver1
MOV AlarmMinute,#0
ArmNotOver1:
JNB K3,$
CheckArmHourKey:
JB K2,AlarmSetEnd
SETB AlarmOnOff
MOV A,AlarmHour
ADD A,#1
MOV AlarmHour,A
CJNE A,#24,ArmNotOver2
MOV AlarmHour,#0
ArmNotOver2:
JNB K2,$
JB K3,AlarmSetEnd
ACALL CL1
AlarmSetEnd:
JB K1,AlarmSet
JNB K1,$
CLR ClockMode
RET
;**************************************
; 鬧時服務子程序
;**************************************
LOOP:
CLR P1.7
ACALL Delay1
SETB P1.7
JB K1,LOOP
JNB K1,$
CLR AlarmOnOff
CLR AlarmTimeOn
AlarmReturn: RET
;**************************************
; 延時子程序
;**************************************
DELAY1: MOV R3,#15
LOOP1: MOV R5,#90
NOP
LOOP2: DJNZ R5,LOOP2
DJNZ R3,LOOP1
RET
Delay:
MOV R6,#05H
Del:
MOV R7,#08Fh
DJNZ R7,$
DJNZ R6,Del
RET
END

這個程序到這里就完畢了,再來一個簡單一點的單片機定時鬧鈴程序,不過不帶led顯示,定時1秒,要其他時間自己修改R0和R1的就可以了。
ORG 0000H
;LJMP MAIN
;ORG 0030H
;MAIN:MOV SP,#60H
MOV TMOD,#02H
MOV TL0,#06H
MOV TH0,#06H
MOV R0,#100
MOV R1,#20
SETB TR0
WAIT:JNB TF0,$
CLR TF0
DJNZ R1,WAIT
MOV R1,#20
DJNZ R0,WAIT
MOV R0,#100
CPL P1.0
AJMP WAIT
END

 

關閉窗口
主站蜘蛛池模板: 精品国产一区二区三区免费 | 久久tv在线观看 | 久热中文字幕 | 国产日韩一区二区三免费高清 | 欧美理论 | 天堂网色 | 影音先锋男 | caoporon| 女同av亚洲女人天堂 | 中文字幕视频网 | 国产亚洲一级 | 91亚洲精品在线观看 | 免费成人在线网 | 国户精品久久久久久久久久久不卡 | 成人免费黄色 | 一级毛片免费完整视频 | 久久久成人免费一区二区 | 一区二区三区欧美 | 蜜桃一区二区三区 | 性做久久久久久免费观看欧美 | 欧洲av一区| 中文字幕一区二区三区精彩视频 | 国产二区av | 精品av | 视频三区 | 日本在线免费看最新的电影 | 久久久精品一区二区三区 | 91精品国产乱码久久久久久久久 | 成人免费观看男女羞羞视频 | 啪啪精品 | 国产乱人伦 | 在线一区观看 | 亚洲精品成人av久久 | 日本网站免费观看 | 日韩精品一区中文字幕 | 亚洲综合区 | 91在线一区二区三区 | 天天干com | 99精品一区二区 | 一区二区三区小视频 | 中文字幕第一页在线 |