?? getinputnum.lst
字號:
C51 COMPILER V8.02 GETINPUTNUM 09/05/2007 11:36:05 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE GETINPUTNUM
OBJECT MODULE PLACED IN getinputnum.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE getinputnum.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "lcd.h"
2 #include "func.h"
3 #include "interface.h"
4 #include "key.h"
5 typedef unsigned int uint;
6 typedef unsigned char uchar;
7 typedef unsigned long ulong;
8 /////////////////////////////////////////////////////////
9 uchar GetInputString(uchar x,uchar y,uchar len,char *temp)
10 {
11 1 uchar ilen=1,i=0,key;
12 1 bit sign=0;
13 1 SetPos(x,y);
14 1 for(i=0;i<len;i++)
15 1 {
16 2 LcdPrint(" ",1);
17 2 }
18 1 if(len%2==1){LcdPrint(" ",1);}
19 1 ShowCursor();
20 1 SetPos(x,y);
21 1 LcdPrint(" ",1);
22 1 temp[0]=' ';
23 1 while(1)
24 1 {
25 2 key=WaitKey();
26 2 if(key<=9 && ilen<len)
27 2 {
28 3 key+=0x30;
29 3 temp[ilen]=key;
30 3 ilen++;
31 3 }
32 2 else
33 2 {
34 3 switch(key)
35 3 {
36 4 case 0x0a:temp[ilen]='.';
37 4 ilen++;
38 4 break;
39 4 case 0x0b:sign=!sign;
40 4 if(sign)
41 4 {temp[0]='-';}
42 4 else
43 4 {temp[0]=' ';}
44 4 break;
45 4 case 0x0e:SetPos(x,y);
46 4 for(i=0;i<=len;i++)
47 4 {
48 5 LcdPrint(" ",1);
49 5 }
50 4 sign=0;
51 4 temp[0]=' ';
52 4 SetPos(x,y);
53 4 ilen=1;
54 4 break;
55 4 case 0x0f:HideCursor();
C51 COMPILER V8.02 GETINPUTNUM 09/05/2007 11:36:05 PAGE 2
56 4 return ilen;
57 4 break;
58 4 default:break;
59 4 }
60 3 }
61 2 SetPos(x,y);
62 2 LcdPrint(temp,ilen);
63 2 }
64 1 }
65
66
67 ulong GetInputNum(uchar x,uchar y,uchar len)
68 {
69 1 ulong input=0;
70 1 uchar ilen=0,i;
71 1 SetPos(x,y);
72 1 for(i=0;i<len;i++)
73 1 {
74 2 LcdPrint(" ",1);
75 2 }
76 1 if(len%2==1)
77 1 {
78 2 LcdPrint(" ",1);
79 2 }
80 1 ShowCursor();
81 1 SetPos(x,y);
82 1
83 1 while(1)
84 1 {
85 2 g_KeyDown=0;
86 2 while(!g_KeyDown){};
87 2 if(g_KeyValue<=9 && ilen<len)
88 2 {
89 3 input*=10;
90 3 input+=g_KeyValue;
91 3 g_KeyValue+=0x30;
92 3 LcdPrint(&g_KeyValue,1);
93 3 ilen++;
94 3 g_KeyDown=0;
95 3 }
96 2 else
97 2 {
98 3 switch(g_KeyValue)
99 3 {
100 4 case 0x0f:g_KeyDown=0;
101 4 HideCursor();
102 4 return input;
103 4 break;
104 4 case 0x0e:SetPos(x,y);
105 4 for(i=0;i<len;i++)
106 4 {
107 5 LcdPrint(" ",1);
108 5 }
109 4 SetPos(x,y);
110 4 input=0;
111 4 ilen=0;
112 4 g_KeyDown=0;
113 4 break;
114 4 default:break;
115 4 }
116 3 }
117 2 }
C51 COMPILER V8.02 GETINPUTNUM 09/05/2007 11:36:05 PAGE 3
118 1 return input;
119 1 }
120 float GetInputFloatNum(uchar x,uchar y,uchar len)
121 {
122 1 float integ=0,fra=0;
123 1 uchar i;
124 1 char temp[20];
125 1 len=GetInputString(x,y,len,temp);
126 1 i=1;
127 1 while(i<len && temp[i]!='.')
128 1 {
129 2 integ*=10;
130 2 integ+=temp[i]-0x30;
131 2 i++;
132 2 }
133 1 i++;
134 1 while(i<len)
135 1 {
136 2 fra+=temp[i]-0x30;
137 2 fra/=10;
138 2 i++;
139 2 }
140 1 if(temp[0]=='-')
141 1 {
142 2 return -1*(integ+fra);
143 2 }
144 1 else
145 1 {
146 2 return integ+fra;
147 2 }
148 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 771 ----
CONSTANT SIZE = 2 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 47
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -