CAN总线硬件连接及程序Word下载.docx
- 文档编号:17014560
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:26
- 大小:143.78KB
CAN总线硬件连接及程序Word下载.docx
《CAN总线硬件连接及程序Word下载.docx》由会员分享,可在线阅读,更多相关《CAN总线硬件连接及程序Word下载.docx(26页珍藏版)》请在冰豆网上搜索。
15.//
send
when
it'
s
P3.7
button
depressed/released,
with
0x11
16.//
indicate
the
pushed,
0x00
released.
also
has
17.//
object
messages.
The
C8051
tests
18.//
received
will
turn
on/off
target
board'
LED.
When
one
19.//
loaded
other
CAN1.c,
20.//
push-button
control
LED,
establishing
21.//
link
via
bus
can
be
observed
directly
22.//
boards.
23.////////////////////////////////////////////////////////////////////////////////
24.
25.////////////////////////////////////////////////////////////////////////////////
26.//
Includes
27.////////////////////////////////////////////////////////////////////////////////
28.
29.#include
<
c8051f040.h>
//
SFR
declarations
30.
31.//
Protocol
Register
Index
for
CAN0ADR,
TABLE
18.1
32.//
datasheet
33.////////////////////////////////////////////////////////////////////////////////
34.#define
CANCTRL
//Control
35.#define
CANSTAT
0x01
//Status
register
36.#define
ERRCNT
0x02
//Error
Counter
37.#define
BITREG
0x03
//Bit
Timing
38.#define
INTREG
0x04
//Interrupt
Low
Byte
39.#define
CANTSTR
0x05
//Test
40.#define
BRPEXT
0x06
//BRP
Extension
41.////////////////////////////////////////////////////////////////////////////////
42.//IF1
Interface
Registers
43.////////////////////////////////////////////////////////////////////////////////
44.#define
IF1CMDRQST
0x08
//IF1
Command
Rest
45.#define
IF1CMDMSK
0x09
Mask
46.#define
IF1MSK1
0x0A
Mask1
47.#define
IF1MSK2
0x0B
Mask2
48.#define
IF1ARB1
0x0C
Arbitration
1
49.#define
IF1ARB2
0x0D
2
50.#define
IF1MSGC
0x0E
Message
Control
51.#define
IF1DATA1
0x0F
Data
A1
52.#define
IF1DATA2
0x10
A2
53.#define
IF1DATB1
B1
54.#define
IF1DATB2
0x12
B2
55.////////////////////////////////////////////////////////////////////////////////
56.//IF2
57.////////////////////////////////////////////////////////////////////////////////
58.#define
IF2CMDRQST
0x20
//IF2
59.#define
IF2CMDMSK
0x21
60.#define
IF2MSK1
0x22
61.#define
IF2MSK2
0x23
62.#define
IF2ARB1
0x24
63.#define
IF2ARB2
0x25
64.#define
IF2MSGC
0x26
65.#define
IF2DATA1
0x27
66.#define
IF2DATA2
0x28
67.#define
IF2DATB1
0x29
68.#define
IF2DATB2
0x2A
69.////////////////////////////////////////////////////////////////////////////////
70.//Message
Handler
71.////////////////////////////////////////////////////////////////////////////////
72.#define
TRANSREQ1
0x40
//Transmission
Rest1
73.#define
TRANSREQ2
0x41
Rest2
74.
75.#define
NEWDAT1
0x48
//New
76.#define
NEWDAT2
0x49
77.
78.#define
INTPEND1
0x50
Pending
79.#define
INTPEND2
0x51
80.
81.#define
MSGVAL1
0x58
//Message
Valid
82.#define
MSGVAL2
0x59
83.
84.////////////////////////////////////////////////////////////////////////////////
85.//Global
Variables
86.////////////////////////////////////////////////////////////////////////////////
87.char
MsgNum;
88.char
status;
89.int
i;
90.int
MOTwoIndex
=
0;
91.int
MOOneIndex
92.int
StatusCopy;
93.int
RXbuffer
[4];
94.int
TXbuffer
[8];
95.int
MsgIntNum;
96.int
Temperature;
97.sbit
BUTTON
P3^7;
98.sbit
LED
P1^6;
99.sfr16
CAN0DAT
0xD8;
100.
101.
102.
103.////////////////////////////////////////////////////////////////////////////////
104.//
Function
PROTOTYPES
105.////////////////////////////////////////////////////////////////////////////////
106.
107.//
Initialize
Object
108.void
clear_msg_objects
(void);
109.void
init_msg_object_TX
(char
MsgNum);
110.void
init_msg_object_RX
111.void
start_CAN
112.void
transmit_turn_LED_ON
113.void
transmit_turn_LED_OFF
114.void
receive_data
115.void
external_osc
116.void
config_IO
117.void
flash_LED
118.void
test_reg_write
test);
119.void
stop_CAN
120.
121.
122.////////////////////////////////////////////////////////////////////////////////
123.//
MAIN
Routine
124.////////////////////////////////////////////////////////////////////////////////
125.void
main
(void)
{
126.
127.
disable
watchdog
timer
128.
WDTCN
0xde;
129.
0xad;
130.
131.
//configure
Port
I/O
132.
config_IO();
133.
134.
switch
external
oscillator
135.
external_osc();
136.
137.
138.////////////////////////////////////////////////////////////////////////////////
139.//
Configure
communications
140.//
141.//
IF1
used
procedures
calles
by
program
142.//
IF2
interrupt
service
procedure
143.//
144.//
assignments:
145.//
0x02:
Used
commands
toggle
its
arbitration
number
146.//
147.////////////////////////////////////////////////////////////////////////////////
148.
149.
Clear
150.
clear_msg_objects();
151.
152.
153.
(0x02);
154.
155.
156.
(0x01);
157.
158.
Enable
interrupts
in
CIP-51
159.
EIE2
0x20;
160.
161.
//Function
call
start
162.
start_CAN();
163.
164.
//Global
enable
8051
165.
EA
1;
166.
167.
//Loop
wait
168.
while
(1)
169.
170.
if
(BUTTON
==
0){
171.
0){}
172.
transmit_turn_LED_OFF(0x02);
}
173.
else
174.
1){}
175.
transmit_turn_LED_ON(0x02);
176.
177.}
178.
179.
180.////////////////////////////////////////////////////////////////////////////////
181.//
Set
up
182.////////////////////////////////////////////////////////////////////////////////
183.
184.//
Switch
185.void
186.{
187.
int
n;
local
variable
delay
FOR
loop.
188.
SFRPAGE
CONFIG_PAGE;
config
page
189.
OSCXCN
0x77;
oscillator;
22.1
MHz
Crystal
190.
system
clock
/
11.05
191.
(n=0;
n<
255;
n++);
about
1ms
192.
((OSCXCN
&
0x80)
0);
stabilize
193.
CLKSEL
|=
0x01;
194.}
195.
196.void
197.{
198.
//Port
SFR'
Configuration
199.
XBR3
0x80;
TX
p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 总线 硬件 连接 程序