📄 jsq.lst
字号:
C51 COMPILER V3.20, SN-50203648 JSQ 10/05/07 10:11:09 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE JSQ
OBJECT MODULE PLACED IN JSQ.OBJ
COMPILER INVOKED BY: C:\BIN\C51.EXE JSQ.C DB OE SMALL ROM(LARGE)
stmt level source
1 #include<reg51.h>
2 sbit v1=P2^2;
3 sbit v2=P2^4;
4 sbit v3=P2^3;
5 sbit h1=P2^7;
6 sbit h2=P2^6;
7 sbit h3=P2^5;
8 sbit sum=P3^4;
9 sbit sub=P3^2;
10
11 sbit led1=P1^0;
12 sbit led2=P1^1;
13 sbit led3=P1^2;
14 sbit led4=P1^3;
15 sbit led5=P1^4;
16 sbit shu4=P2^0;
17 sbit shu2=P2^1;
18 sbit shu1=P3^5;
19 sbit shu3=P3^3;
20
21 void delayms(unsigned int i);
22 unsigned int keyboar();
23
24 unsigned int b;
25
26 void t0()interrupt 1 using 1 /*中断程序负责显示b的值 */
27 {
28 1 unsigned char a1=0,a2=0,a3=0,a4=0;
29 1 static unsigned char yima[]={0x00,0x88,0xb3,0xba,0xd8,0x7a,0x7b,0xa8,0xfb,0xfa};
30 1 static int k=0;
31 1 //b++;
32 1 a1=b/1000;
33 1 a2=(b-a1*1000)/100;
34 1 a3=(b-a1*1000-a2*100)/10;
35 1 a4=b-a1*1000-a2*100-a3*10;
36 1 if(k==0){shu4=1;shu1=0;shu2=0;shu3=0;P0=yima[a1];}
37 1 else if(k==1){shu4=0;shu1=1;shu2=0;shu3=0;P0=yima[a4];}
38 1 else if(k==2){shu4=0;shu1=0;shu2=1;shu3=0;P0=yima[a3];}
39 1 else if(k==3){shu4=0;shu1=0;shu2=0;shu3=1;P0=yima[a2];}
40 1 k++;
41 1 if(k>3)k=0;
42 1
43 1 TH0=230;
44 1 }
45
46 main()
47 {
48 1 unsigned char b1,b2,b3,b4;
49 1 unsigned char c1,c2;
50 1 bit sub_mark=0,sub_mark1=0,sum_mark=0,sum_mark1=0;
51 1 EA=1;
52 1 TR0=1;
53 1 ET0=1;
54 1 TMOD=0X01;
55 1 while(1)
C51 COMPILER V3.20, SN-50203648 JSQ 10/05/07 10:11:09 PAGE 2
56 1 {
57 2 while(keyboar()==0);/*等待按键*/
58 2 c1=keyboar();
59 2 b=c1;
60 2 while(1)
61 2 {
62 3 if(sum==0){sum_mark=1;break;}
63 3 else if(sub==0){sub_mark=1;break;}
64 3 }
65 2
66 2
67 2
68 2 while(keyboar()==0);/*等待按键*/
69 2 delayms(10);
70 2 while(keyboar()==0);
71 2 b=keyboar();
72 2 c2=b ;
73 2
74 2 delayms(1000);
75 2
76 2
77 2 if(sub_mark==1)
78 2 {
79 3 if(c1>=c2)b=c1-c2;
80 3 else b=1000+c2-c1;
81 3 sub_mark=0; }
82 2 else if(sum_mark1=1)
83 2 {b=c1+c2;
84 3 sum_mark=0;}
85 2
86 2
87 2
88 2 }
89 1
90 1 }
91
92
93 unsigned int keyboar()/*线反转法 */
94 {
95 1 unsigned int a=0;
96 1 unsigned char a1=0,b1=0;
97 1 /*行线为输入线,列线为输出线 */
98 1 v1=v2=v3=0;
99 1 h1=h2=h3=1;
100 1 if(P2<224)/*检查行是否有按键按下 */
101 1 {
102 2 delayms(10);
103 2 if(P2<224)
104 2 {
105 3 /*行线为输入线,列线为输出线 */
106 3 v1=v2=v3=0;
107 3 h1=h2=h3=1;
108 3 a1=P2;
109 3 /*行线为输出线,列线为输入线 */
110 3 h1=h2=h3=0;
111 3 v1=v2=v3=1;
112 3 b1=P2;
113 3
114 3 a=a1|b1|0x03; /*与0x03相或是为了屏蔽p2.0和p2.1的影响*/
115 3
116 3 }
117 2 }
C51 COMPILER V3.20, SN-50203648 JSQ 10/05/07 10:11:09 PAGE 3
118 1
119 1 else {
120 2 h1=h2=h3=0;
121 2 v1=v2=v3=1;
122 2 if(P2<28)/*检查列是否有按键按下 */
123 2 {
124 3 delayms(10);
125 3 if(P2<28)
126 3 {
127 4 /*行线为输入线,列线为输出线 */
128 4 v1=v2=v3=0;
129 4 h1=h2=h3=1;
130 4 a1=P2;
131 4 /*行线为输出线,列线为输入线 */
132 4 h1=h2=h3=0;
133 4 v1=v2=v3=1;
134 4 b1=P2;
135 4
136 4 a=a1|b1|0x03;/*与0x03相或是为了屏蔽p2.0和p2.1的影响*/
137 4
138 4
139 4 }
140 3 }
141 2
142 2 }
143 1
144 1 if(a==219){return 2;}
145 1 else if(a==207){return 1;}
146 1 else if(a==215){return 3;}
147 1 else if(a==187){return 5;}
148 1 else if(a==175){return 4;}
149 1 else if(a==183){return 6;}
150 1 else if(a==123){return 8;}
151 1 else if(a==111){return 7;}
152 1 else if(a==119){return 9;}
153 1 else return 0;
154 1
155 1
156 1 }
157
158 void delayms(unsigned int i)
159 {
160 1 unsigned int j;
161 1 for(;i>0;i--)
162 1 for(j=100;j>0;j--);
163 1 }
164
165
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 736 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 12
IDATA SIZE = ---- ----
BIT SIZE = ---- 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -