📄 wanneng.lst
字号:
C51 COMPILER V7.06 WANNENG 12/21/2007 19:20:04 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE WANNENG
OBJECT MODULE PLACED IN wanneng.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE wanneng.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #include<keyscan.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 uchar key;
6 uchar code disp[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
7 uchar code disp_dot[11]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xc0};
8 unsigned long dat1=0,dat2=0,dat3=0;
9 //////////////////////
10
11 int0()interrupt 0 using 0
12 { uchar temp;
13 1 EA=0; //关中断
14 1
15 1 switch(keyaction())
16 1 {
17 2 case 0: { dat1=dat1*10+0; dat3=dat1; } break;
18 2
19 2
20 2
21 2 case 1: {dat1=dat1*10+1; dat3=dat1; } break;
22 2
23 2
24 2
25 2 case 2: {dat1=dat1*10+2;dat3=dat1;} break;
26 2
27 2
28 2
29 2 case 3: {dat1=dat1*10+3;dat3=dat1;} break;
30 2
31 2
32 2
33 2 case 4: {dat1=dat1*10+4;dat3=dat1;} break;
34 2
35 2
36 2 case 5: {dat1=dat1*10+5;dat3=dat1;} break;
37 2
38 2
39 2
40 2 case 6: {dat1=dat1*10+6;dat3=dat1;} break;
41 2
42 2
43 2
44 2 case 7: {dat1=dat1*10+7;dat3=dat1;} break;
45 2
46 2
47 2
48 2 case 8: {dat1=dat1*10+8;dat3=dat1;} break;
49 2
50 2
51 2
52 2 case 9: { dat1=dat1*10+9;dat3=dat1;} break;
53 2
54 2
55 2
C51 COMPILER V7.06 WANNENG 12/21/2007 19:20:04 PAGE 2
56 2 case 'c': {dat1=0;dat2=0;dat3=0;break;}
57 2 case '#': break;
58 2
59 2 case '+': {dat3=0;dat2=dat1;dat1=0;temp='+';dat3=dat2;} break;
60 2 case '-': {dat3=0;dat2=dat1;dat1=0;temp='-';dat3=dat2;} break;
61 2 case '*': {dat3=0;dat2=dat1;dat1=0;temp='*';dat3=dat2;} break;
62 2 case '/': {dat3=0;dat2=dat1;dat1=0;temp='/';dat3=dat2;} break;
63 2 case '=': { dat3=0;
64 3 switch(temp)
65 3 {case '+':dat3=dat2+dat1;break;
66 4 case '-':dat3=dat2-dat1;break;
67 4 case '*':dat3=dat2*dat1;break;
68 4 case '/':dat3=dat2/dat1;break;
69 4 }
70 3
71 3 } break;
72 2
73 2 }
74 1
75 1 EA=1; //开中断
76 1
77 1
78 1 }
79
80
81 /*
82 display_4(uint dat, uchar i)
83 {
84 P0=0;
85 P0=disp[dat/1000]; //4位
86 P2=3+4*i;
87 Delay1ms(2);
88 P0=0;
89 P0=disp[dat/100%10]; //3位
90 P2=2+4*i;
91 Delay1ms(2);
92 P0=0;
93 P0=disp[dat/10%10]; //2位
94 P2=1+4*i;
95 Delay1ms(2);
96 P0=0;
97 P0=disp[dat%10]; //1位
98 P2=0+4*i;
99 Delay1ms(2);
100 } */
101 display_8(long dat) ///定义八位数12345678
102 { P0=0;
103 1 P0=disp[dat/10000000]; //8位
104 1 P2=7;
105 1 Delay1ms(1);
106 1 P0=0;
107 1 P0=disp[dat/1000000%10]; //7位
108 1 P2=6;
109 1 Delay1ms(1);
110 1 P0=0;
111 1 P0=disp[dat/100000%10]; //6位
112 1 P2=5;
113 1 Delay1ms(1);
114 1 P0=0;
115 1 P0=disp[dat/10000%10]; //5位
116 1 P2=4;
117 1 Delay1ms(1);
C51 COMPILER V7.06 WANNENG 12/21/2007 19:20:04 PAGE 3
118 1 P0=0;
119 1 P0=disp[dat/1000%10]; //4位
120 1 P2=3;
121 1 Delay1ms(1);
122 1 P0=0;
123 1 P0=disp[dat/100%10]; //3位
124 1 P2=2;
125 1 Delay1ms(1);
126 1 P0=0;
127 1 P0=disp[dat/10%10]; //2位
128 1 P2=1;
129 1 Delay1ms(1);
130 1 P0=0;
131 1 P0=disp[dat%10]; //1位
132 1 P2=0;
133 1 Delay1ms(1);
134 1 }
135
136
137
138
139
140
141 main()
142 {
143 1 EA=1; /*开中断*/
144 1 IT0=1;
145 1 EX0=1;
146 1 /*允许外部中断1*/
147 1 P1=0xf0;
148 1
149 1 while(1)
150 1 { P1=0xf0;
151 2 // display_4(key,0); ///第0块显示屏
152 2 // display_4(1234,1); /// 第一块显示屏
153 2 display_8(dat3);
154 2
155 2
156 2
157 2 }
158 1
159 1
160 1
161 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1304 ----
CONSTANT SIZE = 22 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -