📄 pca_cap.lst
字号:
C51 COMPILER V8.02 PCA_CAP 08/28/2008 22:51:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE PCA_CAP
OBJECT MODULE PLACED IN PCA_CAP.OBJ
COMPILER INVOKED BY: C:\Keil\uv3\C51\BIN\C51.EXE PCA_CAP.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "SSTREG51.h"
2 #define uchar unsigned char
3 uchar seg[10 ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
4 uchar i;
5 uchar cap[4];
6 //sfr CCAPM0=0XDA;
7 //sfr CMOD=0XD9;
8 //sfr CCAP0H=0XFA;
9 //sfr CCAP0L=0XEA;
10 //sfr CCON=0XD8;
11 //sbit CCAPP0=CCAPM0^2;
12 //sbit CCAPM0=CCAPM0^3;
13 //sbit CR=CCON^6;
14 //sbit CCF0=CCON^0;
15 //sbit EC=IE^6;
16 bit capselect=1;
17
18 /*******初始PCA*********/
19 init_pca()
20 {
21 1 CMOD=0;//捕捉模式,fosc/12,
22 1 CCAPM0=0X98;//下降沿捕捉, 允许模式0中断
23 1 CR=1;
24 1 EC=1;
25 1 EA=1;
26 1 }
27
28 /*********中断处理*********/
29
30 void pca_0() interrupt 6
31 {
32 1 CCAPM0&=0xf3;//清上升、下降沿捕捉允许/禁止位
33 1 capselect=~capselect;
34 1 CCF0=0;// 清中断标志
35 1 cap[i]=CCAP0L;
36 1 i++;
37 1 cap[i]=CCAP0H;//保存捕捉数据
38 1 i++;
39 1 }
40
41 /***********主函数**************/
42 void main()
43 {
44 1 unsigned int t1,t2;
45 1 uchar comt1_t2;
46 1 init_pca();
47 1 while(1)
48 1 {
49 2 if(capselect==1) //上升沿捕捉
50 2 {CCAPM0&=0xdf;// CAPP0=1;
51 3 CCAPM0|=0x20;
52 3 }
53 2 else //下降沿捕捉
54 2 {CCAPM0&=0xef;//CAPN0=1;
55 3 CCAPM0|=0x10;
C51 COMPILER V8.02 PCA_CAP 08/28/2008 22:51:02 PAGE 2
56 3 }
57 2 if(i==4)
58 2 {
59 3 i=0;
60 3 EC=0; // 禁止中断
61 3 t1=256*cap[1]+cap[0];
62 3 t2=256*cap[3]+cap[2];
63 3 comt1_t2=t2/t1;
64 3 P0=seg[comt1_t2]; //占空比
65 3 EC=1; //待送P0显示后再允许中断
66 3 }
67 2 } }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 129 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 2
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -