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

📄 cc6.cod

📁 keil c51 UV3 最新版编译器的例子程序4。
💻 COD
📖 第 1 页 / 共 3 页
字号:
  194:   ///  - is used as general purpose output
  195:   ///  - open drain output is selected
  196:   ///  - the pin status is low level
  197:   ///  - pull-up device is assigned
  198:   ///  P3.2:
  199:   ///  - is used as general purpose output
  200:   ///  - open drain output is selected
  201:   ///  - the pin status is low level
  202:   ///  - pull-up device is assigned
  203:   ///  P3.3:
  204:   ///  - is used as general purpose output
  205:   ///  - open drain output is selected
  206:   ///  - the pin status is low level
  207:   ///  - pull-up device is assigned
  208:   ///  P3.4:
  209:   ///  - is used as general purpose output
  210:   ///  - open drain output is selected
  211:   ///  - the pin status is low level
  212:   ///  - pull-up device is assigned
  213:   ///  P3.5:
  214:   ///  - is used as general purpose output
  215:   ///  - open drain output is selected
  216:   ///  - the pin status is low level
  217:   ///  - pull-up device is assigned
  218:   ///  P3.6:
  219:   ///  - is used as general purpose output
  220:   ///  - open drain output is selected
  221:   ///  - the pin status is low level
  222:   ///  - pull-up device is assigned
  223:   ///  P3.7:
  224:   ///  - is used as alternate output for the Output of Capture/Compare 
  225:   ///    channel 3
  226:   ///  - push/pull output is selected
  227:   ///  - pull-up device is assigned
  228: 
  229: //  SFR_PAGE(_pp3, SST2);          // switch to page 3
  230: //  P3_OD         =  0x7F;         // load open-drain register
  231: 
  232:   SFR_PAGE(_pp1, SST2);          // switch to page 1
0000D4 75B2A1            MOV     PORT_PAGE,#0A1H
  233:   P3_PUDSEL     =  0xFF;         // load pullup/pulldown select register
0000D7 75B0FF            MOV     P3_PUDSEL,#0FFH
  234:   P3_PUDEN      =  0xFF;         // load pullup/pulldown enable register
0000DA 75B1FF            MOV     P3_PUDEN,#0FFH
  235: 
  236: //  SFR_PAGE(_pp2, SST2);          // switch to page 2
  237: //  P3_ALTSEL0    =  0x80;         // load alternate output function select 
  238:                                  // register 0
  239: //  P3_ALTSEL1    =  0x00;         // load alternate output function select 
  240:                                  // register 1
  241:   // USER CODE BEGIN (IO_Init,2)
  242: //  P3_ALTSEL0    =  0x10;         // P37 to ALT1-COUT63 
  243: 
  244:   // USER CODE END
  245: 
  246: 
  247: 
  248:   SFR_PAGE(_pp0, SST2);          // switch to page 0
0000DD 75B2A0            MOV     PORT_PAGE,#0A0H
  249:   P3_DATA       =  0x00;         // load data output register
0000E0 F5B0              MOV     P3_DATA,A
LX51 LINKER/LOCATER V4.00 BETA                                                        08/31/2005  15:19:27  PAGE 7


  250:   P3_DIR        =  0xFF;         // load direction register
0000E2 75B1FF            MOV     P3_DIR,#0FFH
  251: 
  252: 
  253:   // USER CODE BEGIN (IO_Init,3)
  254: 
  255:   // USER CODE END
  256: 
  257: } //  End of function IO_vInit
0000E5 22                RET     
----- FUNCTION IO_vInit (END) -------


----- FUNCTION T01_viTmr0 (BEGIN) -----
 FILE: 'T01.C'
  202: void T01_viTmr0(void) interrupt T0INT
0000E6 C0E0              PUSH    ACC
0000E8 C0D0              PUSH    PSW
0000EA 75D000            MOV     PSW,#00H
0000ED C006              PUSH    AR6
  203: {
  204: 
  205:   // USER CODE BEGIN (T01_IsrTmr0,2)
  206:   if (T0count++ > 0x100) P3_DATA ^= 0x02; // toggle every 256 T0
0000EF 050E              INC     T0count+01H
0000F1 E50E              MOV     A,T0count+01H
0000F3 AE0D              MOV     R6,T0count
0000F5 7002              JNZ     ?C0007?T01
0000F7 050D              INC     T0count
0000F9         ?C0007?T01:
0000F9 14                DEC     A
0000FA D3                SETB    C
0000FB 9400              SUBB    A,#00H
0000FD EE                MOV     A,R6
0000FE 9401              SUBB    A,#01H
000100 4003              JC      ?C0002?T01
000102 63B002            XRL     P3_DATA,#02H
000105         ?C0002?T01:
  207:   if (T0count > 0x200)  T0count = 0;
000105 D3                SETB    C
000106 E50E              MOV     A,T0count+01H
000108 9400              SUBB    A,#00H
00010A E50D              MOV     A,T0count
00010C 9402              SUBB    A,#02H
00010E 4006              JC      ?C0004?T01
000110 750D00            MOV     T0count,#00H
000113 750E00            MOV     T0count+01H,#00H
  208: 
  209:   // USER CODE END
  210: 
  211: } //  End of function T01_viTmr0
000116         ?C0004?T01:
000116 D006              POP     AR6
000118 D0D0              POP     PSW
00011A D0E0              POP     ACC
00011C 32                RETI    
----- FUNCTION T01_viTmr0 (END) -------


----- FUNCTION T01_viTmr1 (BEGIN) -----
 FILE: 'T01.C'
  243: void T01_viTmr1(void) interrupt T1INT
00011D C0E0              PUSH    ACC
00011F C0D0              PUSH    PSW
000121 75D000            MOV     PSW,#00H
LX51 LINKER/LOCATER V4.00 BETA                                                        08/31/2005  15:19:27  PAGE 8


000124 C007              PUSH    AR7
  244: {
  245: 
  246:   // USER CODE BEGIN (T01_IsrTmr1,2)
  247:   if (T1count++ > 0x80)  P3_DATA ^= 0x02; // toggle for 128 T1count
000126 AF0F              MOV     R7,T1count
000128 050F              INC     T1count
00012A EF                MOV     A,R7
00012B D3                SETB    C
00012C 9480              SUBB    A,#080H
00012E 4003              JC      ?C0006?T01
000130 63B002            XRL     P3_DATA,#02H
  248: 
  249:   // USER CODE END
  250: 
  251: } //  End of function T01_viTmr1
000133         ?C0006?T01:
000133 D007              POP     AR7
000135 D0D0              POP     PSW
000137 D0E0              POP     ACC
000139 32                RETI    
----- FUNCTION T01_viTmr1 (END) -------


----- FUNCTION T2_viTmr (BEGIN) -----
 FILE: 'T2.C'
  192: void T2_viTmr(void) interrupt T2INT
00013A C0E0              PUSH    ACC
00013C C0D0              PUSH    PSW
00013E 75D000            MOV     PSW,#00H
000141 C007              PUSH    AR7
  193: {
  194:   // USER CODE BEGIN (T2_IsrTmr,2)
  195:   ubyte T2count;
  196:   // USER CODE END
  197: 
  198:   if (TF2)
000143 30C719            JNB     TF2,?C0005?T2
  199:   {
  200:     //   a timer 2 overflow has occured
  201:     // USER CODE BEGIN (T2_IsrTmr,3)
  202:   if (T2count++ > 0x02) P3_DATA ^= 0x04; // toggle every 2nd T2OF
000146 AF10              MOV     R7,T2count
000148 0510              INC     T2count
00014A EF                MOV     A,R7
00014B D3                SETB    C
00014C 9402              SUBB    A,#02H
00014E 4003              JC      ?C0003?T2
000150 63B004            XRL     P3_DATA,#04H
000153         ?C0003?T2:
  203:   if (T2count > 0x04)  T2count = 0;
000153 E510              MOV     A,T2count
000155 D3                SETB    C
000156 9404              SUBB    A,#04H
000158 4003              JC      ?C0004?T2
00015A 751000            MOV     T2count,#00H
00015D         ?C0004?T2:
  204: 
  205: //    SFR_PAGE(_cc2, SST2);          // switch to page 2
  206: //	CCU6_PAGE = 0x02;
  207: //	CCU6_ISSH |= 0x02; // set T13PM
  208: //    SFR_PAGE(_cc2, RST2);        // restore the old CCU page
  209: 
  210:     // USER CODE END
  211: 
LX51 LINKER/LOCATER V4.00 BETA                                                        08/31/2005  15:19:27  PAGE 9


  212:     TF2 = 0;
00015D C2C7              CLR     TF2
  213:   }
  214: 
  215:   // USER CODE BEGIN (T2_IsrTmr,5)
  216: 
  217:   // USER CODE END
  218: 
  219: } //  End of function T2_viTmr
00015F         ?C0005?T2:
00015F D007              POP     AR7
000161 D0D0              POP     PSW
000163 D0E0              POP     ACC
000165 32                RETI    
----- FUNCTION T2_viTmr (END) -------


----- FUNCTION CC6_vInit (BEGIN) -----
 FILE: 'CC6.C'
  122: void CC6_vInit(void)
  123: {
  124: // USER CODE BEGIN (CCU6_General,9)
  125: 
  126: // USER CODE END
  127: 
  128: 
  129:   SFR_PAGE(_cc1, SST2);          // switch to page 1
000166 75A3A1            MOV     CCU6_PAGE,#0A1H
  130: 
  131: //T12 period
  132:   CCU6_T12PRL    =  0x00;        // load CCU6 T12 period register low
000169 E4                CLR     A
00016A F59C              MOV     CCU6_T12PRL,A
  133:   CCU6_T12PRH    =  0xF0;        // load CCU6 T12 period register lhigh
00016C 759DF0            MOV     CCU6_T12PRH,#0F0H
  134: //T13 period
  135:   CCU6_T13PRL    =  0xFF;        // load CCU6 T13 period register low
00016F 759EFF            MOV     CCU6_T13PRL,#0FFH
  136:   CCU6_T13PRH    =  0xFF;        // load CCU6 T13 period register high
000172 759FFF            MOV     CCU6_T13PRH,#0FFH
  137: // T12 prescaler and center aligned
  138:   CCU6_TCTR0L    =  0x84;        // load CCU6 timer control register 0 low
000175 75A684            MOV     CCU6_TCTR0L,#084H
  139: // T13 prescaler 
  140:   CCU6_TCTR0H    =  0x03;        // load CCU6 timer control register 0 high
000178 75A703            MOV     CCU6_TCTR0H,#03H
  141: 	////  SFR_PAGE(_cc1, SST2);          // switch to page 1
  142: // T12 dead time DTM
  143:   CCU6_T12DTCL   =  0x10;        // load CCU6 dead time control register low 
00017B 75A410            MOV     CCU6_T12DTCL,#010H
  144: // T12 dead time channel select
  145:   CCU6_T12DTCH   =  0x04;        // load CCU6 dead time control register high 
00017E 75A504            MOV     CCU6_T12DTCH,#04H
  146: 
  147:   SFR_PAGE(_cc2, SST2);          // switch to page 2
000181 75A3A2            MOV     CCU6_PAGE,#0A2H
  148: // T12/T12 modes and external trigger
  149:   CCU6_TCTR2L    =  0x00;        // load CCU6 timer control register 2 low
000184 F5FA              MOV     CCU6_TCTR2L,A
  150:   CCU6_TCTR2H    =  0x00;        // load CCU6 timer control register 2 high
000186 F5FB              MOV     CCU6_TCTR2H,A
  151: // T12 Modulation Enable & MCMEN
  152:   CCU6_MODCTRL   =  0x30;        // load CCU6 modulation control register low
000188 75FC30            MOV     CCU6_MODCTRL,#030H
  153: // T13 Modulation Enable
LX51 LINKER/LOCATER V4.00 BETA                                                        08/31/2005  15:19:27  PAGE 10


  154:   CCU6_MODCTRH   =  0x80;        // load CCU6 modulation control register high
00018B 75FD80            MOV     CCU6_MODCTRH,#080H
  155: 		///  SFR_PAGE(_cc2, SST2);          // switch to page 2
  156: // MultiChannel Synch & Sel
  157:   CCU6_MCMCTR    =  0x00;        // load CCU6 multi channel mode control 
00018E F5A7              MOV     CCU6_MCMCTR,A
  158:                                  // register 
  159: 	///  SFR_PAGE(_cc2, SST2);          // switch to page 2
  160: // T12 capcom mode ch0 / ch1
  161:   CCU6_T12MSELL  =  0x00;        // load CCU6 T12 campture/compare mode 
000190 F59A              MOV     CCU6_T12MSELL,A
  162: // T12 capcom mode ch2 / hallsynch
  163:   CCU6_T12MSELH  =  0x03;        // load CCU6 T12 campture/compare mode 
000192 759B03            MOV     CCU6_T12MSELH,#03H
  164: 	///SFR_PAGE(_cc2, SST2);          // switch to page 2
  165: // Passive state level
  166:   CCU6_PSLR      =  0x00;        // load CCU6 passive state level register low
000195 F5A6              MOV     CCU6_PSLR,A
  167: 
  168: 
  169:   SFR_PAGE(_cc0, SST2);          // switch to page 0
000197 75A3A0            MOV     CCU6_PAGE,#0A0H
  170: // T12 shadow
  171:   CCU6_CC62SRL   =  0x00;        // load CCU6 capture/compare shadow register 
00019A F5FE              MOV     CCU6_CC62SRL,A
  172:   CCU6_CC62SRH   =  0x78;        // load CCU6 capture/compare shadow register 
00019C 75FF78            MOV     CCU6_CC62SRH,#078H
  173: // T13 shadow
  174:   CCU6_CC63SRL   =  0x00;        // load CCU6 capture/compare shadow register 
00019F F59A              MOV     CCU6_CC63SRL,A
  175:   CCU6_CC63SRH   =  0x19;        // load CCU6 capture/compare shadow register 
0001A1 759B19            MOV     CCU6_CC63SRH,#019H
  176: ///  SFR_PAGE(_cc0, SST2);          // switch to page 0
  177: // MultiChannel PWM Pattern
  178:   CCU6_MCMOUTSL  =  0x00;        // load CCU6 multi channel mode output 
0001A4 F59E              MOV     CCU6_MCMOUTSL,A
  179: // MultiChannel Hall Pattern
  180:   CCU6_MCMOUTSH  =  0x00;        // load CCU6 multi channel mode output 
0001A6 F59F              MOV     CCU6_MCMOUTSH,A
  181:                                  // control register high
  182: 
  183:   SFR_PAGE(_cc2, SST2);          // switch to page 2
0001A8 75A3A2            MOV     CCU6_PAGE,#0A2H
  184: // Trap Control Leave 
  185:   CCU6_TRPCTRL   =  0x00;        // load CCU6 trap control register low
0001AB F5FE              MOV     CCU6_TRPCTRL,A
  186: // Trap Control Enable
  187:   CCU6_TRPCTRH   =  0x00;        // load CCU6 trap control register high
0001AD F5FF              MOV     CCU6_TRPCTRH,A
  188: 
  189: // Interrupt node pointer
  190:   CCU6_INPL      =  0x00;        // load CCU6 capture/compare interrupt node 
0001AF F59E              MOV     CCU6_INPL,A
  191:   CCU6_INPH      =  0x00;        // load CCU6 capture/compare interrupt node 
0001B1 F59F              MOV     CCU6_INPH,A
  192: 
  193: // T12 interrupts enable
  194:   CCU6_IENL      =  0x80;        // load CCU6 capture/compare interrupt 
0001B3 759C80            MOV     CCU6_IENL,#080H
  195: // T13 & others interrupts enable
  196:   CCU6_IENH      =  0x02;        // load CCU6 capture/compare interrupt 
0001B6 759D02            MOV     CCU6_IENH,#02H
  197:                                  // enable register high
  198: 
  199:   SFR_PAGE(_cc3, SST2);          // switch to page 3
LX51 LINKER/LOCATER V4.00 BETA                                                        08/31/2005  15:19:27  PAGE 11


0001B9 75A3A3            MOV     CCU6_PAGE,#0A3H
  200: // Compare Passive State Select  
  201:   CCU6_CMPSTATH  =  0x20;        // load CCU6 compare status register high
0001BC 75FF20            MOV     CCU6_CMPSTATH,#020H
  202: 
  203: // input capture and trap input
  204:   CCU6_PISEL0L   =  0x00;        // load CCU6 Port Input Select Register 0 Low
0001BF F59E              MOV     CCU6_PISEL0L,A
  205: // input CCPOS and T12HR
  206:   CCU6_PISEL0H   =  0x00;        // load CCU6 Port Input Select Register 0 
0001C1 F59F              MOV     CCU6_PISEL0H,A
  207: // input T13HR

⌨️ 快捷键说明

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