📄 interface.lst
字号:
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE INTERFACE
OBJECT MODULE PLACED IN INTERFACE.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe INTERFACE.C DB OE
stmt level source
1 //********************************************************************************************************
-******************
2 #include <c8051F020.h>
3 #include <stdio.h>
4 #include <setjmp.h>
5 #include <string.h>
6 #include "HEAD.H"
7 //********************************************************************************************************
-******************
8 jmp_buf ReturnToJSJM;
9 //********************************************************************************************************
-******************
10 void Sys_Function(void)
11 {
12 1 xdata unsigned char SubFuncKey=0x00;
13 1
14 1 while(1)
15 1 {
16 2 LCD_CLEAR();
17 2 //LCD_DispStr("U:Start Test.",8,5);
18 2 disp_chn_str("↑丰开始测试",2,10,12,1);
19 2 //LCD_DispStr("D:Date Index.",16,5);
20 2 disp_chn_str("↓丰数据检索",14,10,12,1);
21 2 //LCD_DispStr("L:Clear Al:l Date.",24,5);
22 2 disp_chn_str("←丰清除所有数据",26,10,12,1);
23 2 //LCD_DispStr("R:System Set.",32,5);
24 2 disp_chn_str("→丰设置参数",38,10,12,1);
25 2 //LCD_DispStr("E:Return.",48,5);
26 2 //disp_chn_str("确定 返回",50,15,12,1);
27 2 Display_Data();
28 2
29 2 while(!(SubFuncKey=get_key(1)));
30 2
31 2 switch(SubFuncKey)
32 2 {
33 3 case UP_ARROW_KEY:
34 3 {
35 4 Date_Test();
36 4 break;
37 4 }
38 3 case DOWN_ARROW_KEY:
39 3 {
40 4 Date_Index();
41 4 break;
42 4 }
43 3 case LEFT_ARROW_KEY:
44 3 {
45 4 Clear_ALL_Date();
46 4 break;
47 4 }
48 3 case RIGHT_ARROW_KEY:
49 3 {
50 4 Sys_Setup();
51 4 break;
52 4 }
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 2
53 3 case RETURN_KEY:
54 3 {
55 4 LCD_CLEAR();
56 4 return;
57 4 }
58 3 default:break;
59 3 }
60 2 SubFuncKey=0x00;
61 2 }
62 1 }
63 //********************************************************************************************************
-******************
64 void Date_Test(void)
65 {
66 1 xdata unsigned int i;
67 1
68 1 LCD_CLEAR();
69 1 WorkStation=0xBB;
70 1 HollDataNum=0x00;
71 1 HollSigNum=0x00;
72 1 TH2=0;TL2=0;
73 1 DS1302_Read();
74 1 //LCD_DispStr("Station:Testing",16,5);
75 1 disp_chn_str("数据测试中",14,10,12,1);
76 1
77 1 disp_chn_str("转数",50,10,12,1);
78 1 disp_chn_str("时间",38,10,12,1);
79 1 while(WorkStation==0xBB)
80 1 {
81 2 if(Timer3%TimeFre==0x00)
82 2 {
83 3 sprintf(Str_Buffer,":%05.0fc",(float)HollSigNum);
84 3 LCD_DispStr(Str_Buffer,52,34);
85 3 //LCD_SHOW_WellSaveStation();
86 3 sprintf(Str_Buffer,":%3.0f/%3.0fs",(float)(HollDataNum*TestTime/40),(float)(HollDateLong*TestTime/40));
87 3 LCD_DispStr(Str_Buffer,40,34);
88 3 Display_Data();
89 3 }
90 2 }
91 1 //LCD_DispStr("Station:Saving ",16,5);
92 1 disp_chn_str("数据保存中",14,10,12,1);
93 1 // 确保显示数据正确
94 1 sprintf(Str_Buffer,":%05.0fc",(float)HollSigNum);
95 1 LCD_DispStr(Str_Buffer,52,34);
96 1 // 保存标志
97 1 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong,0xA5);
98 1 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+1,0x5A);
99 1 // 保存数据长度
100 1 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+2,HollDataNum*TestTime>>8);
101 1 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+3,HollDataNum*TestTime);
102 1 // 保存日期
103 1 for(i=0;i<9;i++)
104 1 {
105 2 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+4+i,Clock_Date_Str[i]);
106 2 }
107 1 // 保存时间
108 1 for(i=0;i<9;i++)
109 1 {
110 2 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+13+i,Clock_Time_Str[i]);
111 2 }
112 1 // 保存井号
113 1 Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+22,NowWellName);
C51 COMPILER V7.06 INTERFACE 06/25/2008 15:44:08 PAGE 3
114 1 // 保存数据
115 1 Write_Well_date(0x400*NowSaveWellAddr,HollDate,HollDateLong);
116 1 /*
117 1 for(i=0;i<HollDateLong;i++)
118 1 {
119 1 Write_Eeprom(0x400*NowSaveWellAddr+i,HollDate[i]);
120 1 if(i%10==0x00)
121 1 {
122 1 sprintf(Str_Buffer,"Rate:%3.0f/100",(float)((float)i*100/HollDateLong));
123 1 LCD_DispStr(Str_Buffer,32,5);
124 1 Display_Data();
125 1 }
126 1 }
127 1 */
128 1 Well_Show(NowSaveWellAddr);
129 1 while(!(get_key(1)));
130 1 EEPROM_Init();
131 1
132 1 }
133 //********************************************************************************************************
-******************
134 void Date_Index(void)
135 {
136 1 xdata unsigned char SubFK=0x00;
137 1 xdata unsigned int i,j;
138 1 xdata unsigned int cursor_line; // 显示时的当前行在当前页中的位置
139 1 xdata unsigned int NowFirstAddr; // 显示时的第一行在所有有效井中的位置
140 1
141 1 setjmp (ReturnToJSJM) ; // 主界面设置点
142 1
143 1 LCD_CLEAR();
144 1 // 取得有效数据量,并记录位置
145 1 NowWellNum=0x00;
146 1 for(i=0;i<MaxWellSaveNum;i++)
147 1 {
148 2 if( (Read_Eeprom(0x400*i+HollDateLong)==0xA5) && (Read_Eeprom(0x400*i+HollDateLong+1)==0x5A) )
149 2 {
150 3 // 读取日期
151 3 for(j=0;j<9;j++)
152 3 {
153 4 well_index[NowWellNum].BeginDate[j]=Read_Eeprom(0x400*i+HollDateLong+4+j);
154 4 }
155 3 well_index[NowWellNum].BeginDate[8]=0x00;
156 3 // 读取时间
157 3 for(j=0;j<9;j++)
158 3 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -