📄 uart_multiproc_master.lst
字号:
C51 COMPILER V7.10 UART_MULTIPROC_MASTER 04/26/2004 14:06:21 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE UART_MULTIPROC_MASTER
OBJECT MODULE PLACED IN uart_multiproc_master.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE uart_multiproc_master.c BROWSE DEBUG OBJECTEXTEND TABS(3)
line level source
1 /**
2 * @file $RCSfile: uart_multiproc_master.c,v $
3 *
4 * Copyright (c) 2004 Atmel.
5 *
6 * Please read file license.txt for copyright notice.
7 *
8 * @brief This file is an example to use uart with timer in
9 * multiprocessor mode.
10 *
11 * This file can be parsed by Doxygen for automatic documentation
12 * generation.
13 * Put here the functional description of this file within the software
14 * architecture of your program.
15 *
16 * @version $Revision: 1.0 $ $Name: $
17 */
18
19 /* @section I N C L U D E S */
20 #include "reg_c51.h"
21
22 char uart_data;
23 char exemple_send_data=0x55;
24 char TxOK=0;
25 /**
26 * FUNCTION_PURPOSE: This file set up uart in mode 3 (9 bits uart) with
27 * timer 1 in baud rate generator mode.
28 * FUNCTION_INPUTS: P3.2(INT0)
29 * FUNCTION_OUTPUTS: void
30 */
31 void main (void)
32 {
33 1 SCON = 0xF0; /* uart in mode 3 (9 bit), REN=1 */
34 1 SADDR=0x01; /* local address */
35 1 SADEN=0xFF; /* address mask */
36 1 TMOD = TMOD | 0x20 ; /* Timer 1 in mode 2 */
37 1 TH1 = 0xFD; /* 9600 Bds at 11.059MHz */
38 1 TL1 = 0xFD; /* 9600 Bds at 11.059MHz */
39 1 ES = 1; /* Enable serial interrupt */
40 1 EA = 1; /* Enable global interrupt */
41 1 TR1 = 1; /* Timer 1 run */
42 1
43 1 while(1) /* endless */
44 1 {
45 2 while(P3_2); /* wait P3_2(INT0)=0 */
46 2 while(!P3_2); /* wait P3_2(INT0)=1 */
47 2
48 2 TB8 = 1; /* address mode */
49 2 TxOK=1; /* set software flag */
50 2 SBUF = 0x03; /* send slave adress */
51 2 while(TxOK); /* wait the stop bit transmition */
52 2
53 2 TB8 = 0; /* data mode */
54 2 TxOK=1; /* set software flag */
55 2 SBUF = exemple_send_data; /* send data */
C51 COMPILER V7.10 UART_MULTIPROC_MASTER 04/26/2004 14:06:21 PAGE 2
56 2 while(TxOK); /* wait the stop bit transmition */
57 2 }
58 1 }
59
60 /**
61 * FUNCTION_PURPOSE: serial interrupt.
62 * FUNCTION_INPUTS: P3.0(RXD) serial input
63 * FUNCTION_OUTPUTS: none
64 */
65 void serial_IT(void) interrupt 4
66 {
67 1 if (TI == 1)
68 1 { /* if reception occur */
69 2 TI=0; /* clear transmition flag for next transmition */
70 2 TxOK=0; /* clear software transmition flag */
71 2 }
72 1
73 1 if (RI == 1)
74 1 { /* if reception occur */
75 2 RI = 0; /* clear reception flag for next reception */
76 2 if(RB8) SM2=0; /* go into data mode */
77 2 else
78 2 {
79 3 uart_data = SBUF; /* Read receive data */
80 3 P2=uart_data;
81 3 SM2=1; /* return into address mode after receive data */
82 3 }
83 2 }
84 1 }
85
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 84 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -