📄 uart.lst
字号:
C51 COMPILER V8.08 UART 05/25/2008 20:21:42 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE UART
OBJECT MODULE PLACED IN uart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE uart.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<stc12c5410ad.h>
2 #include<main.h>
3 #include<buzzer.h>
4 #include<delay.h>
5 //-------------------------
6 //global variables
7 //--------------------------
8 unsigned char command_flag = 0;
9 unsigned char send_buffer[4] = {0,0,0,0};
10
11 extern unsigned char display_buffer[4];
12 extern unsigned char current_state;
13 //---------------------
14 //defines
15 //----------------------
16 #define COMMAND_HEADER 0xaa
17 #define COMMAND_FREESTATE 0x40
18 #define COMMAND_FORCIBLETALK 0x7f
19 #define COMMAND_GUESTREADY 0x41
20 #define COMMAND_SETDONE 0x42
21 #define COMMAND_SETFAIL 0x43
22 //-----------------------
23 //functions
24 //------------------------
25 void rs232_initial(void)
26 {
27 1 ES = 1;
28 1 //AUXR =AUXR |0x40;
29 1 TMOD = TMOD+0x20;
30 1 SCON = 0x50;
31 1 TH1 = 0xfb;
32 1 TL1 = 0xfb;
33 1 // TH1 = 0xe2;
34 1 // TL1 = 0xe2;
35 1 TR1 = 1;
36 1 }
37 void rs232_send_byte(unsigned char send_data)
38 {
39 1 ES = 0;
40 1 TI = 0;
41 1 SBUF = send_data;
42 1 delay2(1);
43 1 // while(!TI);
44 1 TI = 0;
45 1 ES = 1;
46 1 }
47 void Uart_Routine(void) interrupt 4
48 {
49 1 unsigned char temp_data = 0;
50 1 if(TI == 1){TI = 0;return;}
51 1 if(RI == 1){RI = 0; }
52 1 // open_buzzer();
53 1 // buzzer_timer = 10;
54 1 // buzzer_timer_trigger = 1;
55 1 temp_data = SBUF;
C51 COMPILER V8.08 UART 05/25/2008 20:21:42 PAGE 2
56 1 if((temp_data == COMMAND_HEADER)&&(command_flag == 0))command_flag = 1;
57 1 if((temp_data == COMMAND_FREESTATE)&&(command_flag == 1)){
58 2 current_state = STATE_FREE|STATE_FREE_NOCALL;
59 2 display_buffer[0] = 10;
60 2 display_buffer[1] = 10;
61 2 display_buffer[2] = 10;
62 2 display_buffer[3] = 10;
63 2 command_flag = 0;}
64 1 if((temp_data == COMMAND_FORCIBLETALK)&&(command_flag == 1)){current_state = STATE_FORCIBLETALK;command_
-flag = 0;}
65 1 if((temp_data == COMMAND_GUESTREADY)&&(command_flag == 1)){
66 2 current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_GUESTREADY;
67 2 display_buffer[0] = SYMBLE_SUBM;
68 2 display_buffer[1] = SYMBLE_SUBM;
69 2 display_buffer[2] = SYMBLE_SUBM;
70 2 display_buffer[3] = SYMBLE_SUBM;
71 2 command_flag = 0;
72 2 }
73 1 if((temp_data == COMMAND_SETDONE)&&(command_flag == 1)){
74 2 current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_POSIDENTY;
75 2 display_buffer[0] = SYMBLE_SUBM;
76 2 display_buffer[1] = SYMBLE_SUBM;
77 2 display_buffer[2] = SYMBLE_SUBM;
78 2 display_buffer[3] = SYMBLE_SUBM;
79 2 command_flag = 0;
80 2 open_buzzer(); //BEEP
81 2 buzzer_timer = 225;
82 2 buzzer_timer_trigger = 1;
83 2 }
84 1 if((temp_data == COMMAND_SETFAIL)&&(command_flag == 1)){
85 2 current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_POSIDENTY;
86 2 display_buffer[0] = SYMBLE_SUBM;
87 2 display_buffer[1] = SYMBLE_SUBM;
88 2 display_buffer[2] = SYMBLE_SUBM;
89 2 display_buffer[3] = SYMBLE_SUBM;
90 2 command_flag = 0;
91 2 open_buzzer(); //BEEP
92 2 buzzer_timer = 55;
93 2 buzzer_timer_trigger = 1;
94 2 }
95 1 }
96 //----------------------------------------------------
97 //----------------------------------------------------
98 void rs232_send_command(void)
99 {
100 1 rs232_send_byte(send_buffer[0]); delay(1);
101 1 rs232_send_byte(send_buffer[1]); delay(1);
102 1 rs232_send_byte(send_buffer[2]); delay(1);
103 1 rs232_send_byte(send_buffer[3]); delay(1);
104 1 return ;
105 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 320 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V8.08 UART 05/25/2008 20:21:42 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -