?? pwm_16.lst
字號:
C51 COMPILER V7.50 PWM_16 10/23/2006 11:05:11 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PWM_16
OBJECT MODULE PLACED IN pwm_16.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE pwm_16.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************
2 本程序為PCA16位PWM輸出例程,jp2第2腳為PWM輸出
3 ******************************************************************/
4
5 #include <c8051f340.h>
6 #define uchar unsigned char
7 #define uint unsigned int
8
9
10 void port_init (void);
11 void pca_init (void);
12
13 bit pca_flag;
14 uint pwm=0;
15 void main (void)
16 {
17 1 PCA0MD &= ~0x40; //關(guān)閉看門狗
18 1 OSCICN |= 0x03; //使用內(nèi)部12M晶振
19 1 port_init (); //端口初始化
20 1 pca_init (); //PCA初始設(shè)為16位脈寬
21 1 EA=1;
22 1
23 1 while (1)
24 1 {
25 2
26 2
27 2 }
28 1 }
29 /******************************************************************
30 端口初始化程序
31 ******************************************************************/
32 void port_init (void)
33 { P0SKIP = 0xff; //跳過P0口
34 1 P1SKIP = 0x03; //跳過P1.1
35 1 XBR1 = 0x42; //將PCA輸出配置到P1.2腳
36 1 P1MDOUT |= 0x04; //P1.2配置為推挽輸出
37 1 }
38 /******************************************************************
39 初始化PCA的CEX0輸出16位PWM信號
40 ******************************************************************/
41 void pca_init (void)
42 {
43 1 PCA0CN = 0x40; //PCA定時器使能
44 1 PCA0CPM0 = 0xc2; //使能16位PWM
45 1 PCA0MD = 0x01; //PCA定時器溢出中斷允許
46 1 EIE1= 0x10; //允許PCA中斷
47 1 pca_flag=0;
48 1 }
49 /******************************************************************
50 PCA中斷處理程序
51 ******************************************************************/
52 void pca_isr (void) interrupt 11
53 {
54 1
55 1 if(pca_flag==0)
C51 COMPILER V7.50 PWM_16 10/23/2006 11:05:11 PAGE 2
56 1 {
57 2 PCA0CPL0=(0xff&pwm);
58 2 PCA0CPH0=(0xff&(pwm>>8));
59 2 pwm+=0x0050;
60 2 if(pwm==0xfff0){pca_flag=1;}
61 2 }
62 1 if(pca_flag==1)
63 1 {
64 2 PCA0CPL0=(0xff&pwm);
65 2 PCA0CPH0=(0xff&pwm>>8);
66 2 pwm-=0x0050;
67 2 if(pwm==0){pca_flag=0;}
68 2 }
69 1 CF = 0;
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 118 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -