📄 digtaled.lst
字号:
C51 COMPILER V7.09 DIGTALED 10/08/2006 17:10:13 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE DIGTALED
OBJECT MODULE PLACED IN DigtaLED.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE DigtaLED.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2
3 #define BYTE unsigned char
4 #define WORD unsigned int
5
6 sbit LED1=P1^0;
7 sbit LED2=P1^1;
8 sbit LED3=P1^2;
9 sbit LED4=P1^3;
10 sbit LED5=P1^4;
11 sbit LED6=P1^5;
12 sbit LED7=P1^6;
13 sbit LED8=P1^7;
14
15 sbit DLEDcs1=P2^2;
16 sbit DLEDcs2=P2^3;
17 sbit DLEDcs3=P2^1;
18 sbit DLEDcs4=P2^0;
19
20
21 BYTE const DLEDcodeA[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
22 BYTE Testdata;
23
24
25 void Delay(WORD i)
26 {
27 1 while(i--);
28 1 }
29
30 //动态显示
31 void DLEDdispNumA(WORD XNum)
32 {
33 1 WORD Num,i=10;
34 1 XNum%=10000;
35 1 while(i--)
36 1 {
37 2 Num=XNum;
38 2 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num/1000];DLEDcs1=0;Num%=1000;Delay(0x100);
39 2 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num/100];DLEDcs2=0; Num%=100; Delay(0x100);
40 2 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num/10];DLEDcs3=0; Num%=10; Delay(0x100);
41 2 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs4=0; Delay(0x100);
42 2 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;
43 2 }
44 1 }
45
46 //静态单数码管显示
47 void DispSS(BYTE Num)
48 {
49 1 P0=0xff;Num%=10;
50 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs1=0;
51 1 }
52 //静态四数码管显示
53 void DispSF(BYTE Num)
54 {
55 1 P0=0xff;Num%=10;
C51 COMPILER V7.09 DIGTALED 10/08/2006 17:10:13 PAGE 2
56 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;
57 1 P0=DLEDcodeA[Num];
58 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=0;
59 1 }
60 //静态四数码管移动显示
61 void DispMF(BYTE Num)
62 {
63 1 P0=0xff;Num%=10;
64 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs1=0;Delay(0x2000);
65 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs2=0;Delay(0x2000);
66 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs3=0;Delay(0x2000);
67 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;P0=DLEDcodeA[Num];DLEDcs4=0;Delay(0x2000);
68 1 DLEDcs1=DLEDcs2=DLEDcs3=DLEDcs4=1;
69 1 }
70
71 void timer0() interrupt 1 using 1
72 {
73 1 TH0=0x4c;TL0=0x00;
74 1 Testdata++;
75 1 }
76
77 main()
78 {
79 1 WORD i;
80 1 P0=0xff;//熄掉所有发光二极管
81 1 P2=0xff;//关闭数码管显示
82 1 TMOD=0x01;
83 1 while(1)
84 1 {
85 2 /*
86 2 //静态单数码管显示
87 2 for(i=0;i<10;i++)
88 2 {DispSS(i);Delay(0xf000);}
89 2 P2=0xff;Delay(0x8000);//关闭数码管显示
90 2
91 2 for(i=0;i<10;i++)
92 2 {DispSF(i);Delay(0xf000);}
93 2 P2=0xff;Delay(0x8000);//关闭数码管显示
94 2 for(i=0;i<10;i++)
95 2 {DispMF(i);Delay(0xf000);}
96 2 */
97 2 //定时中断动态四数码管显示
98 2 Testdata=0;
99 2 TH0=0x4c;TL0=0x00;//50ms定时
100 2 TR0=1;ET0=1;EA=1;//打开定时器中断
101 2 while(Testdata<200)
102 2 DLEDdispNumA(Testdata/2);
103 2 TR0=0;ET0=0;//关闭定时器中断
104 2
105 2 //动态数码管显示,0000-9999计数
106 2 // P2=0xff;Delay(0xf000);//关闭数码管显示
107 2 // for(i=0;i<10000;i++)
108 2 // {DLEDdispNumA(i);}
109 2
110 2 }
111 1 }
*** WARNING C280 IN LINE 79 OF DIGTALED.C: 'i': unreferenced local variable
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 442 ----
CONSTANT SIZE = ---- ----
C51 COMPILER V7.09 DIGTALED 10/08/2006 17:10:13 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -