📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 11/11/2007 18:31:50 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //****12mhz***////
2 #include"reg52.h"
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 uchar code tv[]={0xfe,0xfd,0xfb,0xf7};
7 uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
8
9 uchar data led[4];
10 uint data fre;
11 uchar cnt;
12
13
14 void delay(void)
15 {
16 1 uint i;
17 1 for(i=0;i<10;i++);
18 1 }
19
20
21 void led_show(void)
22 {
23 1 uchar k,i;
24 1 led[0]=fre%10;
25 1 led[1]=fre/10%10;
26 1 led[2]=fre/100%10;
27 1 led[3]=fre/1000;
28 1
29 1 for(k=0;k<4;k++)
30 1 {
31 2 P2=tv[k];
32 2 i=led[k];
33 2 P0=a[i];
34 2 delay();
35 2 }
36 1 }
37
38 /********************50ms*********************************************/
39
40 void Timer_Init (void)
41 {
42 1 TMOD=0x51;
43 1 TH0=(65536-50000)/256;
44 1 TL0=(65536-50000)%256;
45 1 EA=1;
46 1 ET0=1;
47 1 ET1=1;
48 1
49 1 }
50
51 void T0_ISP(void) interrupt 1
52 {
53 1 cnt++;
54 1 if (cnt==20)
55 1 {
C51 COMPILER V7.50 TEXT1 11/11/2007 18:31:50 PAGE 2
56 2 cnt=0;
57 2 EA=0;
58 2 fre=TL1+(TH1<<8); //体会为什么要这样写呢?TH1是计数高8位,TL1是低8位,这个16位数分2部分存放,
59 2 EA=1; //高8位和低8位进制是256。这里写成这样也可以fre=TH1*256+TL1
60 2 TL1=0;
61 2 TH1=0;
62 2 }
63 1 TH0=(65536-50000)/256; //注;为什么要在这里附上TH0,TL0的初值。(减小误差)
64 1 TL0=(65536-50000)%256;
65 1 }
66
67 void main()
68 {
69 1 uint i;
70 1 Timer_Init();
71 1 TR0=1;
72 1 TR1=1;
73 1
74 1
75 1 while(1)
76 1 {
77 2 for(i=0;i<20;i++)
78 2 {
79 3 led_show();
80 3 }
81 2 }
82 1 }
83
84
85
86
87
88
89
90
91
92
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 222 ----
CONSTANT SIZE = 14 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
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 + -