📄 key.lst
字号:
C51 COMPILER V7.09 KEY 03/16/2009 21:43:30 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: E:\应用程序\keil\C51\BIN\C51.EXE key.c BROWSE INTVECTOR(0X4000) DEFINE(monitor51) DEBUG OBJECTEXTEN
-D
line level source
1 #include<reg51.h>
2 #include <intrins.h>
3
4 sbit SDA=P1^0;
5 sbit CLK=P1^1;
6 sbit kd_key=P1^2;
7 sbit LEDP1=P1^6;
8 sbit LEDP2=P1^5;
9 sbit LEDP3=P1^4;
10 sbit LEDP4=P1^3;
11
12 unsigned char dbuffer1,dbuffer2,dbuffer3,dbuffer4,dbuffer;
13 unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
14 unsigned char counter,n;
15 int minter,second;
16
17 void send(unsigned char a)
18 {
19 1 data unsigned char i;
20 1 for(i=0;i<8;i++)
21 1 {
22 2 if(_crol_(a,i)&0x80)
23 2 SDA=1;
24 2 else
25 2 SDA=0;
26 2 CLK=1;
27 2 CLK=0;
28 2 }
29 1 }
30 void display(int minter,int second)
31 {
32 1 unsigned char i;
33 1 unsigned char a[4];
34 1 a[0]=minter/10;
35 1 a[1]=minter%10;
36 1 a[2]=second/10;
37 1 a[3]=second%10;
38 1 for(i=0;i<4;i++)
39 1 {
40 2 send(table[a[i]]);
41 2 LEDP1=0;
42 2 for(i=0;i<200;i++)
43 2 LEDP1=1;
44 2 }
45 1 }
46
47 void time_add(int minter,int second)
48 {
49 1 second++;
50 1 if(second==60)
51 1 {
52 2 minter++;
53 2 second=0;
54 2 if(minter==60)
C51 COMPILER V7.09 KEY 03/16/2009 21:43:30 PAGE 2
55 2 {
56 3 minter=0;
57 3 }
58 2 }
59 1 }
60
61 void time_adds(int second)
62 {
63 1 second++;
64 1 if(second==60)
65 1 {
66 2 second=0;
67 2 }
68 1 }
69 void time_addm(int minter)
70 {
71 1 minter++;
72 1 if(minter==60)
73 1 {
74 2 minter=0;
75 2 }
76 1 }
77
78 main()
79 {
80 1 int flag,j;
81 1 unsigned char i,jkey;
82 1 TMOD=0x01;
83 1 TH0=0x3B;
84 1 TL0=0xC0;
85 1
86 1 EA=1;
87 1 ET0=1;
88 1 TR0=1;
89 1
90 1
91 1 LEDP1=1;
92 1 LEDP2=1;
93 1 LEDP3=1;
94 1 LEDP4=1;
95 1
96 1 while(1)
97 1 {
98 2 jkey=0xfe;
99 2 flag=0;
100 2
101 2 for(i=0;i<8;i++)
102 2 {
103 3 send(jkey);
104 3 if (!kd_key)
105 3 {
106 4 for(j=0;j<200;j++)
107 4 send(jkey);
108 4 if (!kd_key)
109 4 {
110 5 flag=1;break;
111 5 }
112 4 }
113 3 else
114 3 jkey=_crol_(jkey,1);
115 3 }
116 2 if(flag==1)
C51 COMPILER V7.09 KEY 03/16/2009 21:43:30 PAGE 3
117 2 {
118 3 switch(i)
119 3 {
120 4 case 0 :time_adds(second);display(minter,second);break;
121 4 case 1 :time_addm(minter);display(minter,second);break;
122 4 case 2 :display(minter,second);break;
123 4 case 3 :display(minter,second);break;
124 4 case 4 :display(minter,second);break;
125 4 case 5 :display(minter,second);break;
126 4 case 6 :display(minter,second);break;
127 4 case 7 :display(minter,second);break;
128 4 }
129 3 }
130 2 }
131 1 }
132
133 void timer0_int(void) interrupt 1
134 {
135 1 TR0=0;
136 1 TH0=0x3B;
137 1 TL0=0xC0;
138 1 if(!(counter--))
139 1 {
140 2 counter=0x16;
141 2 time_add(minter,second);
142 2 }
143 1 TR0=1;
144 1 }
145
146
147
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 390 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 6
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 + -