DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 856|回复: 0
打印 上一主题 下一主题

[无线] 基于DS1302+AT89C2051制作的红外遥控LED电子钟

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:25:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自制LED电子钟在很多电子报刊杂志上都可以见到,但大多数在断电后都要重新设置时间等 参数,给使用带来很多不便。也有用后备电池作为备用电源的,但往往体积较大。本文介绍 的LED电子钟克服了以往的弊端,而且采用了家电通用的红外遥控器进行控制,方便使用。 有一路闹铃输出,可以通过遥控器设置闹铃时间及允许与否。

电子钟的正面

电子钟的背面 一.工作原理 DS1302为达拉斯公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电 源提供可编程的充电功能,并且可以关闭充电功能。采用普通32768Hz晶振。 AT89C2051作为主控芯片,一是对接收到的红外遥控编码进行判断识别,并执行相应的处 理;第二就是定期的读取时钟芯片DS1302中的时间并把小时和肥以示在4位LED中;第三就是 对设置的闹铃时间与实时时间进行比较,如果时间相同且闹铃允许,那么蜂鸣器就会以1秒 的周期鸣响一分钟,提醒使用者。如果要停止鸣闹,只要按遥控器相应键就可以关闭闹铃。 闹铃时间保存在DS1302自带的RAM中,不需要单独的EEPROM。 二.硬件电路 图一为电子钟的原理图,IC2为DS1302,电子爱好者可以向MAXIM公司索取免费样品。Y2为 32768 Hz石英晶振,可以用普通电子表里的。IC3为三脚的塑封一体化红外接收头。LED1-4 为高亮度共阳数码管。89C2051所用的晶振Y1如果没有10MHz也可以用其他12M以内的代替, 只要修改程序中YS1和YS2的延时参数,让其保持延时长度不变就行。调整R2可以改变数码管 亮度。P1口接数码管的八字段。数码管左两位显示小时,右两位显示分,当显示的是闹铃时 间时闪动。第二位和第三位的小数点作为秒闪动,注意第三位数码管按图一布好印制版后安 装时要旋转180°,以便让时和分之间出现“:”,最后一位小数点作为闹铃开关标志,亮表 示闹铃开启。蜂鸣器B2采用小型自带音源的。 要特别说明的是备用电源B1,可以用电池或者超级电容(10万uF以上)。虽然DS1302在主电 源掉电后,耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式 电脑主板上的那种3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较 小的普通电解电容代替。100uF就可以保证1小时的正常走时。DS1302在第一次加电后,须进 行初始化操作。初始化后就可以按正常方法调整时间及闹铃。 三.软件

软件部分的重点是对DS1302的操作以及红外遥控的解码。单片机解码可参看其他文章,这里 主要对设置部分作一些说明: 遥控器采用长虹彩电K11F型遥控器,遥控器按照16位地址码,8位数据码以及8位数据码的反 码发送。表一列出了各按键的编码及本电子钟对应的动作。如果采用其他遥控器,需对程序 相应部分的编码作修改。 操作方法中,任意是指该键第一次按后,进入该状态,再次按后退出该状态。 时间设置:按“菜单”键进入设置状态,LED只显示正常时间的小时,按“↑↓”键调整数 值,按“←“、”→”键可在闹铃与正常时间之间移动。任意时刻再次按“菜单”键就退出 设置。 闹铃设置:闹铃时间在时间设置中进行。闹铃允许和取消可在任意时刻按“静音”键。 显示开关:可在任意时刻按“显示”键开启和关闭显示器。 初始化:在按“菜单”键进入设置状态后任意时刻按“日历”键,初始化后的时间为 2002/12/1/12:00:00

点击文件名下载 代码.rar ;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.1SECOND? 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??? 0030HSTART: 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???????????? ;HMOV? 61H,#0MOV? 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_OUTD_G??? 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? LED4IOD_OUT:?? SETB? TR1???????? POP?? PSW???????? POP?? ACC???????? RETI;*********************DIS2:??? AJMP DIS_2DIS3:??? AJMP DIS_3DIS4:??? AJMP DIS_4DIS5:??? 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? LED2D4_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? LED4IOD5_OUT:? SETB? TR1???????? POP?? PSW???????? POP?? ACC???????? RETI;*****************************DL2M:??? MOV 43H,#14H?????????? ; every LED(2ms)DL2:???? MOV 44H,#14HDL1:???? 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_1302OUT:???? 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,CP_OUT:?? POP?? PSW???????? POP?? ACC???????? RETIPP_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,#4DPP:?? MOV??? R3,#8DJJJJ: 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?? ;延时1D1:?? MOV??? 71H,#21D????? DJNZ?? 71H,$????? DJNZ?? 70H,D1????? RETYS2:? MOV??? 70H,#09D?? ;延时2D2:?? 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,71Htab1:? DB? 0C0H,0F9H,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0a7h,0a1h,86h,8EHTAB2:? 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-1dhD???? MOV???? A,1CH??????? CJNE??? A,#TIMERT,REDO? ;代码不是设置/退出键??????? JNB???? 0CH,SET1??????? ;是,则进入??????? CLR???? 0CH???????????? ;是,已经进入,则退出??????? SETB??? 0DH???????????? ;恢复正常显示??????? CLR???? 0EH??????? CLR???? 0FH??????? CLR???? 10H??????? CLR???? 11H??????? RETSET1:?? SETB??? 0CH??????? SETB??? 0EH??????? CLR???? 0DH??????? CLR???? 0FH??????? CLR???? 10H??????? CLR???? 11H??????? RETRED?? 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??????? ;时间设置的处理??????? RETSET2:?? 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左移(<)SET2D:? CJNE??? A,#RECALL,SET2EXT ;DS1302初始化??????? LJMP??? SET1302SET2EXT:RET;--------------------------------INC------------------------INC1:?? JB????? 0EH,INCH??????? JB????? 0FH,INCM??????? JB????? 10H,INC_H??????? JB????? 11H,INC_M??????? RETINC_H:? INC???? 6BH?????????????? ;闹钟小时增加??????? MOV???? A,6BH??????? CJNE??? A,#24D,INCH3??????? MOV???? 6BH,#0INCH3:? MOV???? R1,#0C2H??????? MOV???? R0,6BH??????? ACALL?? SETONE??????????? ;写入DS1302??????? RETINC_M:? INC???? 6AH?????????????? ;闹钟分增加??????? MOV???? A,6AH??????? CJNE??? A,#60D,INCH4??????? MOV???? 6AH,#0INCH4:? MOV???? R1,#0C0H??????? MOV???? R0,6AH??????? ACALL?? SETONE???????????? ;??????? RETINCH:?? ;INC???? 62H?????????????? ;??????? MOV???? 6FH,62H??????? ACALL?? BCD_HEX??????? INC???? A??????? CJNE??? A,#24D,INCH1??????? MOV???? A,#0INCH1:? MOV???? 6FH,A??????? ACALL?? HEX_BCD??????? MOV???? 62H,A??????? MOV???? R1,#84H??????? MOV???? R0,62H??????? ACALL?? SETONE???????????? ;??????? RETINCM:?? ;INC???? 61H?????????????? ;??????? MOV???? 6FH,61H??????? ACALL?? BCD_HEX??????? INC???? A??????? CJNE??? A,#60D,INCH2??????? MOV???? A,#0INCH2:? MOV???? 6FH,A??????? ACALL?? HEX_BCD??????? MOV???? 61H,A??????? MOV???? R1,#82H??????? MOV???? R0,61H??????? ACALL??? SETONE???????????? ;??????? RET;----------------------------------DEC----------------------DEC2:?? JB????? 0EH,DECH??????? JB????? 0FH,DECM??????? JB????? 10H,DEC_H??????? JB????? 11H,DEC_M??????? RETDECH:?? MOV???? 6FH,62H??????? ACALL?? BCD_HEX??????? DEC???? A??????? CJNE??? A,#0FFH,DECH1??????? MOV???? A,#23DECH1:? MOV???? 6FH,A??????? ACALL?? HEX_BCD??????? MOV???? 62H,A??????? MOV???? R1,#84H??????? MOV???? R0,62H??????? ACALL?? SETONE??????? RETDECM:?? MOV???? 6FH,61H??????? ACALL?? BCD_HEX??????? DEC???? A??????? CJNE??? A,#0FFH,DECM1??????? MOV???? A,#59DECM1:? MOV???? 6FH,A??????? ACALL?? HEX_BCD??????? MOV???? 61H,A??????? MOV???? R1,#82H??????? MOV???? R0,61H??????? ACALL?? SETONE??????? RETDEC_H:? DEC???? 6BH??????? MOV???? A,6BH??????? CJNE??? A,#0FFH,DECH3??????? MOV???? 6BH,#23DDECH3:? MOV???? R1,#0C2H??????? MOV???? R0,6BH??????? ACALL?? SETONE??????? RETDEC_M:? DEC???? 6AH??????? MOV???? A,6AH??????? CJNE??? A,#0FFH,DECH4??????? MOV???? 6AH,#59DDECH4:? MOV???? R1,#0C0H??????? MOV???? R0,6AH??????? ACALL?? SETONE??????? RET;--------------------------------RIGHT----------------------RIGHT:? JB????? 0EH,RIGHT1??????? JB????? 0FH,RIGHT2??????? JB????? 10H,RIGHT3??????? JB????? 11H,RIGHT4??????? RET?????????????????????? ;右移RIGHT1: CLR???? 0EH??????? SETB??? 0FH??????? RETRIGHT2: CLR???? 0FH??????? SETB??? 10H??????? RETRIGHT3: CLR???? 10H??????? SETB??? 11H??????? RETRIGHT4: CLR???? 11H??????? SETB??? 0EH??????? RET;--------------------------------LEFT-----------------------LEFT:?? JB????? 0EH,LEFT1??????? JB????? 0FH,LEFT2??????? JB????? 10H,LEFT3??????? JB????? 11H,LEFT4??????? RET?????????????????????? ;左移LEFT1:? SETB??? 11H??????? CLR???? 0EH??????? RETLEFT2:? SETB??? 0EH??????? CLR???? 0FH??????? RETLEFT3:? SETB??? 0FH??????? CLR???? 10H??????? RETLEFT4:? SETB??? 10H??????? CLR???? 11H??????? RET;------------------------------MUTE--------------MUTE:?? setb??? k_ON??????? CPL???? 06H????????????? ;静音??????? CLR???? 08H??????? RET;-----------------------------DISPLAY OFF--------DIS_OFF:CLR???? ET1??????? CPL???? 05H??????? JNB???? 05H,REDORE??????? SETB??? ET1REDORE: RET;------------------------------------初始化1302-------------------------SET1302: CLR??? RST?????????? ;2002年1月1日12:00:00???????? CLR??? LED3CLK??????? MOV???? SECOND,#0??????? MOV???? 61H,#0??????? MOV???? 62H,#18?????? ;??????? MOV???? 63H,#1??????? MOV???? 64H,#1??????? MOV???? 65H,#1??????? MOV???? 66H,#2???????? SETB?? RST???????? MOV??? A,#8EH???????? LCALL? R_BIT???????? MOV??? A,#00H???????? LCALL? R_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? MOV??? R0,#SECOND???????? MOV??? R7,#7???????? MOV??? R1,#80HSET1302A:CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,R1???????? LCALL? R_BIT???????? MOV??? A,@R0???????? LCALL? R_BIT???????? INC??? R0???????? INC??? R1???????? INC??? R1???????? SETB?? LED3CLK???????? CLR??? RST???????? DJNZ?? R7,SET1302A???????? CLR??? RST???????? CLR??? LED3CLK???????? sETB?? LED3CLK???????? nop???????? CLR??? RST???????? nop???????? clr??? led3clk???????? SETB?? RST???????? MOV??? A,#90H???????? LCALL? R_BIT???????? MOV??? A,#10100101B???????? ;充电器设置???????? LCALL? R_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,#8EH???????? LCALL? R_BIT???????? MOV??? A,#80H???????? LCALL? R_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? RET;----------------------读取一RAM ------T_6061:? CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,R1???????? LCALL? R_BIT???????? LCALL? W_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? RET;-----------------------------R_1302:? MOV??? R0,#SECOND???????? MOV??? R7,#7???????? MOV??? R1,#81HR_1302A: CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,R1???????? LCALL? R_BIT???????? LCALL? W_BIT???????? MOV??? @R0,A???????? INC??? R0???????? INC??? R1???????? INC??? R1???????? SETB?? LED3CLK???????? CLR??? RST???????? DJNZ?? R7,R_1302A???????? RET;------------------R_BIT------------------R_BIT:?? MOV??? R4,#8R_BIT1:? RRC??? A???????? MOV??? LED4IO,C???????? SETB?? LED3CLK???????? CLR??? LED3CLK???????? DJNZ?? R4,R_BIT1???????? RET;-------------------W_BIT-----------------------W_BIT:?? MOV??? R4,#8W_BIT1:? MOV??? C,LED4IO???????? RRC??? A???????? SETB?? LED3CLK???????? CLR??? LED3CLK???????? DJNZ?? R4,W_BIT1???????? RET;--------------------------------------------------BCD_HEX:???????? MOV??? A,6FH???????? ANL??? A,#0FH???????? MOV??? B,A???????? MOV??? A,6FH???????? MOV??? 6FH,B???????? SWAP?? A???????? ANL??? A,#0FH???????? MOV??? B,#0AH???????? MUL??? AB???????? ADD??? A,6FH???????? ;MOV??? 6FH,A???????? RETHEX_BCD:???????? MOV?? A,6FH???????? MOV?? B,#10???????? DIV?? AB???????? SWAP? A???????? ADD?? A,B???????? ;MOV?? 6FH,A???????? RET;-----写一地址---R1 为地址,R0 为数据----------SETONE:? CLR??? LED3CLK???????? CLR??? RST???????? CLR??? LED3CLK???????? NOP???????? SETB?? RST???????? MOV??? A,#8EH???????? LCALL? R_BIT???????? MOV??? A,#00H???????? LCALL? R_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? CLR??? LED3CLK???????? NOP???????? CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,R1???????? LCALL? R_BIT???????? MOV??? A,R0???????? LCALL? R_BIT???????? NOP???????? SETB?? LED3CLK???????? CLR??? RST???????? NOP???????? NOP???????? CLR??? RST???????? CLR??? LED3CLK???????? SETB?? RST???????? MOV??? A,#8EH???????? LCALL? R_BIT???????? MOV??? A,#80H???????? LCALL? R_BIT???????? SETB?? LED3CLK???????? CLR??? RST???????? RET
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-11-9 19:58 , 耗时 0.088147 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表