📄 30-14-4.lst
字号:
C51 COMPILER V7.06 30_14_4 03/10/2009 17:01:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 30_14_4
OBJECT MODULE PLACED IN 30-14-4.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 30-14-4.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^0; //按键K1,占空比增大
8 sbit K2=P3^1; //按键K2,占空比减小
9 sbit K3=P3^2; //按键K3,周期增大
10 sbit K4=P3^3; //按键K4,周期减小
11 static uchar Tosc;//一个周期的时间
12 static uchar Duty;//占空比
13
14 void main(void)
15 {
16 1 TMOD=0x11; //T0和T1均选择工作方式1,16位定时器
17 1 TH0=0x3C;
18 1 TL0=0xB0; //定时时间为0.1s/周期
19 1 TH1=0x3C;
20 1 TL1=0xB0; //定时时间为0.1s/周期
21 1 ET0=1; //使能T0溢出中断
22 1 ET1=1;
23 1 EA=1; //使能CPU中断
24 1 TR0=0; //T0禁止运行
25 1 TR1=1; //唤醒T1,T1开始计数
26 1 while(1) //无限循环
27 1 {
28 2 ;
29 2 }
30 1 }
31
32 timer0(void) interrupt 1 //T0中断服务函数,占空比
33 {
34 1 if(Duty==0 && Tosc==0)Tosc=1; //消除都等于0时的Duty无限增长死循环
35 1 if(!K1)Duty++;
36 1 if(Duty==Tosc)
37 1 {
38 2 Duty=0;
39 2 P10=~P10; //矩形波中的高低电平反转
40 2 TR1=1; //开始T1计数
41 2 TR0=0; //禁止T0计数,等待T1将其唤醒
42 2 }
43 1 if(!K2)
44 1 {
45 2 Duty--;
46 2 P10=~P10;
47 2 TR1=1; //开始T1计数
48 2 TR0=0; //禁止T0计数,等待T1将其唤醒
49 2 }
50 1 if(Duty==0)
51 1 {
52 2 Duty=Tosc;
53 2 P10=~P10; //矩形波中的高低电平反转
54 2 TR1=1; //开始T1计数
55 2 TR0=0; //禁止T0计数,等待T1将其唤醒
C51 COMPILER V7.06 30_14_4 03/10/2009 17:01:21 PAGE 2
56 2 }
57 1 }
58
59 timer1(void) interrupt 3 //T1中断服务函数,频率
60 {
61 1 if(!K3)
62 1 {
63 2 if(Tosc==10)Tosc=0; //定时时间为1s
64 2 Tosc++;
65 2 TR0=1; //开始T0计数
66 2 TR1=0; //禁止T1计数,等待T0将其唤醒
67 2 }
68 1
69 1 if(!K4)
70 1 {
71 2 if(Tosc==0)Tosc=10; //定时时间为1s
72 2 Tosc--;
73 2 TR0=1; //开始T0计数
74 2 TR1=0; //禁止T1计数,等待T0将其唤醒
75 2 }
76 1
77 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 132 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -