📄 anayserial_1.lst
字号:
C51 COMPILER V7.09 ANAYSERIAL_1 07/20/2007 17:27:17 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE ANAYSERIAL_1
OBJECT MODULE PLACED IN D:\01工作\云星宇~1\软件调试\终稿\通讯程序\ANAYSERIAL_1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\01工作\云星宇~1\软件调试\终稿\通讯程序\ANAYSERIAL_1.C DB SB OE
line level source
1 /**************************************************************/
2 /**文件名:anayserial.c **/
3 /** **/
4 /**文件描述: 通过RS232接收上位机的数据,对该数据进行分析; **/
5 /** 显示相应的内容,发出相应的语音. **/
6 /** 数据类型分为:机器内码形式,点阵形式,固定语句形式 **/
7 /** **/
8 /**创建人: 陈芸 时间: 2007年07月17日 **/
9 /** **/
10 /**版本号: 01 **/
11 /**修改记录 **/
12 /**************************************************************/
13
14 #include<reg52.h>
15 #include<absacc.h>
16 #include<def_pin.h>
17 #include<def_para.h>
18 #include<def_code.h>
19
20 void WDFeed(void);
21 void Tx(void);
22 void rom2ram_hanzi(uchr x,ulng y);
23 void rom2ram_ascii(uchr x,uchr y);
24
25 void main(void)
26 {
27 1 uchr cnt_zi=0,tmpi=0,tmpq=0,tmpw=0,tp=0,tmp=0;
28 1 uint i=0;
29 1 ulng tmpoffset=0;
30 1 uchr style=0,length_h=0,length_l=0,chk=0,length_s=0;
31 1 uint length_d=0;
32 1 bit f_over=0;
33 1 //片内扩展DATA设置
34 1 CHPENR=0x87;
35 1 CHPENR=0x59;
36 1 //CHPCON|=0x10;//片内外部存储器写允许 //CHPCON=0x00; ----则片内外部存储器写禁止
37 1 //串口初始化
38 1 TMOD=0x21;//定时器0,方式1;定时器1,方式2
39 1 TH1=0X0fd;
40 1 TL1=0x0fd;
41 1 PCON=0x00;
42 1 SCON=0x50;
43 1
44 1 //定时器初始化
45 1 TH0=0xfc;//定时1ms
46 1 TL0=0x66;
47 1 //外部中断初始化
48 1 IT0=1;
49 1
50 1 PS=1;
51 1 PX0=1;
52 1 PT0=1;
53 1
54 1 EA=1;
55 1 ES=1;
C51 COMPILER V7.09 ANAYSERIAL_1 07/20/2007 17:27:17 PAGE 2
56 1 ET0=1;
57 1 ET1=1;
58 1 EX0=1;
59 1 TR1=1;
60 1 TR0=1;
61 1
62 1 WDFeed();
63 1 pin_wrram=1;
64 1 CHPCON=0x00;
65 1 while(1)
66 1 {
67 2 WDFeed();
68 2 if(f_delaywr==1)
69 2 {
70 3 f_delaywr=0;
71 3 //硬件写置1
72 3 pin_wrram=1;
73 3 if(f_normdisp==1)
74 3 {
75 4 f_normdisp=0;
76 4 cnt_zi=0;
77 4 tmpi=0;
78 4 for(i=0;i<lengthnorm;i++)
79 4 {
80 5 tp=codebuff[i];
81 5 if(tp>0x80) //汉字
82 5 {
83 6 tmpi++;
84 6 cnt_zi++;
85 6 if(tmpi==2)
86 6 {
87 7 tmpi=0;
88 7 tmpq=codebuff[i-1]-0xa0;
89 7 tmpw=codebuff[i]-0xa0;
90 7 tmpoffset=(ulng)((tmpq-1)*94+(tmpw-1))*32;
91 7 WDFeed();
92 7 CHPCON=0x00;
93 7 rom2ram_hanzi(cnt_zi,tmpoffset);
94 7 }
95 6 }
96 5 else //ASCII 码
97 5 {
98 6 if(tmpi!=0)
99 6 {
100 7 tmpi=0;
101 7 break;//??????????????
102 7 }
103 6 else
104 6 {
105 7 cnt_zi++;
106 7 WDFeed();
107 7 //分析ASCii码
108 7 CHPCON=0x00;
109 7 tp=codebuff[i];
110 7 rom2ram_ascii(cnt_zi,tp);
111 7 }
112 6 }
113 5 }
114 4 //CHPCON|=0x10;
115 4 }
116 3 if(f_leddisp==1)//??????????????????????
117 3 {
C51 COMPILER V7.09 ANAYSERIAL_1 07/20/2007 17:27:17 PAGE 3
118 4 f_leddisp=0;
119 4 if(f_over128==1)
120 4 {
121 5 for(i=0;i<128;i++)
122 5 {
123 6 CHPCON=0x00;
124 6 ram_ce=0;
125 6 nDispRam[i]=rxbuff[i];
126 6 ram_ce=1;
127 6 }
128 5 for(i=0;i<(length_d-128);i++)
129 5 {
130 6 CHPCON|=0x10;
131 6 tmpi=rxbuff2[i];
132 6 CHPCON=0x00;
133 6 ram_ce=0;
134 6 nDispRam[128+i]=tmpi;
135 6 ram_ce=1;
136 6 }
137 5 for(i=0;i<(lengthled-length_d);i++)
138 5 {
139 6 ram_ce=0;
140 6 nDispRam[length_d+i]=0;
141 6 ram_ce=1;
142 6
143 6
144 6 }
145 5 }
146 4 else
147 4 {
148 5 for(i=0;i<length_d;i++)
149 5 {
150 6 ram_ce=0;
151 6 nDispRam[i]=rxbuff[i];
152 6 ram_ce=1;
153 6 }
154 5 for(i=0;i<(lengthled-length_d);i++)
155 5 {
156 6 ram_ce=0;
157 6 nDispRam[i+length_d]=0;
158 6 ram_ce=1;
159 6 }
160 5 }
161 4 }
162 3 /*if(f_fixdisp==1)
163 3 {
164 3 f_fixdisp=0;
165 3
166 3 } */
167 3 f_fixdisp=0;
168 3 f_normdisp=0;
169 3 f_leddisp=0;
170 3 f_wrramover=1;
171 3 pin_wrram=0;
172 3 }
173 2 if(f_anayrx==1)
174 2 {
175 3 f_anayrx=0;
176 3 f_over=f_over128;
177 3 length_d=lengthdisp;
178 3 length_s=lengthsound;
179 3 style=dispstyle;
C51 COMPILER V7.09 ANAYSERIAL_1 07/20/2007 17:27:17 PAGE 4
180 3 length_h=displength_h;
181 3 length_l=displength_l;
182 3 chk=rx_check;
183 3 check=0;
184 3 check^=style;
185 3 check^=length_h;
186 3 check^=length_l;
187 3 if(f_over==1)
188 3 {
189 4 for(i=0;i<128;i++)
190 4 {
191 5 check^=rxbuff[i];
192 5 }
193 4 for(i=0;i<(length_d-127);i++)
194 4 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -