📄 embed.src
字号:
RET
; default:
; SOURCE LINE # 115
?C0014:
; key_down=0;
; SOURCE LINE # 116
CLR A
MOV key_down,A
; break;
; SOURCE LINE # 117
; }
; SOURCE LINE # 118
; }
; SOURCE LINE # 119
; # pragma asm
; #pragma endasm
; }
; SOURCE LINE # 122
?C0015:
RET
; END OF getKey
;
; void show( uint bitCon,uint num)
RSEG ?PR?_show?EMBED
_show:
; SOURCE LINE # 124
;---- Variable 'num?343' assigned to Register 'R4/R5' ----
;---- Variable 'bitCon?342' assigned to Register 'R6/R7' ----
; {
; SOURCE LINE # 125
; uchar seg =SEGPOS[num];
; SOURCE LINE # 126
MOV A,R5
MOV DPTR,#SEGPOS
MOVC A,@A+DPTR
;---- Variable 'seg?344' assigned to Register 'R5' ----
; P0=seg;
; SOURCE LINE # 127
MOV P0,A
; switch(bitCon)
; SOURCE LINE # 128
MOV A,R6
JNZ ?C0023
MOV A,R7
DEC A
JZ ?C0018
DEC A
JZ ?C0019
DEC A
JZ ?C0020
DEC A
JZ ?C0021
DEC A
JZ ?C0022
ADD A,#05H
JNZ ?C0023
; {
; SOURCE LINE # 129
; case 0:
; SOURCE LINE # 130
?C0017:
; P2=CON[0];
; SOURCE LINE # 131
MOV DPTR,#CON
; break;
; SOURCE LINE # 132
SJMP ?C0055
; case 1:
; SOURCE LINE # 133
?C0018:
; P2=CON[1];
; SOURCE LINE # 134
MOV DPTR,#CON+01H
?C0051:
; break;
; SOURCE LINE # 135
SJMP ?C0055
; case 2:
; SOURCE LINE # 136
?C0019:
; P2=CON[2];
; SOURCE LINE # 137
MOV DPTR,#CON+02H
?C0052:
; break;
; SOURCE LINE # 138
SJMP ?C0055
; case 3:
; SOURCE LINE # 139
?C0020:
; P2=CON[3];
; SOURCE LINE # 140
MOV DPTR,#CON+03H
?C0053:
; break;
; SOURCE LINE # 141
SJMP ?C0055
; case 4:
; SOURCE LINE # 142
?C0021:
; P2=CON[4];
; SOURCE LINE # 143
MOV DPTR,#CON+04H
?C0054:
; break;
; SOURCE LINE # 144
SJMP ?C0055
; case 5:
; SOURCE LINE # 145
?C0022:
; P2=CON[5];
; SOURCE LINE # 146
MOV DPTR,#CON+05H
?C0055:
CLR A
MOVC A,@A+DPTR
MOV P2,A
; break;
; SOURCE LINE # 147
;
; }
; SOURCE LINE # 149
; }
; SOURCE LINE # 150
?C0023:
RET
; END OF _show
;
; //*驱动蜂鸣器
; void Buzzer()
RSEG ?PR?Buzzer?EMBED
Buzzer:
USING 0
; SOURCE LINE # 153
; {
; SOURCE LINE # 154
; P2_6 = 1;//buzzer
; SOURCE LINE # 155
SETB P2_6
; P2_7 = 1;//led
; SOURCE LINE # 156
SETB P2_7
; delay10ms(100);
; SOURCE LINE # 157
MOV R7,#064H
MOV R6,#00H
LJMP _delay10ms
; END OF Buzzer
; }
;
; void clearAlarm()
RSEG ?PR?clearAlarm?EMBED
clearAlarm:
; SOURCE LINE # 160
; {
; SOURCE LINE # 161
; P2_6 = 0;//buzzer
; SOURCE LINE # 162
CLR P2_6
; P2_7 = 0;//led
; SOURCE LINE # 163
CLR P2_7
; }
; SOURCE LINE # 164
RET
; END OF clearAlarm
;
; void stateMachine(uchar inkey)
RSEG ?PR?_stateMachine?EMBED
_stateMachine:
; SOURCE LINE # 166
;---- Variable 'inkey?645' assigned to Register 'R7' ----
; {
; SOURCE LINE # 167
; switch(inkey )
; SOURCE LINE # 168
MOV A,R7
ADD A,#0FEH
JZ ?C0028
DEC A
JZ ?C0029
ADD A,#02H
JNZ ?C0026
; {
; SOURCE LINE # 169
; case 1:
; SOURCE LINE # 170
?C0027:
; next_state = 0;
; SOURCE LINE # 171
CLR A
MOV next_state,A
; break;
; SOURCE LINE # 172
SJMP ?C0026
; case 2:
; SOURCE LINE # 173
?C0028:
; next_state = 1;
; SOURCE LINE # 174
MOV next_state,#01H
; break;
; SOURCE LINE # 175
SJMP ?C0026
; case 3:
; SOURCE LINE # 176
?C0029:
; next_state = 2;
; SOURCE LINE # 177
MOV next_state,#02H
; break;
; SOURCE LINE # 178
; }
; SOURCE LINE # 179
?C0026:
; cur_state = next_state;
; SOURCE LINE # 180
MOV cur_state,next_state
; }
; SOURCE LINE # 181
RET
; END OF _stateMachine
;
; void setplay(uint h2bit ,uint m2bit,uint l2bit)
RSEG ?PR?_setplay?EMBED
_setplay:
USING 0
; SOURCE LINE # 183
MOV h2bit?746,R6
MOV h2bit?746+01H,R7
;---- Variable 'l2bit?748' assigned to Register 'R2/R3' ----
;---- Variable 'm2bit?747' assigned to Register 'DPTR' ----
MOV DPL,R5
MOV DPH,R4
; {
; SOURCE LINE # 184
; array[5]=h2bit/10%10;
; SOURCE LINE # 185
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV array+0AH,R4
MOV array+0BH,R5
; array[4]=h2bit%10+18;
; SOURCE LINE # 186
MOV R6,h2bit?746
MOV R7,h2bit?746+01H
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV A,R5
ADD A,#012H
MOV array+09H,A
CLR A
ADDC A,R4
MOV array+08H,A
; array[3]=m2bit/10;
; SOURCE LINE # 187
MOV R4,#00H
MOV R5,#0AH
MOV R7,DPL
MOV R6,DPH
LCALL ?C?UIDIV
MOV array+06H,R6
MOV array+07H,R7
; array[2]=m2bit%10+18;
; SOURCE LINE # 188
MOV R6,DPH
MOV R7,DPL
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV A,R5
ADD A,#012H
MOV array+05H,A
CLR A
ADDC A,R4
MOV array+04H,A
; array[1]=l2bit/10;
; SOURCE LINE # 189
MOV R4,#00H
MOV R5,#0AH
MOV R7,AR3
MOV R6,AR2
LCALL ?C?UIDIV
MOV array+02H,R6
MOV array+03H,R7
; array[0]=l2bit%10+18;
; SOURCE LINE # 190
MOV R6,AR2
MOV R7,AR3
MOV R4,#00H
MOV R5,#0AH
LCALL ?C?UIDIV
MOV A,R5
ADD A,#012H
MOV array+01H,A
CLR A
ADDC A,R4
MOV array,A
; }
; SOURCE LINE # 191
RET
; END OF _setplay
; void main()
RSEG ?PR?main?EMBED
main:
USING 0
; SOURCE LINE # 192
; {
; SOURCE LINE # 193
; uint display=0;
; SOURCE LINE # 194
CLR A
MOV display?849,A
MOV display?849+01H,A
; uint LED=0xFF7F;
; SOURCE LINE # 195
MOV LED?850,#0FFH
MOV LED?850+01H,#07FH
; initial();
; SOURCE LINE # 196
LCALL initial
?C0032:
;
; while(1)
; SOURCE LINE # 198
; {
; SOURCE LINE # 199
; getKey();//获得按键输入
; SOURCE LINE # 200
LCALL getKey
; if(key_down)
; SOURCE LINE # 201
MOV A,key_down
JZ ?C0034
; {
; SOURCE LINE # 202
; key_down=0;
; SOURCE LINE # 203
CLR A
MOV key_down,A
; P3_0=!P3_0;
; SOURCE LINE # 204
CPL P3_0
; }
; SOURCE LINE # 205
?C0034:
; /*
; //*/
; /**设置**
; //*/
; /*
; switch(cur_state)
; {
; case time_show:
; setplay(hour,minute,second);
; break;
; case date_show:
; setplay(year,month,day);
; break;
; case second_show:
; setplay(Cminute,Csecond,Csecond10);
; break;
; }
; //*/
; //动态显示四位数据
; show(display,array[display]);
; SOURCE LINE # 225
MOV A,display?849+01H
ADD A,ACC
ADD A,#LOW (array)
MOV R0,A
MOV A,@R0
MOV R4,A
INC R0
MOV A,@R0
MOV R5,A
MOV R7,display?849+01H
MOV R6,display?849
LCALL _show
; if(display==5)
; SOURCE LINE # 226
MOV A,display?849+01H
XRL A,#05H
ORL A,display?849
JNZ ?C0035
; {
; SOURCE LINE # 227
; display=0;
; SOURCE LINE # 228
MOV display?849,A
MOV display?849+01H,A
;
; }
; SOURCE LINE # 230
SJMP ?C0036
?C0035:
; else
; display +=1;
; SOURCE LINE # 232
INC display?849+01H
MOV A,display?849+01H
JNZ ?C0049
INC display?849
?C0049:
?C0036:
; P1=LED;
; SOURCE LINE # 233
MOV P1,LED?850+01H
; LED=LED>>1;
; SOURCE LINE # 234
MOV A,LED?850
CLR C
RRC A
MOV LED?850,A
MOV A,LED?850+01H
RRC A
MOV LED?850+01H,A
; delay10ms(100); //**************
; SOURCE LINE # 235
MOV R7,#064H
MOV R6,#00H
LCALL _delay10ms
; if(LED==0x01FE)
; SOURCE LINE # 236
MOV A,LED?850+01H
CJNE A,#0FEH,?C0032
MOV A,LED?850
CJNE A,#01H,?C0032
; {
; SOURCE LINE # 237
; LED=0xFF7F;
; SOURCE LINE # 238
MOV LED?850,#0FFH
MOV LED?850+01H,#07FH
; }
; SOURCE LINE # 239
; /*
; if(key_down == 1) //运行状态机
; stateMachine(inkey);
; //*/
; }
; SOURCE LINE # 244
SJMP ?C0032
; END OF main
CSEG AT 0000BH
LJMP TIME0
; }
;
; /*/////////////////////////////////////////////////////////////
; 各中断函数的具体处理
; //*/
; void TIME0() interrupt 1
RSEG ?PR?TIME0?EMBED
USING 0
TIME0:
PUSH ACC
; SOURCE LINE # 250
; {
; if(Num_Of_Circle==0)
; SOURCE LINE # 252
MOV A,Num_Of_Circle+01H
ORL A,Num_Of_Circle
JNZ ?C0039
; TR1=1;
; SOURCE LINE # 253
SETB TR1
?C0039:
; Num_Of_Circle = 0;
; SOURCE LINE # 254
MOV Num_Of_Circle,#00H
MOV Num_Of_Circle+01H,#00H
; }
; SOURCE LINE # 255
POP ACC
RETI
; END OF TIME0
CSEG AT 0001BH
LJMP TIME1
;
; void TIME1() interrupt 3//T1 计时 50ms
RSEG ?PR?TIME1?EMBED
USING 0
TIME1:
PUSH ACC
PUSH PSW
MOV PSW,#00H
PUSH AR6
PUSH AR7
USING 0
; SOURCE LINE # 257
; {
; Num_Of_Circle = Num_Of_Circle==19 ? 0 : Num_Of_Circle + 1;
; SOURCE LINE # 259
MOV A,Num_Of_Circle+01H
XRL A,#013H
ORL A,Num_Of_Circle
JNZ ?C0041
MOV R6,A
MOV R7,A
SJMP ?C0042
?C0041:
MOV A,Num_Of_Circle+01H
ADD A,#01H
MOV R7,A
CLR A
ADDC A,Num_Of_Circle
MOV R6,A
?C0042:
MOV Num_Of_Circle,R6
MOV Num_Of_Circle+01H,R7
; }
; SOURCE LINE # 260
POP AR7
POP AR6
POP PSW
POP ACC
RETI
; END OF TIME1
CSEG AT 00003H
LJMP EX0INT
;
; void EX0INT() interrupt 0
RSEG ?PR?EX0INT?EMBED
USING 0
EX0INT:
; SOURCE LINE # 262
; {
; }
; SOURCE LINE # 264
RETI
; END OF EX0INT
CSEG AT 00013H
LJMP EX1INT
;
; void EX1INT() interrupt 2
RSEG ?PR?EX1INT?EMBED
USING 0
EX1INT:
; SOURCE LINE # 266
; {
; }
; SOURCE LINE # 268
RETI
; END OF EX1INT
CSEG AT 00023H
LJMP SERIAL
;
; void SERIAL() interrupt 4
RSEG ?PR?SERIAL?EMBED
USING 0
SERIAL:
; SOURCE LINE # 270
; {
; }
; SOURCE LINE # 272
RETI
; END OF SERIAL
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -