-
sd
-
STC15F2K60S2 116/
2
3Programmable Counter ArrayPCAPulse Width Modulation PWM
sd
-
7.1// /117-1 /x=01
sd
-
1101
sd
-
C/T1TMODTCONAUXRT0x12T1x1212
sd
-
11TCONTF0TF11/
sd
-
CPUTMODTCONAUXRT0T1
1618THX8TLX8X=01TMOD4
sd
-
STC15F2K60S2/T0T116T2T2T216T27-3 T2
sd
-
/
TMODTCONAUXR/TMOD/01TCONT0T1AUXRT2
sd
-
1TMOD
TMOD89H00H
D7D6D5D4D3D2D1D010GATEC/M1M0GATEC/M1M0
sd
-
1M1M0
7-1 /
sd
-
2C/ 1T0T1 0
sd
-
3GATEGATE 1INTXTRX 0TRX
TMOD
sd
-
2TCON
TCON88H00H
sd
-
1TF1T1 T1TF11CPUCPU0TF10 2TF0/0 TF1
sd
-
3TR1T10 GATETMOD.7=0TR1=1T1TR1=0T1 GATETMOD.7=1TR1=1INTXT1 4TR0T0 TR1
sd
-
//TMODTHXTLXTCONTRX1THXTLXTCONT0T1
sd
-
3AUXRAUXR02UARTSTC15F2K60S21T 80518051018051121T AUXR121T
sd
-
AUXR8EH01H1T0x120 00805112 10805112
sd
-
2T1x12D61 012 1 UARTT1T1x12UART12T 1T3T2RD42 02 12
sd
-
4T2_C/ D32 0 1P3.1/T25T2x12D22 0 12T212 1T21
sd
-
UART_M0x6UARTS1S21 EXTRAM1024RAM
D7D6D5D4D3D2D1D0T0x12T1x12UART_M0x6T2RT2_C/T2x12EXTRAMS1S2
sd
-
4T2H/RL_TH22 0D6H00H5T2L/RL_TL22 0D7H00H
D7D6D5D4D3D2D1D0
sd
-
/ TMODM1M0/4 0: 16 1: 16/ 2: 8 3:
sd
-
1/01016
7-4 010
sd
-
STC15F2K60S212T1211T1T0T1AUXRT0x12T1x12 T0x12=0T012T T0x12=1T01T T1x12=0T112T T1x12=1T11T
sd
-
16012RL_THxRL_TLxRL_THxTHxRL_TLxTLxTRx=0/TLxTHxRL_TLxRL_THxTRx=1/TLx THxRL_TLx RL_THx
sd
-
0[TLxTHx]TFx[RL_TLx,RL_THx][TLx,THx]T0CLKO=1T1/P3.50CLKOUT0T1CLKO=1T0/P3.41CLKOUT1
sd
-
2/01116/
7-5 011
sd
-
16TLx8THx8TLx8THxTHxTCONTFx 0THx
sd
-
3/0128
7-6 /2
sd
-
28/TL0/TL1TF0/TF1TH0/TH1TL0/TL1TL0/TL1TH0/TH1TH0/TH1T0CLKO=1T1/P3.50CLKOUT0T1CLKO=1T0/P3.41CLKOUT1
sd
-
01602010
sd
-
/ /
sd
-
1/12126MHz12 Tu= = s=2s TC=XTuTuTCX
sd
-
STC15F2K60S2/1THXTLX28216THXTLX/
n=816
sd
-
Tu2sTC1ms 01216500=65036=FE0CH THXFEHTLX0CH6MHz128T28 02s512s16T216 02s131072s131.072ms
sd
-
2 1
sd
-
1s10ms10ms1001s
sd
-
2
sd
-
/ /
sd
-
/TMODT0T1AUXRT2TMODAUXR1280518051/TLXTHXT0T1T2LT2HT2ETXEA/TRXT0T1T2RT2/
sd
-
7-1 6MHzT01sP2.0 1s6MHz1216131.072ms1s50ms20P2.01s
sd
-
T01601H6MHz122sT0
sd
-
$INCLUDE (STC12.INC) ;STC12C5A60S2 ORG0000H LJMP MAIN ; ORG 000BH;T0 LJMPT0_ISR ORG 0100HMAIN: MOV SP,#7FH ; MOV TMOD,#01H ;T0 MOV TL0,#58H MOV TH0,#9EH MOV A,#20 ;A20 SETB ET0 ;T0 SETB EA;CPU SETB TR0 ;T0 SJMP $ ;
sd
-
T0_ISR:MOV TL0,#58H MOV TH0,#9EH; DEC A ; A1 JNZEXIT CPL P2.0 MOV A,#20 ;A20EXIT:RETI END
$SJMP $HERE: LJMP HERE
sd
-
#include stc12.h//STC12C5A60S2sbit P20=P2^0;//P2.0unsigned char i; //CACCvoid main (void){ //SP=0x60; //C TMOD=0x01; TL0=0x58; TH0=0x9E; i=20;//ET0=1;//T0 EA = 1;//TR0=1;//T0 while(1); //}
sd
-
void T0_ISR (void) interrupt 1 //T0{TL0=0x58;// TH0=0x9E; i--;//1if(i==0) {//0P2.0P20 = !P20; //P2.0i = 20;// }}
sd
-
0TMOD0 MOV TL0,#58H MOV TH0,#9EH;C TL0=0x58; TH0=0x9E; //1T 11.0592MHz
sd
-
7-218.432MHz2P0.038.4KHZ $INCLUDE (STC15.INC) ; ;38.4KHz (65536-18432000/12/38400/2) T38_4KHz EQU 0FFECH TEST_PIN BIT P0.0 ; ORG0000H LJMPMAIN ORG0063H ;2 LJMPT2_ISR
sd
-
MAIN: MOV SP,#70H; ORLAUXR,#04H;T21T MOV T2H,#HIGH T38_4KHz;2 MOV T2L,#LOW T38_4KHz;2 ORLAUXR,#10 H;2 ORLIE2,#04H;2 SETBEA;CPU SJMP$;2T2_ISR: CPLTEST_PIN RETI END
sd
-
C#include stc15.h//STC15F2K60S2typedef unsigned char BYTE;typedef unsigned int WORD;#define FOSC 18432000L#define T38_4KHz (65536-18432000/12/38400/2) //38.4KHz sbit TEST_PIN = P0^0; //void main(void){ AUXR|= 0x04;//T21T T2H = T38_4KHz>>8; //T2 T2L = T38_4KHz; //T2 AUXR |= 0x10; //2 IE2 |= 0x04; //2 EA = 1; //CPU while (1); //}//2void t2_isr(void) interrupt 12{ TEST_PIN = ~TEST_PIN;}
sd
-
7-3 GATE=1TRX=1TXT07-7
sd
-
T0CMOVTMOD,#09H ; T016GATE1MOVTL0,#00HMOVTH0,#00HCLREX0 ;JNBP3.2,$ ;SETBTR0JBP3.2,$ ;CLRTR0 ;T0MOVA,TL0 ;T08B8AMOVB,TH0 ;
sd
-
12/TH0TL0TL0TH0/TL0TH0TH0TH0TH0TL0
sd
-
7.2 STC12C5A60S24 MCLKO/P5.4 CLKOUT0/P3.5CLKOUT1/P3.4 T2CLKO/P3.0 R/C12MHzMCLKO/P5.4
sd
-
1 R/CMCLKO/P5.4CLK_DIVMCKO_S1MCKO_S0 MCKO_S1MCKO_S0MCLKO/P5.4
sd
-
CLK_DIVPCON297H0000 x000B
D7D6D5D4D3D2D1D0MCKO_S1MCKO_S0 ADRJ TX_RX -CLKS2 CLKS1 CLKS0
sd
-
MCKO_S1MCKO_S07-2 MCLKIO13.5MHz
MCKO_S1MCKO_S0R/C00 01= MCLK/110= MCLK/211= MCLK/4
sd
-
2T2CLKO/P3.0T1CLKOU/P3.4T0CLKOU/P3.5T2CLKO/P3.0T1CLKOU/P3.4T0CLKOU/P3.5INT_CLKO (AUXR2)T2CLKOT1CLKOT0CLKOCLKOUT00CLKOUT11T2CLKO201628CPU
sd
-
INT_CLKO8FHX0000000B
D7D6D5D4D3D2D1D0-EX4EX3EX2-T2CLKOT1CLKOT0CLKO
sd
-
1T2CLKOP3.02T2T2CLKO T2CLKO=1 P3.0T2 =T2/2 T2_C/T=0/T2T21T=(SYSclk) / (65536-[RL_TH2, RL_TL2])/2T212T= (SYSclk) /12/ (65536-[RL_TH2, RL_TL2])/2 T2_C/T=1/T2(P3.1/T2)= (T2_Pin_CLK) / (65536-[RL_TH2, RL_TL2])/2T2CLKO=0 P3.0T2
sd
-
2T1CLKOP3.41T1T1CLKOT2T1CLKO=1P3.4/T01T1CLKO = T1/2 /T1016C/T=0/T1T11T=(SYSclk) / (65536-[RL_TH1, RL_TL1])/2T112T= (SYSclk) /12/ (65536-[RL_TH1, RL_TL1])/2C/T =1/T1(P3.5/T1) = (T1_Pin_CLK) / (65536-[RL_TH1, RL_TL1])/2 /T128 C/T=0/T1 T11T = (SYSclk) / (256-TH1)/2 T112T= (SYSclk)/12/(256-TH1)/2C/T=1/T1(P3.5/T1) = (T1_Pin_CLK) / (256-TH1) / 2T1CLKO=0P3.4/T01
sd
-
3T0CLKOP3.50T0T0CLKO T0CLKO=1P3.5/T10T0CLKO=T0/2 /T0016C/T =0/T0T01T= (SYSclk)/(65536-[RL_TH0, RL_TL0])/2T012T= (SYSclk) /12/ (65536-[RL_TH0, RL_TL0])/2 C/T=1/T0(P3.4/T0) = (T0_Pin_CLK) / (65536-[RL_TH0, RL_TL0])/2 /T028C/T=0 T01T= (SYSclk) / (256-TH0) / 2 T012T= (SYSclk) / 12 / (256-TH0) / 2C/T=1/T0P3.4/T0 = (T0_Pin_CLK) / (256-TH0) / 2T0CLKO=0P3.5/T10
sd
-
1P5.4SYSclk
MOV CLK_DIV,#40H ; CLK_DIV = 0x40; //C
sd
-
2T0CLKO/P3.5002TMOD402168TL0TH00TR01INT_CLKOT0CLKO10P3.5
sd
-
3T1CLKO/P3.4102TMOD402168TL1TH11TR11INT_CLKOT1CLKO11P3.4
sd
-
4T2CLKO/P3.016T2HT2LAUXRT2R1T2_C/2INT_CLKOT2CLKO12P3.0
sd
-
STC15F2K60S2
7-4 SYSclk=18.432MHzT0P3.4125KHzT1P3.538.4KHz
sd
-
STC15F2K60S2CT0T11T
sd
-
#include "stc15.h" //STC15F2K60S2void main(void){ TMOD = 0x22; //T0T128 AUXR = AUXR | 0x80; //T01T AUXR = AUXR | 0x40; //T11T //T08=18432000/2/74125KHz TH0 = (256-74); TL0 = (256-74); //T1818432000/2/240 = 38400Hz TH1 = (256-240); TL1 = (256-240); TR0 = 1; //T0 TR1 = 1; //T1 INT_CLKO =INT_CLKO|0x03; // // while(1);}
sd
-
7-518.432MHz2P3.038.4KHZ $INCLUDE (STC15.INC) ;STC15F2K60S2 ; T38_4KHz EQU 0FFECH ;38.4KHz (65536-18432000/12/38400/2) ;12T T2CLKO BIT P3.0; ORG0000H LJMPMAINMAIN:MOVSP,#70H MOVT2H,#HIGH T38_4KHz;T2 MOVT2L,#LOW T38_4KHz;T2 MOVAUXR,#10H;T2 ORLINT_CLKO,#04H;T2 SJMP$ END
sd
-
C#include "stc15.h" //STC15F2K60S2//#define FOSC 18432000L#define T38_4KHz (65536-18432000/12/38400/2) //38.4KHz sbit T2CLKO = P3^0; //void main(void){ T2H= T38_4KHz>>8; //T2 T2L = T38_4KHz;//T2 AUXR = 0x10;//T2 INT_CLKO |= 0x04;//T2 while (1); //}
sd
-
7.3 STC15F2K60S2PCAPWM
sd
-
PCA PCA16316/
7-8 PCA
sd
-
0P1.1/CCP01P1.0/CCP12P3.7/CCP2CCPAUXR1CCP_S0P_SW2CCP_S13-94/
sd
-
16PCA/37-9 PCA/
sd
&
16
SYSclk/12
&
SYSclk
0
ECI(P1.2)
IDLE
CIDL
CF
CH
CL
PCA
PCA
CR
CCF1
CCF0
CPS1
CPS0
ECF
CPS2
CMOD
CCON
SYSclk/2
SYSclk/4
SYSclk/8
SYSclk/6
CCF2
-
PCA/CHCL16PCAPCA1/121/81/61/41/20ECIP1.2CMODCPS2CPS1CPS0
sd
-
PCA/CMODCIDLPCACMODECFPCAPCAPCACFCCONCRPCACR=1PCACR=0PCA
sd
-
PCA/CCONPCACFCCF1/CCF0PCACFCMODECFCFCCONCCF0PCA0CCF11CCF0CCF1
sd
-
PCAPCAPCACMODPCACCONPCA/CCAPMnPCAPWMPCA_PWMnPCA16--8CL8CHPCA/
sd
-
1PCACMODCMODD9H0XXX0000B
D7D6D5D4D3D2D1D0CIDL---CPS2CPS1CPS0ECF
sd
-
1CIDLPCACIDL=0PCACIDL=1PCA
2CPS2CPS1CPS0PCA
D7D6D5D4D3D2D1D0CIDL---CPS2CPS1CPS0ECF
sd
-
2CPS2CPS1CPS0PCAPCA7-3 PCA
sd
-
CPS2/CPS1/CPS0=(100)2PCA/PWMSYSclkSYSclk/3PCA T01T3T01256
sd
-
3ECFPCA ECF=1CCONCFECF=0CCONCF
D7D6D5D4D3D2D1D0CIDL---CPS2CPS1CPS0ECF
sd
-
2PCACCONCCOND8H00XXXX00B1CFPCA PCACFCMODECFCFCF0
sd
-
2CRPCA CRPCA CRPCA3CCF2/CCF1/CCF0PCACCF00CCF11 ,CCF22
D7D6D5D4D3D2D1D0CFCR---CCF2CCF1CCF0
sd
-
3PCACCAPMnn=012DAHDBHDCHx000 0000B1ECOMn ECOMn=12CAPPn CAPPn=1
sd
-
3CAPNn CAPNn=1CAPPn=1CAPNn=14MATn MATn=1PCA/CCONCCFn
D7D6D5D4D3D2D1D0-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn
sd
-
5TOGn TOGn=1PCAPCA/CEXn6PWMn PWMn=1CEXn7ECCFnCCFn CCON/CCFn
D7D6D5D4D3D2D1D0-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFn
sd
-
4PCAPWMPCA_PWMnn=0,1,2F2HF3HF4Hxxxx xx00B1EBSn_1 , EBSn_0PCAnPWM 00: PCAn8PWM 01: PCAn7PWM 10PCAn6PWM 11PCAn8PWM
D7D6D5D4D3D2D1D0EBSn_1EBSn_0----EPCnHEPCnL
sd
-
2EPCnHPWMCCAPnH93EPCnLPWMCCAPnL9
PCA7-4
D7D6D5D4D3D2D1D0------EPCnHEPCnL
sd
-
5PCA16--8CL8CH
E9HF9H00HPCA
sd
-
6PCA/CCAPnLCCAPnH PCA16PCAPWMn=01201200HCCAP0LEAHCCAP0HFAH0/CCAP1LEBHCCAP1HFBH1/CCAP2LECHCCAP2HFCH2/
sd
-
PCA
16
sd
-
1PCA7-107-10 PCA
sd
-
PCA CCAPMnCAPNnCAPPn1PCACCPnPCAPCACHCLCCAPnHCCAPnLCCONCCFnCCAPMnECCFn0
sd
-
216167-117-11 PCA16/PCA
sd
-
CCAPMnECOMnMATnPCAPCACCFnECCFn[CH,CL]1FOSC/1212[CH,CL]1[CH,CL][CCAPnH,CCAPnL]CCFn=1PCA[CCAPnH,CCAPnL]TPCA
sd
-
SYSclk = 18.432MHzSYSclk/12T5msPCA T/((1/SYSclk)12 )= 0.005/ ( (1/18432000)12 ) = 7680 = 1E00H PCA 1E00H5ms[CCAPnH,CCAPnL]
sd
-
37-127-12 PCA
sd
-
PCAPCACEXnCCAPMnTOGnMATnECOMnCCAPnLPCAnPCASYSclk/2f f = SYSclk / (4CCAPnL) SYSclkCCAPnL CCAPnL = SYSclk / (4f)
sd
-
CCAPnL =INT(SYSclk / (4f) + 0.5)INT
SYSclk=20MHzPCA125KHzCCAPnL CCAPnL = INT( 20000000/4/125000 + 0.5) = INT( 40 + 0.5) = 40= 28H
sd
-
4 Pulse Width ModulationPWMD/A
sd
-
STC15F2K60S2PCAPCA_PWMnn=0,1,2.EBSn_1EBSn_08PWM7PWM6PWMPCAPWMPCAPCA
sd
-
I/O PWM7-57-5 I/OPWM
sd
-
18PWM[EBSn_1,EBSn_0]=[0,0][1,1]PCAn8PWM{0,CL[7:0]}[EPCnL,CCAPnL[7:0]]
sd
-
8PWM7-137-13 PCA8PWM
sd
CAPPn
0
ECOMn
PWMn
ECCFn
CAPNn
MATn
TOGn
CCAPMn
1
0
0
9
(0,CL)>=(EPCnL,CCAPnL)
CL
1
0
0
1
(0,CL)
-
PCA8PWM{EPCnL,CCAPnL[7:0]}{0,CL[7:0]}{EPCnL,CCAPnL[7:0]}{0,CL[7:0]}{EPCnL,CCAPnL[7:0]}CLFF00{EPCnH,CCAPnH[7:0]}{EPCnL,CCAPnL[7:0]}PWMPWMCCAPMnPWMnECOMnPWM8
PCA8SYSclk/12SYSclk /8SYSclk /6SYSclk /4SYSclk /2SYSclk0ECI/P1.2
sd
-
PWM38KHzSYSclkPCASYSclk SYSclk =38000256=9728000PWM0ECIPCAEPCnL=0ECCAPnL=00HPWMEPCnL=1CCAPnL=0FFH PWM
sd
-
PWMD/AR1C1R2C2PWMD/A7-14 PWMD/A
sd
-
27PWM[EBSn_1,EBSn_0]=[0,1]PCAn7PWM{0,CL[6:0]}{EPCnL,CCAPnL[6:0]}CLCL.71
sd
-
7PWM7-15 PCA7PWM
sd
&
CAPPn
0
ECOMn
PWMn
ECCFn
CAPNn
MATn
TOGn
CCAPMn
1
0
0
8
(0,CL)>=(EPCnL,CCAPnL)
CL
1
0
0
1
(0,CL)
-
PCA7PWM{EPCnL,CCAPnL[6:0]} 8PWMPWM7
PCA8SYSclk/12SYSclk /8SYSclk /6SYSclk /4SYSclk /2SYSclk0ECI/P1.2
sd
-
PCA PCA0
sd
-
PCA PCACMODCCONCCAPMnCCAPnLCCAPnHPCAECF/ECCF0/ECCF111EA1PCA CHCLCR=1
sd
-
7-6PCAP1.1PCA0P1.0PCA1/P1.1 P1.5 P1.0P1.6P1.5P1.6LED
sd
-
PCACEXnPCAPCACHCLCCAPnHCCAPnLCCONCCFnCCAPMnECCFnPCAPCA0CAPP0=0CAPN0=1PCA1CAPP1=1CAPN1=1
sd
-
$INCLUDE (STC15.INC) ;STC15F2K60S2 LED_PCA0 EQU P1.5 LED_PCA1 EQU P1.6ORG 0000H LJMP MAIN ; ORG 003BH ;PCA LJMP PCA_ISR ORG 0050H MAIN:MOV SP, #70H ; PCA MOV CMOD,#10000000B ;PCA ;PCASYSclk /12PCA MOV CCON, #00H ;0 PCACF ;CR = 0, PCA;0 PCACCFn MOV CL, #00H ;0PCA MOV CH, #00H MOV CCAPM0, #11H ;PCA0, ECCF0=1 MOV CCAPM1, #31H ;1/, ECCF1=1 SETB EA ; SETB CR ;PCA(CH,CL) SJMP $ ;
sd
-
;-------------- PCA-------------------------PCA_ISR:JNB CCF0, Not_PCA0 ;CCF01PCA0 ;PCA1;PCA0 CPL LED_PCA0 ;LED_PCA0,PCA0CLR CCF0 ;PCA0Not_PCA0: JNB CCF1, PCA_Exit ;CCF11PCA1 ;PCA1CPL LED_PCA1 ;LED_PCA1, PCA1CLR CCF1 ;PCA1PCA_Exit:RETI END
sd
-
#include stc15.h //STC15F2K60S2sbit LED_PCA0=P1^5;sbit LED_PCA1=P1^6;void main (void){ CMOD=0x80; //PCA //PCA SYSclk /12PCA CCON=0; //0 PCACF //CR = 0, PCA;PCACCFn0 CL=0; //PCA 0 CH=0; CCAPM0=0x11; //PCA0 CCAPM1=0x31; //PCA1/ EA=1; // CR=1; // PCA (CH,CL) while(1); //}
sd
-
void PCA_ISR(void) interrupt 7 //PCA{ if(CCF0) //PCA0 { LED_PCA0=! LED_PCA0; // LED_PCA0,PCA0 CCF0=0; //PCA0 } else if(CCF1) //PCA1 { LED_PCA1=!LED_PCA1; // LED_PCA1, PCA1 CCF1=0; //PCA1 }}
sd
-
7-7PCA PCAP1.61sSYSclk = 18.432MHzPCA0CCAPM0ECOMMATPCA0PCA
sd
-
SYSclk=18.432MHzPCASYSclk/12T5ms5ms2001sPCA1E00H[CCAP0H,CCAP0L]
$INCLUDE (STC15.inc) ;STC15F2K60S2COUNTER EQU 30H ;LED_1s EQU P1.6 ORG 0000H LJMP MAIN ;ORG 003BH ;PCALJMP PCA_ISRORG 0050HMAIN:MOV SP, #70H MOV COUNTER, #200 ;COUNTER
sd
-
;PCAMOV CMOD, #10000000B ;PCA ;PCAfOSC/12PCAMOV CCON, #00H ;0 PCACF ;CR = 0, PCA ;0PCACCFnMOV CL, #00H ;0 PCA MOV CH, #00HMOV CCAP0L, #00H ;PCA0CCAP0LMOV CCAP0H, #1EH ;PCA0CCAP0H MOV CCAPM0, #49H ;PCA016;ECCF0=1PCA0;[CH,CL]=[CCAP0H,CCAP0L],CCF0=1SETB EA ;SETB CR ;PCA(CH,CL)SJMP $ ;
sd
-
PCA_ISR: ;PCAPUSH ACC ;PUSH PSW;5mSMOV A, #00H ;[CCAP0HCCAP0L]ADD A, CCAP0LMOV CCAP0L, A MOV A, #1EHADDC A, CCAP0HMOV CCAP0H, ACLR CCF0 ; PCA 0 DJNZ COUNTER,PCA_EXIT;0MOVCOUNTER,#200;CPL LED_1s ;LED_1S1PCA_EXIT:POP PSW ;POP ACC RETI END
sd
-
#include stc15.h //sbit LED_1s=P1^6;unsigned char cnt; //void main (void){cnt=200; //COUNTER CMOD=0x80; //#10000000B PCA //PCASYSclk /12PCA CCON=0; //0PCACF //CR = 0, PCA PCA CCFn CL=0; //0PCA CH=0; CCAP0L=0; //PCA0CCAP0L CCAP0H=0x1e; //PCA0CCAP0H CCAPM0=0x49; //PCA016 //ECCF0=1PCA0 //[CHCL]=[CCAP0HCCAP0L]CCF0=1 EA=1; // CR=1; //PCA(CH,CL)while(1); //}
sd
- void PCA_ISR(void) interrupt 7 //PCA{union{ //,16 unsigned int num; struct{ // unsigned char Hi,Lo; }Result; }temp;//5ms temp.num=(unsigned int)(CCAP0H
-
7-8PCAPWMPWMP1.1SYSclk= 18.432MHz PWMPCAPWM = ( pulse_width/256 ) * 100%7-16 PWM
sd
-
$INCLUDE (STC15.INC) ;STC15F2K60S2 ; ;pulse_width_MAX = pulse_width_MIN , pulse_width_MAX EQU 0F0H ;PWM , = 93.75% pulse_width_MIN EQU 10H ;PWM , = 6.25% step EQU 38H ;PWM ; pulse_width EQU 30H ORG 0000H LJMP MAIN ORG 0050HMAIN: MOV SP, #70H MOV CMOD, #80H ;PCA PCA ;PCA FOSC/12 PCA MOV CCON, #00H ;PCA, MOV CL, #00H ;0 MOV CH, #00H
sd
-
;08PWM,P1.3 MOV CCAPM0, #42H MOV PCA_PWM0, #00H; MOV PCA_PWM0, #03H ;, PWM 0, SETB CR ;PCA MAIN_LOOP: LCALL PWMOUT LJMP MAIN_LOOPPWMOUT: ;P1.3 ;P1.3LEDP1.3LED
sd
-
MOV A, #pulse_width_MIN ; MOV pulse_width, A ;pulse_widthLEDPWM_LOOP1: MOV A, pulse_width ; CLR C SUBB A, #pulse_width_MAX JNC PWM_A ; MOV A, pulse_width;LED MOV CCAP0H, A ; MOV CCAP1H, A ; MOV A, pulse_width ; ADD A, #step MOV pulse_width, A LCALL DELAY ; LJMP PWM_LOOP1PWM_A:
sd
-
;P1.3LEDP1.3LED MOV A, #pulse_width_MAX ; MOV pulse_width, A ;pulse_width LEDPWM_LOOP2: MOV A, pulse_width ; CLR C SUBB A, #pulse_width_MIN JC PWM_B ; JZ PWM_B ; MOV A, pulse_width ;LED MOV CCAP0H, A ; MOV CCAP1H, A ; MOV A, pulse_width ; CLR C SUBB A, #step MOV pulse_width, A LCALL DELAY ; LJMP PWM_LOOP2PWM_B: RET
sd
-
DELAY: ; CLR A MOV R1, A MOV R2, A MOV R3, #80H DELAY_LOOP: NOP NOP NOP DJNZ R1, DELAY_LOOP DJNZ R2, DELAY_LOOP DJNZ R3, DELAY_LOOP RET END
sd
-
7-9PCA1SYSclk =20MHz P1.0125.0KHz PCA CCAPM1TOGMATECOMCCAP1L42H
sd
-
$INCLUDE (STC15.INC) ;STC15F2K60S2CCAPnL_Value EQU 28H ; SYSclk=20MHz,= 125KHzORG 0000H LJMP MAINORG 003BH ;PCALJMP PCA_ISRORG 0060H MAIN:MOV SP, #70H ;
sd
-
;PCAMOV CMOD, #00000010B ;CIDL = 0,PCA ;PCA FOSC/2;ECF = 0,PCAMOV CCON, #00H ;PCACF ;PCA, CR=0; , CCFn=0MOV CH, #00H ; PCA 8MOV CL, #00H ;PCA 8;1, P1.0MOV CCAPM1, #01001101B ;PCA1,MOV CCAP1L, #CCAPnL_Value ; 1 MOV CCAP1H, #0 ; 1, ;1;PCA, MOV IP, #10000000B ;PCA SETB EA ; SETB CR ;PCA SJMP $ ;
sd
-
PCA_ISR: ;PCAPUSH ACC ;4 Clock PUSH PSW ;4 Clock CLR CCF1 ;1 Clock, PCA1MOV A, #CCAPnL_Value ;2 Clock ADD A, CCAP1L ;3 Clock MOV CCAP1L, A ;3 Clock CLR A ;1 Clock ADDC A, CCAP1H ;3 Clock MOV CCAP1H, A ;3 Clock POP PSW ;3 Clock POP ACC ;3 Clock RETI ;4 Clock END
sd
-
7-100PCA SYSclk=18.432MHzSTC15F2K60S20PCAPCA0PWMPWMP1.1PCA116P1.65msP1.51
sd
-
PCA0CMODCPS2CPS1CPS0(010)2
sd
-
PCAPCA0PCA(CH,CL)01210101120PCA[CH,CL]1[CH,CL][CCAP1HCCAP1L]CCF1=1PCA1PCA1[CCAP1HCCAP1L]T
sd
-
SYSclk =18.432MHzPCA5msPCA
=T/((1/ SYSclk)120)= 0.005/((1/18432000) 120)= 768 = 300H [CCAP1H,CCAP1L]() 300H
sd
-
$INCLUDE (STC15.INC) ;STC15F2K60S2CH1_5MS_H EQU 03H ;PCA1 5ms CH1_5MS_L EQU 00H ;PCA1 5msT0_1 EQU 0F6H ;T01 T0_2 EQU 0ECH ;T02PWM_WIDTH EQU 0FFH ; PWM_PULSE_WIDTH EQU 0FFH ;()COUNTER EQU 30H ; LED_5MS EQU P1.6 ;5LED_1S EQU P1.5 ;1
sd
-
ORG 0000HLJMP MAINORG 003BH ;PCALJMP PCA_ISRORG 0060H MAIN:MOV SP, #70H ;MOV COUNTER, #100 ;COUNTER
sd
-
;PCAMOV CMOD, #10000100B ;PCA PCA ;PCA0PCAMOV CCON, #00H ;0PCACFCR = 0, PCA 0PCACCFnMOV CL, #00H ; 0PCA MOV CH, #00H ;0 8 PWM , PWMP1.1;MOV CCAPM0, #42H ;08PWM MOV PCA_PWM0, #00H ;0PWM 9MOV CCAP0H, #PWM_PULSE_WIDTH ;
sd
-
; PCA 1MOV CCAP1L, #CH1_5mS_L ;PCA1CCAP1LMOV CCAP1H, #CH1_5mS_H ;PCA1CCAP1HMOV CCAPM1, #49H ;PCA116;ECCF1=1, PCA1;[CHCL]=[CCAP1HCCAP1L]CCF1=1;SETB EA ;SETB CR ;PCA[CH,CL];T0, PCA(CH,CL) MOV TMOD, #02H ;0 MOV TH0, #T0_1MOV TL0, #T0_1SETB TR0 ;0
sd
-
MAIN_LOOP:MOV TH0, #T0_1 ;T0MOV TL0, #T0_1MOV A, #PWM_WIDTH ; MOV CCAP0H, ALCALL DELAY;T0LED, PWMLEDMOV TH0, #T0_2 ;T0MOV TL0, #T0_2LCALL DELAY;P1.1LEDMOV TH0, #T0_1 ;T0 MOV TL0, #T0_1MOV A, #PWM_WIDTHLCALL RR_A ; PWM LCALL RR_AMOV CCAP0H, A ;PWMP1.1LEDLCALL DELAY
sd
-
;T0LED, PWMLEDMOV TH0, #T0_2 ;T0MOV TL0, #T0_2LCALL DELAYMOV CCAP0H, A ;PWMP3.5LEDLCALL DELAY;P1.1LEDMOV TH0, #T0_1 ;T0 MOV TL0, #T0_1MOV A, #PWM_WIDTHLCALL RR_A ; PWM LCALL RR_ALCALL RR_ALCALL RR_A;T0LED, PWMLEDMOV TH0, #T0_2 ;T0 MOV TL0, #T0_2LCALL DELAYLJMP MAIN_LOOP ; RR_A: ;CLR CRRC ARET
sd
-
PCA_ISR: ;PCAPUSH ACCPUSH PSWCPL LED_5MS ;PCA15ms,MOV A, #CH1_5MS_L ;[CCAP1HCCAP1L] ADD A, CCAP1LMOV CCAP1L, AMOV A, #CH1_5MS_HADDC A, CCAP1HMOV CCAP1H, ACLR CCF1 ;PCA1DJNZ COUNTER,PCA_EXIT ;100 0.5MOV COUNTER,#100CPL LED_1S ;LED_1S 0.5 PCA_EXIT:POP PSW POP ACC RETI
sd
-
DELAY: ;CLR A MOV R1, A MOV R2, A MOV R3, #80HDELAY_LOOP: NOP NOP NOP DJNZ R1, DELAY_LOOPDJNZ R2, DELAY_LOOPDJNZ R3, DELAY_LOOPRET
END
sd