?? pwm_duty.lst
字號:
RC51 COMPILER V03.03.28, PWM_DUTY 02/21/03 15:18:47 PAGE 1
QCW(0x00002F32)
WIN32 RC51 COMPILER V03.03.28, COMPILATION OF MODULE PWM_DUTY
OBJECT MODULE PLACED IN c:\ride\rai-code\pwm\pwm_duty.obj
COMPILER INVOKED BY: RC51.EXE C:\RIDE\RAI-CODE\PWM\PWM_DUTY.C OBJECT(C:\RIDE\RAI
--CODE\PWM\PWM_DUTY.OBJ) PIN(C:\RIDE\INC;C:\RIDE\INC\51;C:\RIDE\INC\
-51\TI) NOAM PR(C:\RIDE\RAI-CODE\PWM\PWM_DUTY.LST) CD SB OE(1) SM FP
-(NOFLOAT) PW(80) NOIS UNSIGNEDCHAR ET(CHAR)
stmt level source
1 // PWM
2 #include <REG1210.H>
3 #define XTAL 2 // Actual Crystal = 1.8432 MHz for MSC1210-DAQ-EV
-M
4 #define OneUsConst (XTAL-1)
5 #define CLEAR 0
6 #define SET 1
7 sbit p33=P3^3;
8 sbit p14=P1^4;
9 unsigned int p,d; // Temporary for Period and Duty
10
11 void pwm_isr( void) interrupt 2 //External Interrupt 1
12 { p14=!p14; // debug
13 1 PWMCON &= 0xef; // select PWMPeriod
14 1 PWM=p; // Set PWMPeriod
15 1 PWMCON |=0x10; // select PWMDuty
16 1 PWM=d;
17 1 IE1=CLEAR; // Clear pending interrupt
18 1 EX1=CLEAR;
19 1 }
20
21 void setpwm(unsigned int period, unsigned int duty)
22 { p14=!p14; // debug
23 1 p=period; d=duty; // Save for use by the interrupt
24 1 IE1=CLEAR; // Clear any pending interrupt
25 1 EX1=SET; // Enable *INT1 pin interrupt
26 1 }
27
28 void main(void)
29 { char i;
30 1 // Setup External INT1
31 1 IT1=SET; // Config *INT1 pin for falling edge trigger
32 1 EA=SET; // Global Int Enable
33 1
34 1 PDCON &= 0x0ed; //turn on tone gen & sys timer
35 1 USEC = OneUsConst;
36 1 p33=1; // turn on P3.3
37 1 PWMCON=0; // select PWMPeriod
38 1 PWM=500; // Set PWMPeriod
39 1 PWMCON=0x10; // select PWMDuty
40 1 PWM=200;
41 1 PWMCON=0x19; // Enable PWM
42 1 for (i=0;i<5;i++) {;}
43 1 setpwm(200,100); // set period/duty after current PWM cycle
44 1 while(1) {}
45 1 }
46
47
RC51 COMPILER V03.03.28, PWM_DUTY 02/21/03 15:18:47 PAGE 2
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION pwm_isr (BEGIN)
; SOURCE LINE # 18
0000 C0D0 PUSH PSW
; SOURCE LINE # 12
0002 B294 CPL p14
; SOURCE LINE # 13
0004 53A1EF ANL PWMCON,#0EFH
; SOURCE LINE # 14
0007 8500A3 R MOV PWM+01H,p
000A 8500A2 R MOV PWM,p+01H
; SOURCE LINE # 15
000D 43A110 ORL PWMCON,#010H
; SOURCE LINE # 16
0010 8500A3 R MOV PWM+01H,d
0013 8500A2 R MOV PWM,d+01H
; SOURCE LINE # 17
0016 C28B CLR IE1
; SOURCE LINE # 18
0018 C2AA CLR EX1
001A D0D0 POP PSW
001C 32 RETI
; FUNCTION pwm_isr (END)
; FUNCTION _setpwm (BEGIN)
; Register R6R7 is assigned to parameter period
; Register R4R5 is assigned to parameter duty
; SOURCE LINE # 22
0000 B294 CPL p14
; SOURCE LINE # 23
0002 8E00 R MOV p,R6
0004 8F00 R MOV p+01H,R7
0006 8C00 R MOV d,R4
0008 8D00 R MOV d+01H,R5
; SOURCE LINE # 24
000A C28B CLR IE1
; SOURCE LINE # 25
000C D2AA SETB EX1
000E 22 RET
; FUNCTION _setpwm (END)
; FUNCTION main (BEGIN)
; SOURCE LINE # 31
0000 D28A SETB IT1
; SOURCE LINE # 32
0002 D2AF SETB EA
; SOURCE LINE # 34
0004 53F1ED ANL PDCON,#0EDH
; SOURCE LINE # 35
0007 75FB01 MOV USEC,#001H
; SOURCE LINE # 36
000A D2B3 SETB p33
; SOURCE LINE # 37
000C 75A100 MOV PWMCON,#000H
; SOURCE LINE # 38
000F 75A301 MOV PWM+01H,#001H
0012 75A2F4 MOV PWM,#0F4H
; SOURCE LINE # 39
0015 75A110 MOV PWMCON,#010H
; SOURCE LINE # 40
0018 E4 CLR A
0019 F5A3 MOV PWM+01H,A
001B 75A2C8 MOV PWM,#0C8H
; SOURCE LINE # 41
001E 75A119 MOV PWMCON,#019H
; R3 is assigned to i
; SOURCE LINE # 42
0021 7A05 MOV R2,#005H
0023 ?NXT6:
0023 DAFE DJNZ R2,?NXT6
; SOURCE LINE # 43
0025 E4 CLR A
0026 FE MOV R6,A
0027 7FC8 MOV R7,#0C8H
0029 FC MOV R4,A
002A 7D64 MOV R5,#064H
002C 120000 R LCALL _setpwm
002F ?WHILE1:
; SOURCE LINE # 44
002F 80FE SJMP ?WHILE1
; FUNCTION main (END)
RC51 COMPILER V03.03.28, PWM_DUTY 02/21/03 15:18:47 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
p. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2
d. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0002H 2
pwm_isr. . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
setpwm . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
period?041 . . . . . . . . . . . . . PARAM DATA U_INT 0000H 2
duty?042 . . . . . . . . . . . . . . PARAM DATA U_INT 0002H 2
period?041 . . . . . . . . . . . . . PARAM DATA U_INT 0000H 2
duty?042 . . . . . . . . . . . . . . PARAM DATA U_INT 0002H 2
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC ----- -----
i?044. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
RC51 COMPILER V03.03.28, PWM_DUTY 02/21/03 15:18:47 PAGE 4
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 93 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
RC51 COMPILATION COMPLETE. 0 WARNING, 0 ERROR
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -