File: LMS7002_REGx51.h

package info (click to toggle)
limesuite 23.11.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 17,228 kB
  • sloc: cpp: 157,511; ansic: 6,852; python: 197; sh: 56; xml: 21; makefile: 19
file content (249 lines) | stat: -rw-r--r-- 7,675 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
/*--------------------------------------------------------------------------
LMS7002_REGx51.h (Ver 1.0)

Header file for the LIME MCU chip.
Copyright (c) 2013 LIME, Inc.  All rights reserved.
--------------------------------------------------------------------------*/

/*------------------------------------------------
Make sure that this file gets included only once.
------------------------------------------------*/
#ifndef __LMS7002_H__
#define __LMS7002_H__

/*------------------------------------------------
Byte Registers
------------------------------------------------*/
sfr P0    = 0x80;
sfr SP    = 0x81;
sfr DPL0  = 0x82; 
sfr DPH0  = 0x83; 
sfr DPL1  = 0x84; 
sfr DPH1  = 0x85;
sfr DPS   = 0x86; 
sfr PCON  = 0x87; 
sfr TCON  = 0x88; 
sfr TMOD  = 0x89;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr PMSR  = 0x8E; 
sfr P1    = 0x90; 
sfr DIR1	= 0x91; 
sfr SCON  = 0x98;
sfr SBUF  = 0x99;
sfr P2    = 0xA0;
sfr DIR2	= 0xA1; 
sfr DIR0	= 0xA2; 
sfr IEN0    = 0xA8; 
sfr IEN1	= 0xA9; 
sfr EECTRL	= 0xB0; 
sfr EEDATA	= 0xB1; 
sfr IP0     = 0xB8; 
sfr IP1   = 0xB9; 
sfr USR2	= 0xBF; 
sfr IRCON	= 0xC0; 
sfr T2CON	= 0xC8; 
sfr RCAP2L	= 0xCA; 
sfr RCAP2H	= 0xCB; 
sfr TL2 = 0xCC; 
sfr TH2 = 0xCD; 
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr REG0	= 0xEC; 
sfr REG1	= 0XED; 
sfr REG2	= 0xEE; 
sfr REG3	= 0xEF; 
sfr B     = 0xF0; 
sfr REG4	= 0xF4; 
sfr REG5	= 0xF5; 
sfr REG6	= 0xF6; 
sfr REG7	= 0xF7; 
sfr REG8	= 0xFC; 
sfr REG9	= 0xFD; 

/*------------------------------------------------
P0 bits 
------------------------------------------------*/
sbit P0_0 = 0x80;
sbit P0_1 = 0x81;
sbit P0_2 = 0x82;
sbit P0_3 = 0x83;
sbit P0_4 = 0x84;
sbit P0_5 = 0x85;
sbit P0_6 = 0x86;
sbit P0_7 = 0x87;

/*------------------------------------------------
TCON bits
------------------------------------------------*/
sbit IT0  = 0x88;
sbit IE0  = 0x89;
sbit IT1  = 0x8A;
sbit IE1  = 0x8B;
sbit TR0  = 0x8C;
sbit TF0  = 0x8D;
sbit TR1  = 0x8E;
sbit TF1  = 0x8F;

/*------------------------------------------------
P1 bits
------------------------------------------------*/
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;

/*------------------------------------------------
SCON bits
------------------------------------------------*/
sbit RI   = 0x98;
sbit TI   = 0x99;
sbit RB8  = 0x9A;
sbit TB8  = 0x9B;
sbit REN  = 0x9C;
sbit SM2  = 0x9D;
sbit SM1  = 0x9E;
sbit SM0  = 0x9F;

/*------------------------------------------------
P2 bits
------------------------------------------------*/
sbit P2_0 = 0xA0;
sbit P2_1 = 0xA1;
sbit P2_2 = 0xA2;
sbit P2_3 = 0xA3;
/// reserved for SPI
sbit ucSCLK = 0xA0;
sbit ucSEN = 0xA1;
sbit ucSDIN = 0xA2;
sbit ucSDOUT = 0xA3;


/*------------------------------------------------
IEN0 bits
------------------------------------------------*/
sbit EX0  = 0xA8;       /* 1=Enable External interrupt 0 */
sbit ET0  = 0xA9;       /* 1=Enable Timer 0 interrupt */
sbit EX1  = 0xAA;       /* 1=Enable External interrupt 1 */
sbit ET1  = 0xAB;       /* 1=Enable Timer 1 interrupt */
sbit ES0  = 0xAC;       /* 1=Enable Serial port 0 interrupt */
sbit ET2  = 0xAD;		/* 1=Enable Timer 2 interrupt */
//sbit XX   = 0xAE; /* Don't Care */
sbit EA   = 0xAF;       /* 0=Disable all interrupts */

/*------------------------------------------------
EECTRL bits
------------------------------------------------*/
sbit CMD0   = 0xB0;       /* Command 0 bit */
sbit CMD1   = 0xB1;       /* Command 1 bit */
sbit CMD2   = 0xB2;       /* Command 2 bit */
sbit CMD3   = 0xB3;       /* Command 3 bit */
sbit TX_ACK = 0xB4;       /* 1= ACK Transmited to EEPROM */
sbit RX_ACK = 0xB5;	  /* 1= ACK Received from EEPROM */
sbit BUSY   = 0xB6;	  /* 1= Serial Data BUS is busy */
sbit ERROR  = 0xB7;       /* 1= Illegal Command Received */

/*------------------------------------------------
IP0 bits
------------------------------------------------*/
sbit PX0  = 0xB8; /* External iterrupt 0 priority bit */
sbit PT0  = 0xB9; /* Timer 0 iterrupt priority bit */
sbit PX1  = 0xBA; /* External iterrupt 1 priority bit */
sbit PT1  = 0xBB; /* Timer 1 iterrupt priority bit */
sbit PS0  = 0xBC; /* Serial port 0 iterrupt priority bit */
sbit PT2  = 0xBD; /* Timer 2 iterrupt priority bit */
//sbit XX   = 0xBE; /* Don't Care */
//sbit XX   = 0xBF; /* Don't Care */

/*------------------------------------------------
IRCON bits
------------------------------------------------*/
//sbit XX   = 0xCO; /* Don't Care */
//sbit XX   = 0xC1; /* Don't Care */
sbit IE2  = 0xC2; /* External iterrupt 2 flag bit */
sbit IE3  = 0xC3; /* External iterrupt 3 flag bit */
sbit IE4  = 0xC4; /* External iterrupt 4 flag bit */
sbit IE5  = 0xC5; /* External iterrupt 5 flag bit */
//sbit XX   = 0xC6; /* Don't Care */
//sbit XX   = 0xC7; /* Don't Care */

/*------------------------------------------------
T2CON bits
------------------------------------------------*/
sbit CP_RL2 = 0xC8; /* Capture/Reload Flag */
sbit C_T2	= 0xC9; /* 0/1 - Timer/Counter select */
sbit TR2	= 0xCA; /* 0/1 - Stop/Strat Timer */
sbit EXEN2  = 0xCB; /* Timer 2 enable Flag */
sbit TCLK	= 0xCC; /* Transmit Clock Flag */
sbit RCLK	= 0xCD; /* Receive Clock Flag */
sbit EXF2	= 0xCE; /* Timer 2 External Flag */
sbit TF2	= 0xCF; /* Timer 2 Overflow Flag */ 

/*------------------------------------------------
PSW bits
------------------------------------------------*/
sbit P    = 0xD0; /* Parity Flag */
//sbit XX	  = 0xD1; /* Don't Care */
sbit OV   = 0xD2; /* Overflow Flag */
sbit RS0  = 0xD3; /* Register Bank Select 0 */
sbit RS1  = 0xD4; /* Register Bank Select 0 */
//sbit XX   = 0xD5; /* Don't Care */
sbit AC   = 0xD6; /* Auxiliary Carry Flag */
sbit CY   = 0xD7; /* Carry Flag */


/*------------------------------------------------
TMOD Bit Values - Defines the bit position in the reg!!!
------------------------------------------------*/
#define T0_M0_   0x01 /* 0000 0001 = T0_M0 */
#define T0_M1_   0x02 /* 0000 0010 = T0_M1 */
#define T0_CT_   0x04 /* 0000 0100 = T0_CT */
#define T0_GATE_ 0x08 /* 0000 1000 = T0_GATE */
#define T1_M0_   0x10 /* 0001 0000 = T1_M0 */
#define T1_M1_   0x20 /* 0010 0000 = T1_M1 */
#define T1_CT_   0x40 /* 0100 0000 = T1_CT */
#define T1_GATE_ 0x80 /* 1000 0000 = T1_GATE */

#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F

/*------------------------------------------------
PCON Bit Values - Defines the bit position in the reg!!!
------------------------------------------------*/
#define IDL_    0x01
#define STOP_   0x02
#define SMOD_   0x80

/*------------------------------------------------
PMSR Bit Values - Defines the bit position in the reg!!!
------------------------------------------------*/
#define SEL_DIV_0_ 0x01
#define SEL_DIV_1_ 0x02
#define SEL_DIV_2_ 0x04

/*------------------------------------------------
Interrupt Vectors:
Interrupt Address = (Number * 8) + 3 
------------------------------------------------*/

#define IE0_VECTOR      0  /* 0x03 External Interrupt 0 */
#define TF0_VECTOR      1  /* 0x0B Timer 0 */
#define IE1_VECTOR      2  /* 0x13 External Interrupt 1 */
#define TF1_VECTOR      3  /* 0x1B Timer 1 */
#define SIO_VECTOR	4  /* 0x23 Serial channel 0 interrupt! (RI0/TI0) */
#define TF2_VECTOR      5  /* 0x2B Timer 2 */
//  SKIPPED #define X	6  /* RESERVED*/
#define IEX2_VECTOR	7    /* 0x3B External interrupt 2 */
#define IEX3_VECTOR	8    /* 0x43 External interrupt 3 */
#define IEX4_VECTOR	9    /* 0x4B External interrupt 4 */
#define IEX5_VECTOR	10   /* 0x53 External interrupt 5 */

/*------------------------------------------------
------------------------------------------------*/
#endif