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

📄 spwm_16k.lst

📁 用PIC16F876A产生2路SPWM波
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-88888                            Sun May  4 16:56:59 2008

Licensed to: ONE TWO
     1                           	processor	16F876A
     2                           	opt	pw 79
     3                           	psect	__Z88888RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	config,global,class=CONFIG,delta=2
     6                           	psect	strings,global,class=STRING,delta=2
     7                           	psect	const1,local,class=CONST,delta=2
     8                           	psect	text2,local,class=CODE,delta=2
     9                           	psect	text3,local,class=CODE,delta=2
    10                           	psect	text4,local,class=CODE,delta=2
    11                           	psect	intcode,global,class=CODE,delta=2
    12                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
    13                           	psect	intret,global,class=CODE,delta=2
    14                           	psect	intentry,global,class=CODE,delta=2
    15                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    16                           	psect	text6,local,class=CODE,delta=2
    17                           	psect	rbit_0,global,bit,class=BANK0,space=1,de
      +                          lta=1
    18                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    19                           	psect	rbss_1,global,class=BANK1,space=1,delta=
      +                          1
    20                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26  0000                     
    27  0000                     
    28  0000                     
    29  0000                     
    30  0000                     
    31                           
    32                           	psect	__Z88888RS_
    33  0190                     
    34  0190                     	;#
    35                           
    36                           	psect	text0
    37  064B                     _DELAY
    38                           ;	_i assigned to ?a_DELAY+0
    39  0000                     _DELAY$i	set	?a_DELAY
    40                           ;SPWM_16K.c: 34: unsigned int i;
    41  064B  30D0               	movlw	208
    42  064C  0183               	clrf	3	;select bank 0
    43  064D  00A2               	movwf	?a_DELAY
    44  064E  3007               	movlw	7
    45  064F  00A3               	movwf	?a_DELAY+1
    46  0650                     l2
    47  0650  0064               	clrwdt	;#
    48  0651  08A2               	movf	?a_DELAY
    49  0652  1903               	btfsc	3,2
    50  0653  03A3               	decf	?a_DELAY+1
    51  0654  03A2               	decf	?a_DELAY
    52  0655  0823               	movf	?a_DELAY+1,w
    53  0656  0422               	iorwf	?a_DELAY,w
    54  0657  1903               	btfsc	3,2
    55  0658  0008               	return
    56  0659  2E50               	goto	l2
    57                           
    58                           	psect	config
    59  2007  1FF6               	dw	8182	;#
    60                           
    61                           	psect	const1
    62  0073  0782               	addwf	2
    63  0074                     _PWM_TAB
    64  0074  3400               	retlw	0
    65  0075  3419               	retlw	25
    66  0076  3432               	retlw	50
    67  0077  344A               	retlw	74
    68  0078  3462               	retlw	98
    69  0079  3478               	retlw	120
    70  007A  348E               	retlw	-114
    71  007B  34A2               	retlw	-94
    72  007C  34B4               	retlw	-76
    73  007D  34C5               	retlw	-59
    74  007E  34D4               	retlw	-44
    75  007F  34E1               	retlw	-31
    76  0080  34EB               	retlw	-21
    77  0081  34F4               	retlw	-12
    78  0082  34FA               	retlw	-6
    79  0083  34FE               	retlw	-2
    80  0084  34FF               	retlw	-1
    81  0085  34FE               	retlw	-2
    82  0086  34FA               	retlw	-6
    83  0087  34F4               	retlw	-12
    84  0088  34EB               	retlw	-21
    85  0089  34E1               	retlw	-31
    86  008A  34D4               	retlw	-44
    87  008B  34C5               	retlw	-59
    88  008C  34B4               	retlw	-76
    89  008D  34A2               	retlw	-94
    90  008E  348E               	retlw	-114
    91  008F  3478               	retlw	120
    92  0090  3462               	retlw	98
    93  0091  344A               	retlw	74
    94  0092  3432               	retlw	50
    95  0093  3419               	retlw	25
    96                           
    97                           	psect	text2
    98                           ;SPWM_16K.c: 74: void CCP_Init(void)
    99                           ;SPWM_16K.c: 75: {
   100  065A                     _CCP_Init
   101                           ;SPWM_16K.c: 76: CCPR2L = 0X00;
   102  065A  0183               	clrf	3	;select bank 0
   103  065B  019B               	clrf	27	;volatile
   104                           ;SPWM_16K.c: 77: CCPR1L = 0X00;
   105  065C  0195               	clrf	21	;volatile
   106                           ;SPWM_16K.c: 78: TRISC1 = 0;
   107  065D  1683               	bsf	3,5
   108  065E  1087               	bcf	7,1
   109                           ;SPWM_16K.c: 79: TRISC2 = 0;
   110  065F  1107               	bcf	7,2
   111                           ;SPWM_16K.c: 80: TRISC = 0X00;
   112  0660  0187               	clrf	7	;volatile
   113                           ;SPWM_16K.c: 81: PR2 = 0XFF;
   114  0661  30FF               	movlw	-1
   115  0662  0092               	movwf	18	;volatile
   116                           ;SPWM_16K.c: 82: CCP1M3 = 1;
   117  0663  1283               	bcf	3,5
   118  0664  1597               	bsf	23,3
   119                           ;SPWM_16K.c: 83: CCP1M2 = 1;
   120  0665  1517               	bsf	23,2
   121                           ;SPWM_16K.c: 84: CCP2M3 = 1;
   122  0666  159D               	bsf	29,3
   123                           ;SPWM_16K.c: 85: CCP2M2 = 1;
   124  0667  151D               	bsf	29,2
   125                           ;SPWM_16K.c: 86: sin_up = 1;
   126  0668  14A0               	bsf	_sin_up/(0+8),_sin_up& (0+7)
   127                           ;SPWM_16K.c: 87: index = 0;
   128  0669  01A1               	clrf	_index
   129                           ;SPWM_16K.c: 88: sin_am = 1;
   130  066A  1683               	bsf	3,5
   131  066B  01A1               	clrf	_sin_am^(0+128)
   132  066C  3080               	movlw	128
   133  066D  00A2               	movwf	(_sin_am+1)^(0+128)
   134  066E  303F               	movlw	63
   135  066F  00A3               	movwf	(_sin_am+2)^(0+128)
   136                           ;SPWM_16K.c: 89: }
   137  0670  1283               	bcf	3,5
   138  0671  0008               	return
   139                           ;SPWM_16K.c: 44: void port_init(void)
   140                           ;SPWM_16K.c: 45: {
   141  0672                     _port_init
   142                           ;SPWM_16K.c: 56: TRISC = 0x00;
   143  0672  1683               	bsf	3,5
   144  0673  1303               	bcf	3,6	;carry unused
   145  0674  0187               	clrf	7	;volatile
   146                           ;SPWM_16K.c: 57: PORTC = 0;
   147  0675  1283               	bcf	3,5
   148  0676  0187               	clrf	7	;volatile
   149                           ;SPWM_16K.c: 66: }
   150  0677  0008               	return
   151                           ;SPWM_16K.c: 163: main(void)
   152                           ;SPWM_16K.c: 164: {
   153  0678                     _main
   154                           ;SPWM_16K.c: 165: OPTION = 0x0F;
   155  0678  300F               	movlw	15
   156  0679  1683               	bsf	3,5
   157  067A  1303               	bcf	3,6	;carry unused
   158  067B  0081               	movwf	1
   159                           ;SPWM_16K.c: 167: asm("clrwdt");
   160  067C  0064               	clrwdt	;#
   161                           ;SPWM_16K.c: 168: port_init();
   162  067D  2672               	fcall	_port_init
   163                           ;SPWM_16K.c: 170: PEIE = 1;
   164  067E  170B               	bsf	11,6
   165                           ;SPWM_16K.c: 171: GIE = 1;
   166  067F  178B               	bsf	11,7
   167                           ;SPWM_16K.c: 173: TMR1CS = 0;
   168  0680  1090               	bcf	16,1
   169                           ;SPWM_16K.c: 174: T1SYNC = 0;
   170  0681  1110               	bcf	16,2
   171                           ;SPWM_16K.c: 175: TMR1H = 0xFD;
   172  0682  30FD               	movlw	-3
   173  0683  008F               	movwf	15	;volatile
   174                           ;SPWM_16K.c: 176: TMR1L = 0x10;
   175  0684  3010               	movlw	16
   176  0685  008E               	movwf	14	;volatile
   177                           ;SPWM_16K.c: 177: TMR1IE = 1;
   178  0686  1683               	bsf	3,5
   179  0687  140C               	bsf	12,0
   180                           ;SPWM_16K.c: 178: TMR1ON = 1;
   181  0688  1283               	bcf	3,5
   182  0689  1410               	bsf	16,0
   183                           ;SPWM_16K.c: 180: TOUTPS3 = 0;
   184  068A  1312               	bcf	18,6
   185                           ;SPWM_16K.c: 181: TOUTPS2 = 1;
   186  068B  1692               	bsf	18,5
   187                           ;SPWM_16K.c: 182: TOUTPS1 = 0;
   188  068C  1212               	bcf	18,4
   189                           ;SPWM_16K.c: 183: TOUTPS0 = 0;
   190  068D  1192               	bcf	18,3
   191                           ;SPWM_16K.c: 184: TMR2IE = 1;
   192  068E  1683               	bsf	3,5
   193  068F  148C               	bsf	12,1
   194                           ;SPWM_16K.c: 185: TMR2ON = 1;
   195  0690  1283               	bcf	3,5
   196  0691  1512               	bsf	18,2
   197                           ;SPWM_16K.c: 187: CCP_Init();
   198  0692  265A               	fcall	_CCP_Init
   199  0693                     l18
   200                           ;SPWM_16K.c: 190: while(1)
   201                           ;SPWM_16K.c: 191: {
   202  0693  0064               	clrwdt	;#
   203                           ;SPWM_16K.c: 193: if( b_timer_ok )
   204  0694  1C20               	btfss	_b_timer_ok/(0+8),_b_timer_ok& (0+7)
   205  0695  2E93               	goto	l18
   206                           ;SPWM_16K.c: 194: {
   207  0696  1020               	bcf	_b_timer_ok/(0+8),_b_timer_ok& (0+7)
   208                           ;SPWM_16K.c: 197: }
   209  0697  2E93               	goto	l18
   210                           
   211                           	psect	text3
   212                           ;SPWM_16K.c: 97: void ISR_CCP(void)
   213                           ;SPWM_16K.c: 98: {
   214  0698                     _ISR_CCP
   215                           ;SPWM_16K.c: 99: if(index == 31)
   216  0698  0183               	clrf	3	;select bank 0
   217  0699  0821               	movf	_index,w
   218  069A  3A1F               	xorlw	31
   219  069B  1D03               	btfss	3,2
   220  069C  2EA0               	goto	l8
   221                           ;SPWM_16K.c: 100: {
   222  069D  01A1               	clrf	_index
   223                           ;SPWM_16K.c: 102: sin_up = !sin_up;
   224  069E  3002               	movlw	(0+1) shl (_sin_up& (0+7))

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -