📄 led.lst
字号:
C51 COMPILER V7.06 LED 04/02/2007 15:23:05 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LED
OBJECT MODULE PLACED IN .\obj\led.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led.c LARGE OPTIMIZE(6,SPEED) BROWSE INCDIR(.\;.\c51) DEFINE(KEIL) DEBUG OB
-JECTEXTEND PRINT(.\lst\led.lst) OBJECT(.\obj\led.obj)
stmt level source
1 #include "main.h"
2 unsigned char code seg[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x19};
3 unsigned char code seg_zero[10]={0x02,0x9e,0x24,0x0c,0x98,0x48,0x40,0x1e,0x00,0x18};unsigned char dispbuff
-[6];
4
5
6 void delay12(unsigned int temp1)
7 {
8 1 while(temp1--);
9 1 }
10
11 void Moni_Send(unsigned char dsdata)
12 {
13 1 unsigned char i,temp=0;
14 1
15 1 CLK=0;
16 1 for(i=0;i<=7;i++)
17 1 {
18 2 temp=dsdata&0x01;
19 2 dsdata=dsdata>>1;
20 2 if(temp==0)
21 2 DAT=0;
22 2 else
23 2 DAT=1; //置数据在端口上
24 2
25 2 CLK=1; //发出移位脉冲
26 2 CLK=0;
27 2 }
28 1
29 1 }
30 //清空显示---------------------------------------------------------------
31 void disp_cls(void)
32 { char i;
33 1 for(i=0;i<8;i++)
34 1 {
35 2 Moni_Send(0xff);
36 2 }
37 1
38 1
39 1 }
40 void disp_int()
41 { char i,j;
42 1 for(i=0;i<10;i++)
43 1 {
44 2 dispbuff[0]=seg[i];
45 2 dispbuff[1]=seg[i];
46 2 dispbuff[2]=seg[i];
47 2 dispbuff[3]=seg[i];
48 2 dispbuff[4]=seg[i];
49 2 dispbuff[5]=seg[i];
50 2 dispbuff[6]=seg[i];
51 2 dispbuff[7]=seg[i];
52 2
53 2 for(j=0;j<8;j++)
C51 COMPILER V7.06 LED 04/02/2007 15:23:05 PAGE 2
54 2 {Moni_Send(dispbuff[j]);
55 3 }
56 2
57 2 delay12(60000);
58 2
59 2 disp_cls();
60 2 }
61 1 }
62
63 //*键盘处理程序--------------------------------------------
64 unsigned char key_chk()
65 {
66 1 unsigned char temp,key_c;
67 1 // 11xx xxxx
68 1 P2 =0xF0; // 1111 0000
69 1 ACC =P2 & 0xF0; // 1111 0000
70 1 B =ACC;
71 1 P2 =0x0F; // 0000 1111
72 1 ACC =P2 & 0x0F; // 0000 1111
73 1 temp=ACC | B;
74 1 if( temp !=0xff ) // 1111 1111
75 1 {
76 2 switch( temp)
77 2 {
78 3
79 3 case 0x77: key_c= 0; break;//0
80 3 case 0xbd: key_c= 1; break;//1
81 3 case 0xbb: key_c= 2; break;//2
82 3 case 0xb7: key_c= 3; break;//3
83 3 case 0xed: key_c= 4; break;//4
84 3 case 0xeb: key_c= 5; break;//5
85 3 case 0xe7: key_c= 6; break;//6
86 3 case 0xdd: key_c= 7; break;//7
87 3 case 0xdb: key_c= 8; break;//8
88 3 case 0xd7: key_c= 9; break;//9
89 3 case 0x7b: key_c= 10; break;//chuanhuan
90 3 case 0xee: key_c= 11; break; //+
91 3 case 0xbe: key_c= 12 ; break; //*
92 3 case 0x7d: key_c= 13; break; //<-
93 3 case 0xde: key_c= 14; break; //clear
94 3 case 0x7e: key_c= 15; break;//enter
95 3 default: key_c=0xff;
96 3 }
97 2
98 2 return(key_c);
99 2 }
100 1 else return(0xff);
101 1 }
102
103 unsigned char get_key()
104 {
105 1 unsigned char temp,temp1;
106 1 temp=key_chk();
107 1 delay12(15320);
108 1 temp1=key_chk();
109 1 if(temp==temp1)
110 1 return temp;
111 1 else
112 1 return 0xff;
113 1 // do
114 1 // {
115 1 // temp=key_chk();
C51 COMPILER V7.06 LED 04/02/2007 15:23:05 PAGE 3
116 1 // delay12(12000);
117 1 // temp1=key_chk();
118 1 // }
119 1 // while(temp==0xff||temp!=temp1);
120 1
121 1 // return(temp);
122 1 }
123
124 //*显适数值程序--------------------------------------------
125 void disp_num(unsigned char *buff)
126 {
127 1
128 1
129 1 dispbuff[5]=seg[buff[5]]; //ge wei
130 1 dispbuff[4]=seg[buff[4]]; //shi wei
131 1 dispbuff[3]=seg[buff[3]]; //bai wei
132 1 dispbuff[2]=seg[buff[2]]; //qian wei
133 1 dispbuff[1]=seg[buff[1]]; //wang wei
134 1 dispbuff[0]=seg[buff[0]]; //shiwang wei
135 1 //if(buff[5]==0)dispbuff[5]=0xff;
136 1 //if(buff[4]==0)dispbuff[4]=0xff;
137 1 //if(buff[3]==0)dispbuff[3]=0xff;
138 1 //if(buff[2]==0)dispbuff[2]=0xff;
139 1 //if(buff[1]==0)dispbuff[1]=0xff;
140 1
141 1 Moni_Send(0xff);
142 1 Moni_Send(0xff);
143 1 Moni_Send(dispbuff[3]);
144 1 Moni_Send(dispbuff[2]);
145 1 Moni_Send(dispbuff[1]);
146 1 Moni_Send(dispbuff[0]);
147 1 }
148 void disp_num_dot(unsigned char *buff)
149 {
150 1 dispbuff[5]=0xff; //ge wei
151 1 dispbuff[4]=0xff; //shi wei
152 1 dispbuff[3]=0xff; //bai wei
153 1 dispbuff[2]=seg_zero[buff[2]]; //qian wei
154 1 dispbuff[1]=seg[buff[1]]; //wang wei
155 1 dispbuff[0]=seg[buff[0]]; //shiwang wei
156 1 Moni_Send(dispbuff[5]);
157 1 Moni_Send(dispbuff[4]);
158 1 Moni_Send(dispbuff[3]);
159 1 Moni_Send(dispbuff[2]);
160 1 Moni_Send(dispbuff[1]);
161 1 Moni_Send(dispbuff[0]);
162 1 }
163
164 void disp_num_dot2(unsigned char *buff)
165 {
166 1 dispbuff[5]=seg[buff[5]]; //ge wei
167 1 dispbuff[4]=seg[buff[4]]; //shi wei
168 1 dispbuff[3]=seg[buff[3]]; //bai wei
169 1 dispbuff[2]=seg_zero[buff[2]]; //qian wei
170 1 dispbuff[1]=seg[buff[1]]; //wang wei
171 1 dispbuff[0]=seg[buff[0]]; //shiwang wei
172 1 Moni_Send(dispbuff[5]);
173 1 Moni_Send(dispbuff[4]);
174 1 Moni_Send(dispbuff[3]);
175 1 Moni_Send(dispbuff[2]);
176 1 Moni_Send(dispbuff[1]);
177 1 Moni_Send(dispbuff[0]);
C51 COMPILER V7.06 LED 04/02/2007 15:23:05 PAGE 4
178 1 }
179
180
181
182
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 741 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = 6 1
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -