?? wpca1pwm16.lst
字號:
C51 COMPILER V7.05 WPCA1PWM16 02/14/2006 10:38:43 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE WPCA1PWM16
OBJECT MODULE PLACED IN WPCA1pwm16.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe WPCA1pwm16.C DB OE
stmt level source
1 //參考程序B:WPCA1pwm16.C 程序實現PCA模塊1的16位PWM輸出,輸出腳CEX1配置在P0.1腳。輸出方波占空比為1/2
2 #include <c8051f020.h> /*SFR定義*/
3 // Function PROTOTYPES
4 void PORT_Init (void);
5 void PCA_Init (void);
6 void PCA_ISR (void);
7 void main (void) {
8 1 WDTCN = 0xde; /*關看門狗*/
9 1 WDTCN = 0xad;
10 1 PORT_Init (); /*初始化IO口*/
11 1 PCA_Init (); /*PCA初始化成16位脈寬調置方式*/
12 1 EA = 1; /*開總中斷*/
13 1 while (1) {
14 2 }
15 1 }
16 void PORT_Init (void)
17 {
18 1 XBR0 = 0x20; /*CEX0-->P0.0,CEX1-->P0.1,CEX2-->P0.2,CEX3-->P0.3*/
19 1 XBR2 = 0x40; /*使能交叉開關和弱上拉*/
20 1 }
21 void PCA_Init (void)
22 {
23 1 EIE1 = 0x08; /*允許PCA0申請中斷*/
24 1 OSCICN=0x17; /*采用內部時鐘作系統時鐘,頻率為16MHZ*/
25 1 PCA0MD = 0x09; /*PCA方式選擇:使用系統時鐘,允許 CCF1申請中斷*/
26 1 PCA0L = 0x00;/*定時/計數器初值為0000H*/
27 1 PCA0H = 0x00;
28 1 PCA0CPM1 = 0xcb;/*PCA模塊1為16位PWM方式,當CCF1=1時,允許CFF1中斷申請*/
29 1 PCA0CPL1 = 0x00; /*置比較/捕捉寄存器初值為8000H*/
30 1 PCA0CPH1 = 0x80;
31 1 PCA0CN = 0x40; /*允許PCA定時器/計數器,*/
32 1 }
33 /*PCA中斷子程序*/
34 void PCA_ISR (void) interrupt 9
35 {
36 1 CF = 0; /*清溢出中斷標志*/
37 1 CCF1= 1; /*清匹配中斷標志*/
38 1 }
39
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 54 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -