⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm_duty.lst

📁 TI 集成高性能24位A/D转换器的8052 核心单片机MSC1210 PWM发生器代码。
💻 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 + -