LED BIT P1.0DIS_CLK BIT P3.1DIS_DAT BIT P3.0DIS_EABIT P1.2INT_0 BIT P3.2KEY_ADD BIT P3.4KEY_CLR BIT P3.5;------------------------------DIS_DATA1 DATA 30HDIS_DATA2 DATA 31HDIS_DATA3 DATA 32HKEY2_DELAY1 DATA 33HKEY2_DELAY2 DATA 34HKEY2_DELAY3 DATA 35H;***********************************************************************************************ORG 0000HSJMP STARTORG 0003HLCALL INT0_INTRETIORG 0013HLCALL INT1_INTRETI;-----------------------------------------------START:MOV SP,#50HLCALL INITIAL ; 初始化;;MOV DIS_DATA1,#0;MOV DIS_DATA2,#0;MOV DIS_DATA3,#0LCALL DISPLAY;**************************************************ORG 0050HMAIN:;----------JB KEY_CLR,NO_KEY_CLRMOV KEY2_DELAY1,#100KEY_CLR_CHECK:LCALL DELAY_10MSJB KEY_CLR,NO_KEY_CLRDJNZ KEY2_DELAY1,KEY_CLR_CHECK;LCALL CLEAR_DATA ;;;clr-------------------------------;WATE_KEY_END2:LCALL WARCH_DOG;喂看门狗JNB KEY_CLR,WATE_KEY_END2;NO_KEY_CLR:;--------------LCALL ADD_ONE_BIT;加1-----------------------LCALL DISPLAYLCALL DELAYLCALL DELAYCPL LEDLCALL WARCH_DOG;喂看门狗SJMP MAIN;****************************************************WARCH_DOG:;MOV WDT_CONTR,#00110100B ;喂狗682msMOV WDT_CONTR,#00110101B ;喂狗 1.365s;MOV WDT_CONTR,#00110110B ;喂狗 2.6sRET;-------------;-------------DELAY:;高精度延时0.5s(无中断)DEY1 DATA 1FHDEY2 DATA 1EHDEY3 DATA 1DHMOV DEY1,#16 ;0.05S;167DL1:MOV DEY2,#20 ;3mSDL2:MOV DEY3,#184 ;150uS 6M(5T)DJNZ DEY3,$DJNZ DEY2,DL2DJNZ DEY1,DL1RET;-------------;-------------;*********************************************************ORG 0100H #include"初始化.asm"LJMP START;ORG 0200H#include"中断.ASM"LJMP START;ORG 0300H#include"显示.asm"LJMP START;ORG 0600H#include"加减计数.asm"LJMP STARTINITIAL: ; 初始化CLR TICLR RI;SETB ES;SETB TR1;SETB TR0;SETB ET0SETB IT0SETB EX0SETB IT1SETB EX1SETB EA;;------------------------------RETINT0_INT:LCALL SAVE_DATARET;************************************************INT1_INT:;LCALL SAVE_DATA;RETDISPLAY:MOV DPTR,#LEDTABMOV A,DIS_DATA1MOVC A,@A+DPTR;MOV SBUF,ALCALL DIS_SEND;JNB TI,$;CLR TI;MOV A,DIS_DATA2MOVC A,@A+DPTR;CPL A;MOV SBUF,ALCALL DIS_SEND;JNB TI,$;CLR TI;MOV A,DIS_DATA3MOVC A,@A+DPTR;MOV SBUF,ALCALL DIS_SEND;JNB TI,$;CLR TI;SETB DIS_EAMOV R4,#255DJNZ R4,$CLR DIS_EARETDIS_SEND:MOV R3,#8DIS_RR:CLR DIS_CLKMOV R4,#255DJNZ R4,$RRC AMOV DIS_DAT,CMOV R4,#255DJNZ R4,$SETB DIS_CLKMOV R4,#255DJNZ R4,$DJNZ R3,DIS_RRRET;低位先发送时:LEDTAB: ;共阳(标准)DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,11H,0C1H,63H,85H,61H,71H; 0 1 2 3 4 5 6 7 8 9 A B C
D
E FDB 02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H,10H,0C0H,62H,84H,60H,70H;0.1. 2.3.4.5.6.7.8.9.A.B. C.D.E.F. retADD_ONE_BIT:;-----------INC DIS_DATA1MOV A,DIS_DATA1CJNE A,#10,DATA_ADD_ENDMOV DIS_DATA1,#0;INC DIS_DATA2MOV A,DIS_DATA2CJNE A,#10,DATA_ADD_ENDMOV DIS_DATA2,#0;INC DIS_DATA3MOV A,DIS_DATA3CJNE A,#10,DATA_ADD_ENDMOV DIS_DATA3,#0LCALL SAVE_DATA;DATA_ADD_END:;LCALL SAVE_DATALCALL DISPLAY;RET;************************************************CLEAR_DATA:;-----------MOV DIS_DATA1,#0MOV DIS_DATA2,#0MOV DIS_DATA3,#0LCALL DISPLAY;RETEND
|