📄 mmm.lst
字号:
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MMM
OBJECT MODULE PLACED IN mmm.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mmm.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include "string.h"
4
5 #include "intrins.h"
6
7 //***********************串口初始化波特率定义*****原有********************
8 #define OSC_FREQ 11059200L
9 #define BAUD_115200 256 - (OSC_FREQ/192L)/115200L
10 #define BAUD_57600 256 - (OSC_FREQ/192L)/57600L
11 #define BAUD_38400 256 - (OSC_FREQ/192L)/38400L
12 #define BAUD_28800 256 - (OSC_FREQ/192L)/28800L
13 #define BAUD_19200 256 - (OSC_FREQ/192L)/19200L
14 #define BAUD_14400 256 - (OSC_FREQ/192L)/14400L
15 #define BAUD_9600 256 - (OSC_FREQ/192L)/9600L
16 #define BAUD_4800 256 - (OSC_FREQ/192L)/4800L
17 #define BAUD_2400 256 - (OSC_FREQ/192L)/2400L
18 #define BAUD_1200 256 - (OSC_FREQ/192L)/1200L
19 //*********************************************************
20 union charint{
21 unsigned char chrX[2];
22 unsigned int intX;
23 };
24 union charint ad_temp;
25 //************************程序用的变量********************
26 unsigned char data RXtem[16], RXdata[6];//程序接收数据缓冲区
27 unsigned char data RXNOM,RXSTAT,RX_len=0;
28 unsigned char data RXTimerOUT; //接收超时
29 bit rxok; // 接收完成标志
30
31
32 sbit CS=P2^4;
33 sbit PWR_UP=P2^5;
34 sbit TX_EN=P2^6;
35 sbit Test_led=P1^4;
36 sbit TX=P3^1;
37 sbit RX=P3^0;
38 sbit wdog=P1^0;
39 /****************************************************************************/
40
41
42 void Delay100ms(unsigned char x)
43 {
44 1 unsigned char i,j;
45 1
46 1 while(x-- != 0)
47 1 { wdog=! wdog;
48 2 for (j = 0;j < 67; j++)for (i = 0;i < 88; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
49 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
50 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
51 3 _nop_() ;_nop_() ;_nop_() ;};
52 2 }
53 1 }
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 2
54 /****************************************************************************/
55
56
57 void Delay1ms(unsigned char idata x)
58 {
59 1 unsigned char i;
60 1
61 1 while(x-- != 0)
62 1 {wdog=! wdog;
63 2 for (i = 0;i <23 ; i++){_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;
64 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
65 3 _nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_() ;_nop_(
-) ;
66 3 _nop_() ;_nop_() ;_nop_() ;};
67 2 }
68 1 }
69
70 /****************************************************************************
71 * *
72 * Function: init_com *
73 * *
74 * Input: - *
75 * Output: - *
76 * *
77 * Description: *
78 ****************************************************************************/
79 void init_com(void)
80 {
81 1 PCON = 0x80; // SMOD = 1; bps = Time1/16
82 1 SCON = 0x50; // Mode 1, 1 star bit, 8 data bit, 1,stop bit UART, enable receive
83 1 TMOD = 0x21; // Timer 1, mode 2, 8-bit auto reload,
84 1 // Timer 0, mode 1, 16-bit counter
85 1 TH1 =BAUD_19200; //BAUD_2400;
86 1 TL1 = TH1;
87 1 TR1 = 1; // Timer 1 run
88 1
89 1 ES = 0; // Enable serail interrupts
90 1 EA=1;
91 1 RXSTAT=0;
92 1 RXNOM=0;
93 1 rxok=0;
94 1 RXTimerOUT=10;
95 1 }
96 /****************************************************************************
97 * *
98 * Function: START_T0 *
99 * *
100 * Input: - *
101 * Output: - *
102 * *
103 * Description: *
104 * *
105 * *
106 ****************************************************************************/
107 void START_T0(unsigned char x)
108 {
109 1 ET0 = 0 ;
110 1 TR0 = 0;
111 1 RXTimerOUT = x ;
112 1 TL0 = 0;
113 1 TH0 = 0;
C51 COMPILER V7.07 MMM 02/25/2009 22:17:42 PAGE 3
114 1 TR0 = 1;
115 1 ET0 = 1 ;
116 1 }
117 /****************************************************************************
118 * *
119 * Function: CALL_isr_T0 *
120 * *
121 * Input: - *
122 * Output: - *
123 * *
124 * Description: *
125 * *
126 * *
127 ****************************************************************************/
128 void CALL_isr_T0(void)
129 {
130 1 TR0 = 0;
131 1 RXTimerOUT = 0;
132 1 TF0 = 1;
133 1
134 1 }
135
136 //********************串口中断处理程序**************************************************************
137 void int4() interrupt 4 using 1
138 {
139 1 unsigned char c,add,i;
140 1 if ( RI ) // Receive Command
141 1 {
142 2 // RXTimerOUT=10;
143 2
144 2 RI = 0;
145 2 c = SBUF;
146 2
147 2 switch(RXSTAT)
148 2 {
149 3 case 0: //接受帧头02
150 3 if(c==0x55){RXSTAT=1;START_T0(20);}
151 3 else
152 3 CALL_isr_T0();
153 3 break;
154 3 case 1: //接收
155 3
156 3 //if(c==0xaa)
157 3 if(c==0xff)
158 3 {
159 4
160 4 RXSTAT=2;
161 4 START_T0(20);
162 4 }
163 3 else
164 3 {
165 4 CALL_isr_T0();
166 4 RXSTAT=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -