?? pwm.lst
字號:
C51 COMPILER V7.06 PWM 05/12/2005 21:42:46 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PWM
OBJECT MODULE PLACED IN pwm.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil20\C51\BIN\C51.EXE pwm.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函數聲明,變量定義--------------------------------------------------------
2 #include <reg51.h>
3 #include <intrins.h>
4 #include<ABSACC.H>
5 //-----------------------定義管腳--------------------------------------------------------
6 sbit PWM=P1^0; //PWM波形輸出
7 sbit DR=P1^1; //方向控制
8 #define timer_data (256-100) //定時器預置值,12M時鐘是,定時0.1ms
9 #define PWM_T 100 //定義PWM的周期T為10ms
10 unsigned char PWM_t; //PWM_t為脈沖寬度(0~100)時間為0~10ms
11 unsigned char PWM_count; //輸出PWM周期計數
12 unsigned char time_count; //定時計數
13 bit direction; //方向標志為
14 //--------------------------------------------------------------------------------------------------
15 // 函數名稱:timer_init
16 // 函數功能:初始化設施定時器
17 //--------------------------------------------------------------------------------------------------
18 void timer_init()
19 {
20 1 TMOD=0x22; /*定時器1為工作模式2(8位自動重裝),0為模式2(8位自動重裝) */
21 1 PCON=0x00;
22 1 TF0=0;
23 1 TH0=timer_data; //保證定時時長為0.1ms
24 1 TL0=TH0;
25 1 ET0=1;
26 1 TR0=1; //開始計數
27 1 EA=1; //中斷允許
28 1 }
29 //--------------------------------------------------------------------------------------------------
30 // 函數名稱:setting_PWM
31 // 函數功能:設置PWM的脈沖寬度和設定方向
32 //--------------------------------------------------------------------------------------------------
33 void setting_PWM()
34 {
35 1 if(PWM_count==0) //初始設置
36 1 {
37 2 PWM_t=20;
38 2 direction=1;
39 2 }
40 1 }
41 //--------------------------------------------------------------------------------------------------
42 // 函數名稱:IntTimer0
43 // 函數功能:定時器中斷處理程序
44 //--------------------------------------------------------------------------------------------------
45 void IntTimer0() interrupt 1
46 {
47 1 time_count++;
48 1 DR=direction;
49 1 if(time_count>=PWM_T)
50 1 {
51 2 time_count=0;
52 2 PWM_count++;
53 2 setting_PWM(); //每輸出一個PWM波調用一次
54 2 }
55 1 if(time_count<PWM_t)
C51 COMPILER V7.06 PWM 05/12/2005 21:42:46 PAGE 2
56 1 PWM=1;
57 1 else
58 1 PWM=0;
59 1 }
60
61 //--------------------------------------------------------------------------------------------------
62 // 函數名稱:main
63 // 用戶主函數
64 // 函數功能:主函數
65 //--------------------------------------------------------------------------------------------------
66 void main()
67 {
68 1 timer_init();
69 1 setting_PWM();
70 1 }
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 80 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -