1050259 16 2 22 1
1 DC DC 2
20 TRIZ PIC PIC MPLAB IDE PIC16F84A PIC16F876 DC 3
20 20 PIC 4
16*32 24*72 ( 1-1) 5
ON,OFF 1-2 & 10ms 6
7
2-1 8
2 PWM Microchip Technology PIC 9
1 H PIC 10
PID 90g PWM P I PWM PWM PIC PIC 11
12
PIC PIC PIC16F84A 13
14
PIC PORTA0 NO YES RETURN RETURN 15
PIC TRISA TRISB byte START TIMX EQU 11 ORG 0 BSF STATUS,RP0 CLRF TRISB B'11111111' TRISA TRISA BCF STATUS, RP0 CLRF CLRF TRISA TRISB PIC PORTA0 H MAIN BTFSC PORTA,0 RA PA1 H GOTO MAIN MAIN 16
P001 PIC 0.4 sec 10MHz PA1 P00 P00 RETURN DC PIC 10MHz 0.4 sec () = 10MHz 0.1 sec=0.4 sec 17
D'62' 1 TIMX 1+1=2 TIMX_2 NOP 1 DECFSZ TIMX,F 1+1+2=4 GOTO TIMX_2 2-1+4*62=249 RETURN 249+2=251 251*0.4 =100.4 sec 2 TIMX_2 NOP DECFSZ 1+1+2= 4 GOTO 2-1+4*62= 249 RETURN 249+2=251 251*0.4 sec=100.4 sec 100.4 sec 18
19
DC DC PIC PWM DC DC DC DC PIC DCPWM PWM PIC16F873 PIC16F876 20
DC DC 21
PIC PWM DC 2 AN0 PWM PORTA0 YES RC2 PWM NO CNT1 1 DC 22
10msec CNT1 YES CCPR1L NO - YES CCPR1L NO YES CCPR1L NO CCPR1L CCPR1L - YES CCPR1L NO CNT1 (INTCON,TOIE) RETFIE DC 23
DC (PWM) BSF STATUS,RP0 D'255' PR2=255 PR2 PWM BCF STATUS,RP0 0 B'00001100' CCP1X&Y=xx00 PWM11xx CCP1CON CCP1 D'255' CCPR1L=255 CCPR1L B'00000100' ONxx00=1 T2CON 2 PR2+1 * * *2 (255+1)*4*0.05*10^-6*1=5.32*10^-5 1/(5.32*10^-5)=18.796kHz (CCPR1L+CCP1X+CCP1Y)* *2 (255+0+0)*0.05*10^-6*1 12.75 sec 24
10msec BSF STATUS,RP0 D'256' OPTION_REG=256 OPTION_REG BCF STATUS,RP0 D'60' TMR=60 TMR0 CLRF CNT1 CNT1 B'10000000' INTCON 10msec / *4= 10msec/0.05 sec*4=50000 25650000/256=195 TMR0 TMR0 255 195=60 25
10msec RA0H CNT1 WAIT BSF BTFSS GOTO INCF MOVF GOTO 7 INTCON,T0IE PORTA,0 RA0=1 WAIT WAIT CNT1,F CNT1 +1 CNT1,W W WAIT WAIT CNT1 STATUS C,bit MAIN D'3' SUBWF CNT1,W CNT1 BTFSC STATUS,C GOTO LOW_S LOW_S GOTO FAST_S FAST_S 26
CCPR1L DC LOW_S BTFSC STATUS,Z STATUS Z,bit GOTO HOLD HOLD MOVFW CCPR1L CCPR1L ADDLW OUT_0 CCPR1L OUT_0 BTFSS STATUS,C STATUS C,bit 1 CCPR1L CCPR1L HOLD CLRF CNT1 CNT1 B'00000000' INTCON INTCON D'60' TMR0=60 TMR0 TMR0 RETFIE 27
CCPR1L DC FAST_S MOVFW OUT_0 OUT_O=1 SUBWF CCPR1L,F CCPR1L OUT_O BTFSC CLRF STATUS,C STATUS C,bit 0 CCPR1L CCPR1L CLRF CNT1 CNT1 B'00000000' INTCON INTCON D'60' TMR0=60 TMR0 TMR0 RETFIE DC DC DC 28
DC PIC 2mm 29
30
PIC ELECTRON. 31
ELECTRON 1.2 sec 4.268msec 0.03% DC DC 32
60Hz 100rpm1500rpm 100rpm 33
100rpm 400rpm 500rpm 600rpm 600rpm 600rpm 10fps NTSC PAL 34
0.05 sec 0.35 sec 35
0.05 sec 0.05 sec 36
600rpm 0.05 sec 20 ELECTRON * 36 288 360 37
[1] SPECIAL NO.61 [2] SPECIAL NO.73 [3] PIC [4] [5] [6] MICROCHIP PIC16F8x [7] MICROCHIP PIC16F87x [8] http://www.hobby-elec.org/ [9] http://www.picfun.com/ [10] ITD/TRIZ 38
20 39
20 40
TRIZ T ech n ical p a r a m e t e r 2 1 II III IV I N u m b er of I n v e n t i o n s t 1 t 2 t 3 T i m e L e v e l o f in v e n tio n s t1 t 2 t 3 T i m e P r o f i t t 1 t 2 t 3 T i m e t1 t2 t 3 T i m e 41
Rotary Display DB 42
PIC PIC Peripheral Interface Controller PIC CPU(Central Processing Unit ) ROM(Read Only Memory ) RAM(Random Access Memory ) I/O EEPROM(Electrically Erasable Programmable Read-Only Memory ROM) A/D PWM Pulse Width Modulation PIC 43
ROM RAM 8bit STATUS STAUS PIC 44
PIC PIC 12bit 14bit 16bit 12bit I/O 12C5xx 16C5x 14bit A/D PWM() 16F8x 16F8xx bit 18Cxxx 18Fxx2 45
PIC PIC PIC PICWindows98se PIC PIC Windows MPLAB IDE( ) MPLAB IDE MPASM 46
PIC MPLAB IDE MPLAB IDE(Integrated Development Environment ) PIC MPLAB IDE MPASM MPLINK MPLIB MPLAB-SIM MPLAB-ICE,ICD MPLAB IDE 47
PIC16F84A PIC16F84A PICPIC PIC16F84A PIC16F84A 48
PIC16F84A 49
PIC16F876 PIC16F876 PIC16F84A PWM A/D PIC16F876 3PIC16F876 50
PIC16F876 51
;**************************************************** ; ;**************************************************** LIST P=PIC16F84A INCLUDE "P16F84A.INC" CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ;**************************************************** ; ;**************************************************** TIMX EQU 11 ;**************************************************** ; ;**************************************************** P1 EQU B'11111111' P2 EQU B'00110000' P3 EQU B'00001100' P4 EQU B'11111111' P5 EQU B'01111110' P6 EQU B'11000011' P7 EQU B'11000011' P8 EQU B'01111110' P9 EQU B'11001110' P10 EQU B'00111011' P11 EQU B'11111011' P12 EQU B'11111111' 52
P13 EQU B'00000011' P14 EQU B'11111111' P15 EQU B'11111111' P16 EQU B'00000011' P17 EQU B'01100110' P18 EQU B'11000011' P19 EQU B'11111111' P20 EQU B'01111110' P21 EQU B'11011011' P22 EQU B'11011011' P23 EQU B'11111111' P24 EQU B'11111111' P25 EQU B'11000000' P26 EQU B'11000000' P27 EQU B'11111111' P28 EQU B'11111111' P29 EQU B'11011011' P30 EQU B'11011011' P31 EQU B'11111111' P32 EQU B'11111111' P00 EQU B'00000000' 53
;**************************************************** ; ;**************************************************** ORG 0 START BSF CLRF BCF CLRF CLRF STATUS,RP0 TRISB B'11111111 TRISA STATUS, RP0 TRISA TRISB ;**************************************************** ; ;**************************************************** MAIN BTFSC PORTA,0 ;RA0 PA1 ;H P1 GOTO MAIN ;**************************************************** ; ;**************************************************** PA1 P1 54
55 P2 P3 P4 P00 P5 P6 P7 P8 P00
56 P9 P10 P11 P12 P00 P13 P14 P15 P16
57 P00 P17 P18 P19 P20 P00 P21 P22 P23
58 P24 P00 P25 P26 P27 P28 P00 P29 P30
P31 P32 P00 P00 P00 RETURN P00 59
;**************************************** ; 100.4usec ;**************************************** D'62' TIMX ;1 ;1 TIMX_2 NOP ;1 DECFSZ TIMX,F ;1+1+2=4 GOTO TIMX_2 ;2-1+4*62=249 RETURN ;249+2=251 251*0.4 =100.4 sec END DC ;****************************************************** ; DC ;****************************************************** LIST P=PIC16F876 INCLUDE "P16F876.INC" CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC ;******************************************************** ; ;******************************************************** CNT1 EQU 20 60
;******************************************************** ; ;******************************************************** OUT_0 EQU D'1' ;******************************************************** ; ;******************************************************** ORG 0 GOTO START ORG 4 GOTO MAIN START BSF CLRF CLRF BCF STATUS,RP0 B'00000001' TRISA TRISB TRISC STATUS,RP0 ;**************************************************** ; ;**************************************************** BSF STATUS,RP0 B'00000111' ; ADFM=0 PCFG=H 07 ADCON1 BCF STATUS,RP0 CLRF ADCON0 61
;**************************************************** ; ;**************************************************** CLRF TMR2 BSF STATUS,RP0 BCF D'255' ; = PR2+1 * 4 * * 2 PR2 STATUS,RP0 B'00001100' ;CCP1X&Y=xx00 PWM=11xx CCP1CON D'255' CCPR1L ; =( CCPR1L+CCP1X+CCP1Y ) * * 2 B'00000100' ;x1xx2on xx00=1:1 T2CON ;**************************************************** ; ;**************************************************** BSF STATUS,RP0 D'256' ; 1: 256 OPTION_REG BCF STATUS,RP0 D'60' TMR0 ;**************************************************** ; ;**************************************************** CLRF CNT1 B'10100100' ;GIE T0IE T0IF INTCON 62
;***************************************************** ; ;***************************************************** WAIT BSF INTCON,T0IE BTFSS PORTA,0 GOTO WAIT INCF CNT1,F ; CNT1 +1 MOVF CNT1,W ; CNT1 W GOTO WAIT ;***************************************************** ; ;***************************************************** MAIN D'3' ; SUBWF CNT1,W ; CNT1 BTFSC STATUS,C ; C=1 0 C=1 C=0 GOTO LOW_S GOTO FAST_S ;**************************************************** ; & ;**************************************************** LOW_S BTFSC STATUS,Z ; GOTO HOLD MOVFW CCPR1L ADDLW OUT_0 ; CCPR1L OUT_0 BTFSS STATUS,C ; CCPR1L ; 63
HOLD CLRF CNT1 B'00000000' INTCON D'60' TMR0 RETFIE ;**************************************************** ; ;**************************************************** FAST_S MOVFW OUT_0 SUBWF CCPR1L,F ; CCPR1L OUT_0 BTFSC STATUS,C ; CLRF CCPR1L CLRF CNT1 B'00000000' INTCON D'60' TMR0 RETFIE END 64