📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 05/18/2007 11:58:16 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
NO OBJECT MODULE REQUESTED
COMPILER INVOKED BY: D:\Program Files\Keil 8.08\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND SRC(.\main.SRC)
line level source
1 #include <reg51.h>
2 typedef unsigned char BYTE;
3
4 sbit DIN=P3^0;
5 sbit CLK=P3^1;
6
7 BYTE DBUF;
8 BYTE TEMP;
9
10 BYTE code K0TAB[]={ 0xFE,0xFD,0xFB,0xF7,
11 0xEF,0xDF,0xBF,0x7F};
12
13 BYTE code SEGTAB[]={0x3F,0x06,0x5B,0x4F,0x66,
14 0x6D,0x7D,0x07,0x7F,0x6F};
15
16
17 void DELAY()
18 {
19 1 BYTE i=0x02;
20 1
21 1 do
22 1 {
23 2 BYTE j=0xF8;
24 2 do
25 2 {}while(--j);
26 2 }while(--i);
27 1 }
28
29
30 void DISP(BYTE in)
31 {
32 1 BYTE num=8;
33 1
34 1 DBUF=in;
35 1
36 1 TEMP=SEGTAB[DBUF];
37 1 ACC=TEMP;
38 1
39 1 do
40 1 {
41 2 #pragma asm
42 2 RLC A
43 2 #pragma endasm
44 2
45 2 DIN=CY;
46 2 CLK=0;
47 2 CLK=1;
48 2 }while(--num);
49 1 }
50
51
52 BYTE KEY()
53 {
54 1 BYTE key_i;
55 1 BYTE key_j;
C51 COMPILER V8.08 MAIN 05/18/2007 11:58:16 PAGE 2
56 1 BYTE temp;
57 1
58 1 while(1)
59 1 {
60 2 do
61 2 {
62 3 do
63 3 {
64 4 P1=0xFF;
65 4 }while(P1==0xFF);
66 3 DELAY();
67 3
68 3 temp=P1;
69 3 }while(temp==0xFF);
70 2
71 2 key_i=8;
72 2 key_j=0;
73 2
74 2 do
75 2 {
76 3 if(temp==K0TAB[key_j])
77 3 {
78 4 do
79 4 {}while(P1!=0xFF);
80 4 DELAY();
81 4 return key_j;
82 4 }
83 3
84 3 key_j++;
85 3 }while(--key_i);
86 2 }
87 1 }
88
89
90 main()
91 {
92 1 DBUF=16;
93 1
94 1 while(1)
95 1 {
96 2 DISP(KEY());
97 2 }
98 1
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 90 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
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 + -