📄 setframe.lst
字号:
C51 COMPILER V7.01 SETFRAME 09/23/2008 14:27:39 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE SETFRAME
OBJECT MODULE PLACED IN SetFrame.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SetFrame.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 //宏定义
3 #define KEY_ENTER 0x01
4 #define KEY_MOVE 0x02
5 #define KEY_DOWN 0x03
6 #define KEY_UP 0x04
7 #define KEY_SET 0x05
8 #define KEY_ESC 0x06
9
10 //存储在ROM中的各个地址基本,设置存入第二页中,0020-003f
11 #define PAGE2_BASE_ADD 0x0020//本页基本地址
12 #define VVALUE_STORE_ADD 0x0020//电压等级地址 10
13 #define CTVALUE_STORE_ADD 0x0021//CT变比地址 400
14 #define PTVALUE_STORE_ADD 0x0023//PT变比地址 100
15 #define TSCNUM_STORE_ADD 0x0024//TSC组数地址 5
16 //#define HVCPERMIT_STORE_ADD 0x0025//HVC允许地址 0
17 #define HVCNUM_STORE_ADD 0x0026//HVC组数地址 3
18 #define RUNMOD_STORE_ADD 0x0027//运行模式地址 0
19 #define TTHRESH_STORE_ADD 0x0028//投入门限地址 75/实际为0.75
20 #define QTHRESH_STORE_ADD 0x0029//切除门限地址 99/实际为0.99
21 #define TCOEFFI_STORE_ADD 0x002a//投入系数地址 110/实际为1.10
22
23 //----------------------------------------------------
24
25 //******************************************************
26 typedef unsigned char uchar;
27 typedef unsigned int uint;
28 //-----------------------------------------------------------------------------------------------------
29 //外部函数声明
30 extern void display3list(unsigned int *STRTABLE[]);//显示一屏的4行,通过改变全局变量fbchar,i有不同的显示效
-果,并改变全局变量selenum,
31 extern void key_up_move(unsigned int *STRTAB[]);//按上移键,反白上移,若为第一条则不动,输入:字符串地址列
-表*STRTAB[]
32 extern void key_down_move(unsigned int *STRTAB[],unsigned char num);//按下移键,反白下移,若为最后一条则不
-动?/输入:字符串地址列表数组*STRTAB[],选项总数num,void getfigurebit(unsigned int para);
33 extern void init_frame(unsigned int *STRTAB[]);//写初始页面
34 extern void clearscreen();
35 extern void getfigurebit(unsigned int para);//得到各个位,最高bit4,bit3,bit2,bit1;
36 extern void putchar(unsigned int singlecharnum);
37 extern void putstr(unsigned int *STR);
38 //void set_time();
39
40 void send_single8(unsigned char para_ID,unsigned char para8);
41 void send_single16(unsigned char para_ID,unsigned int para16);
42 void dsp_ans(unsigned char check_ID);
43 void message_show();
44 //void can_common();
45 void delay20ms();
46
47 extern void bytewrite_chip1(uint wbyteadd,uchar wbytedata);
48 extern uchar byteread_chip1(uint rbyteadd);
49 extern void wordwrite_chip1(uint wwordadd,uint wworddata);
50 extern uint wordread_chip1(uint rwordadd);
51 //----------------------------------------------------------------------------------------------
52 //外部变量声明
C51 COMPILER V7.01 SETFRAME 09/23/2008 14:27:39 PAGE 2
53 extern uchar xdata KEY_BUF;
54 extern uchar xdata selenum;//选择的字符串号,16位
55 extern uchar xdata i; //第二行显示的字符串号
56 extern uchar xdata fbchar; //fbchar为反白字节,4时第一行反白,2时第二行反白,1时最后一行反白
57 extern uchar xdata TOTALNUM;
58 extern uchar xdata XPOS;//XPOS为0~7
59 extern uchar xdata YPOS;//YPOS为0~127
60 extern bit FB_FLAG;
61 extern unsigned int xdata bit1,bit2,bit3,bit4;
62 //--------------------------------------------------------------------------------
63
64 //外部变量定义
65 unsigned int xdata VVALUE,CTVALUE,PTVALUE,TSCNUM,HVCNUM,RUNMOD,TTHRESH,QTHRESH,TCOEFFI;
66 //unsigned int data SLOPETIME,STARTTORQUE,DUDELAY,STOPTIME,ID;//各全局变量
67
68 unsigned int xdata basevar[11];//变量表,记录各全局变量
69 unsigned int xdata var,max;
70
71 bit fbbit1,fbbit2,fbbit3;
72 unsigned char xdata fbbitchar;
73 unsigned char xdata selebit;//设数时的各反白标志
74 unsigned char xdata Flag_unit;//有无单位标志
75
76 unsigned char remi;//记录第一行是哪个选项的变量
77 extern bit DSP_REV_FLAG;//DSP是否接受数据标志位,0接受,1 没有接受
78 unsigned char xdata SENDDATABUF[10];//发送缓冲器,存放包括两个字节ID在内的10个字节,放在XDATA
79 unsigned char xdata REVDATABUF[10];//接受缓冲器,存放包括两个字节ID在内的10个字节,放在XDATA
80
81 //数组定义
82 //-------------------------------------------
83 unsigned char code basic_para_ID[7]={0xff,0x02,0x03,0x04,0x05,0x06,0x07};//参数ID
84 //----------------------------------
85 //unsigned int code unit[7]={0x0017,0x003b,0x0036,0x002A,0x0030,0x0030,0x000a};//单位表{'','KV','A','?','?
-','?','?',}
86 unsigned int code maxvar[7]={0,600,30,90,100,120,99};//变量最值表
87
88 //字符串定义
89 unsigned int code STR0bsettitle[] = {0x8022,0x8023,0x8024,0x8025,0x00ff};//基本设置
90 unsigned int code STR1_voltrank[] = {0x0001,0x800F,0x8033,0x8034,0x8035,0x0017,0x00ff};//1电压等级
91 unsigned int code STR2_CTratio[] = {0x0002,0x0017,0x0038,0x0044,0x0017,0x804A,0x804B,0x0017,0x00ff};//2CT
-变比
92 unsigned int code STR3_PTratio[] = {0x0003,0x0017,0x003E,0x0044,0x0017,0x804A,0x804B,0x0017,0x00ff};//3PT
-变比
93 unsigned int code STR4_TSCnum[] = {0x0004,0x0017,0x0044,0x0042,0x0038,0x804C,0x801F,0x0017,0x00ff};//4TS
-C组数
94 //unsigned int code STR5_stoptime[] = {0x0005,0x0017,0x0039,0x0046,0x0038,0x804D,0x804E,0x0017,0x00ff};//5
-HVC允许
95 unsigned int code STR5_HVCnum[] = {0x0005,0x0017,0x0039,0x0046,0x0038,0x804C,0x801F,0x0017,0x00ff};//6HV
-C组数
96 unsigned int code STR6_runmod[] = {0x0006,0x804F,0x8050,0x8051,0x8052,0x0017,0x00ff};//7运行方式
97 unsigned int code STR7_TOUthreshold[] = {0x0007,0x8053,0x8054,0x8055,0x8056,0x0017,0x00ff};//8投入门限
98 unsigned int code STR8_QIEthreshold[] = {0x0008,0x8057,0x8058,0x8055,0x8056,0x0017,0x00ff};//9切除门限
99 unsigned int code STR9_coefficient[] = {0x0009,0x8053,0x8054,0x8022,0x801F,0x00ff};//10投入系数
100 unsigned int * code BSETSTRTABLE[] = {STR0bsettitle,STR1_voltrank,STR2_CTratio,STR3_PTratio,STR4_TSCnum,ST
-R5_HVCnum,STR6_runmod,STR7_TOUthreshold,STR8_QIEthreshold,STR9_coefficient};
101
102 unsigned int code UNIT0_Volt[] = {0x003b,0x0047,0x00ff};//Kv
103 unsigned int code UNIT3_Group[] = {0x804c,0x00ff};//组
104 unsigned int code UNIT4_Group[] = {0x804c,0x00ff};//组
105
106 //unsigned int code UNIT2_ActiveP[] = {0x003b,0x0049,0x00ff};//Kw
107 //unsigned int code UNIT3_Reactive[] = {0x003b,0x0047,0x005d,0x0041,0x00ff};//Kvar
C51 COMPILER V7.01 SETFRAME 09/23/2008 14:27:39 PAGE 3
108 //unsigned int code UNIT4_Frequency[] = {0x0039,0x0060,0x00ff};//Hz
109 //unsigned int code UNIT5_PQuant[] = {0x003b,0x0049,0x0061,0x00ff};//Kwh
110 //unsigned int code UNIT8_Second[] = {0x0043,0x00ff};//s
111 //unsigned int code UNIT9_MSecond[] = {0x003c,0x0043,0x00ff};//ms
112 unsigned int * code UNITTABLE[] = {UNIT0_Volt,UNIT0_Volt,UNIT0_Volt,UNIT0_Volt,UNIT3_Group,UNIT4_Group};
113 //-----------------------------------------------------------------------------------------
114
115 //写000型数据
116 void write3dfig()
117 {
118 1 if(fbbitchar==1)
119 1 {
120 2 selebit=1;
121 2 fbbit1=1;
122 2 fbbit2=0;
123 2 fbbit3=0;
124 2 }
125 1 else if(fbbitchar==2)
126 1 {
127 2 selebit=2;
128 2 fbbit1=0;
129 2 fbbit2=1;
130 2 fbbit3=0;
131 2 }
132 1 else if(fbbitchar==4)
133 1 {
134 2 selebit=3;
135 2 fbbit1=0;
136 2 fbbit2=0;
137 2 fbbit3=1;
138 2 }
139 1 XPOS=4;
140 1 YPOS=56;
141 1 FB_FLAG=fbbit3;
142 1 putchar(bit3);//写百位
143 1 YPOS=64;
144 1 FB_FLAG=fbbit2;
145 1 putchar(bit2);//写十位
146 1 YPOS=72;
147 1 FB_FLAG=fbbit1;
148 1 putchar(bit1);
149 1 }//写个位
150 //----------------------------------------------------------------------
151
152 //写入00.0型数据
153 void write2d1fig()
154 {
155 1 if(fbbitchar==1)
156 1 {
157 2 selebit=1;
158 2 fbbit1=1;
159 2 fbbit2=0;
160 2 fbbit3=0;
161 2 }
162 1 else if(fbbitchar==2)
163 1 {
164 2 selebit=2;
165 2 fbbit1=0;
166 2 fbbit2=1;
167 2 fbbit3=0;
168 2 }
169 1 else if(fbbitchar==4)
C51 COMPILER V7.01 SETFRAME 09/23/2008 14:27:39 PAGE 4
170 1 {
171 2 selebit=3;
172 2 fbbit1=0;
173 2 fbbit2=0;
174 2 fbbit3=1;
175 2 }
176 1 XPOS=4;
177 1 YPOS=48;
178 1 FB_FLAG=fbbit3;
179 1 putchar(bit3);//写十位
180 1 YPOS=56;
181 1 FB_FLAG=fbbit2;
182 1 putchar(bit2);//写个位
183 1 YPOS=64;
184 1 FB_FLAG=0;
185 1 putchar(0x0028);//写小数点
186 1 YPOS=72;
187 1 FB_FLAG=fbbit1;
188 1 putchar(bit1);
189 1 }//写小数位
190 //----------------------------------------------------------------------
191
192 //写标题和单位
193 void setwritestr()
194 {
195 1 XPOS=0;
196 1 YPOS=0;
197 1 FB_FLAG=0;
198 1 putstr(BSETSTRTABLE[selenum]); //写标题
199 1 XPOS=4;
200 1 YPOS=80;
201 1 if(Flag_unit == 1)//有单位 则写单位
202 1 {
203 2 putstr(UNITTABLE[selenum]);//写单位
204 2 Flag_unit = 0;
205 2 }
206 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -