📄 text1.lst
字号:
C51 COMPILER V8.02 TEXT1 03/22/2009 20:22:59 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\Down\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #define unchar unsigned char
3
4 /*----------------------------
5 延时
6 -----------------------------*/
7 void delay()
8 {
9 1 unchar i,j;
10 1 for(i=0;i<20;i++)
11 1 for(j=0;j<20;j++);
12 1 }
13
14 unchar Led[]={0x3f,0x06,0x5b,0x4f,0x66};
15 unchar disbuf[4]={0};
16
17 /*----------------------------
18 判断有无按键,并返回按键值
19 ----------------------------*/
20
21 unchar Keybcd()
22 {
23 1 unchar count,cmd,key;
24 1 key=0;
25 1 while(key==0)
26 1 { P1=0x0f;
27 2 if( P1!=0x0f){
28 3 delay();
29 3 if(P1!=0x0f){
30 4 cmd=0xef;
31 4
32 4 for(count=0;count<4;count++){
33 5 P1=cmd;
34 5 if((P1&0x0f)!=0x0f){
35 6 key= (cmd&0xf0)+(P1&0x0f);
36 6 key=~key;
37 6 break;}
38 5 else
39 5 cmd=(cmd<<1)+1;
40 5 }
41 4 }
42 3 }
43 2 else
44 2 return(0);
45 2 }
46 1
47 1 P1=0x0f;
48 1 while(P1!=0x0f);
49 1 return(key);
50 1 }
51 /*----------------------------
52 LED显示
53 ---------------------------*/
54 void display()
55 {
C51 COMPILER V8.02 TEXT1 03/22/2009 20:22:59 PAGE 2
56 1 static unchar x=0 ;
57 1 switch(x){
58 2 case 0:P2=0xff;P0=Led[disbuf[0]];P2=0xf7;delay();x=1;break;
59 2 case 1:P2=0xff;P0=Led[disbuf[1]];P2=0xfb;delay();x=2;break;
60 2 case 2:P2=0xff;P0=Led[disbuf[2]];P2=0xfd;delay();x=3;break;
61 2 case 3:P2=0xff;P0=Led[disbuf[3]];P2=0xfe;delay();x=0;break;
62 2 }
63 1 }
64 /*-----------------------------
65 有按键就移位
66 ------------------------------*/
67 void yi_wei(unchar a[],unchar x)
68 {
69 1 unchar i;
70 1 for(i=3;i>0;i--){
71 2 a[i]=a[i-1];
72 2 }
73 1 a[i]=x;
74 1 }
75 /*----------------------------
76 主程序
77 ------------------------------*/
78 void main()
79 {
80 1 unchar var,temp;
81 1 while(1){
82 2 display();
83 2
84 2 var=Keybcd();
85 2
86 2 if(var==0x28){
87 3 temp=1;
88 3 yi_wei(disbuf,temp);
89 3 display();
90 3 }
91 2 else if(var==0x24) {
92 3 temp=2;
93 3 yi_wei(disbuf,temp);
94 3 display();
95 3
96 3 }
97 2 else if(var==0x22){
98 3 temp=3;
99 3 yi_wei(disbuf,temp);
100 3 display();
101 3 }
102 2 else if(var==0x48){
103 3 temp=4;
104 3 yi_wei(disbuf,temp);
105 3 display();
106 3 }
107 2 }
108 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 306 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 4
IDATA SIZE = ---- ----
C51 COMPILER V8.02 TEXT1 03/22/2009 20:22:59 PAGE 3
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 + -