1266.lst
来自「51单片机C程序」· LST 代码 · 共 194 行
LST
194 行
C51 COMPILER V6.12 1266 03/27/2007 19:49:44 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE 1266
OBJECT MODULE PLACED IN .\1266.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\1266.c DEBUG OBJECTEXTEND
stmt level source
1 //利用动态扫描和定时器1在数码管上显示出从765432开始以1%秒的速度
2 //往下递减直至765400并保持显示此数,与此同时利用定时器0以500MS速度
3 //进行流水灯从上至下移动,同时蜂鸣器发声,当数码管上数减到停止时,
4 //实验板上流水灯全部闪烁5次,数码管全熄灭。单片机进入休眠状态。
5
6 #include<reg52.h>
7 #include<intrins.h>
8 #define uc unsigned char
9 #define ui unsigned int
10 sbit beep=P2^3;
11 sbit dus=P2^6;
12 sbit wes=P2^7;
13 uc i,k,a,b,c;
14 ui count0,count1,num,j;
15 uc code table[]={
16 0x3f,0x06,0x5b,0x4f,0x66,0x6d,
17 0x7d,0x07,0x7f,0x6f,0x77};
18
19 void delay(ui x)
20 {
21 1 for(i=10;i>0;i--)
22 1 for(j=x;j>0;j--);
23 1 }
24
25 void display(ui qi,ui bi,ui si,ui ge)
26 {
27 1 P0=0xff;
28 1 wes=1;
29 1 wes=0;
30 1 P0=table[7];
31 1 dus=1;
32 1 dus=0;
33 1 P0=0xfe;
34 1 wes=1;
35 1 wes=0;
36 1 delay(1);
37 1
38 1 P0=0xff;
39 1 wes=1;
40 1 wes=0;
41 1 P0=table[6];
42 1 dus=1;
43 1 dus=0;
44 1 P0=0xfd;
45 1 wes=1;
46 1 wes=0;
47 1 delay(1);
48 1
49 1 P0=0xff;
50 1 wes=1;
51 1 wes=0;
52 1
53 1 P0=table[qi];
54 1 dus=1;
55 1 dus=0;
C51 COMPILER V6.12 1266 03/27/2007 19:49:44 PAGE 2
56 1 P0=0xfb;
57 1 wes=1;
58 1 wes=0;
59 1 delay(1);
60 1
61 1 P0=0xff;
62 1 wes=1;
63 1 wes=0;
64 1 P0=table[bi];
65 1 dus=1;
66 1 dus=0;
67 1 P0=0xf7;
68 1 wes=1;
69 1 wes=0;
70 1 delay(1);
71 1
72 1 P0=0xff;
73 1 wes=1;
74 1 wes=0;
75 1 P0=table[si];
76 1 dus=1;
77 1 dus=0;
78 1 P0=0xef;
79 1 wes=1;
80 1 wes=0;
81 1 delay(1);
82 1
83 1 P0=0xff;
84 1 wes=1;
85 1 wes=0;
86 1 P0=table[ge];
87 1 dus=1;
88 1 dus=0;
89 1 P0=0xdf;
90 1 wes=1;
91 1 wes=0;
92 1 delay(1);
93 1 }
94
95
96 void main()
97 {
98 1 EA=1;
99 1 ET1=1;
100 1 ET0=1;
101 1 TMOD=0x11;
102 1 TH1=(65536-5000)/256;
103 1 TL1=(65536-5000)%256;
104 1 TH0=(65536-5000)/256;
105 1 TL0=(65536-5000)%256;
106 1 TR1=1;
107 1 TR0=1;
108 1 a=0xfe;
109 1 num=5432;
110 1 while(1)
111 1 {
112 2
113 2 if(count1==50)
114 2 {
115 3 count1=0;
116 3 num--;
117 3 }
C51 COMPILER V6.12 1266 03/27/2007 19:49:44 PAGE 3
118 2 display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
119 2 P1=a;
120 2 beep=1;
121 2 if(count0==50)
122 2 {
123 3 a=_crol_(a,1);
124 3 count0=0;
125 3 beep=0;
126 3 }
127 2 //if(count0==25)
128 2 //beep=~beep;
129 2
130 2 if(num==5400)
131 2 {
132 3 beep=1;
133 3 TR1=0;
134 3 TR0=0;
135 3 for(b=5;b>0;b--)
136 3 {
137 4 for(c=100;c>0;c--)
138 4 display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
139 4 P1=0x00;
140 4 for(c=100;c>0;c--)
141 4 display(num/1000,num%1000/100,num%1000%100/10,num%1000%100%10);
142 4 P1=0xff;
143 4 }
144 3 P0=0xff;
145 3 wes=1;
146 3 wes=0;
147 3 while(1);
148 3 }
149 2
150 2 }
151 1
152 1
153 1 }
154 void time1() interrupt 3 using 1
155 {
156 1 TH1=(65536-5000)/256;
157 1 TL1=(65536-5000)%256;
158 1 count1++;
159 1 }
160 void time0() interrupt 1 using 3
161 {
162 1 TH0=(65536-5000)/256;
163 1 TL0=(65536-5000)%256;
164 1 count0++;
165 1 }
166
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 801 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 13 8
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?