让找料更便捷
电子元器件
采购信息平台
生意随身带
随时随地找货
一站式电子元器件
采购平台
半导体行业观察第一站
标签:
摘要: ;DS1302+AT89C2051的LED钟;遥控器各按键数据码,可根据不同的遥控器修改对应的键码muteM?? EQU 10h???????????????? ;静音键??????????? 闹铃开/关timerT? EQU 0Ch???????????????? ;菜单键??????????? 进入/退出设置状态leftL?? EQU 46h???????????????? ;左移键?????
;DS1302+AT89C2051的LED钟;遥控器各按键数据码,可根据不同的遥控器修改对应的键码muteM?? EQU 10h???????????????? ;静音键??????????? 闹铃开/关timerT? EQU 0Ch???????????????? ;菜单键??????????? 进入/退出设置状态leftL?? EQU 46h???????????????? ;左移键?????
;DS1302+AT89C2051的LED钟
;遥控器各按键数据码,可根据不同的遥控器修改对应的键码
muteM?? EQU 10h???????????????? ;静音键??????????? 闹铃开/关
timerT? EQU 0Ch???????????????? ;菜单键??????????? 进入/退出设置状态
leftL?? EQU 46h???????????????? ;左移键?????
rightR? EQU 47h???????????????? ;右移键
upU???? EQU 19h???????????????? ;增加键
downD?? EQU 1dh???????????????? ;减少键
d_off?? EQU 16H???????????????? ;显示键??????????? LED数码管显示/关闭
recall? EQU 44H???????????????? ;日历键??????????? DS1302初始化操作
?K_on???? BIT P3.0?????????????? ;闹铃输出
?LED1???? BIT P3.3
?LED2???? BIT P3.4
?LED3CLK? BIT P3.5?????????????? ;DS1302
?LED4IO?? BIT P3.7
?RST????? BIT P3.1
SECOND? EQU 60H
;60H? 秒
;61h? 分
;62h? 时
;63h? 日
;64h? 月
;65h? DAY
;66h? 年
;6Ah? 闹分??? from 00(1302)
;6BH? 闹时??? from 01(1302)
;***************************
??????? ORG?? 0000H
??????? AJMP? START
??????? ORG?? 0003H
??????? LJMP? S_INT??????????? ;IRF
??????? ORG?? 000BH??????????? ;200Us
??????? LJMP? P_INT??????????? ;
??????? ORG?? 001BH??????????? ;display LED
??????? LJMP? DISPLAY
;****************************? ;main program
?????? ORG??? 0030H
START: CLR???? RST
?????? MOV SP,#2AH
?????? SETB??? 05H
?????? CLR???? 06H
?????? SETB 07H;CLR???? 07H
?????? CLR???? 08H
?????? CLR???? 09H
?????? CLR???? 0AH
?????? CLR???? 0BH
?????? CLR???? 0CH
?????? SETB??? 0DH
?????? CLR???? 0EH
?????? CLR???? 0FH
?????? CLR???? 10H
?????? CLR???? 11H
?????? MOV R2,#00H???????????? ;
?????? MOV R3,#00H???????????? ;
?????? MOV TMOD,#12H
?????? MOV TL1,#0e5H?????????? ;wait
?????? MOV TH1,#0BeH
?????? MOV TH0,#3FH??????????? ;200uS? 3f
?????? MOV TL0,#3FH
?????? SETB? ET0
?????? SETB? ET1
?????? setb? pt0
?????? SETB? TR0
?????? SETB? TR1
?????? SETB? IT0?????????????? ;
?????? SETB? EX0?????????????? ;
?????? CLR?? PX0
?????? ;LCALL SET1302????????? ;初始化
?????? MOV?? R1,#0C1H????????? ;取定时参数从1302中
?????? acall T_6061
?????? MOV?? 6AH,A???????????? ;M
?????? MOV?? R1,#0C3H
?????? ACALL T_6061
?????? MOV?? 6BH,A???????????? ;H
MOV? 61H,#0
MOV? 62H,#0
?????? SETB? EA
?????? sjmp? $
;********************************
DISPLAY: PUSH? ACC
???????? PUSH? PSW
???????? MOV?? TL1,#0e0H????????? ;wait how long to display (20ms)
???????? MOV?? TH1,#0b0H
???????? mov? dptr,#tab1
???????? JB??? 0EH,DIS2
???????? JB??? 0FH,DIS3
???????? JB??? 10H,DIS4
???????? JB??? 11H,DIS5
???????? JNB??? 0DH,D_OUT
???????? JNB?? 08H,D_GO????????? ;定时到时,显示闪烁
???????? JNB?? 07H,D_OUT
D_GO:??? MOV?? DPTR,#TAB1
???????? MOV?? A,62H
???????? ANL?? A,#0FH
???????? MOV?? B,A
???????? MOV?? A,62H
???????? SWAP? A
???????? ANL?? A,#07H
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED1
???????? LCALL DL2M
???????? SETB? LED1
???????? MOV?? A,B
???????? MOVC? A,@A+DPTR
???????????????????? MOV?? C,07H
???????????????????? MOV?? acc.7,C?? ;秒灯闪烁
???????? MOV?? P1,A
???????? CLR?? LED2
???????? LCALL DL2M
???????? SETB? LED2
???????? mov? dptr,#tab2???????????? ;倒装LED字段表
???????? MOV?? A,61H
???????? ANL?? A,#0FH
???????? MOV?? B,A
???????? MOV?? A,61H
???????? SWAP? A
???????? ANL?? A,#0FH
???????? MOVC? A,@A+DPTR
???????????????????? MOV?? C,07H
???????????????????? MOV?? acc.6,C?? ;秒灯闪烁
???????? MOV?? P1,A
???????? CLR?? LED3CLK
???????? LCALL DL2M
???????? SETB? LED3CLK
???????? mov? dptr,#tab1
???????? MOV?? A,B
???????? MOVC? A,@A+DPTR
??????????????????? MOV?? C,06H
??????????????????? cpl?? c
??????????????????? MOV?? acc.7,C??? ;闹铃指示灯
???????? MOV?? P1,A
???????? CLR?? LED4IO
???????? LCALL DL2M
???????? SETB? LED4IO
D_OUT:?? SETB? TR1
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;*********************
DIS2:??? AJMP DIS_2
DIS3:??? AJMP DIS_3
DIS4:??? AJMP DIS_4
DIS5:??? AJMP DIS_5
;********************
DIS_2:?? mov?? dptr,#tab1???????????? ;显示设置小时
???????? MOV?? 6FH,62H
???????? ACALL BCD_HEX
???????? MOV?? B,#10
???????? DIV?? AB
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED1
???????? LCALL DL2M
???????? SETB? LED1
???????? MOV?? A,B
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED2
???????? LCALL DL2M
???????? SETB? LED2
???????? SETB? TR1
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;*****************
DIS_3:?? MOV?? DPTR,#TAB2????????????? ;显示设置分
???????? MOV?? 6FH,61H
???????? ACALL BCD_HEX
???????? MOV?? B,#10
???????? DIV?? AB
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED3CLK
???????? LCALL DL2M
???????? SETB? LED3CLK
???????? MOV?? A,B
???????? MOV?? DPTR,#TAB1
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED4IO
???????? LCALL DL2M
???????? SETB? LED4IO
???????? SETB? TR1
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;*****************
DIS_4:?? mov??? dptr,#tab1?????????? ;显示设置闹时
???????? JNB?? 07H,D4_OUT??????????? ;显示时闪烁
???????? MOV?? A,6BH
???????? MOV?? B,#0AH
???????? DIV?? AB
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED1
???????? LCALL DL2M
???????? SETB? LED1
???????? MOV?? A,B
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED2
???????? LCALL DL2M
???????? SETB? LED2
D4_OUT:? SETB? TR1
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;***********************
DIS_5:?? MOV?? DPTR,#TAB2
???????? JNB?? 07H,D5_OUT????????????? ;显示时闪烁
???????? MOV?? A,6AH?????????????????? ;显示设置闹分
???????? MOV?? B,#0AH
???????? DIV?? AB
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED3CLK
???????? LCALL DL2M
???????? SETB? LED3CLK
???????? MOV?? DPTR,#TAB1
???????? MOV?? A,B
???????? MOVC? A,@A+DPTR
???????? MOV?? P1,A
???????? CLR?? LED4IO
???????? LCALL DL2M
???????? SETB? LED4IO
D5_OUT:? SETB? TR1
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;*****************************
DL2M:??? MOV 43H,#14H?????????? ; every LED(2ms)
DL2:???? MOV 44H,#14H
DL1:???? NOP
???????? NOP
???????? DJNZ 44H,DL1
???????? DJNZ 43H,DL2
???????? RET
;************************定时读取1302时间及判断闹铃时间是否到*******
P_INT:?? PUSH? ACC
???????? PUSH? PSW
???????? INC?? R2
???????? CJNE? R2,#250D,P_OUT
???????? MOV?? R2,#00H
???????? INC?? R3
???????? CJNE? R3,#10D,P_OUT
???????? MOV?? R3,#00H
???????? CPL?? 07H
???????? MOV?? P1,#0FFH
???????? ACALL R_1302
OUT:???? JNB?? 06H,P_OUT
???????? MOV?? A,6BH
???????? MOV?? B,#10
???????? DIV?? AB
???????? SWAP? A
???????? ADD?? A,B
???????? CJNE? A,62H,PP_OUT
???????? MOV?? A,6AH
???????? MOV?? B,#10
???????? DIV?? AB
???????? SWAP? A
???????? ADD?? A,B
???????? CJNE? A,61H,PP_OUT
???????? SETB? 08H?????????????? ;定时到标志
???????? MOV?? C,07H
???????? cpl?? c
???????? MOV?? K_ON,C
P_OUT:?? POP?? PSW
???????? POP?? ACC
???????? RETI
PP_OUT:? SETB? K_ON
???????? CLR?? 08H
???????? POP?? PSW
???????? POP?? ACC
???????? RETI
;************************有接收到遥控器信号*******
S_INT:CLR EA
????? PUSH?? ACC
????? PUSH?? PSW
????? PUSH?? DPH
????? PUSH?? DPL
????? PUSH?? 02H
????? PUSH?? 03H
????? MOV??? R6,#10D?? ;
SB:?? ACALL? YS1
????? JB???? P3.2,EXIT
????? DJNZ?? R6, SB
????? JNB??? P3.2, $?? ;
????? ACALL? YS2?????? ;
????? JB???? P3.2,EXIT
????? MOV??? R1,#1AH?? ;
????? MOV??? R2,#4D
PP:?? MOV??? R3,#8D
JJJJ: JNB??? P3.2,$
????? ACALL? YS1
????? MOV??? C,P3.2
????? JNC??? UUU
????? JB???? P3.2,$
UUU:? MOV??? A,@R1
????? RRC??? A
????? MOV??? @R1,A
????? DJNZ?? R3,JJJJ
????? INC??? R1
????? DJNZ?? R2,PP
; -
????? MOV? A,1AH????? ;
????? XRL? A,#40h???? ;判断1AH的值是否等于遥控器低8位地址(40h)
????? JNZ? EXIT?????? ;
????? MOV? A,1bH
????? XRL? A,#0bfh??? ;再判断高8位地址是否正确(0bfh)
????? JNZ? EXIT
????? MOV? A,1CH
????? CPL? A
????? XRL? A,1DH????? ;将1CH的值取反后和1DH比较 不同则无效丢弃(核对数据是否准确)
????? JNZ? EXIT
????? ACALL DO??????? ;相应按键的处理
EXIT: SETB EA
????? POP? 03H
????? POP? 02H
????? POP? DPL
????? POP? DPH
????? POP? PSW
????? POP? ACC
????? RETI
; delay
YS1:? MOV??? 70H,#16D?? ;延时1
D1:?? MOV??? 71H,#21D
????? DJNZ?? 71H,$
????? DJNZ?? 70H,D1
????? RET
YS2:? MOV??? 70H,#09D?? ;延时2
D2:?? MOV??? 71H,#220D
????? DJNZ?? 71H,$
????? DJNZ?? 70H,D2
????? RET
;
TAB:?? DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H????? ;TAB1? LED数码管显示表 TAB遥控器键值表(未用)
;TAB1:? DB 3FH,11H,5EH,5BH,71H,6BH,6FH,19H,7FH,7bH,77H,7CH,39H,5EH,79H,71H
tab1:? DB? 0C0H,0F9H,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0a7h,0a1h,86h,8EH
TAB2:? DB? 0c0H,0f9H,64H,70H,59H,52H,42H? ;倒装LED段码表
;0CH 为设置标志,0DH为全显示标志,0EH为显示设置小时标志,0FH为显示设置分标志
;10H 为显示设置闹时标志,11H为显示设置闹分标志
;增加闹时静音功能
;mute-10h,timer-0eh,left-46h,right-47h,up-19h,down-1dh
DO:???? MOV???? A,1CH
??????? CJNE??? A,#TIMERT,REDO? ;代码不是设置/退出键
??????? JNB???? 0CH,SET1??????? ;是,则进入
??????? CLR???? 0CH???????????? ;是,已经进入,则退出
??????? SETB??? 0DH???????????? ;恢复正常显示
??????? CLR???? 0EH
??????? CLR???? 0FH
??????? CLR???? 10H
??????? CLR???? 11H
??????? RET
SET1:?? SETB??? 0CH
??????? SETB??? 0EH
??????? CLR???? 0DH
??????? CLR???? 0FH
??????? CLR???? 10H
??????? CLR???? 11H
??????? RET
REDO:?? CJNE??? A,#MUTEM,REDO1? ;不是设置键的处理REDO1,2,3,4
??????? LJMP??? MUTE??????????? ;MUTE?
REDO1:? CJNE??? A,#D_OFF,DO_SET2
??????? LJMP??? DIS_OFF???????? ;关闭显示
DO_SET2:JB????? 0CH,SET2??????? ;时间设置的处理
??????? RET
SET2:?? CJNE??? A,#UPU,SET2A
??????? LJMP??? INC1??????????? ;+加(^)
SET2A:? CJNE??? A,#DOWND,SET2B
??????? LJMP??? DEC2??????????? ;- 减
SET2B:? CJNE??? A,#RIGHTR,SET2C
??????? LJMP??? RIGHT?????????? ;RIGHT右移(>)
SET2C:? CJNE??? A,#LEFTL,SET2D
??????? LJMP??? LEFT??????????? ;LEFT左移(
上一篇:香雪海牌BCD
下一篇:隔离放大器的原理电路图
型号 | 厂商 | 价格 |
---|---|---|
EPCOS | 爱普科斯 | / |
STM32F103RCT6 | ST | ¥461.23 |
STM32F103C8T6 | ST | ¥84 |
STM32F103VET6 | ST | ¥426.57 |
STM32F103RET6 | ST | ¥780.82 |
STM8S003F3P6 | ST | ¥10.62 |
STM32F103VCT6 | ST | ¥275.84 |
STM32F103CBT6 | ST | ¥130.66 |
STM32F030C8T6 | ST | ¥18.11 |
N76E003AT20 | NUVOTON | ¥9.67 |