📄 celiang.lst
字号:
C51 COMPILER V7.50 CELIANG 07/17/2007 10:34:42 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE CELIANG
OBJECT MODULE PLACED IN CeLiang.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CeLiang.C LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #ifndef CeLiang_Program
3 #define CeLiang_Program
4
5 #include <regX51.H>
6 #define _MHZ_ 11.0592 // 设置单片机使用的晶振频率
7
8 typedef unsigned char uchar;
9 typedef struct times
10 { uchar second; //秒级
11 uchar m_second; //50毫秒级
12 uchar mm_second_1; //计数器高8位,12/_MHZ_秒级
13 uchar mm_second_2; //计数器低8位
14 long sum; //时间
15 }TIME;
16
17 uchar puls_num; //脉冲次数
18 uchar flag; //开始计时标志
19 TIME time[65]; //每次脉冲的时间
20
21 //中断系统初始化
22 void int0_initial()
23 { flag=1;
24 1 /* 定时、中断初始化 */
25 1 TMOD = 0x10; // T1使用定时模式,工作模式1,无门控位
26 1 TH1 = 0x4C; // 为T1填入初值,定时时间50ms
27 1 TL1 = 0x00;
28 1 IT0 = 1; // 设置INTR0中断方式为边沿触发方式,负跳变时产生中断
29 1 PT1 = 1; // 设置定时器1中断为高优先级
30 1 EX1 = 1; // 允许外部中断0中断
31 1 EA = 1; // CPU开放中断
32 1 }
33
34 /* T1溢出中断处理函数 */
35 void timer1_int() interrupt 3 using 3 //不同级别的中断函数使用不同的工作组
36 { TH1 = 0x4C; // 重新填入初值,每次溢出间隔50ms
37 1 TL1 = 0x00;
38 1 time[puls_num].m_second++;
39 1 if(time[puls_num].m_second==20) // 计时满1s
40 1 { time[puls_num].m_second=0; // 清0
41 2 time[puls_num].second++; // 总秒数增1,溢出时会自动归0
42 2 }
43 1 }
44
45
46 /* 外部中断0处理函数 */
47 void intr0_int() interrupt 0 using 2 // INTR0中断,使用工作组2
48 { unsigned char tmp1,tmp2;
49 1 if(flag)
50 1 { flag=0;
51 2 TR1=1;
52 2 ET1=1;
53 2 }
54 1 puls_num++;
55 1 EA = 0; // 关中断
C51 COMPILER V7.50 CELIANG 07/17/2007 10:34:42 PAGE 2
56 1 do // 读取T1中的内容
57 1 { tmp1 = TH1;
58 2 tmp2 = TL1;
59 2 }while(tmp1 != TH1); // 数据无效则反复循环
60 1 time[puls_num].mm_second_1=tmp1; //在这里不进行时间处理,减少中断处理时间
61 1 time[puls_num].mm_second_2=tmp2;
62 1 EA = 1; // 开中断
63 1 if(puls_num==64)
64 1 { EA=0;
65 2 }
66 1 }
67 #endif
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 234 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 522 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -