📄 lesson8.lst
字号:
C51 COMPILER V8.12 LESSON8 05/25/2008 13:52:24 PAGE 1
C51 COMPILER V8.12, COMPILATION OF MODULE LESSON8
OBJECT MODULE PLACED IN lesson8.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lesson8.c DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #define uchar unsigned char
3 sbit k1=P3^2;
4 sbit k2=P3^3;
5 sbit k3=P3^4;
6 sbit k4=P3^5;
7 sbit l1=P1^0;
8 sbit l2=P1^1;
9 sbit l3=P1^2;
10 sbit Pwinpin=P2^0;
11 sbit s2=P2^1;
12 sbit s3=P2^2;
13 static tt;
14 unsigned char lit=0;
15
16 void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255
17
18 uchar code dis_code[10] = {0xc0,0xf9,0xa4,0xb0,0x99, //段码表
19 // 0 1 2 3 4 对应内容
20 0x92,0x82,0xf8,0x80,0x90};
21 // 5 6 7 8 9
22 uchar count,shi,ge, t,shu ; // 计数器
23
24 void main()
25 {
26 1
27 1
28 1 TMOD = 0x01; // 定时/计数器0工作于方式1
29 1 TH0 = 0xfc; // 装载定时常数64536(fc18)
30 1 TL0 = 0x18;
31 1 EA = 1; // 开总中断
32 1 ET0 = 1; // 定时/计数器0允许中断
33 1 TR0 = 1; // 启动定时/计数器0
34 1
35 1 while(1) // 执行主程序,等待中断
36 1 {
37 2
38 2 if(!k1)
39 2 {
40 3 delay_ms(1000);
41 3 count++;
42 3 delay_ms(100);
43 3 }
44 2 if(count<10)
45 2 {
46 3 s3=0;
47 3 P0=dis_code[count];
48 3 delay_ms(10);
49 3 s3=1;
50 3
51 3 delay_ms(10);
52 3 }
53 2 else
54 2 {
55 3 if(count>=10)
C51 COMPILER V8.12 LESSON8 05/25/2008 13:52:24 PAGE 2
56 3
57 3 {
58 4 TR0 = 1;
59 4 s2=0; s3=1;
60 4 shi=1;
61 4 delay_ms(1);
62 4 s2=1; s3=0;
63 4 shi=count/10;
64 4 P0=dis_code[ge];
65 4 delay_ms(1);
66 4
67 4 s3=0; s2=1;
68 4 ge=count%10;
69 4 P0=dis_code[shi];
70 4 s3=1;
71 4 delay_ms(1);
72 4
73 4 delay_ms(1);
74 4 }
75 3 }
76 2 if(count>=100)
77 2 {
78 3
79 3 count=0; l3=0;
80 3
81 3 }
82 2 if(!k3)
83 2 {
84 3 delay_ms(1);
85 3 P0= dis_code[shi];
86 3 delay_ms(100);
87 3 l2=1;
88 3 count=0;
89 3 }
90 2
91 2
92 2
93 2 if(k4==0)
94 2 {
95 3
96 3
97 3 ;;;;;;;;;;
98 3
99 3 }
100 2 }
101 1
102 1 }
103
104
105
106
107
108 void time0(void) interrupt 1 // T/C0中断服务程序(延时1ms数码管动态显示)
109 {
110 1 TH0 = 0xfc; // 重置定时常数
111 1 TL0 = 0x18;
112 1 t++;
113 1 if(t==2)
114 1 {
115 2 l1=~l1;
116 2 }
117 1 if(k2==0)
C51 COMPILER V8.12 LESSON8 05/25/2008 13:52:24 PAGE 3
118 1 {
119 2 TR0 = 0;
120 2 l2=0;
121 2 }
122 1
123 1 }
124
125
126
127 void delay_ms(uchar ms) // 延时毫秒@12M,ms最大值255
128 {
129 1 uchar i;
130 1 while(ms--)
131 1 for(i = 0; i < 124; i++);
132 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 233 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -