📄 pm6388.lst
字号:
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 1
DOS C51 COMPILER V3.96, COMPILATION OF MODULE PM6388
OBJECT MODULE PLACED IN PM6388.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE PM6388.C DB OE SMALL ROM(LARGE)
stmt level source
1 #include <reg51.h>
2 #include <absacc.h>
3 #include "intrins.h"
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define PM6388 0x8000
7 #define PM4314 0x8800
8 #define RAM_ADDR 0x9000
9 #define LED XBYTE[0x8c03]
10 #define CSCKS XBYTE[0x8c02]
11 #define CSCKM XBYTE[0x8c01]
12 #define CSCRST XBYTE[0x8c00]
13 #define SS_IDLE 0xb //示闲
14 #define SS_HOLD 0x3 //占用
15
16 uchar led_flag ,k,h,fsn,ceshi_data[8];
17 sbit RUN_LED=P1^1;
18
19 void e1_alarm_led(void) /* 点灯 */
20 {
21 1 uint xdata addr_alarm_led;
22 1 uchar xdata led_new,t,l;
23 1 led_new = 0;
24 1 for (t = 8;t > 0;t--)
25 1 {
26 2 addr_alarm_led = PM6388 + (t - 1) * 0x80;
27 2 l = (XBYTE[addr_alarm_led + 0x36] & 0x40) ;
28 2 l = l >> 6;
29 2 led_new = led_new * 2 + l;
30 2 }
31 1 LED = led_new;
32 1 }
33 void delay (void)
34 {
35 1 xdata unsigned int m,l; /*delay 1/2ms*/
36 1 for(m = 0; m < 500; m++)
37 1 {
38 2 l = (m * 2) / 2;
39 2 }
40 1 }
41 void init_ram (void)
42 {
43 1 uint xdata i;
44 1 for(i = 0;i < 2048;i++)
45 1 {
46 2 XBYTE[RAM_ADDR + i] = 0;
47 2 }
48 1 }
49 void timer0(void) interrupt 1 using 1
50 {
51 1 EA = 0;
52 1 TH0=-40680/256;
53 1 TL0=-40680%256;
54 1 TR0 = 1;
55 1 led_flag = 1;
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 2
56 1 RUN_LED =!RUN_LED;
57 1 EA = 1;
58 1 }
59 void init_pm4314 (void) /* 初始化PMC4314 */
60 {
61 1 uint xdata addr_e1_pm4314; /* 每路e1接口的起始地址 */
62 1 uchar xdata l,k,j;
63 1 uchar xdata i;
64 1 for(j = 0;j < 2;j++)
65 1 {
66 2 for(i = 0;i < 4;i++)
67 2 {
68 3 addr_e1_pm4314 = PM4314 + i * 0x40 + j * 0x200;
69 3 XBYTE[addr_e1_pm4314+0x00] = 0x09;
70 3 XBYTE[addr_e1_pm4314+0x01] = 0x01;
71 3 XBYTE[addr_e1_pm4314+0x02] = 0x0f;
72 3 XBYTE[addr_e1_pm4314+0x05] = 0x00;
73 3 XBYTE[addr_e1_pm4314+0x09] = 0;
74 3 XBYTE[addr_e1_pm4314+0x0a] = 0;
75 3 XBYTE[addr_e1_pm4314+0x0b] = 0;
76 3 XBYTE[addr_e1_pm4314+0x10] = 0;
77 3 XBYTE[addr_e1_pm4314+0x11] = 0;
78 3 XBYTE[addr_e1_pm4314+0x14] = 0;
79 3 XBYTE[addr_e1_pm4314+0x1f] = 0x22;
80 3 XBYTE[addr_e1_pm4314+0x27] = 0;
81 3 XBYTE[addr_e1_pm4314+0x29] = 0;
82 3 XBYTE[addr_e1_pm4314+0x2d] = 0;
83 3 XBYTE[addr_e1_pm4314+0x2c] = 0x80;
84 3 for(k = 0;k < 8;k++)
85 3 {
86 4 if(k < 4) l = 8;
87 4 else l = 0;
88 4 XBYTE[addr_e1_pm4314 + 0x2e] = k;
89 4 XBYTE[addr_e1_pm4314 + 0x2f] = l;
90 4 }
91 3 XBYTE[addr_e1_pm4314+0x2c] = 0x80;
92 3 XBYTE[addr_e1_pm4314+0x30] = 0x01;
93 3 }
94 2 }
95 1 }
96
97 void init_pm6388 (void) /* 初始化PMC6388 */
98 {
99 1 uint xdata addr_e1_pm6388; /* 每路e1接口的起始地址 */
100 1 uchar xdata i,l,k;
101 1 for(i = 0; i < 8; i++)
102 1 {
103 2 addr_e1_pm6388 = PM6388 + i * 0x80;
104 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x01; /* 对寄存器进行复位 */
105 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x01;
106 2 delay();
107 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
108 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
109 2 XBYTE[addr_e1_pm6388 + 0x00] = 0x00; /* 默认值 00 */
110 2 XBYTE[addr_e1_pm6388 + 0x10] = 0x3b;
111 2 //l = XBYTE[addr_e1_pm6388 + 0x10];
112 2 XBYTE[addr_e1_pm6388 + 0x18] = 0x3b;
113 2 XBYTE[addr_e1_pm6388 + 0x02] = 0x00;
114 2 XBYTE[addr_e1_pm6388 + 0x04] = 0x0c;//0x0c
115 2 XBYTE[addr_e1_pm6388 + 0x0c] = 0;
116 2 XBYTE[addr_e1_pm6388 + 0x0e] = 0 ;
117 2 XBYTE[addr_e1_pm6388 + 0x11] = 0x20 ;
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 3
118 2 XBYTE[addr_e1_pm6388 + 0x12] = 0x01;
119 2 XBYTE[addr_e1_pm6388 + 0x14] = 0;
120 2 XBYTE[addr_e1_pm6388 + 0x1c] = 0;
121 2 XBYTE[addr_e1_pm6388 + 0x19] = 0x01;//0x03
122 2 XBYTE[addr_e1_pm6388 + 0x1a] = 0;
123 2 switch (i)
124 2 {
125 3 case 0:
126 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
127 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
128 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x0;
129 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x0;
130 3 break;
131 3 case 1:
132 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
133 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
134 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x01;
135 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x01;
136 3 break;
137 3 case 2:
138 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
139 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
140 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x02;
141 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x02;
142 3 break;
143 3 case 3:
144 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x40;
145 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x48;
146 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x03;
147 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x03;
148 3 break;
149 3 case 4:
150 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
151 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
152 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x0;
153 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x0;
154 3 break;
155 3 case 5:
156 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
157 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
158 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x01;
159 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x01;
160 3 break;
161 3 case 6:
162 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
163 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
164 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x02;
165 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x02;
166 3 break;
167 3 case 7:
168 3 XBYTE[addr_e1_pm6388 + 0x03] = 0x50;
169 3 XBYTE[addr_e1_pm6388 + 0x01] = 0x58;
170 3 XBYTE[addr_e1_pm6388 + 0x13] = 0x03;
171 3 XBYTE[addr_e1_pm6388 + 0x1b] = 0x03;
172 3 break;
173 3 }
174 2 XBYTE[addr_e1_pm6388 + 0x23] = 0x23;
175 2
176 2 XBYTE[addr_e1_pm6388 + 0x27] = 0x23;
177 2 XBYTE[addr_e1_pm6388 + 0x30] = 0x00;
178 2 XBYTE[addr_e1_pm6388 + 0x31] = 0x40;
179 2 XBYTE[addr_e1_pm6388 + 0x32] = 0;
C51 COMPILER V3.96, SN-83203013 PM6388 06/04/06 18:58:18 PAGE 4
180 2 XBYTE[addr_e1_pm6388 + 0x33] = 0;
181 2 XBYTE[addr_e1_pm6388 + 0x3b] = 0;
182 2 XBYTE[addr_e1_pm6388 + 0x3e] = 0;
183 2 XBYTE[addr_e1_pm6388 + 0x40] = 0x61;
184 2 XBYTE[addr_e1_pm6388 + 0x41] = 0x80;
185 2 XBYTE[addr_e1_pm6388 + 0x42] = 0xff;
186 2 XBYTE[addr_e1_pm6388 + 0x43] = 0xff;
187 2
188 2 XBYTE[addr_e1_pm6388 + 0x44] = 0;
189 2 XBYTE[addr_e1_pm6388 + 0x46] = 0;
190 2 XBYTE[addr_e1_pm6388 + 0x47] = 0xff;
191 2 XBYTE[addr_e1_pm6388 + 0x07] = 0x04;//*******************//0x0c
192 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
193 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x00;
194 2 XBYTE[addr_e1_pm6388 + 0x49] = 0x05;
195 2 //l = XBYTE[addr_e1_pm6388 + 0x49];
196 2 XBYTE[addr_e1_pm6388 + 0x48] = 0x00;
197 2 XBYTE[addr_e1_pm6388 + 0x28] = 0x00;//0x00 ***********
198 2 XBYTE[addr_e1_pm6388 + 0x29] = 0xff;//0xff ***********
199 2 XBYTE[addr_e1_pm6388 + 0x2a] = 0;
200 2 XBYTE[addr_e1_pm6388 + 0x2b] = 0;
201 2 XBYTE[addr_e1_pm6388 + 0x2c] = 0;
202 2 XBYTE[addr_e1_pm6388 + 0x2d] = 0;
203 2 XBYTE[addr_e1_pm6388 + 0x49] = 0x01;
204 2
205 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
206 2 XBYTE[addr_e1_pm6388 + 0x0a] = 0x08;
207 2 XBYTE[addr_e1_pm6388 + 0x50] = 0x42;
208 2 XBYTE[addr_e1_pm6388 + 0x28] = 0x00;//0x00 ************
209 2 XBYTE[addr_e1_pm6388 + 0x29] = 0xff;//0xff ************
210 2 XBYTE[addr_e1_pm6388 + 0x2a] = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -