?? 952.lst
字號:
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 952
OBJECT MODULE PLACED IN 952.OBJ
COMPILER INVOKED BY: D:\軟件安裝路徑\C51\BIN\C51.EXE 952.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG952.H>
2 #include <intrins.H>
3 #include "16C554.h"
4 #include "uart.h"
5 #include "T0.h"
6
7 #define uchar unsigned char
8 #define uint unsigned int
9
10 #define SIZE2 10
11 extern uchar over, d554,s[8];
12
13 static bit cmdflag2=0;
14 static uchar check_sum2,command2[SIZE2],cmdpos2;
15
16 void protocol2(uchar cmd2)
17 {
18 1 if(cmdflag2 == 0)
19 1 {
20 2 TR0=1;
21 2 TH0=0x00; // 11.8ms T0重裝初值
22 2 TL0=0x00;
23 2 command2[0] = cmd2;
24 2 cmdpos2 = 1;
25 2 cmdflag2 = 1;
26 2 check_sum2=command2[0];
27 2 }
28 1 else
29 1 {
30 2 command2[cmdpos2] = cmd2;
31 2 if(cmdpos2 <SIZE2-1) //表明數組沒有溢出
32 2 {
33 3 check_sum2 += command2[cmdpos2];
34 3 }
35 2 else //數組溢出
36 2 {
37 3 over=1;
38 3 check_sum2 += command2[cmdpos2];
39 3 cmdflag2 = 0;
40 3 }
41 2 cmdpos2++;
42 2 }
43 1 }
44 //主函數
45 void main(void)
46 {
47 1 uchar chr,h,rt2;
48 1 P0M1=0x00; //配置P0為準雙向口
49 1 P0M2=0x00;
50 1 P1M1=0x0e; //P1.6,P1.7接Serial_M1,Serial_M2配置為推換輸出
51 1 P1M2=0xcd; //端口初始化P1.0,P1.1分別為推挽輸出和輸入,P1.2 1.3為開漏輸出
52 1 P1M1=0x10|P1M1; //P1.4設置為中斷輸入
53 1 P1M2=0xEF&P1M1;
54 1 P2M1=0x00; //P2設置為推挽輸出方式
55 1 P2M2=0x3F;
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 2
56 1 Serial_M1=0; //將擴展的八個串口都定義為RS232
57 1 Serial_M2=0;
58 1 Serial_M3=0;
59 1 Serial_M4=0;
60 1 Serial_M5=0;
61 1 Serial_M6=0;
62 1 Serial_M7=0;
63 1 Serial_M8=0;
64 1 //P4.4=nWR P4.5=nRD P4.6=WR P4.7=LATCH
65 1 P4M1=0x08; //uart1,P4.2設置為推挽輸出方式 P4.3為輸入 其它為推挽輸出
66 1 P4M2=0xFB;
67 1 P5M1=0x00;
68 1 P5M2=0xFF; //P5設置為推挽輸出方式
69 1
70 1 T0_init();
71 1
72 1 EA=1; //開總中斷
73 1 IT1=0; //外部中斷1低電平觸發中斷
74 1 EX1=1; //外部中斷1使能位
75 1 IP0H=0x14; //設置外部中斷優先級為2級,UART0接收中斷為3級
76 1 IP0=0x10;
77 1
78 1 for(h=0;h<8;h++)
79 1 {
80 2 SC16C554_SET(s[h],38400);
81 2 SC16C554_Write(s[h]|THR, 0xff);
82 2 }
83 1 UART0_Init(); //串口初始化
84 1
85 1 while(1)
86 1 {
87 2 rt2=com_getchar554(&chr);
88 2 if(rt2==1)
89 2 {
90 3 protocol2(chr);
91 3 }
92 2 if(over)
93 2 {
94 3 uchar r;
95 3 TR0=0;
96 3 cmdflag2=0;
97 3 com_putchar(d554+1);
98 3 for(r=0;r<cmdpos2;r++)
99 3 {
100 4 com_putchar(command2[r]);
101 4 }
102 3 com_putchar(check_sum2);
103 3 over=0;
104 3 }
105 2 }
106 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 3
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILER V8.02 952 05/23/2008 11:50:49 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -