add code
This commit is contained in:
40
INTRINS.h
Normal file
40
INTRINS.h
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
INTRINS.H
|
||||||
|
|
||||||
|
Intrinsic functions for C51.
|
||||||
|
Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH
|
||||||
|
All rights reserved.
|
||||||
|
--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __INTRINS_H__
|
||||||
|
#define __INTRINS_H__
|
||||||
|
|
||||||
|
#pragma SAVE
|
||||||
|
|
||||||
|
#if defined (__CX2__)
|
||||||
|
#pragma FUNCTIONS(STATIC)
|
||||||
|
/* intrinsic functions are reentrant, but need static attribute */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern void _nop_ (void);
|
||||||
|
extern bit _testbit_ (bit);
|
||||||
|
extern unsigned char _cror_ (unsigned char, unsigned char);
|
||||||
|
extern unsigned int _iror_ (unsigned int, unsigned char);
|
||||||
|
extern unsigned long _lror_ (unsigned long, unsigned char);
|
||||||
|
extern unsigned char _crol_ (unsigned char, unsigned char);
|
||||||
|
extern unsigned int _irol_ (unsigned int, unsigned char);
|
||||||
|
extern unsigned long _lrol_ (unsigned long, unsigned char);
|
||||||
|
extern unsigned char _chkfloat_(float);
|
||||||
|
#if defined (__CX2__)
|
||||||
|
extern int abs (int);
|
||||||
|
extern void _illop_ (void);
|
||||||
|
#endif
|
||||||
|
#if !defined (__CX2__)
|
||||||
|
extern void _push_ (unsigned char _sfr);
|
||||||
|
extern void _pop_ (unsigned char _sfr);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#pragma RESTORE
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
253
Listings/STARTUP.lst
Normal file
253
Listings/STARTUP.lst
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
A51 MACRO ASSEMBLER STARTUP 12/27/2025 19:02:37 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
MACRO ASSEMBLER A51 V8.2.7.0
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\STARTUP.obj
|
||||||
|
ASSEMBLER INVOKED BY: D:\keli\uv5_arm\C51\BIN\A51.EXE STARTUP.A51 SET(SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(
|
||||||
|
.\Objects\STARTUP.obj) EP
|
||||||
|
|
||||||
|
LOC OBJ LINE SOURCE
|
||||||
|
|
||||||
|
1 $nomod51
|
||||||
|
2 ;------------------------------------------------------------------------------
|
||||||
|
3 ; This file is part of the C51 Compiler package
|
||||||
|
4 ; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
5 ; Version 8.01
|
||||||
|
6 ;
|
||||||
|
7 ; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||||
|
8 ;------------------------------------------------------------------------------
|
||||||
|
9 ; STARTUP.A51: This code is executed after processor reset.
|
||||||
|
10 ;
|
||||||
|
11 ; To translate this file use A51 with the following invocation:
|
||||||
|
12 ;
|
||||||
|
13 ; A51 STARTUP.A51
|
||||||
|
14 ;
|
||||||
|
15 ; To link the modified STARTUP.OBJ file to your application use the following
|
||||||
|
16 ; Lx51 invocation:
|
||||||
|
17 ;
|
||||||
|
18 ; Lx51 your object file list, STARTUP.OBJ controls
|
||||||
|
19 ;
|
||||||
|
20 ;------------------------------------------------------------------------------
|
||||||
|
21 ;
|
||||||
|
22 ; User-defined <h> Power-On Initialization of Memory
|
||||||
|
23 ;
|
||||||
|
24 ; With the following EQU statements the initialization of memory
|
||||||
|
25 ; at processor reset can be defined:
|
||||||
|
26 ;
|
||||||
|
27 ; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||||
|
28 ; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||||
|
29 ; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||||
|
0080 30 IDATALEN EQU 80H
|
||||||
|
31 ;
|
||||||
|
32 ; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||||
|
33 ; <i> The absolute start address of XDATA memory
|
||||||
|
0000 34 XDATASTART EQU 0
|
||||||
|
35 ;
|
||||||
|
36 ; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||||
|
37 ; <i> The length of XDATA memory in bytes.
|
||||||
|
0000 38 XDATALEN EQU 0
|
||||||
|
39 ;
|
||||||
|
40 ; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||||
|
41 ; <i> The absolute start address of PDATA memory
|
||||||
|
0000 42 PDATASTART EQU 0H
|
||||||
|
43 ;
|
||||||
|
44 ; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||||
|
45 ; <i> The length of PDATA memory in bytes.
|
||||||
|
0000 46 PDATALEN EQU 0H
|
||||||
|
47 ;
|
||||||
|
48 ;</h>
|
||||||
|
49 ;------------------------------------------------------------------------------
|
||||||
|
50 ;
|
||||||
|
51 ;<h> Reentrant Stack Initialization
|
||||||
|
52 ;
|
||||||
|
53 ; The following EQU statements define the stack pointer for reentrant
|
||||||
|
54 ; functions and initialized it:
|
||||||
|
55 ;
|
||||||
|
56 ; <h> Stack Space for reentrant functions in the SMALL model.
|
||||||
|
57 ; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 12/27/2025 19:02:37 PAGE 2
|
||||||
|
|
||||||
|
58 ; <i> Stack space for reentrant functions in the SMALL model.
|
||||||
|
0000 59 IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||||
|
60 ; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||||
|
61 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0100 62 IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
63 ; </h>
|
||||||
|
64 ;
|
||||||
|
65 ; <h> Stack Space for reentrant functions in the LARGE model.
|
||||||
|
66 ; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||||
|
67 ; <i> Stack space for reentrant functions in the LARGE model.
|
||||||
|
0000 68 XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||||
|
69 ; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||||
|
70 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0000 71 XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||||
|
72 ; </h>
|
||||||
|
73 ;
|
||||||
|
74 ; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||||
|
75 ; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||||
|
76 ; <i> Stack space for reentrant functions in the COMPACT model.
|
||||||
|
0000 77 PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||||
|
78 ;
|
||||||
|
79 ; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||||
|
80 ; <i> Set the top of the stack to the highest location.
|
||||||
|
0100 81 PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
82 ; </h>
|
||||||
|
83 ;</h>
|
||||||
|
84 ;------------------------------------------------------------------------------
|
||||||
|
85 ;
|
||||||
|
86 ; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||||
|
87 ; <e>Compact Model Page Definition
|
||||||
|
88 ;
|
||||||
|
89 ; <i>Define the XDATA page used for PDATA variables.
|
||||||
|
90 ; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||||
|
91 ;
|
||||||
|
92 ; Enable pdata memory page initalization
|
||||||
|
0000 93 PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||||
|
94 ;
|
||||||
|
95 ; <o> PPAGE number <0x0-0xFF>
|
||||||
|
96 ; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||||
|
0000 97 PPAGE EQU 0
|
||||||
|
98 ;
|
||||||
|
99 ; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||||
|
100 ; <i> most 8051 variants use P2 as uppermost address byte
|
||||||
|
00A0 101 PPAGE_SFR DATA 0A0H
|
||||||
|
102 ;
|
||||||
|
103 ; </e>
|
||||||
|
104 ;------------------------------------------------------------------------------
|
||||||
|
105
|
||||||
|
106 ; Standard SFR Symbols
|
||||||
|
00E0 107 ACC DATA 0E0H
|
||||||
|
00F0 108 B DATA 0F0H
|
||||||
|
0081 109 SP DATA 81H
|
||||||
|
0082 110 DPL DATA 82H
|
||||||
|
0083 111 DPH DATA 83H
|
||||||
|
112
|
||||||
|
113 NAME ?C_STARTUP
|
||||||
|
114
|
||||||
|
115
|
||||||
|
116 ?C_C51STARTUP SEGMENT CODE
|
||||||
|
117 ?STACK SEGMENT IDATA
|
||||||
|
118
|
||||||
|
---- 119 RSEG ?STACK
|
||||||
|
0000 120 DS 1
|
||||||
|
121
|
||||||
|
122 EXTRN CODE (?C_START)
|
||||||
|
123 PUBLIC ?C_STARTUP
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 12/27/2025 19:02:37 PAGE 3
|
||||||
|
|
||||||
|
124
|
||||||
|
---- 125 CSEG AT 0
|
||||||
|
0000 020000 F 126 ?C_STARTUP: LJMP STARTUP1
|
||||||
|
127
|
||||||
|
---- 128 RSEG ?C_C51STARTUP
|
||||||
|
129
|
||||||
|
0000 130 STARTUP1:
|
||||||
|
131
|
||||||
|
132 IF IDATALEN <> 0
|
||||||
|
0000 787F 133 MOV R0,#IDATALEN - 1
|
||||||
|
0002 E4 134 CLR A
|
||||||
|
0003 F6 135 IDATALOOP: MOV @R0,A
|
||||||
|
0004 D8FD 136 DJNZ R0,IDATALOOP
|
||||||
|
137 ENDIF
|
||||||
|
138
|
||||||
|
139 IF XDATALEN <> 0
|
||||||
|
MOV DPTR,#XDATASTART
|
||||||
|
MOV R7,#LOW (XDATALEN)
|
||||||
|
IF (LOW (XDATALEN)) <> 0
|
||||||
|
MOV R6,#(HIGH (XDATALEN)) +1
|
||||||
|
ELSE
|
||||||
|
MOV R6,#HIGH (XDATALEN)
|
||||||
|
ENDIF
|
||||||
|
CLR A
|
||||||
|
XDATALOOP: MOVX @DPTR,A
|
||||||
|
INC DPTR
|
||||||
|
DJNZ R7,XDATALOOP
|
||||||
|
DJNZ R6,XDATALOOP
|
||||||
|
ENDIF
|
||||||
|
153
|
||||||
|
154 IF PPAGEENABLE <> 0
|
||||||
|
MOV PPAGE_SFR,#PPAGE
|
||||||
|
ENDIF
|
||||||
|
157
|
||||||
|
158 IF PDATALEN <> 0
|
||||||
|
MOV R0,#LOW (PDATASTART)
|
||||||
|
MOV R7,#LOW (PDATALEN)
|
||||||
|
CLR A
|
||||||
|
PDATALOOP: MOVX @R0,A
|
||||||
|
INC R0
|
||||||
|
DJNZ R7,PDATALOOP
|
||||||
|
ENDIF
|
||||||
|
166
|
||||||
|
167 IF IBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_IBP)
|
||||||
|
|
||||||
|
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
172
|
||||||
|
173 IF XBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_XBP)
|
||||||
|
|
||||||
|
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||||
|
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
179
|
||||||
|
180 IF PBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_PBP)
|
||||||
|
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
184
|
||||||
|
0006 758100 F 185 MOV SP,#?STACK-1
|
||||||
|
186
|
||||||
|
187 ; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||||
|
188 ;<h> Code Banking
|
||||||
|
189 ; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 12/27/2025 19:02:37 PAGE 4
|
||||||
|
|
||||||
|
190
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
195 ;</h>
|
||||||
|
0009 020000 F 196 LJMP ?C_START
|
||||||
|
197
|
||||||
|
198 END
|
||||||
|
A51 MACRO ASSEMBLER STARTUP 12/27/2025 19:02:37 PAGE 5
|
||||||
|
|
||||||
|
SYMBOL TABLE LISTING
|
||||||
|
------ ----- -------
|
||||||
|
|
||||||
|
|
||||||
|
N A M E T Y P E V A L U E ATTRIBUTES
|
||||||
|
|
||||||
|
?C_C51STARTUP. . . C SEG 000CH REL=UNIT
|
||||||
|
?C_START . . . . . C ADDR ----- EXT
|
||||||
|
?C_STARTUP . . . . C ADDR 0000H A
|
||||||
|
?STACK . . . . . . I SEG 0001H REL=UNIT
|
||||||
|
ACC. . . . . . . . D ADDR 00E0H A
|
||||||
|
B. . . . . . . . . D ADDR 00F0H A
|
||||||
|
DPH. . . . . . . . D ADDR 0083H A
|
||||||
|
DPL. . . . . . . . D ADDR 0082H A
|
||||||
|
IBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
IBPSTACKTOP. . . . N NUMB 0100H A
|
||||||
|
IDATALEN . . . . . N NUMB 0080H A
|
||||||
|
IDATALOOP. . . . . C ADDR 0003H R SEG=?C_C51STARTUP
|
||||||
|
PBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
PBPSTACKTOP. . . . N NUMB 0100H A
|
||||||
|
PDATALEN . . . . . N NUMB 0000H A
|
||||||
|
PDATASTART . . . . N NUMB 0000H A
|
||||||
|
PPAGE. . . . . . . N NUMB 0000H A
|
||||||
|
PPAGEENABLE. . . . N NUMB 0000H A
|
||||||
|
PPAGE_SFR. . . . . D ADDR 00A0H A
|
||||||
|
SP . . . . . . . . D ADDR 0081H A
|
||||||
|
STARTUP1 . . . . . C ADDR 0000H R SEG=?C_C51STARTUP
|
||||||
|
XBPSTACK . . . . . N NUMB 0000H A
|
||||||
|
XBPSTACKTOP. . . . N NUMB 0000H A
|
||||||
|
XDATALEN . . . . . N NUMB 0000H A
|
||||||
|
XDATASTART . . . . N NUMB 0000H A
|
||||||
|
|
||||||
|
|
||||||
|
REGISTER BANK(S) USED: 0
|
||||||
|
|
||||||
|
|
||||||
|
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||||
115
Listings/main.lst
Normal file
115
Listings/main.lst
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
C51 COMPILER V9.60.0.0 MAIN 12/27/2025 19:02:38 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILER V9.60.0.0, COMPILATION OF MODULE MAIN
|
||||||
|
OBJECT MODULE PLACED IN .\Objects\main.obj
|
||||||
|
COMPILER INVOKED BY: D:\keli\uv5_arm\C51\BIN\C51.EXE main.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings
|
||||||
|
-\main.lst) TABS(2) OBJECT(.\Objects\main.obj)
|
||||||
|
|
||||||
|
line level source
|
||||||
|
|
||||||
|
1 #include "REG51.h"
|
||||||
|
2 #include "INTRINS.h"
|
||||||
|
3
|
||||||
|
4 sbit K1 =P1^4 ; //<2F><><EFBFBD>Ӽ<EFBFBD>
|
||||||
|
5 sbit K2 =P1^5 ; //<2F><><EFBFBD>ټ<EFBFBD>
|
||||||
|
6 sbit P00 =P0^1;
|
||||||
|
7 unsigned char PWM=0xe7; //<2F><><EFBFBD><EFBFBD>ֵ
|
||||||
|
8
|
||||||
|
9
|
||||||
|
10 void delayms(unsigned char ms);
|
||||||
|
11 void delay(unsigned char t);
|
||||||
|
12
|
||||||
|
13 /*********************************************************/
|
||||||
|
14 void main()
|
||||||
|
15 {
|
||||||
|
16 1
|
||||||
|
17 1 P1=0xff;
|
||||||
|
18 1 TMOD=0x21 ;
|
||||||
|
19 1 TH0=0xff ; //50us<75><73>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
20 1 TL0=0xce ; //Ƶ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
||||||
|
21 1
|
||||||
|
22 1 TH1=PWM ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
23 1 TL1=0 ;
|
||||||
|
24 1
|
||||||
|
25 1 EA=1;
|
||||||
|
26 1 ET0=1;
|
||||||
|
27 1 ET1=1;
|
||||||
|
28 1
|
||||||
|
29 1 TR0=1 ;
|
||||||
|
30 1
|
||||||
|
31 1 while(1)
|
||||||
|
32 1 {
|
||||||
|
33 2 do{
|
||||||
|
34 3 if(PWM!=0xff)
|
||||||
|
35 3 {PWM++ ;delayms(10);}
|
||||||
|
36 3 else Beep() ;
|
||||||
|
*** WARNING C206 IN LINE 36 OF main.c: 'Beep': missing function-prototype
|
||||||
|
37 3 }
|
||||||
|
38 2 while(K1==0);
|
||||||
|
39 2
|
||||||
|
40 2 do{
|
||||||
|
41 3 if(PWM!=0xce)
|
||||||
|
42 3 {PWM-- ;delayms(10);}
|
||||||
|
43 3 else Beep() ;
|
||||||
|
44 3 }
|
||||||
|
45 2 while(K2==0);
|
||||||
|
46 2 }
|
||||||
|
47 1 }
|
||||||
|
48
|
||||||
|
49 void timer0() interrupt 1
|
||||||
|
50 {
|
||||||
|
51 1 TR1=0 ;
|
||||||
|
52 1 TH0=0xff ;
|
||||||
|
53 1 TL0=0xce ;
|
||||||
|
C51 COMPILER V9.60.0.0 MAIN 12/27/2025 19:02:38 PAGE 2
|
||||||
|
|
||||||
|
54 1 TH1=PWM ;
|
||||||
|
55 1 TR1=1 ;
|
||||||
|
56 1 P00=0 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
57 1 }
|
||||||
|
58
|
||||||
|
59
|
||||||
|
60 void timer1() interrupt 3
|
||||||
|
61 {
|
||||||
|
62 1 TR1=0 ;
|
||||||
|
63 1 P00=1 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
64 1 }
|
||||||
|
65
|
||||||
|
66
|
||||||
|
67 /*********************************************************/
|
||||||
|
68 // <20><>ʱ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
||||||
|
69 /*********************************************************/
|
||||||
|
70 void delay(unsigned char t)
|
||||||
|
71 {
|
||||||
|
72 1 while(t--) ;
|
||||||
|
73 1 }
|
||||||
|
74
|
||||||
|
75 /*********************************************************/
|
||||||
|
76 // <20><>ʱ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
||||||
|
77 /*********************************************************/
|
||||||
|
78 void delayms(unsigned char ms)
|
||||||
|
79
|
||||||
|
80 {
|
||||||
|
81 1 unsigned char i ;
|
||||||
|
82 1 while(ms--)
|
||||||
|
83 1 {
|
||||||
|
84 2 for(i = 0 ; i < 120 ; i++) ;
|
||||||
|
85 2 }
|
||||||
|
86 1 }
|
||||||
|
87
|
||||||
|
88 /*********************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||||
|
CODE SIZE = 119 ----
|
||||||
|
CONSTANT SIZE = ---- ----
|
||||||
|
XDATA SIZE = ---- ----
|
||||||
|
PDATA SIZE = ---- ----
|
||||||
|
DATA SIZE = 1 ----
|
||||||
|
IDATA SIZE = ---- ----
|
||||||
|
BIT SIZE = ---- ----
|
||||||
|
END OF MODULE INFORMATION.
|
||||||
|
|
||||||
|
|
||||||
|
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
|
||||||
226
Listings/main.m51
Normal file
226
Listings/main.m51
Normal file
@@ -0,0 +1,226 @@
|
|||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 12/27/2025 19:02:38 PAGE 1
|
||||||
|
|
||||||
|
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0, INVOKED BY:
|
||||||
|
D:\KELI\UV5_ARM\C51\BIN\BL51.EXE .\Objects\STARTUP.obj, .\Objects\main.obj TO .\Objects\main PRINT (.\Listings\main.m51)
|
||||||
|
>> RAMSIZE (256)
|
||||||
|
|
||||||
|
|
||||||
|
MEMORY MODEL: SMALL
|
||||||
|
|
||||||
|
|
||||||
|
INPUT MODULES INCLUDED:
|
||||||
|
.\Objects\STARTUP.obj (?C_STARTUP)
|
||||||
|
.\Objects\main.obj (MAIN)
|
||||||
|
D:\KELI\UV5_ARM\C51\LIB\C51S.LIB (?C_INIT)
|
||||||
|
|
||||||
|
|
||||||
|
LINK MAP OF MODULE: .\Objects\main (?C_STARTUP)
|
||||||
|
|
||||||
|
|
||||||
|
TYPE BASE LENGTH RELOCATION SEGMENT NAME
|
||||||
|
-----------------------------------------------------
|
||||||
|
|
||||||
|
* * * * * * * D A T A M E M O R Y * * * * * * *
|
||||||
|
REG 0000H 0008H ABSOLUTE "REG BANK 0"
|
||||||
|
DATA 0008H 0001H UNIT ?DT?MAIN
|
||||||
|
IDATA 0009H 0001H UNIT ?STACK
|
||||||
|
|
||||||
|
* * * * * * * C O D E M E M O R Y * * * * * * *
|
||||||
|
CODE 0000H 0003H ABSOLUTE
|
||||||
|
0003H 0008H *** GAP ***
|
||||||
|
CODE 000BH 0003H ABSOLUTE
|
||||||
|
000EH 000DH *** GAP ***
|
||||||
|
CODE 001BH 0003H ABSOLUTE
|
||||||
|
001EH 07E2H *** GAP ***
|
||||||
|
CODE 0800H 008CH UNIT ?C_C51STARTUP
|
||||||
|
CODE 088CH 0045H UNIT ?PR?MAIN?MAIN
|
||||||
|
CODE 08D1H 0016H UNIT ?PR?_DELAYMS?MAIN
|
||||||
|
CODE 08E7H 0010H UNIT ?PR?TIMER0?MAIN
|
||||||
|
CODE 08F7H 0007H UNIT ?PR?_DELAY?MAIN
|
||||||
|
CODE 08FEH 0005H UNIT ?PR?TIMER1?MAIN
|
||||||
|
CODE 0903H 0004H UNIT ?C_INITSEG
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
OVERLAY MAP OF MODULE: .\Objects\main (?C_STARTUP)
|
||||||
|
|
||||||
|
|
||||||
|
SEGMENT
|
||||||
|
+--> CALLED SEGMENT
|
||||||
|
---------------------
|
||||||
|
?C_C51STARTUP
|
||||||
|
+--> ?PR?MAIN?MAIN
|
||||||
|
+--> ?C_INITSEG
|
||||||
|
|
||||||
|
?PR?MAIN?MAIN
|
||||||
|
+--> ?PR?_DELAYMS?MAIN
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
UNRESOLVED EXTERNAL SYMBOLS:
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 12/27/2025 19:02:38 PAGE 2
|
||||||
|
|
||||||
|
|
||||||
|
BEEP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
SYMBOL TABLE OF MODULE: .\Objects\main (?C_STARTUP)
|
||||||
|
|
||||||
|
VALUE TYPE NAME
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
------- MODULE ?C_STARTUP
|
||||||
|
C:0800H SEGMENT ?C_C51STARTUP
|
||||||
|
I:0009H SEGMENT ?STACK
|
||||||
|
C:0000H PUBLIC ?C_STARTUP
|
||||||
|
D:00E0H SYMBOL ACC
|
||||||
|
D:00F0H SYMBOL B
|
||||||
|
D:0083H SYMBOL DPH
|
||||||
|
D:0082H SYMBOL DPL
|
||||||
|
N:0000H SYMBOL IBPSTACK
|
||||||
|
N:0100H SYMBOL IBPSTACKTOP
|
||||||
|
N:0080H SYMBOL IDATALEN
|
||||||
|
C:0803H SYMBOL IDATALOOP
|
||||||
|
N:0000H SYMBOL PBPSTACK
|
||||||
|
N:0100H SYMBOL PBPSTACKTOP
|
||||||
|
N:0000H SYMBOL PDATALEN
|
||||||
|
N:0000H SYMBOL PDATASTART
|
||||||
|
N:0000H SYMBOL PPAGE
|
||||||
|
N:0000H SYMBOL PPAGEENABLE
|
||||||
|
D:00A0H SYMBOL PPAGE_SFR
|
||||||
|
D:0081H SYMBOL SP
|
||||||
|
C:0800H SYMBOL STARTUP1
|
||||||
|
N:0000H SYMBOL XBPSTACK
|
||||||
|
N:0000H SYMBOL XBPSTACKTOP
|
||||||
|
N:0000H SYMBOL XDATALEN
|
||||||
|
N:0000H SYMBOL XDATASTART
|
||||||
|
C:0000H LINE# 126
|
||||||
|
C:0800H LINE# 133
|
||||||
|
C:0802H LINE# 134
|
||||||
|
C:0803H LINE# 135
|
||||||
|
C:0804H LINE# 136
|
||||||
|
C:0806H LINE# 185
|
||||||
|
C:0809H LINE# 196
|
||||||
|
------- ENDMOD ?C_STARTUP
|
||||||
|
|
||||||
|
------- MODULE MAIN
|
||||||
|
C:0000H SYMBOL _ICE_DUMMY_
|
||||||
|
D:0080H PUBLIC P0
|
||||||
|
D:0090H PUBLIC P1
|
||||||
|
B:00A8H.7 PUBLIC EA
|
||||||
|
C:08F7H PUBLIC _delay
|
||||||
|
C:088CH PUBLIC main
|
||||||
|
B:0080H.1 PUBLIC P00
|
||||||
|
D:0089H PUBLIC TMOD
|
||||||
|
B:00A8H.1 PUBLIC ET0
|
||||||
|
B:00A8H.3 PUBLIC ET1
|
||||||
|
D:008CH PUBLIC TH0
|
||||||
|
D:008DH PUBLIC TH1
|
||||||
|
D:008AH PUBLIC TL0
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 12/27/2025 19:02:38 PAGE 3
|
||||||
|
|
||||||
|
|
||||||
|
D:008BH PUBLIC TL1
|
||||||
|
C:08E7H PUBLIC timer0
|
||||||
|
C:08FEH PUBLIC timer1
|
||||||
|
B:0088H.4 PUBLIC TR0
|
||||||
|
B:0088H.6 PUBLIC TR1
|
||||||
|
C:08D1H PUBLIC _delayms
|
||||||
|
D:0008H PUBLIC PWM
|
||||||
|
B:0090H.4 PUBLIC K1
|
||||||
|
B:0090H.5 PUBLIC K2
|
||||||
|
------- PROC MAIN
|
||||||
|
C:088CH LINE# 14
|
||||||
|
C:088CH LINE# 15
|
||||||
|
C:088CH LINE# 17
|
||||||
|
C:088FH LINE# 18
|
||||||
|
C:0892H LINE# 19
|
||||||
|
C:0895H LINE# 20
|
||||||
|
C:0898H LINE# 22
|
||||||
|
C:089BH LINE# 23
|
||||||
|
C:089EH LINE# 25
|
||||||
|
C:08A0H LINE# 26
|
||||||
|
C:08A2H LINE# 27
|
||||||
|
C:08A4H LINE# 29
|
||||||
|
C:08A6H LINE# 31
|
||||||
|
C:08A6H LINE# 32
|
||||||
|
C:08A6H LINE# 33
|
||||||
|
C:08A6H LINE# 34
|
||||||
|
C:08ABH LINE# 35
|
||||||
|
C:08B4H LINE# 36
|
||||||
|
C:08B7H LINE# 37
|
||||||
|
C:08B7H LINE# 38
|
||||||
|
C:08BAH LINE# 40
|
||||||
|
C:08BAH LINE# 41
|
||||||
|
C:08C0H LINE# 42
|
||||||
|
C:08C9H LINE# 43
|
||||||
|
C:08CCH LINE# 44
|
||||||
|
C:08CCH LINE# 45
|
||||||
|
C:08CFH LINE# 46
|
||||||
|
------- ENDPROC MAIN
|
||||||
|
------- PROC TIMER0
|
||||||
|
C:08E7H LINE# 49
|
||||||
|
C:08E7H LINE# 51
|
||||||
|
C:08E9H LINE# 52
|
||||||
|
C:08ECH LINE# 53
|
||||||
|
C:08EFH LINE# 54
|
||||||
|
C:08F2H LINE# 55
|
||||||
|
C:08F4H LINE# 56
|
||||||
|
C:08F6H LINE# 57
|
||||||
|
------- ENDPROC TIMER0
|
||||||
|
------- PROC TIMER1
|
||||||
|
C:08FEH LINE# 60
|
||||||
|
C:08FEH LINE# 62
|
||||||
|
C:0900H LINE# 63
|
||||||
|
C:0902H LINE# 64
|
||||||
|
------- ENDPROC TIMER1
|
||||||
|
------- PROC _DELAY
|
||||||
|
D:0007H SYMBOL t
|
||||||
|
C:08F7H LINE# 70
|
||||||
|
BL51 BANKED LINKER/LOCATER V6.22.2.0 12/27/2025 19:02:38 PAGE 4
|
||||||
|
|
||||||
|
|
||||||
|
C:08F7H LINE# 71
|
||||||
|
C:08F7H LINE# 72
|
||||||
|
C:08FDH LINE# 73
|
||||||
|
------- ENDPROC _DELAY
|
||||||
|
------- PROC _DELAYMS
|
||||||
|
D:0007H SYMBOL ms
|
||||||
|
------- DO
|
||||||
|
D:0006H SYMBOL i
|
||||||
|
------- ENDDO
|
||||||
|
C:08D1H LINE# 78
|
||||||
|
C:08D1H LINE# 80
|
||||||
|
C:08D1H LINE# 82
|
||||||
|
C:08D7H LINE# 83
|
||||||
|
C:08D7H LINE# 84
|
||||||
|
C:08E6H LINE# 85
|
||||||
|
C:08E6H LINE# 86
|
||||||
|
------- ENDPROC _DELAYMS
|
||||||
|
------- ENDMOD MAIN
|
||||||
|
|
||||||
|
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||||
|
SEGMENT: ?PR?_DELAY?MAIN
|
||||||
|
|
||||||
|
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
|
||||||
|
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
ADDRESS: 08B5H
|
||||||
|
|
||||||
|
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
ADDRESS: 08CAH
|
||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 008FH BYTE ( 6%) *
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
Program Size: data=10.0 xdata=0 code=272
|
||||||
|
LINK/LOCATE RUN COMPLETE. 4 WARNING(S), 0 ERROR(S)
|
||||||
1
Objects/STARTUP._ia
Normal file
1
Objects/STARTUP._ia
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"STARTUP.A51" SET (SMALL) DEBUG PRINT(.\Listings\STARTUP.lst) OBJECT(.\Objects\STARTUP.obj) EP
|
||||||
BIN
Objects/STARTUP.obj
Normal file
BIN
Objects/STARTUP.obj
Normal file
Binary file not shown.
BIN
Objects/main
Normal file
BIN
Objects/main
Normal file
Binary file not shown.
1
Objects/main.__i
Normal file
1
Objects/main.__i
Normal file
@@ -0,0 +1 @@
|
|||||||
|
"main.c" OPTIMIZE (8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\main.lst) TABS (2) OBJECT(.\Objects\main.obj)
|
||||||
49
Objects/main.build_log.htm
Normal file
49
Objects/main.build_log.htm
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
<pre>
|
||||||
|
<h1><EFBFBD>Vision Build Log</h1>
|
||||||
|
<h2>Tool Versions:</h2>
|
||||||
|
IDE-Version: <20><>Vision V5.27.1.0
|
||||||
|
Copyright (C) 2019 ARM Ltd and ARM Germany GmbH. All rights reserved.
|
||||||
|
License Information: root Administrator, root, LIC=----
|
||||||
|
|
||||||
|
Tool Versions:
|
||||||
|
Toolchain: PK51 Prof. Develpers Kit Version: 9.60.0.0
|
||||||
|
Toolchain Path: D:\keli\uv5_arm\C51\BIN
|
||||||
|
C Compiler: C51.exe V9.60.0.0
|
||||||
|
Assembler: A51.exe V8.2.7.0
|
||||||
|
Linker/Locator: BL51.exe V6.22.2.0
|
||||||
|
Library Manager: LIB51.exe V4.30.1.0
|
||||||
|
Hex Converter: OH51.exe V2.7.0.0
|
||||||
|
CPU DLL: S8051.DLL V3.122.0.0
|
||||||
|
Dialog DLL: DP51.DLL V2.67.0.0
|
||||||
|
<h2>Project:</h2>
|
||||||
|
G:\Project\C\stc51\C51-PWM\main.uvproj
|
||||||
|
Project File Date: 12/27/2025
|
||||||
|
|
||||||
|
<h2>Output:</h2>
|
||||||
|
Rebuild target 'Target 1'
|
||||||
|
assembling STARTUP.A51...
|
||||||
|
compiling main.c...
|
||||||
|
main.c(36): warning C206: 'Beep': missing function-prototype
|
||||||
|
linking...
|
||||||
|
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
|
||||||
|
SEGMENT: ?PR?_DELAY?MAIN
|
||||||
|
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
ADDRESS: 08B5H
|
||||||
|
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
|
||||||
|
SYMBOL: BEEP
|
||||||
|
MODULE: .\Objects\main.obj (MAIN)
|
||||||
|
ADDRESS: 08CAH
|
||||||
|
Program Size: data=10.0 xdata=0 code=272
|
||||||
|
creating hex file from ".\Objects\main"...
|
||||||
|
".\Objects\main" - 0 Error(s), 5 Warning(s).
|
||||||
|
Build Time Elapsed: 00:00:01
|
||||||
|
</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
26
Objects/main.hex
Normal file
26
Objects/main.hex
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
:03000000020800F3
|
||||||
|
:0C080000787FE4F6D8FD758108020847F7
|
||||||
|
:030903000108E701
|
||||||
|
:10088C007590FF758921758CFF758ACE85088DE46E
|
||||||
|
:10089C00F58BD2AFD2A9D2ABD28CE508F4600905A6
|
||||||
|
:1008AC00087F0A1208D180031200003094ECE5088E
|
||||||
|
:1008BC0064CE600915087F0A1208D180031200006B
|
||||||
|
:0508CC003095EB80D522
|
||||||
|
:03000B000208E701
|
||||||
|
:1008E700C28E758CFF758ACE85088DD28EC28132F5
|
||||||
|
:03001B000208FEDA
|
||||||
|
:0508FE00C28ED2813220
|
||||||
|
:0708F700AE071FEE70FA22AC
|
||||||
|
:1008D100AD071FED600FE4FEEEC394787480948041
|
||||||
|
:0508E10050EE0E80F353
|
||||||
|
:0108E60022EF
|
||||||
|
:10080C0002088CE493A3F8E493A34003F68001F26E
|
||||||
|
:10081C0008DFF48029E493A3F85407240CC8C333ED
|
||||||
|
:10082C00C4540F4420C8834004F456800146F6DFBC
|
||||||
|
:10083C00E4800B0102040810204080900903E47E40
|
||||||
|
:10084C00019360BCA3FF543F30E509541FFEE493B1
|
||||||
|
:10085C00A360010ECF54C025E060A840B8E493A378
|
||||||
|
:10086C00FAE493A3F8E493A3C8C582C8CAC583CAA3
|
||||||
|
:10087C00F0A3C8C582C8CAC583CADFE9DEE780BE5B
|
||||||
|
:0109060000F0
|
||||||
|
:00000001FF
|
||||||
4
Objects/main.lnp
Normal file
4
Objects/main.lnp
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
".\Objects\STARTUP.obj",
|
||||||
|
".\Objects\main.obj"
|
||||||
|
TO ".\Objects\main"
|
||||||
|
PRINT(".\Listings\main.m51") RAMSIZE(256)
|
||||||
BIN
Objects/main.obj
Normal file
BIN
Objects/main.obj
Normal file
Binary file not shown.
91
REG51.h
Normal file
91
REG51.h
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
/*--------------------------------------------------------------------------
|
||||||
|
REG51.H
|
||||||
|
|
||||||
|
Header file for generic 80C51 and 80C31 microcontroller.
|
||||||
|
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
All rights reserved.
|
||||||
|
--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef __REG51_H__
|
||||||
|
#define __REG51_H__
|
||||||
|
|
||||||
|
/* BYTE Register */
|
||||||
|
sfr P0 = 0x80;
|
||||||
|
sfr P1 = 0x90;
|
||||||
|
sfr P2 = 0xA0;
|
||||||
|
sfr P3 = 0xB0;
|
||||||
|
sfr PSW = 0xD0;
|
||||||
|
sfr ACC = 0xE0;
|
||||||
|
sfr B = 0xF0;
|
||||||
|
sfr SP = 0x81;
|
||||||
|
sfr DPL = 0x82;
|
||||||
|
sfr DPH = 0x83;
|
||||||
|
sfr PCON = 0x87;
|
||||||
|
sfr TCON = 0x88;
|
||||||
|
sfr TMOD = 0x89;
|
||||||
|
sfr TL0 = 0x8A;
|
||||||
|
sfr TL1 = 0x8B;
|
||||||
|
sfr TH0 = 0x8C;
|
||||||
|
sfr TH1 = 0x8D;
|
||||||
|
sfr IE = 0xA8;
|
||||||
|
sfr IP = 0xB8;
|
||||||
|
sfr SCON = 0x98;
|
||||||
|
sfr SBUF = 0x99;
|
||||||
|
|
||||||
|
|
||||||
|
/* BIT Register */
|
||||||
|
/* PSW */
|
||||||
|
sbit CY = 0xD7;
|
||||||
|
sbit AC = 0xD6;
|
||||||
|
sbit F0 = 0xD5;
|
||||||
|
sbit RS1 = 0xD4;
|
||||||
|
sbit RS0 = 0xD3;
|
||||||
|
sbit OV = 0xD2;
|
||||||
|
sbit P = 0xD0;
|
||||||
|
|
||||||
|
/* TCON */
|
||||||
|
sbit TF1 = 0x8F;
|
||||||
|
sbit TR1 = 0x8E;
|
||||||
|
sbit TF0 = 0x8D;
|
||||||
|
sbit TR0 = 0x8C;
|
||||||
|
sbit IE1 = 0x8B;
|
||||||
|
sbit IT1 = 0x8A;
|
||||||
|
sbit IE0 = 0x89;
|
||||||
|
sbit IT0 = 0x88;
|
||||||
|
|
||||||
|
/* IE */
|
||||||
|
sbit EA = 0xAF;
|
||||||
|
sbit ES = 0xAC;
|
||||||
|
sbit ET1 = 0xAB;
|
||||||
|
sbit EX1 = 0xAA;
|
||||||
|
sbit ET0 = 0xA9;
|
||||||
|
sbit EX0 = 0xA8;
|
||||||
|
|
||||||
|
/* IP */
|
||||||
|
sbit PS = 0xBC;
|
||||||
|
sbit PT1 = 0xBB;
|
||||||
|
sbit PX1 = 0xBA;
|
||||||
|
sbit PT0 = 0xB9;
|
||||||
|
sbit PX0 = 0xB8;
|
||||||
|
|
||||||
|
/* P3 */
|
||||||
|
sbit RD = 0xB7;
|
||||||
|
sbit WR = 0xB6;
|
||||||
|
sbit T1 = 0xB5;
|
||||||
|
sbit T0 = 0xB4;
|
||||||
|
sbit INT1 = 0xB3;
|
||||||
|
sbit INT0 = 0xB2;
|
||||||
|
sbit TXD = 0xB1;
|
||||||
|
sbit RXD = 0xB0;
|
||||||
|
|
||||||
|
/* SCON */
|
||||||
|
sbit SM0 = 0x9F;
|
||||||
|
sbit SM1 = 0x9E;
|
||||||
|
sbit SM2 = 0x9D;
|
||||||
|
sbit REN = 0x9C;
|
||||||
|
sbit TB8 = 0x9B;
|
||||||
|
sbit RB8 = 0x9A;
|
||||||
|
sbit TI = 0x99;
|
||||||
|
sbit RI = 0x98;
|
||||||
|
|
||||||
|
#endif
|
||||||
198
STARTUP.A51
Normal file
198
STARTUP.A51
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
$NOMOD51
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; This file is part of the C51 Compiler package
|
||||||
|
; Copyright (c) 1988-2005 Keil Elektronik GmbH and Keil Software, Inc.
|
||||||
|
; Version 8.01
|
||||||
|
;
|
||||||
|
; *** <<< Use Configuration Wizard in Context Menu >>> ***
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
; STARTUP.A51: This code is executed after processor reset.
|
||||||
|
;
|
||||||
|
; To translate this file use A51 with the following invocation:
|
||||||
|
;
|
||||||
|
; A51 STARTUP.A51
|
||||||
|
;
|
||||||
|
; To link the modified STARTUP.OBJ file to your application use the following
|
||||||
|
; Lx51 invocation:
|
||||||
|
;
|
||||||
|
; Lx51 your object file list, STARTUP.OBJ controls
|
||||||
|
;
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; User-defined <h> Power-On Initialization of Memory
|
||||||
|
;
|
||||||
|
; With the following EQU statements the initialization of memory
|
||||||
|
; at processor reset can be defined:
|
||||||
|
;
|
||||||
|
; <o> IDATALEN: IDATA memory size <0x0-0x100>
|
||||||
|
; <i> Note: The absolute start-address of IDATA memory is always 0
|
||||||
|
; <i> The IDATA space overlaps physically the DATA and BIT areas.
|
||||||
|
IDATALEN EQU 80H
|
||||||
|
;
|
||||||
|
; <o> XDATASTART: XDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of XDATA memory
|
||||||
|
XDATASTART EQU 0
|
||||||
|
;
|
||||||
|
; <o> XDATALEN: XDATA memory size <0x0-0xFFFF>
|
||||||
|
; <i> The length of XDATA memory in bytes.
|
||||||
|
XDATALEN EQU 0
|
||||||
|
;
|
||||||
|
; <o> PDATASTART: PDATA memory start address <0x0-0xFFFF>
|
||||||
|
; <i> The absolute start address of PDATA memory
|
||||||
|
PDATASTART EQU 0H
|
||||||
|
;
|
||||||
|
; <o> PDATALEN: PDATA memory size <0x0-0xFF>
|
||||||
|
; <i> The length of PDATA memory in bytes.
|
||||||
|
PDATALEN EQU 0H
|
||||||
|
;
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
;<h> Reentrant Stack Initialization
|
||||||
|
;
|
||||||
|
; The following EQU statements define the stack pointer for reentrant
|
||||||
|
; functions and initialized it:
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the SMALL model.
|
||||||
|
; <q> IBPSTACK: Enable SMALL model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the SMALL model.
|
||||||
|
IBPSTACK EQU 0 ; set to 1 if small reentrant is used.
|
||||||
|
; <o> IBPSTACKTOP: End address of SMALL model stack <0x0-0xFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
IBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the LARGE model.
|
||||||
|
; <q> XBPSTACK: Enable LARGE model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the LARGE model.
|
||||||
|
XBPSTACK EQU 0 ; set to 1 if large reentrant is used.
|
||||||
|
; <o> XBPSTACKTOP: End address of LARGE model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
XBPSTACKTOP EQU 0xFFFF +1 ; default 0FFFFH+1
|
||||||
|
; </h>
|
||||||
|
;
|
||||||
|
; <h> Stack Space for reentrant functions in the COMPACT model.
|
||||||
|
; <q> PBPSTACK: Enable COMPACT model reentrant stack
|
||||||
|
; <i> Stack space for reentrant functions in the COMPACT model.
|
||||||
|
PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.
|
||||||
|
;
|
||||||
|
; <o> PBPSTACKTOP: End address of COMPACT model stack <0x0-0xFFFF>
|
||||||
|
; <i> Set the top of the stack to the highest location.
|
||||||
|
PBPSTACKTOP EQU 0xFF +1 ; default 0FFH+1
|
||||||
|
; </h>
|
||||||
|
;</h>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
;
|
||||||
|
; Memory Page for Using the Compact Model with 64 KByte xdata RAM
|
||||||
|
; <e>Compact Model Page Definition
|
||||||
|
;
|
||||||
|
; <i>Define the XDATA page used for PDATA variables.
|
||||||
|
; <i>PPAGE must conform with the PPAGE set in the linker invocation.
|
||||||
|
;
|
||||||
|
; Enable pdata memory page initalization
|
||||||
|
PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.
|
||||||
|
;
|
||||||
|
; <o> PPAGE number <0x0-0xFF>
|
||||||
|
; <i> uppermost 256-byte address of the page used for PDATA variables.
|
||||||
|
PPAGE EQU 0
|
||||||
|
;
|
||||||
|
; <o> SFR address which supplies uppermost address byte <0x0-0xFF>
|
||||||
|
; <i> most 8051 variants use P2 as uppermost address byte
|
||||||
|
PPAGE_SFR DATA 0A0H
|
||||||
|
;
|
||||||
|
; </e>
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
; Standard SFR Symbols
|
||||||
|
ACC DATA 0E0H
|
||||||
|
B DATA 0F0H
|
||||||
|
SP DATA 81H
|
||||||
|
DPL DATA 82H
|
||||||
|
DPH DATA 83H
|
||||||
|
|
||||||
|
NAME ?C_STARTUP
|
||||||
|
|
||||||
|
|
||||||
|
?C_C51STARTUP SEGMENT CODE
|
||||||
|
?STACK SEGMENT IDATA
|
||||||
|
|
||||||
|
RSEG ?STACK
|
||||||
|
DS 1
|
||||||
|
|
||||||
|
EXTRN CODE (?C_START)
|
||||||
|
PUBLIC ?C_STARTUP
|
||||||
|
|
||||||
|
CSEG AT 0
|
||||||
|
?C_STARTUP: LJMP STARTUP1
|
||||||
|
|
||||||
|
RSEG ?C_C51STARTUP
|
||||||
|
|
||||||
|
STARTUP1:
|
||||||
|
|
||||||
|
IF IDATALEN <> 0
|
||||||
|
MOV R0,#IDATALEN - 1
|
||||||
|
CLR A
|
||||||
|
IDATALOOP: MOV @R0,A
|
||||||
|
DJNZ R0,IDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XDATALEN <> 0
|
||||||
|
MOV DPTR,#XDATASTART
|
||||||
|
MOV R7,#LOW (XDATALEN)
|
||||||
|
IF (LOW (XDATALEN)) <> 0
|
||||||
|
MOV R6,#(HIGH (XDATALEN)) +1
|
||||||
|
ELSE
|
||||||
|
MOV R6,#HIGH (XDATALEN)
|
||||||
|
ENDIF
|
||||||
|
CLR A
|
||||||
|
XDATALOOP: MOVX @DPTR,A
|
||||||
|
INC DPTR
|
||||||
|
DJNZ R7,XDATALOOP
|
||||||
|
DJNZ R6,XDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PPAGEENABLE <> 0
|
||||||
|
MOV PPAGE_SFR,#PPAGE
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PDATALEN <> 0
|
||||||
|
MOV R0,#LOW (PDATASTART)
|
||||||
|
MOV R7,#LOW (PDATALEN)
|
||||||
|
CLR A
|
||||||
|
PDATALOOP: MOVX @R0,A
|
||||||
|
INC R0
|
||||||
|
DJNZ R7,PDATALOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF IBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_IBP)
|
||||||
|
|
||||||
|
MOV ?C_IBP,#LOW IBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF XBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_XBP)
|
||||||
|
|
||||||
|
MOV ?C_XBP,#HIGH XBPSTACKTOP
|
||||||
|
MOV ?C_XBP+1,#LOW XBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
IF PBPSTACK <> 0
|
||||||
|
EXTRN DATA (?C_PBP)
|
||||||
|
MOV ?C_PBP,#LOW PBPSTACKTOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
MOV SP,#?STACK-1
|
||||||
|
|
||||||
|
; This code is required if you use L51_BANK.A51 with Banking Mode 4
|
||||||
|
;<h> Code Banking
|
||||||
|
; <q> Select Bank 0 for L51_BANK.A51 Mode 4
|
||||||
|
#if 0
|
||||||
|
; <i> Initialize bank mechanism to code bank 0 when using L51_BANK.A51 with Banking Mode 4.
|
||||||
|
EXTRN CODE (?B_SWITCH0)
|
||||||
|
CALL ?B_SWITCH0 ; init bank mechanism to code bank 0
|
||||||
|
#endif
|
||||||
|
;</h>
|
||||||
|
LJMP ?C_START
|
||||||
|
|
||||||
|
END
|
||||||
10
Target 1.BAT
Normal file
10
Target 1.BAT
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
SET C51INC=D:\keli\uv5_arm\C51\Inc;D:\keli\uv5_arm\C51\Inc\STC
|
||||||
|
SET C51LIB=D:\keli\uv5_arm\C51\Lib
|
||||||
|
SET CPU_TYPE=STC89C52RC Series
|
||||||
|
SET CPU_VENDOR=STC
|
||||||
|
SET UV2_TARGET=Target 1
|
||||||
|
SET CPU_XTAL=0x00B71B00
|
||||||
|
"D:\keli\uv5_arm\C51\BIN\A51.EXE" @".\Objects\STARTUP._ia"
|
||||||
|
"D:\keli\uv5_arm\C51\BIN\C51.EXE" @".\Objects\main.__i"
|
||||||
|
"D:\keli\uv5_arm\C51\BIN\BL51.EXE" @".\Objects\main.lnp"
|
||||||
|
"D:\keli\uv5_arm\C51\BIN\OH51.EXE" ".\Objects\main"
|
||||||
88
main.c
Normal file
88
main.c
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
#include "REG51.h"
|
||||||
|
#include "INTRINS.h"
|
||||||
|
|
||||||
|
sbit K1 =P1^4 ; //<2F><><EFBFBD>Ӽ<EFBFBD>
|
||||||
|
sbit K2 =P1^5 ; //<2F><><EFBFBD>ټ<EFBFBD>
|
||||||
|
sbit P00 =P0^1;
|
||||||
|
unsigned char PWM=0xe7; //<2F><><EFBFBD><EFBFBD>ֵ
|
||||||
|
|
||||||
|
|
||||||
|
void delayms(unsigned char ms);
|
||||||
|
void delay(unsigned char t);
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
P1=0xff;
|
||||||
|
TMOD=0x21 ;
|
||||||
|
TH0=0xff ; //50us<75><73>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
||||||
|
TL0=0xce ; //Ƶ<>ʵ<EFBFBD><CAB5><EFBFBD>
|
||||||
|
|
||||||
|
TH1=PWM ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
TL1=0 ;
|
||||||
|
|
||||||
|
EA=1;
|
||||||
|
ET0=1;
|
||||||
|
ET1=1;
|
||||||
|
|
||||||
|
TR0=1 ;
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
do{
|
||||||
|
if(PWM!=0xff)
|
||||||
|
{PWM++ ;delayms(10);}
|
||||||
|
else Beep() ;
|
||||||
|
}
|
||||||
|
while(K1==0);
|
||||||
|
|
||||||
|
do{
|
||||||
|
if(PWM!=0xce)
|
||||||
|
{PWM-- ;delayms(10);}
|
||||||
|
else Beep() ;
|
||||||
|
}
|
||||||
|
while(K2==0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void timer0() interrupt 1
|
||||||
|
{
|
||||||
|
TR1=0 ;
|
||||||
|
TH0=0xff ;
|
||||||
|
TL0=0xce ;
|
||||||
|
TH1=PWM ;
|
||||||
|
TR1=1 ;
|
||||||
|
P00=0 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void timer1() interrupt 3
|
||||||
|
{
|
||||||
|
TR1=0 ;
|
||||||
|
P00=1 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
// <20><>ʱ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
||||||
|
/*********************************************************/
|
||||||
|
void delay(unsigned char t)
|
||||||
|
{
|
||||||
|
while(t--) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
|
// <20><>ʱ<EFBFBD>ӳ<EFBFBD><D3B3><EFBFBD>
|
||||||
|
/*********************************************************/
|
||||||
|
void delayms(unsigned char ms)
|
||||||
|
|
||||||
|
{
|
||||||
|
unsigned char i ;
|
||||||
|
while(ms--)
|
||||||
|
{
|
||||||
|
for(i = 0 ; i < 120 ; i++) ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*********************************************************/
|
||||||
1914
main.uvgui.Administrator
Normal file
1914
main.uvgui.Administrator
Normal file
File diff suppressed because one or more lines are too long
221
main.uvopt
Normal file
221
main.uvopt
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_opt.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.0</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Extensions>
|
||||||
|
<cExt>*.c</cExt>
|
||||||
|
<aExt>*.s*; *.src; *.a*</aExt>
|
||||||
|
<oExt>*.obj; *.o</oExt>
|
||||||
|
<lExt>*.lib</lExt>
|
||||||
|
<tExt>*.txt; *.h; *.inc</tExt>
|
||||||
|
<pExt>*.plm</pExt>
|
||||||
|
<CppX>*.cpp</CppX>
|
||||||
|
<nMigrate>0</nMigrate>
|
||||||
|
</Extensions>
|
||||||
|
|
||||||
|
<DaveTm>
|
||||||
|
<dwLowDateTime>0</dwLowDateTime>
|
||||||
|
<dwHighDateTime>0</dwHighDateTime>
|
||||||
|
</DaveTm>
|
||||||
|
|
||||||
|
<Target>
|
||||||
|
<TargetName>Target 1</TargetName>
|
||||||
|
<ToolsetNumber>0x0</ToolsetNumber>
|
||||||
|
<ToolsetName>MCS-51</ToolsetName>
|
||||||
|
<TargetOption>
|
||||||
|
<CLK51>12000000</CLK51>
|
||||||
|
<OPTTT>
|
||||||
|
<gFlags>1</gFlags>
|
||||||
|
<BeepAtEnd>1</BeepAtEnd>
|
||||||
|
<RunSim>1</RunSim>
|
||||||
|
<RunTarget>0</RunTarget>
|
||||||
|
<RunAbUc>0</RunAbUc>
|
||||||
|
</OPTTT>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>0</HexSelection>
|
||||||
|
<FlashByte>65535</FlashByte>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
</OPTHX>
|
||||||
|
<OPTLEX>
|
||||||
|
<PageWidth>120</PageWidth>
|
||||||
|
<PageLength>65</PageLength>
|
||||||
|
<TabStop>8</TabStop>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
</OPTLEX>
|
||||||
|
<ListingPage>
|
||||||
|
<CreateCListing>1</CreateCListing>
|
||||||
|
<CreateAListing>1</CreateAListing>
|
||||||
|
<CreateLListing>1</CreateLListing>
|
||||||
|
<CreateIListing>0</CreateIListing>
|
||||||
|
<AsmCond>1</AsmCond>
|
||||||
|
<AsmSymb>1</AsmSymb>
|
||||||
|
<AsmXref>0</AsmXref>
|
||||||
|
<CCond>1</CCond>
|
||||||
|
<CCode>0</CCode>
|
||||||
|
<CListInc>0</CListInc>
|
||||||
|
<CSymb>0</CSymb>
|
||||||
|
<LinkerCodeListing>0</LinkerCodeListing>
|
||||||
|
</ListingPage>
|
||||||
|
<OPTXL>
|
||||||
|
<LMap>1</LMap>
|
||||||
|
<LComments>1</LComments>
|
||||||
|
<LGenerateSymbols>1</LGenerateSymbols>
|
||||||
|
<LLibSym>1</LLibSym>
|
||||||
|
<LLines>1</LLines>
|
||||||
|
<LLocSym>1</LLocSym>
|
||||||
|
<LPubSym>1</LPubSym>
|
||||||
|
<LXref>0</LXref>
|
||||||
|
<LExpSel>0</LExpSel>
|
||||||
|
</OPTXL>
|
||||||
|
<OPTFL>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<IsCurrentTarget>1</IsCurrentTarget>
|
||||||
|
</OPTFL>
|
||||||
|
<CpuCode>255</CpuCode>
|
||||||
|
<DebugOpt>
|
||||||
|
<uSim>1</uSim>
|
||||||
|
<uTrg>0</uTrg>
|
||||||
|
<sLdApp>1</sLdApp>
|
||||||
|
<sGomain>1</sGomain>
|
||||||
|
<sRbreak>1</sRbreak>
|
||||||
|
<sRwatch>1</sRwatch>
|
||||||
|
<sRmem>1</sRmem>
|
||||||
|
<sRfunc>1</sRfunc>
|
||||||
|
<sRbox>1</sRbox>
|
||||||
|
<tLdApp>1</tLdApp>
|
||||||
|
<tGomain>0</tGomain>
|
||||||
|
<tRbreak>1</tRbreak>
|
||||||
|
<tRwatch>1</tRwatch>
|
||||||
|
<tRmem>1</tRmem>
|
||||||
|
<tRfunc>0</tRfunc>
|
||||||
|
<tRbox>1</tRbox>
|
||||||
|
<tRtrace>1</tRtrace>
|
||||||
|
<sRSysVw>1</sRSysVw>
|
||||||
|
<tRSysVw>1</tRSysVw>
|
||||||
|
<sRunDeb>0</sRunDeb>
|
||||||
|
<sLrtime>0</sLrtime>
|
||||||
|
<bEvRecOn>1</bEvRecOn>
|
||||||
|
<bSchkAxf>0</bSchkAxf>
|
||||||
|
<bTchkAxf>0</bTchkAxf>
|
||||||
|
<nTsel>-1</nTsel>
|
||||||
|
<sDll></sDll>
|
||||||
|
<sDllPa></sDllPa>
|
||||||
|
<sDlgDll></sDlgDll>
|
||||||
|
<sDlgPa></sDlgPa>
|
||||||
|
<sIfile></sIfile>
|
||||||
|
<tDll></tDll>
|
||||||
|
<tDllPa></tDllPa>
|
||||||
|
<tDlgDll></tDlgDll>
|
||||||
|
<tDlgPa></tDlgPa>
|
||||||
|
<tIfile></tIfile>
|
||||||
|
<pMon></pMon>
|
||||||
|
</DebugOpt>
|
||||||
|
<Breakpoint/>
|
||||||
|
<Tracepoint>
|
||||||
|
<THDelay>0</THDelay>
|
||||||
|
</Tracepoint>
|
||||||
|
<DebugFlag>
|
||||||
|
<trace>0</trace>
|
||||||
|
<periodic>1</periodic>
|
||||||
|
<aLwin>0</aLwin>
|
||||||
|
<aCover>0</aCover>
|
||||||
|
<aSer1>0</aSer1>
|
||||||
|
<aSer2>0</aSer2>
|
||||||
|
<aPa>0</aPa>
|
||||||
|
<viewmode>0</viewmode>
|
||||||
|
<vrSel>0</vrSel>
|
||||||
|
<aSym>0</aSym>
|
||||||
|
<aTbox>0</aTbox>
|
||||||
|
<AscS1>0</AscS1>
|
||||||
|
<AscS2>0</AscS2>
|
||||||
|
<AscS3>0</AscS3>
|
||||||
|
<aSer3>0</aSer3>
|
||||||
|
<eProf>0</eProf>
|
||||||
|
<aLa>0</aLa>
|
||||||
|
<aPa1>0</aPa1>
|
||||||
|
<AscS4>0</AscS4>
|
||||||
|
<aSer4>0</aSer4>
|
||||||
|
<StkLoc>0</StkLoc>
|
||||||
|
<TrcWin>0</TrcWin>
|
||||||
|
<newCpu>0</newCpu>
|
||||||
|
<uProt>0</uProt>
|
||||||
|
</DebugFlag>
|
||||||
|
<LintExecutable></LintExecutable>
|
||||||
|
<LintConfigFile></LintConfigFile>
|
||||||
|
<bLintAuto>0</bLintAuto>
|
||||||
|
<bAutoGenD>0</bAutoGenD>
|
||||||
|
<LntExFlags>0</LntExFlags>
|
||||||
|
<pMisraName></pMisraName>
|
||||||
|
<pszMrule></pszMrule>
|
||||||
|
<pSingCmds></pSingCmds>
|
||||||
|
<pMultCmds></pMultCmds>
|
||||||
|
<pMisraNamep></pMisraNamep>
|
||||||
|
<pszMrulep></pszMrulep>
|
||||||
|
<pSingCmdsp></pSingCmdsp>
|
||||||
|
<pMultCmdsp></pMultCmdsp>
|
||||||
|
</TargetOption>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source Group 1</GroupName>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<cbSel>0</cbSel>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>1</FileNumber>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\STARTUP.A51</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>STARTUP.A51</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>2</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>1</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\main.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>main.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>3</FileNumber>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\INTRINS.h</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>INTRINS.h</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>1</GroupNumber>
|
||||||
|
<FileNumber>4</FileNumber>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>.\REG51.h</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>REG51.h</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
</Group>
|
||||||
|
|
||||||
|
</ProjectOpt>
|
||||||
405
main.uvproj
Normal file
405
main.uvproj
Normal file
@@ -0,0 +1,405 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
|
||||||
|
|
||||||
|
<SchemaVersion>1.1</SchemaVersion>
|
||||||
|
|
||||||
|
<Header>### uVision Project, (C) Keil Software</Header>
|
||||||
|
|
||||||
|
<Targets>
|
||||||
|
<Target>
|
||||||
|
<TargetName>Target 1</TargetName>
|
||||||
|
<ToolsetNumber>0x0</ToolsetNumber>
|
||||||
|
<ToolsetName>MCS-51</ToolsetName>
|
||||||
|
<uAC6>0</uAC6>
|
||||||
|
<TargetOption>
|
||||||
|
<TargetCommonOption>
|
||||||
|
<Device>STC89C52RC Series</Device>
|
||||||
|
<Vendor>STC</Vendor>
|
||||||
|
<Cpu>IRAM(0-0xFF) XRAM(0-0xFF) IROM(0-0x1FFF) CLOCK(45000000) MODP2</Cpu>
|
||||||
|
<FlashUtilSpec></FlashUtilSpec>
|
||||||
|
<StartupFile>"LIB\STARTUP.A51" ("Standard 8051 Startup Code")</StartupFile>
|
||||||
|
<FlashDriverDll></FlashDriverDll>
|
||||||
|
<DeviceId>61442</DeviceId>
|
||||||
|
<RegisterFile>STC89C5xRC.H</RegisterFile>
|
||||||
|
<MemoryEnv></MemoryEnv>
|
||||||
|
<Cmp></Cmp>
|
||||||
|
<Asm></Asm>
|
||||||
|
<Linker></Linker>
|
||||||
|
<OHString></OHString>
|
||||||
|
<InfinionOptionDll></InfinionOptionDll>
|
||||||
|
<SLE66CMisc></SLE66CMisc>
|
||||||
|
<SLE66AMisc></SLE66AMisc>
|
||||||
|
<SLE66LinkerMisc></SLE66LinkerMisc>
|
||||||
|
<SFDFile></SFDFile>
|
||||||
|
<bCustSvd>0</bCustSvd>
|
||||||
|
<UseEnv>0</UseEnv>
|
||||||
|
<BinPath></BinPath>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
<LibPath></LibPath>
|
||||||
|
<RegisterFilePath>STC\</RegisterFilePath>
|
||||||
|
<DBRegisterFilePath>STC\</DBRegisterFilePath>
|
||||||
|
<TargetStatus>
|
||||||
|
<Error>0</Error>
|
||||||
|
<ExitCodeStop>0</ExitCodeStop>
|
||||||
|
<ButtonStop>0</ButtonStop>
|
||||||
|
<NotGenerated>0</NotGenerated>
|
||||||
|
<InvalidFlash>1</InvalidFlash>
|
||||||
|
</TargetStatus>
|
||||||
|
<OutputDirectory>.\Objects\</OutputDirectory>
|
||||||
|
<OutputName>main</OutputName>
|
||||||
|
<CreateExecutable>1</CreateExecutable>
|
||||||
|
<CreateLib>0</CreateLib>
|
||||||
|
<CreateHexFile>1</CreateHexFile>
|
||||||
|
<DebugInformation>1</DebugInformation>
|
||||||
|
<BrowseInformation>1</BrowseInformation>
|
||||||
|
<ListingPath>.\Listings\</ListingPath>
|
||||||
|
<HexFormatSelection>0</HexFormatSelection>
|
||||||
|
<Merge32K>0</Merge32K>
|
||||||
|
<CreateBatchFile>1</CreateBatchFile>
|
||||||
|
<BeforeCompile>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopU1X>0</nStopU1X>
|
||||||
|
<nStopU2X>0</nStopU2X>
|
||||||
|
</BeforeCompile>
|
||||||
|
<BeforeMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopB1X>0</nStopB1X>
|
||||||
|
<nStopB2X>0</nStopB2X>
|
||||||
|
</BeforeMake>
|
||||||
|
<AfterMake>
|
||||||
|
<RunUserProg1>0</RunUserProg1>
|
||||||
|
<RunUserProg2>0</RunUserProg2>
|
||||||
|
<UserProg1Name></UserProg1Name>
|
||||||
|
<UserProg2Name></UserProg2Name>
|
||||||
|
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
|
||||||
|
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
|
||||||
|
<nStopA1X>0</nStopA1X>
|
||||||
|
<nStopA2X>0</nStopA2X>
|
||||||
|
</AfterMake>
|
||||||
|
<SelectedForBatchBuild>0</SelectedForBatchBuild>
|
||||||
|
<SVCSIdString></SVCSIdString>
|
||||||
|
</TargetCommonOption>
|
||||||
|
<CommonProperty>
|
||||||
|
<UseCPPCompiler>0</UseCPPCompiler>
|
||||||
|
<RVCTCodeConst>0</RVCTCodeConst>
|
||||||
|
<RVCTZI>0</RVCTZI>
|
||||||
|
<RVCTOtherData>0</RVCTOtherData>
|
||||||
|
<ModuleSelection>0</ModuleSelection>
|
||||||
|
<IncludeInBuild>1</IncludeInBuild>
|
||||||
|
<AlwaysBuild>0</AlwaysBuild>
|
||||||
|
<GenerateAssemblyFile>0</GenerateAssemblyFile>
|
||||||
|
<AssembleAssemblyFile>0</AssembleAssemblyFile>
|
||||||
|
<PublicsOnly>0</PublicsOnly>
|
||||||
|
<StopOnExitCode>3</StopOnExitCode>
|
||||||
|
<CustomArgument></CustomArgument>
|
||||||
|
<IncludeLibraryModules></IncludeLibraryModules>
|
||||||
|
<ComprImg>1</ComprImg>
|
||||||
|
<BankNo>65535</BankNo>
|
||||||
|
</CommonProperty>
|
||||||
|
<DllOption>
|
||||||
|
<SimDllName>S8051.DLL</SimDllName>
|
||||||
|
<SimDllArguments></SimDllArguments>
|
||||||
|
<SimDlgDll>DP51.DLL</SimDlgDll>
|
||||||
|
<SimDlgDllArguments>-p51</SimDlgDllArguments>
|
||||||
|
<TargetDllName>S8051.DLL</TargetDllName>
|
||||||
|
<TargetDllArguments></TargetDllArguments>
|
||||||
|
<TargetDlgDll>TP51.DLL</TargetDlgDll>
|
||||||
|
<TargetDlgDllArguments>-p51</TargetDlgDllArguments>
|
||||||
|
</DllOption>
|
||||||
|
<DebugOption>
|
||||||
|
<OPTHX>
|
||||||
|
<HexSelection>0</HexSelection>
|
||||||
|
<HexRangeLowAddress>0</HexRangeLowAddress>
|
||||||
|
<HexRangeHighAddress>0</HexRangeHighAddress>
|
||||||
|
<HexOffset>0</HexOffset>
|
||||||
|
<Oh166RecLen>16</Oh166RecLen>
|
||||||
|
</OPTHX>
|
||||||
|
<Simulator>
|
||||||
|
<UseSimulator>1</UseSimulator>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>1</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>1</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<LimitSpeedToRealTime>0</LimitSpeedToRealTime>
|
||||||
|
<RestoreSysVw>1</RestoreSysVw>
|
||||||
|
</Simulator>
|
||||||
|
<Target>
|
||||||
|
<UseTarget>0</UseTarget>
|
||||||
|
<LoadApplicationAtStartup>1</LoadApplicationAtStartup>
|
||||||
|
<RunToMain>0</RunToMain>
|
||||||
|
<RestoreBreakpoints>1</RestoreBreakpoints>
|
||||||
|
<RestoreWatchpoints>1</RestoreWatchpoints>
|
||||||
|
<RestoreMemoryDisplay>1</RestoreMemoryDisplay>
|
||||||
|
<RestoreFunctions>0</RestoreFunctions>
|
||||||
|
<RestoreToolbox>1</RestoreToolbox>
|
||||||
|
<RestoreTracepoints>1</RestoreTracepoints>
|
||||||
|
<RestoreSysVw>1</RestoreSysVw>
|
||||||
|
</Target>
|
||||||
|
<RunDebugAfterBuild>0</RunDebugAfterBuild>
|
||||||
|
<TargetSelection>-1</TargetSelection>
|
||||||
|
<SimDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
</SimDlls>
|
||||||
|
<TargetDlls>
|
||||||
|
<CpuDll></CpuDll>
|
||||||
|
<CpuDllArguments></CpuDllArguments>
|
||||||
|
<PeripheralDll></PeripheralDll>
|
||||||
|
<PeripheralDllArguments></PeripheralDllArguments>
|
||||||
|
<InitializationFile></InitializationFile>
|
||||||
|
<Driver></Driver>
|
||||||
|
</TargetDlls>
|
||||||
|
</DebugOption>
|
||||||
|
<Utilities>
|
||||||
|
<Flash1>
|
||||||
|
<UseTargetDll>0</UseTargetDll>
|
||||||
|
<UseExternalTool>0</UseExternalTool>
|
||||||
|
<RunIndependent>0</RunIndependent>
|
||||||
|
<UpdateFlashBeforeDebugging>0</UpdateFlashBeforeDebugging>
|
||||||
|
<Capability>0</Capability>
|
||||||
|
<DriverSelection>-1</DriverSelection>
|
||||||
|
</Flash1>
|
||||||
|
<bUseTDR>0</bUseTDR>
|
||||||
|
<Flash2></Flash2>
|
||||||
|
<Flash3></Flash3>
|
||||||
|
<Flash4></Flash4>
|
||||||
|
<pFcarmOut></pFcarmOut>
|
||||||
|
<pFcarmGrp></pFcarmGrp>
|
||||||
|
<pFcArmRoot></pFcArmRoot>
|
||||||
|
<FcArmLst>0</FcArmLst>
|
||||||
|
</Utilities>
|
||||||
|
<Target51>
|
||||||
|
<Target51Misc>
|
||||||
|
<MemoryModel>0</MemoryModel>
|
||||||
|
<RTOS>0</RTOS>
|
||||||
|
<RomSize>2</RomSize>
|
||||||
|
<DataHold>0</DataHold>
|
||||||
|
<XDataHold>0</XDataHold>
|
||||||
|
<UseOnchipRom>0</UseOnchipRom>
|
||||||
|
<UseOnchipArithmetic>0</UseOnchipArithmetic>
|
||||||
|
<UseMultipleDPTR>0</UseMultipleDPTR>
|
||||||
|
<UseOnchipXram>0</UseOnchipXram>
|
||||||
|
<HadIRAM>1</HadIRAM>
|
||||||
|
<HadXRAM>1</HadXRAM>
|
||||||
|
<HadIROM>1</HadIROM>
|
||||||
|
<Moda2>0</Moda2>
|
||||||
|
<Moddp2>0</Moddp2>
|
||||||
|
<Modp2>1</Modp2>
|
||||||
|
<Mod517dp>0</Mod517dp>
|
||||||
|
<Mod517au>0</Mod517au>
|
||||||
|
<Mode2>0</Mode2>
|
||||||
|
<useCB>0</useCB>
|
||||||
|
<useXB>0</useXB>
|
||||||
|
<useL251>0</useL251>
|
||||||
|
<useA251>0</useA251>
|
||||||
|
<Mx51>0</Mx51>
|
||||||
|
<ModC812>0</ModC812>
|
||||||
|
<ModCont>0</ModCont>
|
||||||
|
<Lp51>0</Lp51>
|
||||||
|
<useXBS>0</useXBS>
|
||||||
|
<ModDA>0</ModDA>
|
||||||
|
<ModAB2>0</ModAB2>
|
||||||
|
<Mx51P>0</Mx51P>
|
||||||
|
<hadXRAM2>0</hadXRAM2>
|
||||||
|
<uocXram2>0</uocXram2>
|
||||||
|
<hadXRAM3>0</hadXRAM3>
|
||||||
|
<ModC2>0</ModC2>
|
||||||
|
<ModH2>0</ModH2>
|
||||||
|
<Mdu_R515>0</Mdu_R515>
|
||||||
|
<Mdu_F120>0</Mdu_F120>
|
||||||
|
<Psoc>0</Psoc>
|
||||||
|
<hadIROM2>0</hadIROM2>
|
||||||
|
<hadIROM3>0</hadIROM3>
|
||||||
|
<ModSmx2>0</ModSmx2>
|
||||||
|
<cBanks>0</cBanks>
|
||||||
|
<xBanks>0</xBanks>
|
||||||
|
<OnChipMemories>
|
||||||
|
<RCB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x10000</Size>
|
||||||
|
</RCB>
|
||||||
|
<RXB>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</RXB>
|
||||||
|
<Ocm1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm1>
|
||||||
|
<Ocm2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm2>
|
||||||
|
<Ocm3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocm3>
|
||||||
|
<Ocr1>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr1>
|
||||||
|
<Ocr2>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr2>
|
||||||
|
<Ocr3>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</Ocr3>
|
||||||
|
<IRO>
|
||||||
|
<Type>1</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x2000</Size>
|
||||||
|
</IRO>
|
||||||
|
<IRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x100</Size>
|
||||||
|
</IRA>
|
||||||
|
<XRA>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x100</Size>
|
||||||
|
</XRA>
|
||||||
|
<XRA512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA512>
|
||||||
|
<IROM512>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</IROM512>
|
||||||
|
<XRA513>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</XRA513>
|
||||||
|
<IROM513>
|
||||||
|
<Type>0</Type>
|
||||||
|
<StartAddress>0x0</StartAddress>
|
||||||
|
<Size>0x0</Size>
|
||||||
|
</IROM513>
|
||||||
|
</OnChipMemories>
|
||||||
|
</Target51Misc>
|
||||||
|
<C51>
|
||||||
|
<RegisterColoring>0</RegisterColoring>
|
||||||
|
<VariablesInOrder>0</VariablesInOrder>
|
||||||
|
<IntegerPromotion>1</IntegerPromotion>
|
||||||
|
<uAregs>0</uAregs>
|
||||||
|
<UseInterruptVector>1</UseInterruptVector>
|
||||||
|
<Fuzzy>3</Fuzzy>
|
||||||
|
<Optimize>8</Optimize>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<SizeSpeed>1</SizeSpeed>
|
||||||
|
<ObjectExtend>1</ObjectExtend>
|
||||||
|
<ACallAJmp>0</ACallAJmp>
|
||||||
|
<InterruptVectorAddress>0</InterruptVectorAddress>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</C51>
|
||||||
|
<Ax51>
|
||||||
|
<UseMpl>0</UseMpl>
|
||||||
|
<UseStandard>1</UseStandard>
|
||||||
|
<UseCase>0</UseCase>
|
||||||
|
<UseMod51>0</UseMod51>
|
||||||
|
<VariousControls>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<Define></Define>
|
||||||
|
<Undefine></Undefine>
|
||||||
|
<IncludePath></IncludePath>
|
||||||
|
</VariousControls>
|
||||||
|
</Ax51>
|
||||||
|
<Lx51>
|
||||||
|
<useFile>0</useFile>
|
||||||
|
<linkonly>0</linkonly>
|
||||||
|
<UseMemoryFromTarget>1</UseMemoryFromTarget>
|
||||||
|
<CaseSensitiveSymbols>0</CaseSensitiveSymbols>
|
||||||
|
<WarningLevel>2</WarningLevel>
|
||||||
|
<DataOverlaying>1</DataOverlaying>
|
||||||
|
<OverlayString></OverlayString>
|
||||||
|
<MiscControls></MiscControls>
|
||||||
|
<DisableWarningNumbers></DisableWarningNumbers>
|
||||||
|
<LinkerCmdFile></LinkerCmdFile>
|
||||||
|
<Assign></Assign>
|
||||||
|
<ReserveString></ReserveString>
|
||||||
|
<CClasses></CClasses>
|
||||||
|
<UserClasses></UserClasses>
|
||||||
|
<CSection></CSection>
|
||||||
|
<UserSection></UserSection>
|
||||||
|
<CodeBaseAddress></CodeBaseAddress>
|
||||||
|
<XDataBaseAddress></XDataBaseAddress>
|
||||||
|
<PDataBaseAddress></PDataBaseAddress>
|
||||||
|
<BitBaseAddress></BitBaseAddress>
|
||||||
|
<DataBaseAddress></DataBaseAddress>
|
||||||
|
<IDataBaseAddress></IDataBaseAddress>
|
||||||
|
<Precede></Precede>
|
||||||
|
<Stack></Stack>
|
||||||
|
<CodeSegmentName></CodeSegmentName>
|
||||||
|
<XDataSegmentName></XDataSegmentName>
|
||||||
|
<BitSegmentName></BitSegmentName>
|
||||||
|
<DataSegmentName></DataSegmentName>
|
||||||
|
<IDataSegmentName></IDataSegmentName>
|
||||||
|
</Lx51>
|
||||||
|
</Target51>
|
||||||
|
</TargetOption>
|
||||||
|
<Groups>
|
||||||
|
<Group>
|
||||||
|
<GroupName>Source Group 1</GroupName>
|
||||||
|
<Files>
|
||||||
|
<File>
|
||||||
|
<FileName>STARTUP.A51</FileName>
|
||||||
|
<FileType>2</FileType>
|
||||||
|
<FilePath>.\STARTUP.A51</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>main.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>.\main.c</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>INTRINS.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\INTRINS.h</FilePath>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>REG51.h</FileName>
|
||||||
|
<FileType>5</FileType>
|
||||||
|
<FilePath>.\REG51.h</FilePath>
|
||||||
|
</File>
|
||||||
|
</Files>
|
||||||
|
</Group>
|
||||||
|
</Groups>
|
||||||
|
</Target>
|
||||||
|
</Targets>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Reference in New Issue
Block a user