📄 1621c.lst
字号:
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE 1621C
OBJECT MODULE PLACED IN 1621C.OBJ
COMPILER INVOKED BY: C:\OMF51\BIN\C51.EXE 1621C.C SMALL CODE OE DB OJ(1621C.OBJ) OT(5)
stmt level source
1 #include <reg52.h>
2 /*设定1621 command低8位数据*/
3 /**************************/
4 #define RC256 0x18 /*系统时钟选择为:片内RC振荡器*/
5 #define X32K 0x14 /*系统时钟选择为:晶振*/
6 #define E256 0x1C /*系统时钟选择为:外部时钟源*/
7 /**************************/
8 #define BIAS 0x29 /*1/3 偏压4背极*/
9 #define SYSEN 0x01 /*打开系统时钟*/
10 #define SYSDIS 0x00 /*关闭系统时钟和*/
11 #define LCDON 0x03 /*打开偏压发生器*/
12 #define LCDOFF 0x02 /*关闭偏压发生器*/
13 /**************************/
14 #define ToneOn 0x09 /*打开音频输出*/
15 #define ToneOff 0x08 /*关闭音频输出*/
16 #define Tone4k 0x40 /*音频输出频率为4K*/
17 #define Tone2k 0x60 /*音频输出频率为2K*/
18 /**************************/
19 #define TIMEREN 0x06 /*时基输出使能*/
20 #define TIMERDIS 0x04 /*时基输出禁能*/
21 #define CLRTIME 0x0C /*清零进基发生器*/
22 /**************************/
23 #define WDTEN 0x07 /*使能WDT溢出标志输出*/
24 #define WDTDIS 0x05 /*禁止WDT溢出标志输出*/
25 #define CLRWDT 0x0E /*清零WDT*/
26 /**************************/
27 #define IRQEN 0x88 /*使能IRQ输出*/
28 #define IRQDIS 0x80 /*禁止IRQ输出*/
29 /**************************/
30 /* cpu 晶振11.0596 */
31 /**************************/
32 sbit WRITE = P1^0;
33 sbit SDATA = P1^1;
34 sbit CS = P1^4;
35 unsigned char buff[16];
36 /**************************/
37 unsigned int wait_time;
38 unsigned char num;
39 unsigned char move_data;
40 /**************************/
41 sbit WDI = P1^6;
42 sbit SYBJ = P1^7;
43 void install_cpu()
44 {
45 1 PSW=0;
46 1 TMOD=0x21;
47 1 TH0=0xfc; /*1ms*/
48 1 TL0=0x66;
49 1 TH1=0x0fd; /* 9600 */
50 1 TL1=0x0fd;
51 1 SCON=0xf0; /* 9bit */
52 1 TCON=0x50;
53 1 T2CON=0x0;
54 1 T2MOD=0x0;
55 1 ET0=1;
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 2
56 1 /* ES=1;*/
57 1 PT0=1;
58 1 EA=1;
59 1 }
60 void install_bit()
61 {
62 1 void install_1621();
63 1 unsigned char i;
64 1 SYBJ=0;
65 1 install_1621();
66 1 for(i=0;i<16;i++)
67 1 {
68 2 buff[i]=0;
69 2 }
70 1 num=0;
71 1 move_data=1;
72 1 }
73 void test()
74 {
75 1 unsigned char i;
76 1 if(num<16)
77 1 {
78 2 if(buff[num]==255)
79 2 {
80 3 num++;
81 3 move_data=1;
82 3 }
83 2 else
84 2 {
85 3 buff[num]=buff[num]|move_data;
86 3 move_data=move_data<<1;
87 3 }
88 2 }
89 1 else
90 1 {
91 2 for(i=0;i<16;i++)
92 2 {
93 3 buff[i]=0;
94 3 }
95 2 num=0;
96 2 move_data=1;
97 2 }
98 1 }
99 void main()
100 {
101 1 void install_cpu();
102 1 void install_bit();
103 1 void SendData_to_1621(unsigned char adrr_1621,unsigned char *addr_showbuff,unsigned char data_count);
104 1 void Delay(unsigned int i);
105 1 void test();
106 1 install_cpu();
107 1 install_bit();
108 1
109 1 for(;;)
110 1 {
111 2 SendData_to_1621(0,buff,16);
112 2 Delay(500);
113 2 test();
114 2
115 2 }
116 1 }
117 void t0_time() interrupt 1
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 3
118 {
119 1 ET0=0;
120 1 WDI=!WDI;
121 1 wait_time++;
122 1 TH0=0xfc; /*1ms*/
123 1 TL0=0x66;
124 1 ET0=1;
125 1 }
126 void Delay(unsigned int i)
127 {
128 1 wait_time=0;
129 1 while(wait_time<i);
130 1 }
131 /**************************/
132 /*install 1621*/
133 void install_1621()
134 {
135 1 void Bit_wr_install();
136 1 void Bit_wr(unsigned char buff,unsigned char num);
137 1 void Bit_wr_end();
138 1 Bit_wr_install();
139 1 Bit_wr(0x80,0x03);
140 1
141 1 Bit_wr(SYSEN,0x08);
142 1 Bit_wr(0x00,0x01);
143 1
144 1 Bit_wr(LCDON,0x08);
145 1 Bit_wr(0x00,0x01);
146 1
147 1 Bit_wr(0x0d,0x08);
148 1 Bit_wr(0x00,0x01);
149 1
150 1 Bit_wr(RC256,0x08);
151 1 Bit_wr(0x00,0x01);
152 1
153 1 Bit_wr(BIAS,0x08);
154 1 Bit_wr(0x00,0x01);
155 1
156 1 Bit_wr_end();
157 1 }
158 /*发送1个命令子程序*/
159 void SendCommand_to_1621(unsigned char command_H,unsigned char command_L)
160 {
161 1 void Bit_wr_install();
162 1 void Bit_wr(unsigned char buff,unsigned char num);
163 1 void Bit_wr_end();
164 1 Bit_wr_install();
165 1 Bit_wr(command_H,0x03);
166 1 Bit_wr(command_L,0x08);
167 1 Bit_wr(0x00,0x01);
168 1 Bit_wr_end();
169 1 }
170 /*发送N个数据子程序*/
171 void SendData_to_1621(unsigned char addr_1621,unsigned char *addr_showbuff,unsigned char data_count)
172 {
173 1 void Bit_wr_install();
174 1 void Bit_wr(unsigned char buff,unsigned char num);
175 1 unsigned char i;
176 1 Bit_wr_install();
177 1 Bit_wr(0x80,0x01);
178 1 Bit_wr((addr_1621|0x40),0x08);
179 1 for(i=0;i<16;i++)
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 4
180 1 {
181 2 Bit_wr(*(addr_showbuff+i),0x08);
182 2 }
183 1 }
184 /*即起动1621初始化子程序*/
185 void Bit_wr_install()
186 {
187 1 CS=1;
188 1 WRITE=1;
189 1 CS=0;
190 1 }
191 void Bit_wr_end()
192 {
193 1 CS=1;
194 1 }
195 /*发送字节数据子程序*/
196 void Bit_wr(unsigned char buff,unsigned char num)
197 {
198 1 unsigned char n;
199 1 for(n=0;n<num;n++)
200 1 {
201 2 if((buff&0x80)==0x80)
202 2 {
203 3 SDATA=1;
204 3 }
205 2 else
206 2 {
207 3 SDATA=0;
208 3 }
209 2 WRITE=0;
210 2 buff=buff<<1;
211 2 WRITE=1;
212 2 }
213 1 }
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 5
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION install_cpu (BEGIN)
; SOURCE LINE # 43
; SOURCE LINE # 44
; SOURCE LINE # 45
0000 E4 CLR A
0001 F5D0 MOV PSW,A
; SOURCE LINE # 46
0003 758921 MOV TMOD,#021H
; SOURCE LINE # 47
0006 758CFC MOV TH0,#0FCH
; SOURCE LINE # 48
0009 758A66 MOV TL0,#066H
; SOURCE LINE # 49
000C 758DFD MOV TH1,#0FDH
; SOURCE LINE # 50
000F 758BFD MOV TL1,#0FDH
; SOURCE LINE # 51
0012 7598F0 MOV SCON,#0F0H
; SOURCE LINE # 52
0015 758850 MOV TCON,#050H
; SOURCE LINE # 53
0018 F5C8 MOV T2CON,A
; SOURCE LINE # 54
001A F5C9 MOV T2MOD,A
; SOURCE LINE # 55
001C D2A9 SETB ET0
; SOURCE LINE # 57
001E D2B9 SETB PT0
; SOURCE LINE # 58
0020 D2AF SETB EA
; SOURCE LINE # 59
0022 22 RET
; FUNCTION install_cpu (END)
; FUNCTION install_bit (BEGIN)
; SOURCE LINE # 60
; SOURCE LINE # 61
; SOURCE LINE # 64
0000 C297 CLR SYBJ
; SOURCE LINE # 65
0002 120000 R LCALL install_1621
; SOURCE LINE # 66
;---- Variable 'i' assigned to Register 'R7' ----
0005 E4 CLR A
0006 FF MOV R7,A
0007 ?C0002:
; SOURCE LINE # 67
; SOURCE LINE # 68
0007 7F10 MOV R7,#010H
0009 7800 R MOV R0,#buff
000B E4 CLR A
000C ?C0035:
000C F6 MOV @R0,A
000D 08 INC R0
000E DFFC DJNZ R7,?C0035
; SOURCE LINE # 69
0010 7F10 MOV R7,#010H
0012 ?C0003:
; SOURCE LINE # 70
C51 COMPILER V3.20, SN-0 1621C 05/09/07 15:51:37 PAGE 6
0012 E4 CLR A
0013 F500 R MOV num,A
; SOURCE LINE # 71
0015 750001 R MOV move_data,#01H
; SOURCE LINE # 72
0018 22 RET
; FUNCTION install_bit (END)
; FUNCTION test (BEGIN)
; SOURCE LINE # 73
; SOURCE LINE # 74
; SOURCE LINE # 76
0000 E500 R MOV A,num
0002 C3 CLR C
0003 9410 SUBB A,#010H
0005 501B JNC ?C0006
; SOURCE LINE # 77
; SOURCE LINE # 78
0007 7400 R MOV A,#buff
0009 2500 R ADD A,num
000B F8 MOV R0,A
000C E6 MOV A,@R0
000D FF MOV R7,A
000E B4FF06 CJNE A,#0FFH,?C0007
; SOURCE LINE # 79
; SOURCE LINE # 80
0011 0500 R INC num
; SOURCE LINE # 81
0013 750001 R MOV move_data,#01H
; SOURCE LINE # 82
0016 22 RET
0017 ?C0007:
; SOURCE LINE # 84
; SOURCE LINE # 85
0017 E500 R MOV A,move_data
0019 4F ORL A,R7
001A F6 MOV @R0,A
; SOURCE LINE # 86
001B E500 R MOV A,move_data
001D 25E0 ADD A,ACC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -