📄 cap02.lst
字号:
C51 COMPILER V8.02 CAP02 05/02/2008 00:37:01 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE CAP02
OBJECT MODULE PLACED IN cap02.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE cap02.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //#include <reg51.h>
2 #include <REG2051.H>
3 //#include <intrins.h>
4
5 unsigned char i,j,n,t,DispBuf[4];
6 unsigned int cap;
7 unsigned char code
8 BitTab[4]={0xbf,0xdf,0xef,0xf7};//位驱动码
9 unsigned char code
10 DispTab[11]={0xfe,0x70,0xed,0xf9,0x73,0xdb,0xdf,0xf0,0xff,0xfb,0x40};//字形码
11 //sbit P1_2=P1^2;
12 //sbit P3_6=P3^6;
13
14 main() //主程序
15 { TMOD=0x11;//定时器T0、T1均工作于定时方式1
16 1 TH1=0xec;
17 1 TL1=0x78;//T1定时时间为5ms
18 1 IE=0X88; //开中断
19 1 TR1=1; //开定时器T1
20 1 P1_2=0; //电容放电
21 1 for(;;); //无限循环,定时中断返回点
22 1 }
23
24 Timer1() interrupt 3 //定时中断服务程序
25 { TH1=0xec;
26 1 TL1=0x78;
27 1 t=BitTab[j]; //取位值
28 1 P1=P1|0x78; //P1.3~P1.6送1
29 1 P1=P1&t; //P1.3-P1.6输出取出的位值
30 1 if(j==0 && DispBuf[j]==0)t=DispTab[10];//最高位为0时,取空格字形码
31 1 else
32 1 {
33 2 t=DispBuf[j]; //取出待显示的数
34 2 t=DispTab[t]; //取字形码
35 2 }
36 1 P3=t; //字型码由P3输出显示
37 1 // if(j==1) P1_0=1;else P1_0=0;//设置小数点
38 1 j++; //j作为数码管的计数器,取值0-3,显示程序通过它确认显示哪个数码管
39 1 if(j==4) j=0;
40 1 n++;
41 1 if(n==48) //每过48个中断测一次电容量
42 1 {
43 2 n=0;
44 2 TH0=0;
45 2 TL0=0;
46 2
47 2 P1_2=1; //电容开始充电
48 2 TR0=1; //开定时器T0
49 2 //for(i=0;i>10000;i++) {_nop_();_nop_();_nop_();}
50 2 while (AOUT == 0);
51 2 //for(;AOUT == 0;); //判断充电电压达到参考电压否
52 2 TR0=0; //充电电压达到参考电压,关定时器T0
53 2 P1_2=0; //电容放电
54 2 cap=TL0|(TH0<<8); //取定时器T0中的数值
55 2 cap=cap-3; //修正误差
C51 COMPILER V8.02 CAP02 05/02/2008 00:37:01 PAGE 2
56 2 if(cap>=10000)
57 2 {
58 3 DispBuf[3]=10;
59 3 DispBuf[2]=10;
60 3 DispBuf[1]=10;
61 3 DispBuf[0]=1; //超量程,最高位显示1,其余各位不显示(灭)
62 3 }
63 2 if(cap<10000) //不超量程,取各位数值
64 2 {
65 3 DispBuf[3]=cap%10;//取个位数
66 3 cap=cap/10;
67 3 DispBuf[2]=cap%10;//取十位数
68 3 cap=cap/10;
69 3 DispBuf[1]=cap%10;//取百位数
70 3 DispBuf[0]=cap/10;//取千位数
71 3 }
72 2 }
73 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 283 ----
CONSTANT SIZE = 15 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 ----
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 + -