📄 30-14-5.lst
字号:
C51 COMPILER V7.06 30_14_5 03/11/2009 16:03:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 30_14_5
OBJECT MODULE PLACED IN 30-14-5.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 30-14-5.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char //定义一下方便使用
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h> //包括一个52标准内核的头文件
5
6 sbit P10 = P1^0; //要控制的LED灯
7 sbit K1= P3^2; //按键K1
8
9 static uchar T;//一个周期的时间
10 static uchar D;//占空比
11 uchar i;
12
13 void main(void)
14 {
15 1 //TR0;//禁止T0
16 1 TMOD=0x11; //T0和T1均选择工作方式1,16位定时器
17 1 ET0=1; //使能T0溢出中断
18 1 ET1=1;
19 1 EA=1; //使能CPU中断
20 1 TR0=1; //T0开始运行
21 1 TR1=0; //唤醒T1,T1开始计数
22 1
23 1 while(1) //无限循环
24 1 {
25 2 ;
26 2 }
27 1
28 1 }
29
30
31
32 timer0(void) interrupt 1 //T1中断服务函数,占空比
33 {
34 1 TH0=0x3C;
35 1 TL0=0xB0; //定时时间为0.1s
36 1 if(D==0 && T==0)T=1;
37 1 if(T==10) //定时时间为1s
38 1 {
39 2 T=0;
40 2 }
41 1 T++;
42 1 TR1=1;
43 1 TR0=0;
44 1 }
45
46
47 timer1(void) interrupt 3 //T0中断服务函数,频率
48 {
49 1 TH1=0x3C;
50 1 TL1=0xB0; //定时时间为0.1s
51 1 //D++;
52 1 //if(D==T)
53 1 //{
54 1 //D=0;
55 1 //P10=~P10; //矩形波中的低电平
C51 COMPILER V7.06 30_14_5 03/11/2009 16:03:08 PAGE 2
56 1
57 1 for(D=0;D<=T;D++)
58 1 {
59 2 D=D/10*T;
60 2 }
61 1
62 1
63 1 TR0=1; //禁止T1计数,等待T0将其唤醒
64 1 TR1=0; //禁止T1计数,等待T0将其唤醒
65 1 //}
66 1
67 1
68 1
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 104 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -