📄 led1.lst
字号:
C51 COMPILER V8.02 LED1 11/28/2010 09:32:58 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LED1
OBJECT MODULE PLACED IN led1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE led1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 typedef unsigned char uint8;
3 typedef unsigned int uint16;
4 uint8 number[] = {0xc0,0xf9,0xa4,0xb0,
5 0x99,0x92,0x82,0xf8,
6 0x80,0x90,0x88,0x83,
7 0xa7,0xa1,0x86,0x8e};
8
9 sbit ENLED = P1^4;
10 sbit ADDR0 = P1^0;
11 sbit ADDR1 = P1^1;
12 sbit ADDR2 = P1^2;
13 sbit ADDR3 = P1^3;
14 sbit LED = P0^0;
15
16 void refresh();
17
18 main()
19 {
20 1 uint8 i;
21 1 uint16 counter;
22 1
23 1 ENLED = 0; ADDR3 = 1;
24 1 TMOD = 0x01;
25 1 TH0 = 0xFC;
26 1 TL0 = 0x67;
27 1 TR0 = 1;
28 1 while(1)
29 1 {
30 2 if(1 == TF0)
31 2 {
32 3 TF0 = 0;
33 3 TH0 = 0xFC;
34 3 TL0 = 0x67;
35 3 counter++;
36 3 refresh();
37 3 }
38 2 if(1000 == counter)
39 2 {
40 3 P0 = number[i++];
41 3 counter = 0;
42 3 }
43 2 if(i == 16)
44 2 {
45 3 i = 0;
46 3 }
47 2
48 2 }
49 1 }
50 void refresh()
51 {
52 1 static uint8 j = 0;
53 1 switch(j)
54 1 {
55 2 case 0: ADDR0 = 0;ADDR1 = 0;ADDR2 = 0;j++;break;
C51 COMPILER V8.02 LED1 11/28/2010 09:32:58 PAGE 2
56 2 case 1: ADDR0 = 1;ADDR1 = 0;ADDR2 = 0;j++;break;
57 2 case 2: ADDR0 = 0;ADDR1 = 1;ADDR2 = 0;j++;break;
58 2 case 3: ADDR0 = 1;ADDR1 = 1;ADDR2 = 0;j++;break;
59 2 case 4: ADDR0 = 0;ADDR1 = 0;ADDR2 = 1;j++;break;
60 2 case 5: ADDR0 = 1;ADDR1 = 0;ADDR2 = 1;j = 0;break;
61 2 default: break;
62 2 }
63 1
64 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 138 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 3
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 + -