A1083(25)

题目无坑点
但是你可能会有疑问,为什么maxn是50呢,这个是晴神测的啦,如果不想用maxn表示,那么你可以通过查阅第六章内容,用vector的方法,比较严谨。

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
using namespace std;
struct node
{
	char name[15];
	char id[15];
	int grade;
}a[50];
bool cmp(node b,node c)
{
    return b.grade>c.grade;
}
int main()
{
	int n;
	cin>>n;
	int g1,g2;
	bool flag=false;
	for (int i=0;i<n;i++)
	{
		scanf("%s %s %d",a[i].name,a[i].id,&a[i].grade);
	}
	sort(a,a+n,cmp);
	cin>>g1>>g2;
	for (int i=0;i<n;i++)
	{
		if (a[i].grade>=g1&&a[i].grade<=g2)
		{
			printf("%s %s\n",a[i].name,a[i].id);
			flag=true;
		}
		
	}
	if (flag==false)
	printf("NONE");	
}

;==================================================================== ; ??????? - ??8051???? ; ??:???????????????????? ;==================================================================== ; ????? TIME EQU 30H ; ????????(7??: ???????) DISBUF EQU 37H ; ?????(8??) MODE EQU 3FH ; ????(1=??,2=??,3=??1,4=??2) ITEM EQU 40H ; ?????(0=???,1-3=?????) FLASH EQU 41H ; ????? ALARM EQU 42H ; ???? ALARM1H EQU 43H ; ??1?? ALARM1M EQU 44H ; ??1?? ALARM2H EQU 45H ; ??2?? ALARM2M EQU 46H ; ??2?? ALARM1E EQU 47H ; ??1???? ALARM2E EQU 48H ; ??2???? KEYCNT EQU 49H ; ????? ALCNT EQU 4AH ; ????? ; I/O???? PORTD EQU P0 ; ????? PORTE EQU P2 ; ????? ; ??? LSA BIT P2.2 ; ?????A LSB BIT P2.3 ; ?????B LSC BIT P2.4 ; ?????C BZ BIT P2.5 ; ????? KEY1 BIT P3.0 ; ????? KEY2 BIT P3.1 ; ????/???? KEY3 BIT P3.2 ; ???? KEY4 BIT P3.3 ; ???? DSIO BIT P3.4 ; DS1302?? RST BIT P3.5 ; DS1302?? SCLK BIT P3.6 ; DS1302?? ; ???? MODE_TIME EQU 1 ; ????? MODE_DATE EQU 2 ; ????? MODE_ALARM1 EQU 3 ; ??1 MODE_ALARM2 EQU 4 ; ??2 ; ?????? SEGCODE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,77H ; 0-9,-,A ;==================================================================== ; ??? ;==================================================================== ORG 0000H LJMP MAIN ; ?????? ; ???0?????? ORG 000BH LJMP TIMER0_ISR ;==================================================================== ; ??????? ;==================================================================== MAIN: ; ????? MOV SP, #60H ; ????? MOV MODE, #MODE_TIME MOV ITEM, #0 MOV FLASH, #0 MOV ALARM, #0 MOV ALARM1H,#7 ; ??1??7:30 MOV ALARM1M,#30 MOV ALARM2H,#12 ; ??2??12:00 MOV ALARM2M,#0 MOV ALARM1E,#1 ; ??1?? MOV ALARM2E,#1 ; ??2?? ; ???DS1302?? MOV R0, #TIME MOV @R0, #0 ; ? INC R0 MOV @R0, #0 ; ? INC R0 MOV @R0, #12 ; ?(BCD) INC R0 MOV @R0, #1 ; ? INC R0 MOV @R0, #1 ; ? INC R0 MOV @R0, #2 ; ?? INC R0 MOV @R0, #23 ; ?(BCD) ACALL DS1302_INIT ; ??????0 (10ms??) MOV TMOD, #01H ; ???0??1 MOV TH0, #0DCH ; 10ms?? MOV TL0, #00H SETB ET0 ; ?????0?? SETB TR0 ; ?????0 SETB EA ; ???? ; ??? MAIN_LOOP: ACALL DS1302_READTIME ; ???? ACALL KEY_PROCESS ; ???? ACALL UPDATE_DISPLAY ; ??????? ACALL DISPLAY_DIGITS ; ????? SJMP MAIN_LOOP ;==================================================================== ; DS1302?????? ;==================================================================== ; ?DS1302????? DS1302_WRITE: ; ??: R0=??, R1=?? CLR RST NOP CLR SCLK NOP SETB RST NOP ; ??? MOV R2, #8 DS1302_W_ADDR: MOV A, R0 RRC A MOV DSIO, C SETB SCLK NOP CLR SCLK NOP DJNZ R2, DS1302_W_ADDR ; ??? MOV R2, #8 DS1302_W_DATA: MOV A, R1 RRC A MOV DSIO, C SETB SCLK NOP CLR SCLK NOP DJNZ R2, DS1302_W_DATA CLR RST NOP RET ; ?DS1302????? DS1302_READ: ; ??: R0=?? ; ??: R1=?? CLR RST NOP CLR SCLK NOP SETB RST NOP ; ??? MOV R2, #8 DS1302_R_ADDR: MOV A, R0 RRC A MOV DSIO, C SETB SCLK NOP CLR SCLK NOP DJNZ R2, DS1302_R_ADDR ; ??? MOV R1, #0 MOV R2, #8 DS1302_R_DATA: SETB SCLK NOP MOV C, DSIO RRC A MOV R1, A CLR SCLK NOP DJNZ R2, DS1302_R_DATA ; ????,??RRC???,?DS1302?????? MOV A, R1 MOV B, #0 MOV R2, #8 BIT_REVERSE: RRC A RLC B DJNZ R2, BIT_REVERSE MOV R1, B CLR RST NOP SETB SCLK NOP CLR DSIO NOP SETB DSIO NOP RET ; ???DS1302 DS1302_INIT: ; ????? MOV R0, #8EH MOV R1, #0 ACALL DS1302_WRITE ; ?????? MOV R0, #WRITE_ADDR MOV R1, #TIME MOV R2, #7 DS1302_INIT_LOOP: MOV A, @R0 MOV R3, A MOV A, @R1 ; ???BCD? ACALL DEC_TO_BCD MOV R4, A ACALL DS1302_WRITE INC R0 INC R1 DJNZ R2, DS1302_INIT_LOOP ; ????? MOV R0, #8EH MOV R1, #80H ACALL DS1302_WRITE RET ; ??DS1302?? DS1302_READTIME: MOV R0, #READ_ADDR MOV R1, #TIME MOV R2, #7 DS1302_RT_LOOP: MOV A, @R0 MOV R3, A ACALL DS1302_READ MOV A, R1 ; ?BCD??????? ACALL BCD_TO_DEC MOV @R1, A INC R0 INC R1 DJNZ R2, DS1302_RT_LOOP RET ; DS1302??? READ_ADDR: DB 81H,83H,85H,87H,89H,8BH,8DH WRITE_ADDR: DB 80H,82H,84H,86H,88H,8AH,8CH ;==================================================================== ; ??????? ;==================================================================== ; ??????? UPDATE_DISPLAY: ; ??????? MOV R0, #DISBUF MOV R2, #8 CLR_DISBUF: MOV @R0, #0 INC R0 DJNZ R2, CLR_DISBUF ; ?????????? MOV A, MODE CJNE A, #MODE_TIME, CHECK_DATE ACALL UPDATE_TIME_DISPLAY LJMP UPDATE_DONE CHECK_DATE: CJNE A, #MODE_DATE, CHECK_ALARM1 ACALL UPDATE_DATE_DISPLAY LJMP UPDATE_DONE CHECK_ALARM1: CJNE A, #MODE_ALARM1, CHECK_ALARM2 ACALL UPDATE_ALARM1_DISPLAY LJMP UPDATE_DONE CHECK_ALARM2: ACALL UPDATE_ALARM2_DISPLAY UPDATE_DONE: RET ; ?????? UPDATE_TIME_DISPLAY: ; ??????? MOV A, TIME+2 ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+0, A ; ??? MOV DISBUF+1, B ; ??? MOV DISBUF+2, #10 ; ?? MOV A, TIME+1 ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+3, A ; ??? MOV DISBUF+4, B ; ??? MOV DISBUF+5, #10 ; ?? MOV A, TIME ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+6, A ; ??? MOV DISBUF+7, B ; ??? ; ???? MOV A, ITEM JZ NO_FLASH_TIME MOV A, FLASH CJNE A, #25, NO_FLASH_TIME MOV A, ITEM CJNE A, #1, CHECK_MIN_TIME ; ??? MOV DISBUF+0, #0 MOV DISBUF+1, #0 LJMP NO_FLASH_TIME CHECK_MIN_TIME: CJNE A, #2, CHECK_SEC_TIME ; ??? MOV DISBUF+3, #0 MOV DISBUF+4, #0 LJMP NO_FLASH_TIME CHECK_SEC_TIME: ; ??? MOV DISBUF+6, #0 MOV DISBUF+7, #0 NO_FLASH_TIME: RET ; ?????? UPDATE_DATE_DISPLAY: ; ??????? MOV A, TIME+6 ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+0, A ; ??? MOV DISBUF+1, B ; ??? MOV DISBUF+2, #10 ; ?? MOV A, TIME+4 ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+3, A ; ??? MOV DISBUF+4, B ; ??? MOV DISBUF+5, #10 ; ?? MOV A, TIME+3 ; ?(???) MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+6, A ; ??? MOV DISBUF+7, B ; ??? ; ???? MOV A, ITEM JZ NO_FLASH_DATE MOV A, FLASH CJNE A, #25, NO_FLASH_DATE MOV A, ITEM CJNE A, #1, CHECK_MONTH_DATE ; ??? MOV DISBUF+0, #0 MOV DISBUF+1, #0 LJMP NO_FLASH_DATE CHECK_MONTH_DATE: CJNE A, #2, CHECK_DAY_DATE ; ??? MOV DISBUF+3, #0 MOV DISBUF+4, #0 LJMP NO_FLASH_DATE CHECK_DAY_DATE: ; ??? MOV DISBUF+6, #0 MOV DISBUF+7, #0 NO_FLASH_DATE: RET ; ????1?? UPDATE_ALARM1_DISPLAY: ; ????1?? MOV A, ALARM1H MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+0, A ; ??? MOV DISBUF+1, B ; ??? MOV DISBUF+2, #10 ; ?? MOV A, ALARM1M MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+3, A ; ??? MOV DISBUF+4, B ; ??? ; ?????? MOV A, ALARM1E JZ ALARM1_DISABLED MOV DISBUF+5, #11 ; 'A'???? LJMP CHECK_ALARM1_FLASH ALARM1_DISABLED: MOV DISBUF+5, #10 ; '-'???? CHECK_ALARM1_FLASH: ; ???? MOV A, ITEM JZ NO_FLASH_ALARM1 MOV A, FLASH CJNE A, #25, NO_FLASH_ALARM1 MOV A, ITEM CJNE A, #1, CHECK_MIN_ALARM1 ; ??? MOV DISBUF+0, #0 MOV DISBUF+1, #0 LJMP NO_FLASH_ALARM1 CHECK_MIN_ALARM1: ; ??? MOV DISBUF+3, #0 MOV DISBUF+4, #0 NO_FLASH_ALARM1: RET ; ????2?? UPDATE_ALARM2_DISPLAY: ; ????2?? MOV A, ALARM2H MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+0, A ; ??? MOV DISBUF+1, B ; ??? MOV DISBUF+2, #10 ; ?? MOV A, ALARM2M MOV B, A MOV A, B MOV B, #10 DIV AB MOV DISBUF+3, A ; ??? MOV DISBUF+4, B ; ??? ; ?????? MOV A, ALARM2E JZ ALARM2_DISABLED MOV DISBUF+5, #11 ; 'A'???? LJMP CHECK_ALARM2_FLASH ALARM2_DISABLED: MOV DISBUF+5, #10 ; '-'???? CHECK_ALARM2_FLASH: ; ???? MOV A, ITEM JZ NO_FLASH_ALARM2 MOV A, FLASH CJNE A, #25, NO_FLASH_ALARM2 MOV A, ITEM CJNE A, #1, CHECK_MIN_ALARM2 ; ??? MOV DISBUF+0, #0 MOV DISBUF+1, #0 LJMP NO_FLASH_ALARM2 CHECK_MIN_ALARM2: ; ??? MOV DISBUF+3, #0 MOV DISBUF+4, #0 NO_FLASH_ALARM2: RET ; ??????? DISPLAY_DIGITS: MOV R0, #DISBUF MOV R2, #8 MOV R3, #0 ; ???? DISPLAY_LOOP: ; ???? MOV A, R3 JZ DISP_BIT0 CJNE A, #1, CHECK_BIT2 SETB LSA CLR LSB CLR LSC LJMP DISP_CONT CHECK_BIT2: CJNE A, #2, CHECK_BIT3 CLR LSA SETB LSB CLR LSC LJMP DISP_CONT CHECK_BIT3: CJNE A, #3, CHECK_BIT4 SETB LSA SETB LSB CLR LSC LJMP DISP_CONT CHECK_BIT4: CJNE A, #4, CHECK_BIT5 CLR LSA CLR LSB SETB LSC LJMP DISP_CONT CHECK_BIT5: CJNE A, #5, CHECK_BIT6 SETB LSA CLR LSB SETB LSC LJMP DISP_CONT CHECK_BIT6: CJNE A, #6, CHECK_BIT7 CLR LSA SETB LSB SETB LSC LJMP DISP_CONT CHECK_BIT7: SETB LSA SETB LSB SETB LSC LJMP DISP_CONT DISP_BIT0: CLR LSA CLR LSB CLR LSC DISP_CONT: ; ???? MOV A, @R0 MOV DPTR, #SEGCODE MOVC A, @A+DPTR MOV PORTD, A ; ?? MOV R7, #2 DISP_DELAY: NOP NOP NOP NOP DJNZ R7, DISP_DELAY ; ?? CLR PORTD ; ??? INC R0 INC R3 DJNZ R2, DISPLAY_LOOP RET ;==================================================================== ; ???? ;==================================================================== ; ???? KEY_PROCESS: ; ??KEY1 - ????? JB KEY1, CHECK_KEY2 ACALL KEY_DEBOUNCE JB KEY1, CHECK_KEY2 ; ??KEY1?? MOV A, ITEM JNZ KEY1_SETTING_MODE ; ?????? ; ?????? MOV A, MODE CJNE A, #MODE_ALARM1, CHECK_ALARM2_KEY1 ; ??1?? - ????1?? CPL ALARM1E LJMP KEY1_DONE CHECK_ALARM2_KEY1: CJNE A, #MODE_ALARM2, KEY1_ENTER_SETTING ; ??2?? - ????2?? CPL ALARM2E LJMP KEY1_DONE KEY1_ENTER_SETTING: ; ???? - ???? MOV ITEM, #1 LJMP KEY1_DONE KEY1_SETTING_MODE: ; ?????? - ????? MOV A, MODE CJNE A, #MODE_TIME, CHECK_DATE_KEY1 ; ???? INC ITEM MOV A, ITEM CJNE A, #4, KEY1_DONE MOV ITEM, #0 LJMP KEY1_DONE CHECK_DATE_KEY1: CJNE A, #MODE_DATE, CHECK_ALARM1_KEY1 ; ???? INC ITEM MOV A, ITEM CJNE A, #4, KEY1_DONE MOV ITEM, #0 LJMP KEY1_DONE CHECK_ALARM1_KEY1: CJNE A, #MODE_ALARM1, CHECK_ALARM2_KEY1_SET ; ??1?? INC ITEM MOV A, ITEM CJNE A, #3, KEY1_DONE MOV ITEM, #0 LJMP KEY1_DONE CHECK_ALARM2_KEY1_SET: ; ??2?? INC ITEM MOV A, ITEM CJNE A, #3, KEY1_DONE MOV ITEM, #0 KEY1_DONE: ; ?????? KEY1_WAIT_RELEASE: JB KEY1, CHECK_KEY2 SJMP KEY1_WAIT_RELEASE CHECK_KEY2: ; ??KEY2 - ????/???? JB KEY2, CHECK_KEY3 ACALL KEY_DEBOUNCE JB KEY2, CHECK_KEY3 ; ??KEY2?? MOV A, ITEM JNZ KEY2_EXIT_SETTING ; ?????? - ???? ; ?????? - ???? INC MODE MOV A, MODE CJNE A, #5, KEY2_DONE MOV MODE, #1 LJMP KEY2_DONE KEY2_EXIT_SETTING: ; ?????? MOV ITEM, #0 ; ?????DS1302 MOV A, MODE CJNE A, #MODE_TIME, CHECK_DATE_KEY2 ; ???? MOV R0, #8EH MOV R1, #0 ACALL DS1302_WRITE ; ????? MOV R0, #80H ; ??? MOV R1, #TIME MOV R2, #3 ; ??????? SAVE_TIME_LOOP: MOV A, @R0 MOV R3, A MOV A, @R1 ; ???BCD? ACALL DEC_TO_BCD MOV R4, A ACALL DS1302_WRITE INC R0 INC R0 INC R1 DJNZ R2, SAVE_TIME_LOOP MOV R0, #8EH MOV R1, #80H ACALL DS1302_WRITE ; ????? LJMP KEY2_DONE CHECK_DATE_KEY2: CJNE A, #MODE_DATE, KEY2_DONE ; ???? MOV R0, #8EH MOV R1, #0 ACALL DS1302_WRITE ; ????? MOV R0, #86H ; ??? MOV R1, #TIME+3 MOV R2, #3 ; ??????? SAVE_DATE_LOOP: MOV A, @R0 MOV R3, A MOV A, @R1 ; ???BCD? ACALL DEC_TO_BCD MOV R4, A ACALL DS1302_WRITE INC R0 INC R0 INC R1 DJNZ R2, SAVE_DATE_LOOP MOV R0, #8EH MOV R1, #80H ACALL DS1302_WRITE ; ????? KEY2_DONE: ; ?????? KEY2_WAIT_RELEASE: JB KEY2, CHECK_KEY3 SJMP KEY2_WAIT_RELEASE CHECK_KEY3: ; ??KEY3 - ???? JB KEY3, CHECK_KEY4 ACALL KEY_DEBOUNCE JB KEY3, CHECK_KEY4 ; ??KEY3?? - ???????? MOV A, ITEM JZ KEY3_DONE MOV A, MODE CJNE A, #MODE_TIME, CHECK_DATE_KEY3 ; ???? MOV A, ITEM CJNE A, #1, CHECK_MIN_INC ; ?+1 MOV A, TIME+2 INC A MOV B, #24 CJNE A, B, CHECK_HOUR_INC MOV TIME+2, #0 LJMP KEY3_DONE CHECK_HOUR_INC: MOV TIME+2, A LJMP KEY3_DONE CHECK_MIN_INC: CJNE A, #2, CHECK_SEC_INC ; ?+1 MOV A, TIME+1 INC A MOV B, #60 CJNE A, B, CHECK_MIN_INC_DONE MOV TIME+1, #0 LJMP KEY3_DONE CHECK_MIN_INC_DONE: MOV TIME+1, A LJMP KEY3_DONE CHECK_SEC_INC: ; ?+1 MOV A, TIME INC A MOV B, #60 CJNE A, B, CHECK_SEC_INC_DONE MOV TIME, #0 LJMP KEY3_DONE CHECK_SEC_INC_DONE: MOV TIME, A LJMP KEY3_DONE CHECK_DATE_KEY3: CJNE A, #MODE_DATE, CHECK_ALARM1_KEY3 ; ???? MOV A, ITEM CJNE A, #1, CHECK_MONTH_INC ; ?+1 MOV A, TIME+6 INC A MOV B, #100 CJNE A, B, CHECK_YEAR_INC MOV TIME+6, #0 LJMP KEY3_DONE CHECK_YEAR_INC: MOV TIME+6, A LJMP KEY3_DONE CHECK_MONTH_INC: CJNE A, #2, CHECK_DAY_INC ; ?+1 MOV A, TIME+4 INC A MOV B, #13 CJNE A, B, CHECK_MONTH_INC_DONE MOV TIME+4, #1 LJMP KEY3_DONE CHECK_MONTH_INC_DONE: MOV TIME+4, A LJMP KEY3_DONE CHECK_DAY_INC: ; ?+1 MOV A, TIME+3 INC A MOV B, #32 CJNE A, B, CHECK_DAY_INC_DONE MOV TIME+3, #1 LJMP KEY3_DONE CHECK_DAY_INC_DONE: MOV TIME+3, A LJMP KEY3_DONE CHECK_ALARM1_KEY3: CJNE A, #MODE_ALARM1, CHECK_ALARM2_KEY3 ; ??1?? MOV A, ITEM CJNE A, #1, CHECK_ALARM1_MIN_INC ; ?+1 MOV A, ALARM1H INC A MOV B, #24 CJNE A, B, CHECK_ALARM1_HOUR_INC MOV ALARM1H, #0 LJMP KEY3_DONE CHECK_ALARM1_HOUR_INC: MOV ALARM1H, A LJMP KEY3_DONE CHECK_ALARM1_MIN_INC: ; ?+1 MOV A, ALARM1M INC A MOV B, #60 CJNE A, B, CHECK_ALARM1_MIN_INC_DONE MOV ALARM1M, #0 LJMP KEY3_DONE CHECK_ALARM1_MIN_INC_DONE: MOV ALARM1M, A LJMP KEY3_DONE CHECK_ALARM2_KEY3: ; ??2?? MOV A, ITEM CJNE A, #1, CHECK_ALARM2_MIN_INC ; ?+1 MOV A, ALARM2H INC A MOV B, #24 CJNE A, B, CHECK_ALARM2_HOUR_INC MOV ALARM2H, #0 LJMP KEY3_DONE CHECK_ALARM2_HOUR_INC: MOV ALARM2H, A LJMP KEY3_DONE CHECK_ALARM2_MIN_INC: ; ?+1 MOV A, ALARM2M INC A MOV B, #60 CJNE A, B, CHECK_ALARM2_MIN_INC_DONE MOV ALARM2M, #0 LJMP KEY3_DONE CHECK_ALARM2_MIN_INC_DONE: MOV ALARM2M, A KEY3_DONE: ; ?????? KEY3_WAIT_RELEASE: JB KEY3, CHECK_KEY4 SJMP KEY3_WAIT_RELEASE CHECK_KEY4: ; ??KEY4 - ???? JB KEY4, KEY_DONE ACALL KEY_DEBOUNCE JB KEY4, KEY_DONE ; ??KEY4?? - ???????? MOV A, ITEM JZ KEY4_DONE MOV A, MODE CJNE A, #MODE_TIME, CHECK_DATE_KEY4 ; ???? MOV A, ITEM CJNE A, #1, CHECK_MIN_DEC ; ?-1 MOV A, TIME+2 JNZ HOUR_DEC MOV A, #24 HOUR_DEC: DEC A MOV TIME+2, A LJMP KEY4_DONE CHECK_MIN_DEC: CJNE A, #2, CHECK_SEC_DEC ; ?-1 MOV A, TIME+1 JNZ MIN_DEC MOV A, #60 MIN_DEC: DEC A MOV TIME+1, A LJMP KEY4_DONE CHECK_SEC_DEC: ; ?-1 MOV A, TIME JNZ SEC_DEC MOV A, #60 SEC_DEC: DEC A MOV TIME, A LJMP KEY4_DONE CHECK_DATE_KEY4: CJNE A, #MODE_DATE, CHECK_ALARM1_KEY4 ; ???? MOV A, ITEM CJNE A, #1, CHECK_MONTH_DEC ; ?-1 MOV A, TIME+6 JNZ YEAR_DEC MOV A, #100 YEAR_DEC: DEC A MOV TIME+6, A LJMP KEY4_DONE CHECK_MONTH_DEC: CJNE A, #2, CHECK_DAY_DEC ; ?-1 MOV A, TIME+4 CJNE A, #1, MONTH_DEC MOV A, #13 MONTH_DEC: DEC A MOV TIME+4, A LJMP KEY4_DONE CHECK_DAY_DEC: ; ?-1 MOV A, TIME+3 CJNE A, #1, DAY_DEC MOV A, #32 DAY_DEC: DEC A MOV TIME+3, A LJMP KEY4_DONE CHECK_ALARM1_KEY4: CJNE A, #MODE_ALARM1, CHECK_ALARM2_KEY4 ; ??1?? MOV A, ITEM CJNE A, #1, CHECK_ALARM1_MIN_DEC ; ?-1 MOV A, ALARM1H JNZ ALARM1_HOUR_DEC MOV A, #24 ALARM1_HOUR_DEC: DEC A MOV ALARM1H, A LJMP KEY4_DONE CHECK_ALARM1_MIN_DEC: ; ?-1 MOV A, ALARM1M JNZ ALARM1_MIN_DEC MOV A, #60 ALARM1_MIN_DEC: DEC A MOV ALARM1M, A LJMP KEY4_DONE CHECK_ALARM2_KEY4: ; ??2?? MOV A, ITEM CJNE A, #1, CHECK_ALARM2_MIN_DEC ; ?-1 MOV A, ALARM2H JNZ ALARM2_HOUR_DEC MOV A, #24 ALARM2_HOUR_DEC: DEC A MOV ALARM2H, A LJMP KEY4_DONE CHECK_ALARM2_MIN_DEC: ; ?-1 MOV A, ALARM2M JNZ ALARM2_MIN_DEC MOV A, #60 ALARM2_MIN_DEC: DEC A MOV ALARM2M, A KEY4_DONE: ; ?????? KEY4_WAIT_RELEASE: JB KEY4, KEY_DONE SJMP KEY4_WAIT_RELEASE KEY_DONE: RET ; ???? KEY_DEBOUNCE: MOV R7, #10 KEY_DB_LOOP: NOP NOP NOP NOP DJNZ R7, KEY_DB_LOOP RET ;==================================================================== ; ???? ;==================================================================== ALARM_CHECK: ; ???? MOV A, TIME+2 ; ? MOV R4, A MOV A, TIME+1 ; ? MOV R5, A MOV A, TIME ; ? MOV R6, A ; ????1 MOV A, ALARM1E JZ CHECK_ALARM2 MOV A, R4 CJNE A, ALARM1H, CHECK_ALARM2 MOV A, R5 CJNE A, ALARM1M, CHECK_ALARM2 MOV A, R6 CJNE A, #0, CHECK_ALARM2 ; ??1?? SETB ALARM LJMP CHECK_ALARM_TIME CHECK_ALARM2: ; ????2 MOV A, ALARM2E JZ CHECK_ALARM_TIME MOV A, R4 CJNE A, ALARM2H, CHECK_ALARM_TIME MOV A, R5 CJNE A, ALARM2M, CHECK_ALARM_TIME MOV A, R6 CJNE A, #0, CHECK_ALARM_TIME ; ??2?? SETB ALARM LJMP CHECK_ALARM_TIME CHECK_ALARM_TIME: ; ??????? JNB ALARM, ALARM_OFF ; ???? - ????? INC ALCNT MOV A, ALCNT CJNE A, #50, CHECK_ALARM_ON SETB BZ LJMP ALARM_CHECK_DONE CHECK_ALARM_ON: MOV A, ALCNT CJNE A, #100, ALARM_CHECK_DONE CLR BZ MOV ALCNT, #0 LJMP ALARM_CHECK_DONE ALARM_OFF: CLR ALARM CLR BZ MOV ALCNT, #0 ALARM_CHECK_DONE: ; ??????? INC FLASH MOV A, FLASH CJNE A, #50, AC_DONE MOV FLASH, #0 AC_DONE: RET ;==================================================================== ; ???? ;==================================================================== ; BCD????? BCD_TO_DEC: ; ??: A=BCD? ; ??: A=???? PUSH B MOV B, #10 MOV R0, A ANL A, #0F0H SWAP A MOV R1, A ; ??BCD MOV A, R0 ANL A, #0FH ; ??BCD ADD A, R1 ; ?????? POP B RET ; ????BCD DEC_TO_BCD: ; ??: A=???? ; ??: A=BCD? PUSH B MOV B, #10 MOV R0, A MOV A, R0 MOV B, #10 DIV AB ; A=??, B=?? SWAP A ; ?????4? ORL A, B ; ???BCD? POP B RET ; ???0?????? TIMER0_ISR: ; ????????? MOV TH0, #0DCH MOV TL0, #00H ; ?????? ACALL ALARM_CHECK ; ???? ACALL DISPLAY_DIGITS ; ???? RETI END 报错assembling 123.a51... 123.a51(193): error A39: REGISTER OPERAND EXPECTED 123.a51(215): warning A52: VALUE HAS BEEN TRUNCATED TO 8 BITS 123.a51(591): error A48: DATA-ADDRESS EXPECTED 123.a51(759): error A51: TARGET OUT OF RANGE 123.a51(761): error A51: TARGET OUT OF RANGE 123.a51(765): error A51: TARGET OUT OF RANGE 123.a51(921): error A51: TARGET OUT OF RANGE 123.a51(923): error A51: TARGET OUT OF RANGE 123.a51(927): error A51: TARGET OUT OF RANGE 123.a51(1083): error A51: TARGET OUT OF RANGE 123.a51(1086): error A51: TARGET OUT OF RANGE 123.a51(1089): error A51: TARGET OUT OF RANGE 123.a51(1092): error A51: TARGET OUT OF RANGE 123.a51(1098): error A8: ATTEMPT TO DEFINE AN ALREADY DEFINED LABEL 123.a51 - 13 Error(s), 1 Warning(s).
最新发布
06-15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值