You are on page 1of 165

2548

1105-5203
2548


6





1105-5203 75
2548

1.
2.
3.

1
1.1
1.2
1.3
1.4 PIC
1.5 PIC16F877
1.6
1.7
1.8
1
1
1

2
2.1
2.2 PIC
2.3 (PICBASIC Pro Compiler)
2.4 MicroCode Studio
2.5
2.6 PIC16F877
2.7
2
2
2

1
2
2
4
5
9
12
16
18
20
22
24
25
27
28
29
30
31
36
40
42
43
49
51

52
53

1.1
1.2
1.3
1.4 PIC16F627
1.5 PIC16F877
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14 PIC
1.15 PIC
1.16
1.17
1.18
1.19
1.20
2.1
2.2
2.3 PCDDEMO3
2.4
2.5
2.6 PICBASIC PRO
2.7
2.8
2.9
2.10

2
3
4
8
10
12
13
13
14
14
15
15
16
17
17
18
18
18
18
19
28
29
30
30
31
31
32
32
32
33


2.11 PICBASIC Pro
2.12
2.13
2.14
2.15 MicroCode Studio
2.16
2.17
2.18 PICkit2
2.19 PICkit2
2.20 PIC
2.21
2.22
2.23
2.24 PIC16F877

33
34
34
35
35
36
37
37
38
38
39
39
40
41

1.1 R C
1.2 R PIC

15
16

1.
2.
3.
4. PIC
5. PIC16F877
6.
7. PIC
8.





(Microcontroller)


1.
2.
3. PIC16F877
4. PIC16F877
5.

(1105-5203)

1.1




(Microcontroller)







1.2
2 (Von Neuman)
(Harvard Architecture)

1.1
1.1


(1105-5203)

PIC
RISC (Reduced Instruction Set Computer)
35

1.2
(: PROGRAMMING AND CUSTOMIZING THE PIC Microcontroller: 9)
1.2 (Instruction Decode)
(PC Stack)
FILO (First In Last Out)

(1105-5203)

1.3

EEPROM

1.3
(: PIC16F628: 7)
1.3

1. (CPU: Central Processing Unit)

2 (Fetch) (Executed)

2. (Program Memory)
3
2.1 (EPROM : Erasable Programmable Read Only Memory)

2.2 (EEPORM : Electrically Erasable Programmable Read Only


Memory)

(1105-5203)

2.3 (Flash)

PIC16F877 8192 x 14
3. (Data Memory)

4. EEPROM

5. (Register Space)

6.

1.4 PIC
PIC
6
80 384 128
PIC (Microcontroller)
Peripheral Interface Controller ,
RAM, EEPROM, , USB, I2C, PWM, A/D

PIC

-
- OTP (One Time Programmable)
- ROM (Read Only Memory)

-
- 4 120

(1105-5203)

- 0.5 - 512K

- RISC 35
- 80MHz
- I/O
-
-
-
-
-
- (POR)
- (PWRT)
-
- (WDT)
- USB
-
-
1. EC
2. ER
3. INTRC PIC
4. LP 200KHz
5. XT 100KHz 4MHz
6. HS 20MHz
- +3V. +5.5V.
- PWM (Pulse Width Modulated)
- USART
PIC 4
- 12 PIC12C5XXX, 16C5X
- 14 PIC16F8X, 16F87X

(1105-5203)

- 16 PIC17C7XX, 18C2XX
- 32 PIC32MX3XX/4XX
1.4.1 PIC 12
PIC 1.1
1.1 PIC 12

12C508
16C54
16C57
16C505
16C58A

MHz)
512 x 12
25
4
384 x 12
25
20
2048 x 12
72
20
1024 x 12
41
4
2048 x 12
73
20

I/O

6
12
20
12
12

A/D
-

PIC12C508: 8 512 x 12 EPROM,


25 4 MHz, 33 ,
- 6 , 8 , EPROM

PIC F PIC12F508

PIC CE PIC12CE518 EEPROM 16

1.4 PIC12F508
(: Microchip PIC12F508 Data Sheet: 1)

(1105-5203)

PIC16C5X: PIC 18 , 384 x 12,


25 , 12 I/O PIC16C56
1024 x 12, PIC16C58A 2048 x 12
73 1.6

1.5 PIC16C56
(: Microchip PIC16C56 Data Sheet: 1)
1.4.2 PIC 14
PIC 35 20 MHz,
1.2
1.2 PIC 14

16C554
16C64
16F84
16F627
16F628
16F676
16F73
16F876
16C877

(MHz)
512 x 14
80
20
2048 x 14
128
20
1024 x 14
36
20
1024 x 14
224
20
2048 x 14
224
20
1024 x 14
64
20
4096 x 14
192
20
8192 x 14
368
20
8192 x 14
368
20

I/O

13
33
13
16
16
12
22
22
33

A/D
8
5
5
8

(1105-5203)

PIC16F84: PIC 18 ,
1024 x 14, 36 , EEPROM, I/O
12
1.6

1.6 PIC16F84
(: Microchip PIC16F84 Data Sheet: 1)
PIC16F877: PIC
40 , 8192 x 14,
386 , EEPROM 256 , I/O
33 , 8 A/D 10 , PWM, 3
, ,

PIC16F627: PIC 18 ,
1024 x 14, 224 ,
EEPROM 128 , I/O 16 , 2 8 , 1
16 ,, 10
1.7

(1105-5203)

10

1.7 PIC16F627
(: Microchip PIC16F627 Data Sheet: 1)
1.4.3 PIC 16
PIC 23 35 PIC
16 40 MHz 1.3
1.3 PIC 16

17C43
17C752
18C242
18C252
18F4520

(MHz)
4096 x 16
454
33
8192 x 16
678
33
8192 x 16
512
40
16384 x 16
1536
40
32768 x 16
1536
40

I/O

33
50
23
23
36

A/D
12
5
5
13

1.4.4 PIC 32
PIC PIC 32 80 MHz
USB, 10/100 1.4

(1105-5203)

1.4 PIC 32

(MHz)
PIC32MX210F016D
16KB
4096
40
PIC32MX664F064L
512KB
64K
80
PIC32MX795F512L
512KB
128K
80

11

I/O

33
85
85

A/D
13
16
16

PIC

1.
2. USB, I2C, USART
3.
4. RAM
5.
6.
7.
PIC
7 PIC 8

1.5 PIC16F877
PIC
PIC

MPLAB, (CCS, Hitech, C30, MicroC),
(PICBASIC PRO, MicroBasic), Flow Code
16Fxxx

EEPROM

(1105-5203)

1.5.1 PIC16F877
PIC 16F877

- RISC 35
- 1 1 2
- 20 MHz
- 8 (1 = 14 )
- 368
- 128
- 14
- 8
- (POR : Power On Reset), (PWRT :
Power Up Timer), (OST: Oscillator Start Up)
- (Watchdog Timer)
- (Sleep Mode)
- 6 EC, ER, INTRC, LP, XT, HS
- +5V
- (In Circuit Serial Programming)
- +3V + 5.5V
- 25 mA.
- 3 ( 0, 8 , 1, 16 2, 8 )
- CCP (Capture/Comparator/PWM: Pulse Width Modulation) 2
- (A/D Converter) 10
-
- USART RS-232
- (Brown Out Reset)
- I/O 5

12

(1105-5203)

1.8 PIC16F877
(: Microchip PIC16F877 Data Sheet: 1)
1.5.2 PIC16F877
PIC 16F877 40
1. MCLR/VPP (Master Clear Reset/Programming Voltage Input)
- (Reset) 0
1
-
2. VDD +3 +5.5V.
3. VSS
4. OSC1/CLKIN (Oscillator Crystal/ External Clock Source)
- EC
- ER
- LP, XT HS
5. OSC2/CLKOUT (Oscillator Crystal/ External Clock Source)
- EC

13

(1105-5203)

14

OSC1
- LP, XT HS
6. 5 A, B, C, D E
PIC16F877
(Bi Directional Input Output Port)
1.5 1.9
1.5 A PIC16F877

RA0/AN0

RA1/AN1

RA2/AN2/VREF-

RA3/AN3/VREF+

RA4/TOCK1

RA5/AN4/SS

- RA0
- 0
- RA1
- 1
- RA2
- 2
-
- RA3
- 3
-
- RA4
- 0
- RA5
- 4
- Slave Select

1.6 B PIC16F877

RB0/INT

33

RB1
RB2

34
35

/
/

RB3/PGM

36

- RB0
-
- RB1
- RB2
- RB3
-

(1105-5203)

15

1.6 B PIC16F877 ()

RB4
RB5

37
38

/
/

RB6/PGC

39

RB7/PGD

40

- RB4
- RB5
- RB6
-
- RB7
-

1.7 C PIC16F877

RC0/T1OSO/
T1CKI

15

RC1/T1OSI/
CCP2

16

RC2/CCP1

17

RC3/SCK/SCL

18

RC4/SDI/SDA

23

RC5/SDO

24

RC6/TX/CK

25

RC7/RX/DT

26

- RC0
-
1
- 1
- RC1
- 1
- CCP2
- RC2
- CCP1
- RC3
- SPI
- I2C
- RC4
- Serial Data SPI
- I2C
- RC5
- Serial Data SPI
- RC6
-
-
- RC7
-
-

(1105-5203)

16

1.8 D PIC16F877

RD0/PSP0

19

RD1/PSP1

20

RD2/ PSP2

21

RD3/ PSP3

22

RD4/ PSP4

27

RD5/ PSP5

28

RD6 PSP6

29

RD7/ PSP7

30

- RD0
- 0
- RD1
- 1
- RD2
- 2
- RD3
- 3
- RD4
- 4
- RD5
- 5
- RD6
- 6
- RD7
- 7

1.9 E PIC16F877

RE0/AN5/RD

RE1/AN6/WR

RE2/ AN7/CS

10

- RE0
- 5
-
- RE1
- 6
-
- RE2
- 7
-

(1105-5203)

1.5.3 PIC16F877
PIC PIC16F877

1. (Program Memory)
2. (Register Files)
3. (Data Memory)
4. EEPROM
1) (Program Memory)


14
8 x 14 8 (1 14 )
PIC16F877 (PC) 13
PIC16F877 0000H 1FFFH 0004H PIC16F877
13 (Stack)

(PC)
PIC16F877
8 1.12

17

(1105-5203)

18

(PC) 13

1 (13)
2 (13)

8 (13)

0000H

0004H
0005H

1FFFH

1.9 PIC16F877
2)
PIC16F877
4 (Bank)
128 1.10

(1105-5203)

1.10 PIC16F877
(: PIC16F87X Data Sheet: 13)

19

(1105-5203)


PIC16F877 386

2
(Reserved)
4 0, 1, 2 3 1.10

0 00H 7FH
- 00H 1FH
- 20H 7FH 96
1 80H FFH
- 80H 9FH ()
- A0H EFH 80
- F0H FFH 70H 7FH 0
70H 7FH
2 100H 17FH
- 100H 10FH ()
- 110H 11FH 16
- 120H 16FH 80
- 170H 17FH 70H 7FH 0
70H 7FH
3 180H 1FFH
- 180H 18FH ()
- 190H 19FH 16
- 1A0H 1EFH 80
- 1F0H 1FFH 70H 7FH 0
70H 7FH

RP1 RP0 STATUS

20

(1105-5203)

1.6

RC
4 MHz 5
1.6.1
3
1. (Ceramic Resonator)
CLKIN CLKOUT PIC

1.11
2. (Crystal Oscillator)
2 OSC1/CLKIN OSC2/CLKOUT

1.12
3. (Crystal Square Wave Oscillator)

21

(1105-5203)

1.13
1.6.2
PIC OSC1 OSC2
4
- LP (Low Power Crystal Oscillator)
200KHz
- XT (Crystal/Resonator)
100KHz 4MHz
- HS (High Speed Crystal/Resonator) 4MHz 20MHz
- RC (Resistor Capacitor Network)

1.
1.14 1.12

1.14

22

(1105-5203)

23

1.12 C1 C2
OSC.
LP
XT

HS

32 KHz
200 KHz
100 KHz
2 MHz
4 MHz
4 MHz
8 MHz
20 MHz

C1
68 - 100 pF
15 33 pF
100 - 150 pF
15 33 pF
15 33 pF
15 33 pF
15 33 pF
15 33 pF

C2
68 - 100 pF
15 33 pF
100 - 150 pF
15 33 pF
15 33 pF
15 33 pF
15 33 pF
15 33 pF

2.
1.15
1.13

1.15

(1105-5203)

24

1.13 C1 C2
OSC.

455 KHz
2 MHz
4 MHz
8 MHz
16 MHz

XT
HS

C1
68 100 pF
15 68 pF
15 68 pF
10 68 pF
10 22 pF

C2
68 100 pF
15 68 pF
15 68 pF
10 68 pF
10 22 pF

3.
1.16
1.14

1.16
1.14 R C

4.61 MHz
2.66 MHz
311 kHz

R
5K
10 K
100 K

C
20 pF
20 pF
20 pF

(1105-5203)

4.
1.17

1.17
5.
PIC 12C672 PIC16F62X
PIC INTRC RA7 RA6
OSC1 OSC2 1.18

1.18
1.15

25

(1105-5203)

26

1.15 R PIC

10 MHz
7.4 MHz
3 MHz
300 kHz
200 kHz

R
1K
10 K
47 K
470 K
1M

1.7 PIC
PIC
PIC 6
1. (POR: Power On Reset)
2. (BOR) 4.0V. 1.8V.
PIC
3.
4. (Sleep Mode)
5. (WDT)
6. (WDT)
PIC


4.7K PIC 0
PIC 2
1. 1.19
2. 1.20

(1105-5203)

1.19 PIC

1.20 PIC

1.21
(: PROGRAMMING AND CUSTOMIZING THE PIC Microcontroller: 269)

27

(1105-5203)

28

1.21 Vcc PIC


0 ( C ) 1 (C )
OSC 1024
(PWRITE Delay) 72 ms. PIC

1.8

(Start) (Stop)
Start

Stop

1.22

(Direction)

1.23

(Process)
Process
1.24

(1105-5203)

29

(Input/Output)
Input

Output

1.25

/ (Decision)

No

Yes

1.26

/
2 (Yes) (No)
/

(Microcontroller)



PIC16F877

(1105-5203)

30

1
1105-5203

1
3

1.
2.
3. PIC16F877
4.

1.
2.
3. PIC16F877
4. PIC16F877
5.

1. 1
2.
3.
4.

1.
2.
3.
4.
5.
6.
7.
8.

10

5 5

(1105-5203)

31

1
( x )
1. (Microcontroller)
.
.
.
.
2.
.
.
.
.
3. 2
. (For Neuman) (Harvard)
. (Von Neuman) (Harvard)
. (For Neuman) (Harword)
. (Von Neuman) (Harword)
4.
. (For Neuman)
. (Von Neuman)

. (Harvard)
. (Harword)

5. (CPU: Central Processing Unit )


.
.
.
.

(1105-5203)

6. (Program Memory)
.
.
.
.
7.
.
.
.
.
8. PIC (Microcontroller)
. Peripheral Internal Controller
. Parallel Internal Controller
. Peripheral Interface Controller
. Parallel Interface Controller
9.
.
.
.
.
10. PIC
.
. USB, I2C
. RAM
.

32

(1105-5203)

33

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

.
.
.
.
.
.
.
.
.
.

(1105-5203)

34

1105-5203
1

........................................................................................................................
....................................................................... ........................................
1...........................................................
3...........................................................

2...........................................................
4...........................................................

1
2
3
4
5
6

3 2 1

.......

1.
3
2
1
2.
3
2
1

(1105-5203)

35

3.
3 80%
2 60%
1
4.
3
80%
2
60%
1
5.
3
2
1
6.
3 80
2 60
1 60

-
-

15 18

8 - 14

0 7

...................................................................
(..................................................................)
......................................................

(1105-5203)

36

1
. PIC16F628. :
, 2547.
. 1. :
(-), 2549.
_________. PIC . :
(-), 2550.
. . :
, 2537.
. PIC Microcontroller. :
, 2549.
John Iovine. PIC MICROCONTROLLER PROJECT BOOK. New York :
McGraw-Hill, 2543.
Lucio Di Jasio. PIC MICROCONTROLLERS : know it all. Massachusetts : Newnes, 2550.
Microchip Technology Incorporated. PIC16F87XA Data Sheet. U.S.A :
The Microchip Corporate Literature Center U.S., 2546.
http://www.microchip.com. 19/04/2553.

1.
2.
3.
4.
5.
6.
7.

PIC
(PICBASIC Pro Compiler)
MicroCode Studio

PIC16F877

, C, PASCAL, BASIC

.HEX
/ (Assembler/Complier)
.HEX
.HEX

1.
2.
3.
4.
5.
6.
7.

MicroCode Studio

MicroCode Studio

(1105-5203)

38

2.1

/
()

2.1
2.1
1. C
MicroCode Studio CodeDesigner Lite
WordPad
2.
C BASIC
3.
1

4.
PICkit2, WinPic800, Icprog, MRT-ISP

(1105-5203)

39

5.

1

2.2 PIC

MicroCode Studio

.PBP

PICBASIC PRO

/
.HEX

PICKit2
WinPic800

2.2
PIC
PIC
1. MicroCode Studio
.PBP .BAS
2. /
.HEX
3. .HEX PICKit2

(1105-5203)

40

USB WinPIC800
* Microcode Studio
www.mecanique.co.uk WinPIC800
www.winpic800.com

2.3 (PICBASIC Pro Compiler)



1. Windows Explorer
PCDDEMO3 ()

2.3 PCDDEMO3
2. Next

2.4

(1105-5203)

3. Next

2.5
4. Next

2.6 PICBASIC PRO


5.

41

(1105-5203)

2.7
6. Next

2.8

2.4 MicroCode Studio


2.4.1 MicroCode Studio
MicroCode Studio
1. Windows Explorer
MicroCode Studio 2.9

42

(1105-5203)

43

2.9
2.

Next

2.10
3.

I accept the agreement Next

2.11

(1105-5203)

4. Next

2.12
5. Finish

2.13
2.4.2 MicroCode Studio

1.
MicroCode Studio

44

(1105-5203)

45

2.14 MicroCode Studio


2.

2.15
3. View Compile and
Program Options 2.16

(1105-5203)

46

2.16
4. Find Manually 2.17

2.17
5. C: -> PBPDEMO
O.K

(1105-5203)

47

2.18
2.4.3 MicroCode Studio
MicroCode Studio 2.19

3.

4.
1.

2.

2.13 MicroCode Studio


2.19 MicroCode Studio

(1105-5203)

48

1.
2.
3. .PBP .BAS
4.

.HEX
PICkit2 WinPIC800

2.5
2.5.1 PICKit2
PICkit2 PIC

1. Windows Explorer
PICKit2 Setup

2.20 PICKit2
2. Next

(1105-5203)

2.21
3. Next

2.22
4. Next

49

(1105-5203)

2.23
5.

I Agree Next

2.24 PICkit2
6.

50

(1105-5203)

2.25
7.

2.26
8. PICkit2

51

(1105-5203)

52

2.27 PICkit2
2.5.2 PICkit2
PICKit2 PIC
USB (Serial)
(Parallel Port) Notebook PC

1. USB PICKit2
PIC PIC
2.28

(1105-5203)

53

2.28 PICkit2
2. Tools Check Communication
PICKit2 PIC

2.29 PIC

(1105-5203)

54

3. PIC PIC16F628
Device Family Midrange PIC
PIC

2.30
4. File --> Import HEX .HEX (
)

2.31
5.

(1105-5203)

2.32
PICkit2 VDD

Target On Target Board


Reset
Reset Target Board Reset (
)
Target Board ()

55

(1105-5203)

2.53 WinPic800
WinPic800 .HEX
PIC dsPIC Sisco Benach Font

2
(Low Voltage ICSP) 5
(High Voltage ICSP) 13

WinPic800
1. WinPic800
2. .HEX

.HEX .HEX

3. UPTECH PIC Board (LPT


Port Printer Port) .HEX
WinPIC800
4.
5. WinPIC800 .HEX

2.33 WinPIC800
6. WinPic800 .HEX
PIC
Language English 2.34

56

(1105-5203)

2.34
7.
Settings ---> Hardware
ETT 2 ETT - LOW VPP ICSP ETT - HIGH VPP ICSP
LPT1 Apply edits 2.35 2.37

2.35

2.36

57

(1105-5203)

2.37
8.
Settings --> Software 2.38 - 2.40

2.38

2.39

58

(1105-5203)

2.40 .HEX

Verify after programming
Accept
9.
WinPic800


WinPic800 2

- .HEX
File --> Open
.HEX

- Device
Detect PIC


2.41

59

(1105-5203)

2.41

ETT-LOW VPP ICSP ETT-HIGH VPP ICSP


10. PIC
.HEX
.HEX


Setting 2.42

60

(1105-5203)

2.42
11. HEX
Device --> Program All

2.43

2.43

61

(1105-5203)

2.6 PIC16F877
PIC16F877 UPTECH PIC-Board

2.44 PIC16F877

2.45 LED 8

62

(1105-5203)

2.46 4 8

2.47 7 4

63

(1105-5203)

2.48

2.49

2.50

64

(1105-5203)

USB

65

PIC16F877

I2C

RTC

LED 8

2.51 PIC16F877

USB

UPTECH PIC-Board

2.52 PIC16F877

(1105-5203)

66

2.7

1. Microcode Studio
.PBP .BAS

2.53 Microcode Studio


2. PICBASIC PRO Compiler F9

2.54

(1105-5203)

67

2.54
F9
Succes: words used. .HEX

2.55
3. UPTECH PIC-Board
USB

USB

UPTECH PIC-Board

2.56 PIC16F877

(1105-5203)

68

4. PICKit2
Device: PIC16F877

2.57 PICKit2
5. File --> Import Hex .HEX 2

2.58 PICKit2

(1105-5203)

6.

2.59
6.

, C

.HEX

(Proteus)

69

(1105-5203)

70

2
3

PIC

1.
2.
3.
4.

PIC
Microcode Studio

(.HEX)

1. UPTECH PIC-Board
2.

1
1


1. C
MicroCode Studio CodeDesigner
2. C

3.
1

4.
PICkit2, WinPic800, Icprog, MRT-ISP
5.

1

1.
PIC

(1105-5203)

71

...

...............

...............

...............

.PBP
...

.HEX
...

PIC16F877

2.1 PIC
2. MicroCode Studio 2.2
2.1 16F877
2.2 2.1
2.1
TRISC = %00000000
Loop: PORTC = %00000000
PAUSE 1000
PORTC = %00000001
PAUSE 1000
GOTO Loop
END
2.3 .PBP .BAS File ----> Save
D:\ \ EX1.PBP
2.4 EX1.PBP EX1.HEX F9
F9
Succes: words used. .HEX 2.3

(1105-5203)

2.3

72

2.4

2.1

2.2

2.13 MicroCode Studio

2.2 MicroCode Studio

2.3 Microcode Studio


4. UPTECH PIC-Board
USB 2.4

(1105-5203)

73

USB

UPTECH PIC-Board

2.4
5. PICKit2 2.5
Device PIC16F877 USB

(1105-5203)

74

2.5
6. File --> Import Hex .HEX 2

2.6
7.

Write

1.7

(1105-5203)

8. UPTECH PIC-BOARD RC0


.
.
.

.
.
.
.
..
.
-..................................................................

75

(1105-5203)

76

PIC

1.
PIC

MicroCode Studio

.PBP
/

.HEX

PICKit2 WinPic800

PIC16F877

2.1 PIC
2. MicroCode Studio 2.2
2.1 16F877
2.2 2.1
2.1

(1105-5203)

77

TRISC = %00000000
Loop: PORTC = %00000000
PAUSE 1000
PORTC = %00000001
PAUSE 1000
GOTO Loop
END
2.3 .PBP .BAS File ----> Save
D:\ \ EX1.PBP
2.4 EX1.PBP EX1.HEX F9
F9
Succes: words used. .HEX 2.3

2.3

2.4
2.1

2.2

2.13 MicroCode Studio

2.2 MicroCode Studio

(1105-5203)

78

2.3 Microcode Studio


4. UPTECH PIC-Board
USB 2.4

USB

UPTECH PIC-Board

2.4
5. PICKit2 2.5
Device PIC16F877 USB

(1105-5203)

79

2.5
6. File --> Import Hex .HEX 2

2.6
7.

(1105-5203)

Write

1.7
8. UPTECH PIC-BOARD RC0

( 1 1 )

PIC
HEX

HEX HEX

80

(1105-5203)

2
( x )
1. ?
. .ASM
. .BAS
. .C
. .HEX
2. ?
. .ASM
. .BAS
. .C
. .HEX
3. ?
.
.
.
.
4. ?
.
.
.
.
5. ISIS ?
.
.
.
.

81

(1105-5203)

6. (PICBASIC PRO Compiler) ?


.
.
.
.
7. 6 ?
.
.
.
.
8. ?
.
.
.
.
9.
. Microsoft Excel
. Microcode Studio
. Photoshop
. Internet Explorer
10.
. PICkit2
. WinPic800
. Icprog
.

82

(1105-5203)

83

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

.
.
.
.
.
.
.
.
.
.

(1105-5203)

84


1105-5203
2

.......................... ......................................................................

-......................................................................................................
...........................................................................................................
................ ................................................ .. ....................................

4 3 2 1

1.
2.
3.
4.
5.

4
3
2
1

=
=
=
=

90%
70%
50%
50%

.........................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...................................................................
(..................................................................)
......................................................

1.
2.
3.



(Proteus)

1.
2.
3.
4.

(1105-5203)

3.1 (Proteus)
Proteus VSM (Virtual System Modeling)
(Labcenter Electronics Ltd.)
2
1. ISIS
2. ARES


PCB (Print Circuit Board)
PIC, ARM, AVR
MCS-51

3.1.1

http://www.labcenter.co.uk/download/prodemo_autodl_general.cfm

1.

87

88

(1105-5203)

3.1
2. Next

3.2

89

(1105-5203)

3. Next

3.3
4. Next

3.4

90

(1105-5203)

5. Next

3.5
6. Next

3.6

91

(1105-5203)

7. Next

3.7
8. Next

3.8

92

(1105-5203)

9.

3.9
10. Next

10

3.10

93

(1105-5203)

11. Start --> All Programs --> Proteus 7 --> ISIS 7 Pro

11

3.11
12. Proteus ISIS Schematic Capture

3.12

(1105-5203)

13. ISIS Professional

3.13 ISIS Professional

Start --> Programs --> License Manager


94

95

(1105-5203)

3.2


3.14
1.
4.

7.

5.

3.

2.

6.

8.

3.14
1. (Menus)

2. (Toolbar)
3. (Object Selector)

4. (Component Mode Toolbar)


2
5. (Orientation Toolbar)
- Rotation 90

- Reflection

6. (Editing Window)

(1105-5203)

7. (Overview Window)

8. (Object Selector)
2 P L
- P
- L
9. (Simulation) -
-

1. File


New Design
:
Load Design
:
Save Design
:
Save Design As
:
Import Bitmap
: .BMP
Import Section
: .SEC
Export Section
: .SEC

Export Graphics
:
- Bitmap
:
- Metafile
: Bitmap
- DXF File
: .DXF CAD

- EPS
: (Postscript)
DTP DXF
Print
:
Printer Setup
:
Printer Information :

96

(1105-5203)

2. View


Undo
:
Redo
:
Cut to clipboard
:
Copy to clipboard
:
Paste from clipboard :
Send to back
:
Bing to front
:
3. Debug
Debug

Start/Restart Debugging :
Pause Animation
:

Stop Animation
:
Execute
:
4. Template
Template

Set Desingn Defaults :
Set Graph Colours :
Set Graphics Styes :
Set Text Stye
:
Set Graphics Text
:
Set Junction Dots :
Apply Template form Desingn :

Applay Default Template :


Save Default Template :

97

(1105-5203)

5. Help
Help

6. Main Modes
Main Modes

Component
:
Junction dot
:
Wire label
:
Text script
:
Bus
: Bus
Sub Circuit
:
Instant edit mode :
7. Gadgets


Inter-sheet Terminal :
Device Pin
:
Simulation Graph
:
Tape Recorder
:
Generator
:

Voltage Probe
:
Current Probe
:
Virtual Instruments :

8. (Orientation Toolbar)
Rotation
: 90
Reflection
:

98

99

(1105-5203)



3.2.1

1.
2. P 3.15

1.

2. P

3.15
3. (Library)
Microprocessor PIC16F877A 3.16

100

(1105-5203)

1.

2.

3.

3.16
3.2.2

1.
2.
3.
4.

101

(1105-5203)

1.

3.
4.

2.

3.17
3.2.3

1.
2.

(1105-5203)

1.

2.

3.17
3.2.4


Delete

3.2.5

1. Instant edit mode


2.
1k 3.18
3. 3.19

102

103

(1105-5203)

1.

2.

3.18
3.
1k

3.19

104

(1105-5203)

3.2.6

1.
2.
3.
4.

5. 3.20

3.20

105

(1105-5203)

3.3
3.21
.BAS .PBP .HEX Microcode
Studio
.HEX

.PBP

.HEX

3.21

1.
1.1 Start
1.2 All Program
1.3 Proteus 7 Professional
1.4 ISIS 7 Professional UNTITLED-ISIS Professional

2.
Pick Devices
Component
2.1
Pick Devices
2.2

2.3
DEVICES PIC16F877A 3.22

106

(1105-5203)

2.1
P

2.2

2.3

3.22 PIC16F877
4.

4.1

4.2

4.3
4.4 (View)
4.5 4.1

107

(1105-5203)

4.2

4.4 /
4.1

4.3

3.23 PIC16F877
5. LED

GROUND

5.1
5.2

3.24
6. PICBASIC
MicroCode Studio .HEX 3.25

108

(1105-5203)

TRISB = %00000000
PORTB = 0
LOOP:
PORTB.0 = 1
PAUSE 1000
PORTB.0 = 0
PAUSE 1000
GOTO LOOP
END

3.25 MicroCode Studio


7. .HEX

PIC16F877 Edit Component Program File


.HEX Clock Frequency
Code 3.26
OK

2 Microcode
Studio
Alt + Tab

109

(1105-5203)

.HEX

3.26 .HEX
8. RUN
9.
STOP

3.27

(1105-5203)

PIC

110

(1105-5203)

111

3
3

1.
2.
3.
4.

PICBASIC .BAS .HEX


.HEX

1. UPTECH PIC-Board
2.

1
1


PCB
(Print Circuit Board)
PIC, ARM, AVR MCS-51

3.1
Microcode Studio .BAS
.PBP .HEX .HEX

.PBP
.HEX

.HEX

3.1

(1105-5203)

1. 3.1 Microcode Studio


D:\\job3-1.pbp
3.1
TRISB = %00000000
Loop: PORTB = %00000000
PAUSE 1000
PORTB = %00000001
PAUSE 1000
GOTO Loop
END
2. job3-1.pbp job3-1.hex
3. 3.2 CIR3-1.DSN
D:\\CIR3-1.DSN

3.2 3.1
4. job3-1.HEX

112

(1105-5203)

.
.
.
5. 3.2 Microcode Studio
D:\\JOB3-2.PBP
3.2
S1
VAR PORTE.1
D1 VAR PORTB.0
TRISB = %00000000
TRISE = %11111111
ADCON1 = 7
LOW D1
LOOP: INPUT S1
PAUSE 50
IF S1 = 1 THEN LOOP
HIGH D1
PAUSE 200
END
6. JOB3-2.PBP JOB3-2.HEX
7. 3.2 CIR3-2.DSN
D:\\CIR3-2.DSN

113

(1105-5203)

3.2 3.2
8. job3-2.HEX

.
.
.

...

...
...
...
-..................................................................

114

(1105-5203)

1. 3.1 Microcode Studio


D:\\job3-1.pbp
3.1
TRISB = %00000000
Loop: PORTB = %00000000
PAUSE 1000
PORTB = %00000001
PAUSE 1000
GOTO Loop
END
2. job3-1.pbp job3-1.hex
3. 3.2 CIR3-1.DSN
D:\\CIR3-1.DSN

3.2 3.1

115

(1105-5203)

4. job3-1.HEX

D1 1 1
5. 3.2 Microcode Studio
D:\\JOB3-2.PBP
3.2
S1
VAR PORTE.1
D1 VAR PORTB.0
TRISB = %00000000
TRISE = %11111111
ADCON1 = 7
LOW D1
LOOP: INPUT S1
PAUSE 50
IF S1 = 1 THEN LOOP
HIGH D1
PAUSE 200
END
6. JOB3-2.PBP JOB3-2.HEX
7. 3.2 CIR3-2.DSN
D:\\CIR3-2.DSN

116

(1105-5203)

3.2 3.2
8. job3-2.HEX

D1 S1

117

(1105-5203)

3
( x )
1. ?
. .ASM
. .BAS
. .C
. .HEX
2. ?
. .ASM
. .BAS
. .C
. .HEX
3. ?
.
.
.
.
4. ?
.
.
.
.
5. ISIS ?
.
.
.
.
6. ?
.
. 90
.
.
7. ?
.
. 90
.
.

118

(1105-5203)

8. ?
.
.
.
. BUS
9. ?
.
.
.
. Bus
10. ?
.
.
.
. BUS
11. ?
.
.
.
.
12. ?
.
.
.
.
13. ?
.
.
.
.

119

(1105-5203)

14. ?
.
.
.
.
15. ARES ?
.
.
.
.
16. ?
.
.
.
.
17. ?
.
.
.
.
18. ?
.
.
.
.
19. ?
.
.
.
.

120

(1105-5203)

20. ?
.
.
.
.

121

122

(1105-5203)

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

123

(1105-5203)


1105-5203
3

.......................... ......................................................................

-......................................................................................................
...........................................................................................................
................ ................................................ .. ....................................

4 3 2 1

1.
2.
3.
4.
5.

4
3
2
1

=
=
=
=

90%
70%
50%
50%

.........................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...................................................................
(..................................................................)
......................................................

(1105-5203)

124

3
. PIC BASIC. :
, 2553.
Labcenter Electronics. ISIS Intelligent Schematic Input System User Manual. England :
Labcenter Electronics Ltd, 2546.
http://www.labcenter.co.uk 2 2553.

1.
2.
3.
4.
5.

(Proteus)

1.
2.
3.
4.
5.
6.

194

(1105-5203)

5.1
PIC
PIC
A
TRIS (Tri - State
Register) PIC16F877
TRISA = A BANK 1 85H
TRISB = B BANK 1 86H
TRISC = C BANK 1 87H
TRISD = D BANK 1 88H
TRISE = E BANK 1 89H
TRIS 0
1

TRISA = %00000000
TRISB = %11110000
4 RB0 - RB3
TRISC = %11000
RC3, RC4
TRISA.0 = 0

A
4 B RB4 - RB7
RC0 RC2
0 A (RA0)

ADCON1 A E PIC16F877
5.1
5.1 ADCON1

(1105-5203)

5.2 ADCON1

5.2 ADCON1 0 3 (PCFG0 PCFG3)

A
D /

ADCON1 = 7
= 011x A
ADCON1 = 0
= 0000 A ( RA4)

5.2
PIC
PIC 5.1

195

196

(1105-5203)

() 0

() 1

5.1
5.1 ()
1 +5 S1 0 0
5.1 ()
0 0 S1 1 +5
2
5.1 () PIC 1
0
0 IF

5.2.1
5.2 RE1 PIC16F877
RB7
1 +5
0 1.5 0

(1105-5203)

5.2 PIC16F877
1 5.2 S1 D1
S1
VAR PORTE.1
L1
VAR PORTB.7
TRISB = %00000000
TRISE = %111
ADCON1 = 7
PORTB = 0
LOOP: IF (S1 = 0) THEN HIGH L1
IF (S1 = 1) THEN LOW L1
PAUSE 50
GOTO LOOP
END
2 Jogging S1 D1
S1
VAR PORTE.1
L1
VAR PORTB.7
TRISB = %00000000

197

198

(1105-5203)

TRISE = %111
ADCON1 = 7
PORTB = 0
LOOP: IF S1 = 0 Then
HIGH L1
ELSE
LOW L1
ENDIF
PAUSE 50
GOTO LOOP
END
START

S1

LED

LED
50

5.3 Jogging
5.3 2 PIC16F877

S1 RA0 S2 RA1 D1
RB0 D2 RB7
S1 D1 S2
D2

(1105-5203)

5.4 2 PIC16F877

S1
VAR PORTA.0
S2
VAR PORTA.1
L1
VAR PORTB.0
L2
VAR PORTB.7
TRISA = %111111
TRISB = %00000000
ADCON1 = 7
PORTB = 0
LOOP: IF (S1 = 0) AND (S2 = 1) THEN HIGH L1
IF (S1 = 1) AND (S2 = 0) THEN HIGH L2
IF (S1 = 1) AND (S2 = 1) THEN
LOW L1
LOW L2
ENDIF
PAUSE 50
GOTO LOOP
END

199

(1105-5203)

5.2.2 Toggle

- Toggle

5.5 Toggle PIC16F877


S1 D1 S1 D1
S1 D1 Toggle TOGGLE
S1
VAR PORTE.1
L1
VAR PORTB.7
TRISB = %00000000
TRISE = %111
ADCON1 = 7
PORTB = 0
START:
IF S1 = 1 THEN GOTO START
TOGGLE L1
PAUSE 100

200

201

(1105-5203)

LOOP:

IF S1 = 0 THEN GOTO LOOP


PAUSE 100
GOTO START

END
5.2.3 (De Bounce)

1 - 10 mS. 5.6


10 50 mS.

5.6
(: PIC Microcontrollers: Know It All: 549)

(1105-5203)

5.7 PIC16F877
S1 L1 S1
S1 S1 L1 S1
S1
VAR PORTE.1
L1
VAR PORTB.0
TRISB = %00000000
TRISE = %111
ADCON1 = 7
PORTB = 0
START:
IF S1 = 1 THEN GOTO START
PAUSE 50
LOOP:
IF S1 = 0 THEN GOTO LOOP
TOGGLE L1
PAUSE 50
GOTO START
END

202

(1105-5203)

5.2.4


- , ,
2
1
2
1.
2.

5.8
1
S1
S2
K

VAR
VAR
VAR

PORTA.0
PORTA.1
BYTE

203

204

(1105-5203)

TRISA = %111111
TRISB = %00000000
ADCON1 = 7
PORTB = 0
LOOP:
IF (S1 = 0) AND (S2 = 1) THEN
PAUSE 50
K = K+1
PORTB = K
IF K = 255 THEN K = 254
ENDIF
IF (S1 = 1) AND (S2 = 0) THEN
PAUSE 50
IF K = 0 THEN K = 1
K = K-1
PORTB = K
ENDIF
PAUSE 150
GOTO LOOP
START
END
S1 S2 K
A
B

S1 S2
S1 = 0
S2 = 1?

K
K
B
K = 255 ?
K = 254

S1 = 1
S2 = 0?
K=0?
K=1
K
K
B
END

5.9

(1105-5203)

2 -
S1
VAR PORTA.0
S2
VAR PORTA.1
K
VAR BYTE
TRISA = %111111
TRISB = %00000000
ADCON1 = 7
PORTB = 0
Loop:
IF (S1 = 0) AND (S2 = 1) THEN
PAUSE 50
K = K+1
PORTB = K
IF K = 255 THEN K = 254
Idle1:
IF (S1 = 0) AND (S2 = 1) THEN Idle1
ENDIF
IF (S1 = 1) AND (S2 = 0) THEN
PAUSE 50
IF K = 0 THEN K = 1
K = K-1
PORTB = K
Idle2:
IF (S1 = 1) AND (S2 = 0) THEN Idle2
ENDIF
PAUSE 150
GOTO Loop
END
2 1
2

205

206

(1105-5203)

5.3 (Keypad)

, ,
,
(Row) (Column)

5.10 7 12
16 16 8 x 8
64

5.10

1. PIC 4
3

(1105-5203)

2. 3 1
4
3. 0 1 1, 2,
3, 4 0 1,
2, 3, 4 4 1 0

4. 4 3 1
1 0 2
1, 2, 3, 4 0
5, 6, 7, 8 0
5. 3 4
2 (Scan key)

5.11 4 x 3 PIC16F877

207

(1105-5203)

ROW1 VAR PORTD.0


ROW2 VAR PORTD.1
ROW3 VAR PORTD.2
COL1 VAR PORTD.4
COL2 VAR PORTD.5
COL3 VAR PORTD.6
COL4 VAR PORTD.7
NUM VAR BYTE
DISP VAR BYTE
TRISB = %00000000
TRISD = %11110000
NUM = 0
PORTB = 0
HIGH ROW1
HIGH ROW2
HIGH ROW3
'--------------------- Main Program --------------------START: GOSUB SCANKEY
PAUSE 50
GOTO START
END
'---------------------- Subroutines ---------------------SCANKEY:
LOW ROW1
IF COL1 = 0 THEN GOSUB NUM1
IF COL2 = 0 THEN GOSUB NUM2
IF COL3 = 0 THEN GOSUB NUM3
IF COL4 = 0 THEN GOSUB NUM4
HIGH ROW1 : LOW ROW2
IF COL1 = 0 THEN GOSUB NUM5
IF COL2 = 0 THEN GOSUB NUM6
IF COL3 = 0 THEN GOSUB NUM7
IF COL4 = 0 THEN GOSUB NUM8
HIGH ROW2 : LOW ROW3
IF COL1 = 0 THEN GOSUB NUM9

208

(1105-5203)

IF COL2 = 0 THEN GOSUB NUM0


IF COL3 = 0 THEN GOSUB NUM10
IF COL4 = 0 THEN GOSUB NUM11
HIGH ROW3
RETURN
'------------------------------------NUM1: NUM = 1
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM2: NUM = 2
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM3: NUM = 3
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM4: NUM = 4
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM5: NUM = 5
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM6: NUM = 6
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM7: NUM = 7
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP

209

210

(1105-5203)

PORTB = DISP
RETURN
'-------------------------------------NUM8: NUM = 8
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM9: NUM = 9
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM0: NUM = 0
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM10: NUM = 10
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'-------------------------------------NUM11: NUM = 11
LOOKUP NUM,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],DISP
PORTB = DISP
RETURN
'---------------------End of subroutine

1
5
9

2
6
0

3
7

4
8

5.12

(1105-5203)

219

5
3

1.
1
2.
1
*

PIC
PIC
A
TRIS (Tri - State
Register) TRIS 0
1

TRISA = %00000000
A
TRISB = %11110000
4 B RB4 - RB7
4 RB0 - RB3

1. 5.1 Microcode Studio


D:\\job5-1.pbp

(1105-5203)

220

5.1
@ DEVICE PIC16F877,HS_OSC,LVP_OFF,BOD_OFF,CPD_OFF,PROTECT_OFF,WDT_OFF

TRISB = %00000000
PORTB = %00000000
PAUSE 2000
PORTB = %10000000
END
START
B

2
B

END

5.1 5.1
2. job5-1.pbp job5-1.hex
3. 5.2

(1105-5203)

5.2 5.1
5.3

5.3

221

(1105-5203)

222

4. .HEX

5.

.
.
.
6.. 5.2 LED RB0
5.1 LED D1 5
7. 5.2 job5-2.pbp
job5-2.hex
5.2
@ DEVICE PIC16F877,HS_OSC,LVP_OFF,BOD_OFF,CPD_OFF,PROTECT_OFF,WDT_OFF

TRISB = %00000000
PORTB = %11110000
PAUSE 1000
PORTB = %00001111
END

START
B

1
B

END

5.4 5.2

(1105-5203)

8. 5.5

5.5 5.2
5.6

5.6

223

(1105-5203)

9. .HEX

10.

.
.
.

...

...
...
...
-..................................................................

224

(1105-5203)

251

1. 5.1 Microcode Studio


D:\\job5-1.pbp
5.1
@ DEVICE PIC16F877,HS_OSC,LVP_OFF,BOD_OFF,CPD_OFF,PROTECT_OFF,WDT_OFF

TRISB = %00000000
PORTB = %00000000
PAUSE 2000
PORTB = %10000000
END
START
B

2
B

END

5.1 5.1

(1105-5203)

2. job5-1.pbp job5-1.hex
3. 5.2

5.2 5.1
5.3

5.3

252

(1105-5203)

253

4. .HEX

5.

6.. 5.2 LED RB0


5.1 LED D1 5
7. 5.2 job5-2.pbp
job5-2.hex
5.2
@ DEVICE PIC16F877,HS_OSC,LVP_OFF,BOD_OFF,CPD_OFF,PROTECT_OFF,WDT_OFF

TRISB = %00000000
PORTB = %11110000
PAUSE 1000
PORTB = %00001111
END

(1105-5203)

254

START
B

1
B

END

5.4 5.2
8. 5.5

5.5 5.2

(1105-5203)

5.6

5.6
9. .HEX

10.

D0-D3 D4-D7 1 D0D3 D4-D7

TRIS 0
1

255

(1105-5203)

5
( x )
1. TRISA = %00000000
. A
. A
. A 0
. 0 A
2. TRISB = %11110000
. 4 B RB4 - RB7
. 4 B RB0 - RB3
. . .
.
3. >>
. 2
. 2
.
.
4. <<
. 2
.
.
. 2
5. ADCON1 = 0
. A ( RA4)
. A ( RA4)
. . .
.
6-8

278

(1105-5203)

6.
. 0
. 1
.
.
7.
. 0
. 1
.
.
8.
. IF (S1 = 0) THEN HIGH L1
. IF (S1 = 1) THEN HIGH L1
. IF (S1 0) THEN HIGH L1
.
9-10

9.
. 0
. 1
.
.
10.
. IF (S1 = 0) THEN HIGH L1
. IF (S1 = 1) THEN HIGH L1
. IF (S1 0) THEN HIGH L1
.

279

280

(1105-5203)

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

.
.
.
.
.
.
.
.
.
.

281

(1105-5203)

1105-5203
5

.......................... ......................................................................

-......................................................................................................
...........................................................................................................
................ ................................................ .. ....................................

4 3 2 1

1.
2.
3.
4.
5.

4
3
2
1

=
=
=
=

90%
70%
50%
50%

.........................................................................................................................................
...............................................................................................................................................................
...............................................................................................................................................................
...................................................................
(..................................................................)
......................................................

(1105-5203)

282

5
. PIC . :
(-), 2550.
. PIC BASIC. :
, 2553.
. PIC Microcontroller. :
, 2549.
Microchip Technology Incorporated. PIC16F87XA Data Sheet. U.S.A :
The Microchip Corporate Literature Center, 2546.
microEngineering Labs. PICBASIC PRO Compiler. Colorado U.S.A :
microEngineering Labs, 2545.
Lucio Di Jasio. PIC MICROCONTROLLERS : know it all. Massachusetts : Newnes, 2550.
Myke Predko. PROGRAMMING AND CUSTOMIZING THE PIC. New York :
McGraw-Hill, 2543.

You might also like