embedded system design - hcmutbmthanh/esd/ch5_p1.pdf · • the pic16f87x devices have a 13-bit...
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/1.jpg)
ĐẠ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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022040323/5e6863386613a83feb0d185a/html5/thumbnails/26.jpg)
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