📄 d51_new.src
字号:
; C:\Aedk\C51\sample_AD9850\D51_new.SRC generated from: C:\Aedk\C51\sample_AD9850\D51_new.C
$NOMOD51
NAME D51_NEW
TB81 BIT 0C0H.3
P0 DATA 080H
P1 DATA 090H
SM01 BIT 0C0H.7
P2 DATA 0A0H
SM11 BIT 0C0H.6
P3 DATA 0B0H
SM21 BIT 0C0H.5
AC BIT 0D0H.6
P4 DATA 0A5H
EA BIT 0A8H.7
WMCON DATA 096H
DPH1 DATA 085H
IE DATA 0A8H
P0_0 BIT 080H.0
P1_0 BIT 090H.0
P0_1 BIT 080H.1
P2_0 BIT 0A0H.0
P1_1 BIT 090H.1
P0_2 BIT 080H.2
DPL1 DATA 084H
P3_0 BIT 0B0H.0
P2_1 BIT 0A0H.1
P1_2 BIT 090H.2
P0_3 BIT 080H.3
P3_1 BIT 0B0H.1
P2_2 BIT 0A0H.2
P1_3 BIT 090H.3
P0_4 BIT 080H.4
P3_2 BIT 0B0H.2
P2_3 BIT 0A0H.3
P1_4 BIT 090H.4
P0_5 BIT 080H.5
TA DATA 0C7H
EXF2 BIT 0C8H.6
P3_3 BIT 0B0H.3
P2_4 BIT 0A0H.4
P1_5 BIT 090H.5
P0_6 BIT 080H.6
REN1 BIT 0C0H.4
P3_4 BIT 0B0H.4
P2_5 BIT 0A0H.5
P1_6 BIT 090H.6
P0_7 BIT 080H.7
ES BIT 0A8H.4
P3_5 BIT 0B0H.5
P2_6 BIT 0A0H.6
P1_7 BIT 090H.7
P3_6 BIT 0B0H.6
P2_7 BIT 0A0H.7
IP DATA 0B8H
P3_7 BIT 0B0H.7
RI BIT 098H.0
CY BIT 0D0H.7
TI BIT 098H.1
RCAP2H DATA 0CBH
PS BIT 0B8H.4
SP DATA 081H
OV BIT 0D0H.2
RCAP2L DATA 0CAH
C_T2 BIT 0C8H.1
EWDI BIT 0E8H.4
WDIF BIT 0D8H.3
RCLK BIT 0C8H.5
EXIF DATA 091H
TCLK BIT 0C8H.4
SBUF DATA 099H
PCON DATA 087H
SCON DATA 098H
PWDI BIT 0E8H.4
TMOD DATA 089H
TCON DATA 088H
SPCR DATA 0D5H
IE0 BIT 088H.1
IE1 BIT 088H.3
A DATA 0E0H
B DATA 0F0H
WTRF BIT 0D8H.2
CP_RL2 BIT 0C8H.0
SMOD_1 BIT 0D8H.7
ACC DATA 0E0H
ET0 BIT 0A8H.1
ES1 BIT 0A8H.6
SPSR DATA 0AAH
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RI1 BIT 0C0H.0
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
TI1 BIT 0C0H.1
TB8 BIT 098H.3
EX1 BIT 0A8H.2
IT1 BIT 088H.2
ROMMAP DATA 0C2H
TH2 DATA 0CDH
EX2 BIT 0E8H.0
P BIT 0D0H.0
EX3 BIT 0E8H.1
SM0 BIT 098H.7
TL0 DATA 08AH
EX4 BIT 0E8H.2
SM1 BIT 098H.6
TL1 DATA 08BH
EX5 BIT 0E8H.3
SM2 BIT 098H.5
TL2 DATA 0CCH
EIE DATA 0E8H
PT0 BIT 0B8H.1
PS1 BIT 0B8H.6
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
TR1 BIT 088H.6
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
PX2 BIT 0E8H.0
PX3 BIT 0E8H.1
PX4 BIT 0E8H.2
DPH DATA 083H
PX5 BIT 0E8H.3
EIP DATA 0F8H
DPL DATA 082H
SBUF1 DATA 0C1H
EXEN2 BIT 0C8H.3
SCON0 DATA 098H
REN BIT 098H.4
SCON1 DATA 0C0H
STATUS DATA 0C5H
DPS DATA 086H
T2MOD DATA 0C9H
T2CON DATA 0C8H
SADEN DATA 0B9H
PMR DATA 0C4H
CKCON DATA 08EH
EWT BIT 0D8H.1
POR BIT 0D8H.6
F0 BIT 0D0H.5
F1 BIT 0D0H.1
PSW DATA 0D0H
WDCON DATA 0D8H
RWT BIT 0D8H.0
RB81 BIT 0C0H.2
?PR?keyboard_int?D51_NEW SEGMENT CODE
?PR?timer0_int?D51_NEW SEGMENT CODE
?PR?_delay?D51_NEW SEGMENT CODE
?PR?timer1_int?D51_NEW SEGMENT CODE
?PR?clearDispBuf?D51_NEW SEGMENT CODE
?PR?Display?D51_NEW SEGMENT CODE
?PR?DispHELLO?D51_NEW SEGMENT CODE
?PR?_loadDispBuf?D51_NEW SEGMENT CODE
?DT?_loadDispBuf?D51_NEW SEGMENT DATA OVERLAYABLE
?PR?_DisplayChar?D51_NEW SEGMENT CODE
?PR?DisplayLED?D51_NEW SEGMENT CODE
?PR?_encode?D51_NEW SEGMENT CODE
?DT?_encode?D51_NEW SEGMENT DATA OVERLAYABLE
?PR?encode1?D51_NEW SEGMENT CODE
?PR?encode2?D51_NEW SEGMENT CODE
?PR?encode3?D51_NEW SEGMENT CODE
?PR?encode4?D51_NEW SEGMENT CODE
?PR?_encode5?D51_NEW SEGMENT CODE
?PR?_encode6?D51_NEW SEGMENT CODE
?DT?_encode6?D51_NEW SEGMENT DATA OVERLAYABLE
?PR?clearDisplay?D51_NEW SEGMENT CODE
?PR?init8279?D51_NEW SEGMENT CODE
?PR?chkram?D51_NEW SEGMENT CODE
?PR?delay_dds?D51_NEW SEGMENT CODE
?DT?delay_dds?D51_NEW SEGMENT DATA OVERLAYABLE
?PR?init_dds?D51_NEW SEGMENT CODE
?PR?_update_freq?D51_NEW SEGMENT CODE
?DT?_update_freq?D51_NEW SEGMENT DATA OVERLAYABLE
?PR?main?D51_NEW SEGMENT CODE
?DT?main?D51_NEW SEGMENT DATA OVERLAYABLE
?CO?D51_NEW SEGMENT CODE
?DT?D51_NEW SEGMENT DATA
EXTRN CODE (?C?CLDOPTR)
EXTRN CODE (?C?ULSHR)
EXTRN CODE (?C?ULCMP)
EXTRN CODE (?C_STARTUP)
EXTRN CODE (?C?CCASE)
EXTRN CODE (?C?LSHL)
EXTRN CODE (?C?LMUL)
PUBLIC main
PUBLIC ?_update_freq?BYTE
PUBLIC _update_freq
PUBLIC init_dds
PUBLIC delay_dds
PUBLIC chkram
PUBLIC init8279
PUBLIC clearDisplay
PUBLIC _encode6
PUBLIC _encode5
PUBLIC encode4
PUBLIC encode3
PUBLIC encode2
PUBLIC encode1
PUBLIC _encode
PUBLIC DisplayLED
PUBLIC _DisplayChar
PUBLIC _loadDispBuf
PUBLIC DispHELLO
PUBLIC Display
PUBLIC clearDispBuf
PUBLIC timer1_int
PUBLIC _delay
PUBLIC timer0_int
PUBLIC keyboard_int
RSEG ?DT?_loadDispBuf?D51_NEW
?_loadDispBuf?BYTE:
p?749: DS 3
RSEG ?DT?_encode?D51_NEW
?_encode?BYTE:
adr?1053: DS 2
RSEG ?DT?_encode6?D51_NEW
?_encode6?BYTE:
i?1662: DS 1
c?1663: DS 8
f?1665: DS 4
RSEG ?DT?delay_dds?D51_NEW
?delay_dds?BYTE:
j?2070: DS 1
RSEG ?DT?_update_freq?D51_NEW
?_update_freq?BYTE:
c?2273: DS 1
ORG 5
freq_temp?2276: DS 4
RSEG ?DT?main?D51_NEW
?main?BYTE:
freq?2378: DS 4
dfreq?2379: DS 4
temp_f?2380: DS 4
ctrl1?2381: DS 1
status?2382: DS 1
RSEG ?DT?D51_NEW
THG0: DS 1
NumberC: DS 2
THGL: DS 2
DispBuf: DS 8
TSET: DS 1
keyChar: DS 1
LED_status: DS 1
THG: DS 1
keyNum: DS 1
RSEG ?CO?D51_NEW
LedTab:
DB 03FH
DB 006H
DB 05BH
DB 04FH
DB 066H
DB 06DH
DB 07DH
DB 007H
DB 07FH
DB 06FH
DB 077H
DB 07CH
DB 039H
DB 05EH
DB 079H
DB 071H
DB 073H
DB 03EH
DB 06EH
DB 076H
DB 038H
DB 05CH
DB 000H
DB 040H
DB 080H
DB 037H
DB 01CH
OKLedChar:
DB 000H
DB 00CH
DB 000H
DB 00CH
DB 000H
DB 00CH
DB 000H
DB 00CH
ERRT:
DB 00EH
DB 010H
DB 00EH
DB 010H
DB 00EH
DB 010H
DB 00EH
DB 010H
HELLO:
DB 016H
DB 013H
DB 00EH
DB 014H
DB 014H
DB 000H
DB 016H
DB 016H
KeyTab:
DB 031H
DB 032H
DB 033H
DB 041H
DB 034H
DB 035H
DB 036H
DB 042H
DB 037H
DB 038H
DB 039H
DB 043H
DB 02AH
DB 030H
DB 023H
DB 044H
CopyRight:
DB 'y' ,'f' ,'z' ,'h' ,'a' ,'n' ,'g' ,'@' ,'e' ,'l'
DB 'e' ,'.' ,'p' ,'k' ,'u' ,'.' ,'e' ,'d' ,'u' ,'.'
DB 'c' ,'n' ,000H
; /*------------------------------------------------------------------------------
; D51_new.C
;
; Copyright 1995-1999 Keil Software, Inc.
; ------------------------------------------------------------------------------*/
; //#include <AT89S8252.H> /* define AT89C51 registers */
; //#include <AT89X51.H> /* define AT89C51 registers */
; #include <w77e58.H> /* define w77e58 registers */
; #include "ABSACC.H"
; #include "D51_new.h"
;
;
;
;
CSEG AT 00003H
LJMP keyboard_int
; void keyboard_int() interrupt IE0_VECTOR{ /* Keyboard Interrup*/
RSEG ?PR?keyboard_int?D51_NEW
keyboard_int:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
MOV PSW,#00H
PUSH AR5
PUSH AR6
PUSH AR7
USING 0
; SOURCE LINE # 15
; uchar s,key;
; s=STATUS8279;
; SOURCE LINE # 17
MOV DPTR,#08001H
MOVX A,@DPTR
MOV R7,A
;---- Variable 's?040' assigned to Register 'R7' ----
; if(s & 0x0f){
; SOURCE LINE # 18
ANL A,#0FH
JZ ?C0002
; CTRL8279=0x40;
; SOURCE LINE # 19
MOV A,#040H
MOVX @DPTR,A
; key=DATA8279;
; SOURCE LINE # 20
MOV DPTR,#08000H
MOVX A,@DPTR
MOV R6,A
;---- Variable 'key?041' assigned to Register 'R6' ----
; s=((key & 0x18)>>1) | (key & 0x03);
; SOURCE LINE # 21
ANL A,#018H
MOV R5,A
CLR C
RRC A
MOV R5,A
MOV A,R6
ANL A,#03H
ORL A,R5
MOV R7,A
; keyChar=KeyTab[s];
; SOURCE LINE # 22
MOV DPTR,#KeyTab
MOVC A,@A+DPTR
MOV keyChar,A
; keyNum=1;
; SOURCE LINE # 23
MOV keyNum,#01H
; }
; SOURCE LINE # 24
; }
; SOURCE LINE # 25
?C0002:
POP AR7
POP AR6
POP AR5
POP PSW
POP DPL
POP DPH
POP ACC
RETI
; END OF keyboard_int
CSEG AT 0000BH
LJMP timer0_int
;
; void timer0_int() interrupt TF0_VECTOR {
RSEG ?PR?timer0_int?D51_NEW
timer0_int:
; SOURCE LINE # 27
; EA=0;
; SOURCE LINE # 28
CLR EA
; THG0++;
; SOURCE LINE # 29
INC THG0
; LED_status=1;
; SOURCE LINE # 30
MOV LED_status,#01H
; EA=1;
; SOURCE LINE # 31
SETB EA
; }
; SOURCE LINE # 32
RETI
; END OF timer0_int
;
; /* Delay x ms MAX 255ms for 11.0592MHz 8051CPU */
; void delay(uchar ms){
RSEG ?PR?_delay?D51_NEW
_delay:
USING 0
;---- Variable 'ms?242' assigned to Register 'R7' ----
; SOURCE LINE # 35
; uchar i,j,k;
; for(i=0;i<ms;i++){
; SOURCE LINE # 37
;---- Variable 'i?243' assigned to Register 'R6' ----
CLR A
MOV R6,A
?C0004:
MOV A,R6
CLR C
SUBB A,R7
JNC ?C0013
; for(j=0;j<4;j++){
; SOURCE LINE # 38
;---- Variable 'j?244' assigned to Register 'R5' ----
CLR A
MOV R5,A
?C0007:
; for(k=0;k<115;k++){}
; SOURCE LINE # 39
;---- Variable 'k?245' assigned to Register 'R4' ----
CLR A
MOV R4,A
?C0010:
INC R4
CJNE R4,#073H,?C0010
; }
; SOURCE LINE # 40
?C0009:
INC R5
CJNE R5,#04H,?C0007
; }
; SOURCE LINE # 41
?C0006:
INC R6
SJMP ?C0004
; }
; SOURCE LINE # 42
?C0013:
RET
; END OF _delay
CSEG AT 0001BH
LJMP timer1_int
; void timer1_int() interrupt TF1_VECTOR {
RSEG ?PR?timer1_int?D51_NEW
timer1_int:
PUSH ACC
PUSH PSW
MOV PSW,#00H
PUSH AR4
PUSH AR5
PUSH AR6
PUSH AR7
USING 0
; SOURCE LINE # 43
; EA=0;
; SOURCE LINE # 44
CLR EA
; THG=THG0;
; SOURCE LINE # 45
MOV THG,THG0
; THGL=TH0*256+TL0;
; SOURCE LINE # 46
MOV R7,TH0
MOV A,R7
MOV R6,A
MOV R5,TL0
MOV R4,#00H
CLR A
ADD A,R5
MOV THGL+01H,A
MOV A,R4
ADDC A,R6
MOV THGL,A
; THG0=0;
; SOURCE LINE # 47
MOV THG0,#00H
; TH0=0;
; SOURCE LINE # 48
MOV TH0,#00H
; TL0=0;
; SOURCE LINE # 49
MOV TL0,#00H
; TH1=-NumberC/256;
; SOURCE LINE # 50
CLR C
CLR A
SUBB A,NumberC+01H
MOV R5,A
CLR A
SUBB A,NumberC
MOV TH1,A
; TL1=-NumberC%256;
; SOURCE LINE # 51
MOV R7,AR5
MOV TL1,R7
; TSET=1;
; SOURCE LINE # 52
MOV TSET,#01H
; EA=1;
; SOURCE LINE # 53
SETB EA
; }
; SOURCE LINE # 54
POP AR7
POP AR6
POP AR5
POP AR4
POP PSW
POP ACC
RETI
; END OF timer1_int
; void clearDispBuf(void) {
RSEG ?PR?clearDispBuf?D51_NEW
L?0139:
CLR A
MOV temp_f?2380+03H,A
MOV temp_f?2380+02H,A
MOV temp_f?2380+01H,A
MOV temp_f?2380,A
clearDispBuf:
USING 0
; SOURCE LINE # 55
; int i;
; for(i=0;i<DISP_BUF_SIZE;i++){
; SOURCE LINE # 57
;---- Variable 'i?446' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0015:
; DispBuf[i]=LedTab[22];
; SOURCE LINE # 58
MOV DPTR,#LedTab+016H
CLR A
MOVC A,@A+DPTR
MOV R5,A
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV @R0,AR5
; }
; SOURCE LINE # 59
INC R7
CJNE R7,#00H,?C0127
INC R6
?C0127:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0015
; }
; SOURCE LINE # 60
?C0018:
RET
; END OF clearDispBuf
; void Display(void)
RSEG ?PR?Display?D51_NEW
Display:
USING 0
; SOURCE LINE # 61
; {
; SOURCE LINE # 62
; int i;
; for(i=0;i<8;i++){
; SOURCE LINE # 64
;---- Variable 'i?547' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0019:
; CTRL8279=0x90+i;
; SOURCE LINE # 65
MOV A,R7
ADD A,#090H
MOV DPTR,#08001H
MOVX @DPTR,A
; DATA8279=DispBuf[i];
; SOURCE LINE # 66
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV A,@R0
MOV DPTR,#08000H
MOVX @DPTR,A
; }
; SOURCE LINE # 67
INC R7
CJNE R7,#00H,?C0128
INC R6
?C0128:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0019
; }
; SOURCE LINE # 68
?C0022:
RET
; END OF Display
; void DispHELLO(void) {
RSEG ?PR?DispHELLO?D51_NEW
DispHELLO:
USING 0
; SOURCE LINE # 69
; int i;
; for(i=0;i<DISP_BUF_SIZE;i++){
; SOURCE LINE # 71
;---- Variable 'i?648' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0023:
; DispBuf[i]=LedTab[HELLO[i]];
; SOURCE LINE # 72
MOV A,#LOW (HELLO)
ADD A,R7
MOV DPL,A
MOV A,#HIGH (HELLO)
ADDC A,R6
MOV DPH,A
CLR A
MOVC A,@A+DPTR
MOV DPTR,#LedTab
MOVC A,@A+DPTR
MOV R5,A
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV @R0,AR5
; }
; SOURCE LINE # 73
INC R7
CJNE R7,#00H,?C0129
INC R6
?C0129:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0023
?C0024:
; Display();
; SOURCE LINE # 74
LJMP Display
; }
; SOURCE LINE # 75
; END OF DispHELLO
; void loadDispBuf(uchar *p) {
RSEG ?PR?_loadDispBuf?D51_NEW
_loadDispBuf:
USING 0
MOV p?749,R3
MOV p?749+01H,R2
MOV p?749+02H,R1
; SOURCE LINE # 76
; int i;
; for(i=0;i<DISP_BUF_SIZE;i++){
; SOURCE LINE # 78
;---- Variable 'i?750' assigned to Register 'R6/R7' ----
CLR A
MOV R7,A
MOV R6,A
?C0027:
; DispBuf[i]=LedTab[*(p+i)];
; SOURCE LINE # 79
MOV R3,p?749
MOV R2,p?749+01H
MOV R1,p?749+02H
MOV DPL,R7
MOV DPH,R6
LCALL ?C?CLDOPTR
MOV DPTR,#LedTab
MOVC A,@A+DPTR
MOV R5,A
MOV A,#LOW (DispBuf)
ADD A,R7
MOV R0,A
MOV @R0,AR5
; }
; SOURCE LINE # 80
INC R7
CJNE R7,#00H,?C0130
INC R6
?C0130:
MOV A,R7
XRL A,#08H
ORL A,R6
JNZ ?C0027
; }
; SOURCE LINE # 81
?C0030:
RET
; END OF _loadDispBuf
; void DisplayChar(char c)
RSEG ?PR?_DisplayChar?D51_NEW
_DisplayChar:
;---- Variable 'c?851' assigned to Register 'R7' ----
; SOURCE LINE # 82
; {
; SOURCE LINE # 83
; DATA8279=c;
; SOURCE LINE # 84
MOV DPTR,#08000H
MOV A,R7
MOVX @DPTR,A
; }
; SOURCE LINE # 85
RET
; END OF _DisplayChar
; void DisplayLED(void)
RSEG ?PR?DisplayLED?D51_NEW
DisplayLED:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -