📄 sy5.lst
字号:
C51 COMPILER V7.20 SY5 08/08/2008 09:00:07 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE SY5
OBJECT MODULE PLACED IN sy5.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE sy5.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <c8051f000.h>
2
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 void sysclk_init();
7 void port_init();
8 void pca_init();
9 void bl_init();
10
11
12 uchar bzw;
13 uchar bzw2;
14 uint i; //pca计数器溢出次数
15 uchar cfbzw;
16 uchar ccf0bzw;
17 uchar pca0l;
18 uchar pca0h;
19 uchar pca0newl; //第二次捕获下降沿时计数值
20 uchar pca0newh;
21 uchar pca0oldl; //第一次捕获下降沿时计数值
22 uchar pca0oldh;
23 uint pca0old;
24 uint pca0new;
25 uint k;
26 float t;
27 uint n;
28 uint bi;
29
30
31 void main()
32 {
33 1 sysclk_init();
34 1 port_init();
35 1 pca_init();
36 1 EA=1; //开总中断
37 1 i=0;
38 1 bl_init();
39 1 for(;;)
40 1 {
41 2 if(k==0)
42 2 {
43 3
44 3 {
45 4 pca0new=(pca0newh<<8)+pca0newl;
46 4 pca0old=(pca0oldh<<8)+pca0oldl;
47 4 t=(pca0new+(i*65536.0)-pca0old)/(16000000.0/12.0)/n;
48 4 bl_init();
49 4 bi=i;
50 4 EA=1;
51 4 }
52 3 }
53 2 }
54 1 }
55
C51 COMPILER V7.20 SY5 08/08/2008 09:00:07 PAGE 2
56
57 void bl_init()
58 {
59 1 // bzw=0;
60 1 // bzw2=0;
61 1 // i=0;
62 1 // ccf0bzw=0;
63 1 // cfbzw=0;
64 1 n=10000; //计n个周期
65 1 k=n+1;
66 1 }
67
68 void sysclk_init()
69 {
70 1 WDTCN=0XDE; //关看门狗
71 1 WDTCN=0XAD;
72 1 OSCICN=0x07; //内部16M时钟
73 1 }
74
75 void port_init()
76 {
77 1 XBR0=0X10; //CEX0,CEX1连接到端口
78 1 XBR1=0X00;
79 1 XBR2=0X40; //交叉开关允许
80 1 PRT0CF=0X00; //P0口输出方式漏开
81 1 }
82
83 void pca_init()
84 {
85 1 PCA0MD=0X01; //系统时钟12分频,允许CF中断
86 1 PCA0CPM0=0x11; //PCA模块0下降沿触发捕捉,允许CCF0中断
87 1 EIE1|=0X08; //允许PCA中断
88 1 PCA0CN=0x40; //允许PCA计数器
89 1 }
90
91 void cf_int() interrupt 9
92 {
93 1
94 1
95 1 if(CF)
96 1 {
97 2 CF=0; //PCA中断标志清零
98 2 // CCF0=0;
99 2 i++;
100 2 }
101 1 else
102 1 {
103 2 CCF0=0;
104 2 // CF=0;
105 2 // ccf0bzw++;
106 2 if(k==1)
107 2 {
108 3 pca0newl=PCA0CPL0; //记下n+1次下降沿来时的计数值
109 3 pca0newh=PCA0CPH0;
110 3 EA=0; //禁止中断
111 3 // k--; //两次计数完毕
112 3 }
113 2 if(k==n+1)
114 2 {
115 3 pca0oldl=PCA0CPL0; //记下第一次下降沿来时的计数值
116 3 pca0oldh=PCA0CPH0;
117 3 i=0;
C51 COMPILER V7.20 SY5 08/08/2008 09:00:07 PAGE 3
118 3 // k--;
119 3 }
120 2 k--;
121 2 }
122 1
123 1 bzw++;
124 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 344 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 ----
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 + -