embedded system design - hcmutbmthanh/esd/ch5_p1.pdf · • the pic16f87x devices have a 13-bit...

26
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐIỆN TỬ Bùi Minh Thành – Bộ Môn Kỹ Thuật Điện Tử - ĐHBK 1 Embedded System Design Chapter 5: PIC 16F877A

Upload: others

Post on 10-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN KỸ THUẬT ĐIỆN TỬ

Bùi Minh Thành – Bộ Môn Kỹ Thuật Điện Tử - ĐHBK 11

Embedded System Design

Chapter 5: PIC 16F877A

Page 2: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

References

• Martin Bates, “Programming 8-bit PIC Microcontrollers in C”, Newnes, 2008

• PIC 16F877A datasheet

• PIC C Help

2

Page 3: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Outline

1.Overview of PIC 16F877A

2.PIC C input and output

3

Page 4: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

1. PIC 16F877A

• Elements of Digital Controller

4

Page 5: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

1. PIC 16F877A

• The most significant variation among PIC chips is the instruction size, which can be 12, 14, or 16 bits.

• The PIC16F877A is useful as a reference device because it has a minimal instruction set (35 inst) but a full range of peripheral features.

• The A suffix indicates that the chip has a maximum clock speed of 20MHz, the main upgrade from the original 16F877 device.

5

Page 6: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

1. PIC 16F877A

6

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U2

PIC16F877A

Page 7: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

1. PIC 16F877A

7

Page 8: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

1. PIC 16F877A

8

Page 9: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Memory organization

• The Program Memory and Data Memory have separate buses so that concurrent access can occur.

• The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space.

• The data memory is partitioned into multiple banks which contain the General Purpose Registers and the Special Function Registers. Bits RP1 (STATUS<6>) and RP0 (STATUS<5>) are the bank select bits.

9

Page 10: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Memory organization

• Program memory map and stack

10

Page 11: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Memory Organization

• PIC16F877 Register Map

11

Unimplemented data

locations, read as „0‟

* Not a physical register

Page 12: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK 12

Special

Function

Register

Map

Page 13: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK 13

Special

Function

Register

Map

Page 14: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK 14

Special

Function

Register

Map

Page 15: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK 15

Instruction

set

Page 16: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2. PIC C input and output

2.1. Serial LCD and RS232

2.2. Keypad and calculator

16

Page 17: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.1. Serial LCD and RS232

17

Page 18: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.1. Serial LCD and RS232

18

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

VSS

RXD

VDD

LCD1

MILFORD-2X16-BKP

Page 19: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.1. Serial LCD and RS232

19

Essential Control Codes for Serial

2x16 LCD:

Output Format Codes:

Ex: %5.3d:

displays a decimal number with five

significant digits and three decimal

places

Page 20: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.2. Keypad and calculator

• The rows, labeled A, B, C, and D, are connected as outputs at Port B, avoiding the programming pins. The columns, labeled 1, 2, 3, and 4, are connected as inputs on Port D and are pulled up to 5V by 10-k resistors. A serial LCD, described previously, is driven from pin 7 of Port D.

• To read the keypad, each row is set low in turn and the state of the inputs tested. If no button is pressed, all the inputs remain high. When a key is operated, a low on that row is detected on the column input for that key, which allows a corresponding code to be generated. This is a binary number or ASCII code.

20

Page 21: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.2. Keypad and calculator

21

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

1 2 3

654

8 9

=

7

++CON 0

A

B

C

D

1 2 43

VSS

RXD

VDD

LCD1

MILFORD-2X16-BKP

R110k

R210k

R310k

R410k

Page 22: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

2.2. Keypad and calculator

22

A program used to scan keypad attached to port D

Page 23: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Exercises 1

23

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

VSS

RXD

VDD

LCD1

MILFORD-2X16-BKP

Write a program that displays “Hello World”, “My name is A” on 2 lines of Serial

LCD.

Page 24: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Exercises 2

24

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

24%

RV1

1k

OFFON

1

2

3

4

5

6

7

8

9

DSW1

DIPSWC_8

OFFON1

2

3

4

5

6

7

8

9

DSW2

DIPSWC_8OFFON1

2

3

4

5

6

7

8

9

DSW3

DIPSWC_8

VSS

RXD

VDD

LCD1

MILFORD-2X16-BKP

Page 25: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Exercises 2

Exercise 2.1 Write a program that solves the first order equation

ax + b = 0. Note that a, b are inputted from port B, C, repectively. The result are displayed on the serial LCD

25

Exercise 2.2 Write a program that solves quadratic equation

ax2 + bx + c = 0. Note that a, b, c are inputted from port B, C, D repectively. The result are displayed on the serial LCD

Page 26: Embedded System Design - HCMUTbmthanh/ESD/Ch5_p1.pdf · • The PIC16F87X devices have a 13-bit program counter capable of addressing an 8K x 14 program memory space. • The data

Bùi Minh Thành - Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Exercises 3

26

A7

A7

L0

L7

A6

A4

A3

A1

A2

A0

A0

A1

A2

A3

A4

A5

A6

L1

L2

L3

L4

L5

L6

L7

L0

L1

L2

L3

L4

L5

L6

C7

C3

C0

C1

C2

C4

C5

C6

C7

C6 C

5

C4 C

3 C1

A5

C0

C2

RA0/AN02

RA1/AN13

RA2/AN2/VREF-/CVREF4

RA4/T0CKI/C1OUT6

RA5/AN4/SS/C2OUT7

RE0/AN5/RD8

RE1/AN6/WR9

RE2/AN7/CS10

OSC1/CLKIN13

OSC2/CLKOUT14

RC1/T1OSI/CCP216

RC2/CCP117

RC3/SCK/SCL18

RD0/PSP019

RD1/PSP120

RB7/PGD40

RB6/PGC39

RB538

RB437

RB3/PGM36

RB235

RB134

RB0/INT33

RD7/PSP730

RD6/PSP629

RD5/PSP528

RD4/PSP427

RD3/PSP322

RD2/PSP221

RC7/RX/DT26

RC6/TX/CK25

RC5/SDO24

RC4/SDI/SDA23

RA3/AN3/VREF+5

RC0/T1OSO/T1CKI15

MCLR/Vpp/THV1

U1

PIC16F877A

R110k

2

3

4

5

6

7

8

9

1

RP1

RESPACK-8

D1LED-BIRY

D2LED-BIRY

D3LED-BIRY

D4LED-BIRY

D5LED-BIRY

D6LED-BIRY

D7LED-BIRY

D8

LED-BIRY

A7

QA13

B1

QB12

C2

QC11

D6

QD10

BI/RBO4

QE9

RBI5

QF15

LT3

QG14

U2

74LS47

100%

RV1

1k

+88.8

Volts

+88.8

Volts