📄 pwm调led灯.lst
字号:
C51 COMPILER V7.50 PWM礯LED灯 08/08/2008 09:24:26 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PWM礯LED灯
OBJECT MODULE PLACED IN PWM调LED灯.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PWM调LED灯.C BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************************************/
2 /* 程序名:PWM调LED灯亮暗 */
3 /* */
4 /* 晶振:12.0 M CPU型号:AT89S52 */
5 /* */
-
6 /* */
7 /* 功能描述: 将实验板上的J12的跳线帽插上! */
8 /* */
9 /* */
10 /* 网址:http://www.mcu-arm.cn */
11 /* 邮箱:mcu-arm2007@163.com
12 /* QQ技术群:2056101 */
13 /* */
14 /* */
15 /* 创灵电子工作室 版权所有 */
-
16 /* 2007-12-20 */
17 /************************************************************************************/
18 #include <reg52.h>
19
20 #define uchar unsigned char
21 #define uint unsigned int
22 #define HI 0xf3 //定时器2的初值
23 #define LO 0x98
24 sbit D4=P1^4;
25 sbit P1_3 = P1^3;
26 sbit KEY = P3^4;
27
28 uchar Count; // 用于保存占空比中输出0的时间份额,总共10份
29
30 /********************************************************************************************
31 * 函数名称:Delay()
32 * 功 能:软件延时
33 * 入口参数:无符号的整型变量
34 * 出口参数:无
35 *********************************************************************************************/
36 void Delay(uint t)
37 {
38 1 uchar i ;
39 1 while(t--)
40 1 {
41 2 for(i = 0;i <125;i++)
42 2 {;}
43 2 }
44 1 }
45 /********************************************************************************************
46 * 函数名称:Timer2Init()
47 * 功 能:定时器初始化程序
48 * 入口参数:无
49 * 出口参数:无
50 *********************************************************************************************/
51 void Timer2Init(void) //初始化定时器2程序
52 {
53 1 TH0=(65536-50)/256;
C51 COMPILER V7.50 PWM礯LED灯 08/08/2008 09:24:26 PAGE 2
54 1 TL0=(65536-50)%256;
55 1 TR0=1; // 启动定时器2
56 1 ET0=1; // 打开定时器2中断
57 1 EA=1;
58 1 }
59 /********************************************************************************************
60 * 函数名称:Timer2()
61 * 功 能:定时器2中断程序
62 * 入口参数:无
63 * 出口参数:无
64 *********************************************************************************************/
65 void Time2() interrupt 1
66 { static uchar time;
67 1 TH0=(65536-50)/256;
68 1 TL0=(65536-50)%256;
69 1
70 1
71 1
72 1 time++;
73 1 if(time == 10)
74 1 {
75 2 time = 0;
76 2 if(Count != 0)
77 2 P1 = 0;
78 2 }
79 1 if(Count == time)
80 1 P1 = 0xff;
81 1 }
82 /********************************************************************************************
83 * 函数名称:main()
84 * 功 能:主函数
85 * 入口参数:无
86 * 出口参数:无
87 *********************************************************************************************/
88 void main(void)
89 {
90 1 Timer2Init();
91 1
92 1 while(1)
93 1 {
94 2 if(KEY == 0)
95 2 {
96 3 Delay(10);
97 3 while(!KEY); //另一种键盘去抖动的方法
98 3 Count++;
99 3 if(Count == 10)
100 3 {
101 4 Count = 0;
102 4 }
103 3 }
104 2 }
105 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 103 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.50 PWM礯LED灯 08/08/2008 09:24:26 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -