PIC16 Microcontrollers, Unit 3, Ch 2.1-2.2; Block Diagram & Status Register

Clint Halsted
20 Aug 201218:47

Summary

TLDRClint Halstead's lecture introduces the PIC mid-range family of microprocessors, focusing on the PIC16F877A. The lecture covers the architecture, memory types including SRAM, EEPROM, and program memory, as well as special function registers. It highlights the simplicity of the 16F84A as a learning platform due to its direct applicability to larger microprocessors. The differences between various models, including the 16F84A, 16LF80A, and 16F87, are discussed, emphasizing the increased capabilities of the latter. The lecture also touches on the importance of the status register in indicating the result of ALU operations.

Takeaways

  • 😀 The lecture is an introduction to microprocessors, focusing on the PIC mid-range family and specifically the 16F84A model.
  • 📚 The reference material for the lecture is 'Microprocessors and Microcontrollers: Applications and Programming' by Tim Worrell, specifically the second edition.
  • 💡 The 16F84A is chosen for its simplicity, making it easier for students to learn the fundamentals applicable to more complex microprocessors.
  • 🔢 The 16F84A has 18 pins, operates at up to 20 megahertz, and includes 1k of program memory, 68 bytes of RAM, and 64 bytes of EEPROM.
  • 🔌 The microprocessor features include an 8-bit timer, a 5-bit parallel port, and in-circuit serial programming (ISP).
  • 🚀 Learning starts with the 16F84A and progresses to more advanced models like the 16F87 and 88, which add more peripherals.
  • 🔋 The 16F87 model increases program memory to 4k, RAM to 368 bytes, and EEPROM to 256 bytes, and adds additional features like two parallel ports and more peripherals.
  • 🔧 The 16F84A-4 variant has a different clock range, only going up to 4 megahertz, and an extended supply voltage range.
  • 🔄 The 16F84 has a 10-bit ADC with multiplex capabilities, allowing one ADC to switch between different channels.
  • 🔗 The block diagram of the 16F84A shows enhancements over previous models, including a 13-bit address bus and an increased stack level.
  • 🛠 The status register is crucial for indicating the result of ALU operations, with specific bits for zero, digital carry, and carry out.

Q & A

  • What is the main topic of Clint Halstead's lecture?

    -The main topic of Clint Halstead's lecture is an introduction to microprocessors, specifically focusing on the PIC mid-range family and the 16F877A microcontroller from the book 'Microprocessors and Microcontrollers: Applications and Programming' by Tim Worrell.

  • Why is the 16F84A microcontroller chosen for the class?

    -The 16F84A microcontroller is chosen for the class because it is one of the simplest chips, making it easier for students to learn the fundamentals of microprocessors. The knowledge gained from studying this microcontroller is directly applicable to larger microprocessors as it forms part of their core.

  • What are the three different memory areas mentioned in the lecture?

    -The three different memory areas mentioned in the lecture are SRAM (Static Random Access Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), and Program Memory (flash memory).

  • What does ISP stand for in the context of the 16F84A microcontroller?

    -ISP stands for In-Circuit Serial Programming, which is a feature of the 16F84A microcontroller that allows for programming the device through two pins using a USB module connected to a computer.

  • What are the differences between the 16F84A and the 16LF80A?

    -The main difference between the 16F84A and the 16LF80A is the extended supply voltage range in the 16LF80A. Everything else, such as the number of pins, program memory, and features, remains the same.

  • How does the 16F877A differ from the 16F84A in terms of program memory and peripherals?

    -The 16F877A has quadruple the program memory compared to the 16F84A, allowing for larger code. It also has significantly more RAM, increased EEPROM size, and additional peripherals such as two parallel ports, three counter timers, a capture compare PWM module, two serial communication modules, and two download comparators.

  • What is the purpose of the status register in a microcontroller?

    -The status register in a microcontroller is used to indicate the results of arithmetic or logic operations, such as whether there was an overflow (carry), whether the result is zero, and other condition code flags that help in understanding the outcome of operations performed by the ALU (Arithmetic Logic Unit).

  • What is the significance of the 'C' bit in the status register?

    -The 'C' bit in the status register signifies a carry out from the most significant bit of the result. It is set to 1 if an overflow occurs during an arithmetic operation, indicating that the result is too large for the W register to hold accurately.

  • What is the role of the W register in the microcontroller?

    -The W register, also known as the working register, serves as a scratchpad register where the results of ALU operations, such as addition, subtraction, and logical operations, are stored temporarily.

  • How does the block diagram of the 16F84A differ from the 12F508 part discussed in chapter 1?

    -The block diagram of the 16F84A has a 13-bit address bus compared to the 12-bit address bus of the 12F508. It also has an increased program memory of 1K, an additional level in the stack, and an EEPROM section for non-volatile data storage.

  • What is the difference between RAM and EEPROM in terms of data retention?

    -RAM is volatile memory, meaning data stored in it will be lost when power is disconnected. In contrast, EEPROM is non-volatile memory, retaining data even when the power is turned off.

Outlines

00:00

📘 Introduction to Microprocessors and PIC Mid-Range Family

Clint Halstead introduces the lecture on microprocessors, focusing on the PIC mid-range family, specifically the 16F877A. The lecture is based on Tim Worrell's book, 'Microprocessors and Microcontrollers: Applications and Programming', and covers chapters on the PIC mid-range family and the 16F84A. The 16F84A is chosen for its simplicity, making it an ideal starting point for learning, with its features applicable to more complex microprocessors. The chip has 18 pins, operates up to 20 MHz, and includes 1k of program memory, 68 bytes of RAM, and 64 bytes of EEPROM. The lecture will delve into the technical architecture, memory, status registers, and various other aspects of the microprocessor, but will only cover the first two sections of the book.

05:01

🔌 Enhanced Features of the PIC 16F Microprocessors

The second paragraph delves into the enhanced features of the PIC 16F microprocessors, including the 16F84A and its variants. The 16F84A has been expanded to include more peripherals and advanced technology, such as two parallel ports, three counter timers, capture compare PWM modules, two serial communication modules, and nano watt technology. It also includes a software-selectable oscillator block and in-circuit serial programming. The 16F84A-4 variant has a different clock range, while the 16F87 increases program memory and RAM, and adds more peripherals. The paragraph also discusses the pin connections and features of the 16F microprocessors, such as dedicated master clear and oscillator pins, and the addition of an interrupt pin.

10:01

💾 Memory and I/O Features of the PIC 16F Microprocessors

This paragraph discusses the memory and I/O features of the PIC 16F microprocessors, highlighting the distinction between program code stored in flash memory and data stored in RAM, which is volatile and lost when power is disconnected. The EEPROM is introduced as a non-volatile memory that retains data even when power is off. The paragraph also explains the 13-bit address bus and the increase in memory from 52K to 1K, as well as the addition of an eighth level stack. The I/O ports are described, with the LSB of port B shared with the interrupt feature, and the status register is introduced, which includes condition code flags to indicate overflow and other arithmetic results.

15:02

🛠 Status Register and Microprocessor Block Diagram

The final paragraph focuses on the status register and the block diagram of the microprocessor. The status register's role in indicating the result of arithmetic or logic operations is explained, with emphasis on the zero, carry, and other condition code flags. The block diagram is used to illustrate the flow of data and instructions within the microprocessor, including the instruction register, RAM registers, and decode register. The lecture concludes with a mention of continuing the discussion in the next video series, highlighting the importance of understanding the microprocessor's architecture for effective programming and application.

Mindmap

Keywords

💡Microprocessors

Microprocessors are the central processing units of computers and other digital devices, performing the basic arithmetic, logic, and control operations. In the video, the lecturer is introducing the concept of microprocessors, specifically focusing on the PIC mid-range family, which is central to the theme of understanding the architecture and application of these devices.

💡PIC16F877A

The PIC16F877A is a specific model of microcontroller from the PIC family, used in the lecture as a reference point for teaching the basics of microprocessors. It is highlighted as a simple yet fundamental model that forms the basis for understanding more complex microprocessors, making it a key concept in the script.

💡Memory

Memory in the context of the video refers to the various types of storage within a microcontroller, including program memory, SRAM, EEPROM, and data memory. It is a fundamental concept as it explains how data and program instructions are stored and accessed within the microcontroller, crucial for its operation.

💡Status Register

The status register is a key component in microcontrollers that holds information about the results of the most recent operation, such as whether the result was zero or if there was a carry from an arithmetic operation. In the script, it is used to illustrate how the microcontroller manages and records the state of its operations.

💡SRAM

SRAM, or Static Random Access Memory, is a type of volatile memory used in microcontrollers for temporary data storage. The script mentions it as part of the memory architecture of the microcontroller, emphasizing its role in storing data that is lost when power is removed.

💡EEPROM

EEPROM stands for Electrically Erasable Programmable Read-Only Memory, a type of non-volatile memory that retains data even when power is off. The video discusses EEPROM as a part of the microcontroller's memory where data can be stored permanently, contrasting it with SRAM.

💡Program Memory

Program memory is where the microcontroller stores its program code, which is non-volatile and retains the code even when power is off. The script distinguishes program memory from data memory, highlighting its importance in storing the instructions that the microcontroller executes.

💡Special Function Registers

Special function registers are dedicated registers within a microcontroller that control specific functions or features. The script mentions these as part of the microcontroller's architecture, indicating their role in managing various operations and configurations.

💡Oscillator

An oscillator in the context of microcontrollers refers to the component that provides the clock signal, which is essential for the timing of operations within the device. The script discusses the oscillator as part of the microcontroller's configuration, showing its importance in setting the operational frequency.

💡Power-On Reset

Power-On Reset (POR) is a mechanism that resets the microcontroller to its initial state when power is applied. The script briefly mentions this concept, indicating it as part of the microcontroller's startup sequence and its role in ensuring the device begins operations correctly.

💡Interrupt

An interrupt is a signal that temporarily halts the normal flow of instructions within a microcontroller to allow a high-priority task to be executed. The script mentions the interrupt pin, indicating the microcontroller's capability to handle external events that require immediate attention.

Highlights

Introduction to microprocessors with a focus on the PIC mid-range family.

Discussion of the PIC16F877A microcontroller and its application in learning due to its simplicity and foundational role in understanding more complex microprocessors.

Explanation of the 16F84A microcontroller's features, including its 18 pins, 20 MHz operation, and memory configurations.

The direct applicability of knowledge gained from studying the 16F84A to more advanced microprocessors with additional peripherals.

Introduction to the different memory areas of the 16F84A: program memory, SRAM, EEPROM, and their respective sizes.

Description of the 16F84A's peripherals, such as an 8-bit timer, parallel ports, and in-circuit serial programming (ICSP).

Comparison between the 16F84A and its variants, such as the LF and A-4 versions, highlighting differences in voltage range and clock speed.

Detailed comparison of the 16F87 with the 16F84A, emphasizing the increased program memory, RAM, EEPROM, and additional peripherals.

Introduction of advanced features in the 16F87, such as counter timers, capture compare PWM module, and serial communication modules.

Explanation of the nano watt technology and software selectable oscillator block in the 16F87 for improved power efficiency and flexibility.

Overview of the 16F848's additional features, including 10-bit ADC channels and their multiplexing capabilities.

Discussion on the importance of the master clear and dedicated oscillator pins for improved functionality and ease of use.

Introduction to the block diagram of the 16F84A, outlining its core components and their interconnections.

Explanation of the 13-bit address bus and its enhancement over previous models with a 12-bit address bus.

Description of the EEPROM section, its purpose, and how it differs from volatile RAM in terms of data retention.

Importance of the status register in indicating the result of ALU operations and its role in managing condition code flags.

Overview of the lecture's continuation in a subsequent video series, indicating ongoing education on the topic.

Transcripts

play00:00

hello this is Clint Halstead and I am

play00:04

giving a lecture on introduction to

play00:08

micro processors and I will be using

play00:13

will be discussing pic16f877a plication

play00:35

second edition by Tim Worrell sureste

play00:41

this chapter is chapter two introducing

play00:45

the pic mid-range family and the sixteen

play00:47

f-84 a this chapter aims to introduce

play00:53

the pig mid-range family to talk about

play00:57

the overall tech architecture of the 16

play00:59

f-84 a the memory things like status

play01:06

register SRAM

play01:08

EEPROM doli prom program memory stacked

play01:12

special function registers addressing

play01:16

configuration word oscillator pipelining

play01:20

power on reset reset master clear

play01:25

powerup timing

play01:26

this lecture will only cover the first

play01:29

two sections of the book so let's let's

play01:31

get started ok so it's after 29 in the

play01:38

book it shows a table of several

play01:42

different parts this list shown here is

play01:46

not exhaustive is not the exact one of

play01:48

the book it only shows the first few but

play01:51

the first part we'll talk about is the

play01:53

16 f-84 a now this is the chip we're

play01:58

going to start using in the class

play02:01

it's the reason we're using is because

play02:04

it's one

play02:05

the simplest chips and by using this

play02:08

simple chip it's going to make it easier

play02:13

to learn but everything you learn about

play02:16

this small smaller microprocessor is

play02:19

directly applicable to the larger

play02:21

microprocessors and it forms actually a

play02:25

part of it so the larger processors have

play02:28

more peripherals but the everything else

play02:34

is the same that the the core of the

play02:36

processor is the same the fundamentals

play02:41

of how the stack work how the random

play02:42

work all that stuff is the same the

play02:44

commands the coding is exactly the same

play02:47

so we can learn off of the simpler part

play02:50

so it's not too overwhelming you and

play02:51

then once we once we get finished

play02:55

learning about how the this simpler chip

play02:58

works then we will go up to the more

play03:02

difficult parts more advanced parts like

play03:04

the 16 F 87 and 88 which simply just

play03:09

adds other peripherals so if we look

play03:15

here the 16 f84 a has 18 pins operates

play03:20

up to 20 megahertz as 1k of program

play03:25

memory 68 bytes of RAM and 64 bytes of

play03:28

double EEPROM so these represent the

play03:31

three different memory areas it also has

play03:34

a one 8-bit timer a five-minute parallel

play03:39

port and an 8-bit parallel port it also

play03:42

has in circuit serial programming that's

play03:47

what the ISP stands for in circuit

play03:49

serial programming okay now when we go

play03:53

up to the LF part 16 and LF 80 for a

play03:58

everything is the same except the

play04:02

voltage has extended supply voltage

play04:05

range okay and

play04:10

then when we move on to the sixteen f-84

play04:14

a - four it's the same but it has a

play04:17

different clock range so the a - oh four

play04:21

only goes up to four megahertz with this

play04:26

when we go to the 16 F 87 then

play04:30

everything else is this depends are the

play04:32

same the clock speed is the same as the

play04:34

84 but we we quadruple the program

play04:39

memory so now you're able to code a

play04:42

larger assembly language code or C code

play04:45

whatever you're using also the number

play04:48

the file registers also called ram has

play04:52

been increased significantly to 368

play04:55

bytes

play04:57

also the doubling prompt size has

play05:00

quadrupled to 256 bytes okay

play05:05

also we've added quite a few more

play05:08

peripherals and advanced technology so

play05:11

notice that we have now two parallel

play05:14

ports we have whereas before we had one

play05:22

full parallel port and then a partial on

play05:24

the other parallel port usually you know

play05:26

eight bits is considered a full parallel

play05:28

port so we have two full or we still

play05:33

have actually we still have two parallel

play05:35

ports as before but now we have three

play05:38

counter timers instead of one we have to

play05:42

capture compare PWM module switch before

play05:44

we had none we have two serial

play05:47

communication modules which before again

play05:50

we had none to download comparators

play05:53

which in the 84 again had none it also

play05:57

has the nano nano watt technology which

play05:59

is an improvement over the 84 we have a

play06:03

software selectable oscillator block so

play06:07

we can select our oscillator in software

play06:10

programming by using this code or some a

play06:14

similar language code to select the

play06:16

oscillator block so that's a big

play06:17

advantage and again we still have the

play06:20

insert

play06:21

get serial programming this just allows

play06:23

you to program the part through two pins

play06:26

clocking data using your your USB module

play06:32

that connects to your computer so it's a

play06:36

picot 2 or picot 3 or whatever whatever

play06:38

you're using

play06:41

then notice when you go to the 16 f-84

play06:44

part you don't have 18 pins you still

play06:47

have the 20 megahertz memories the same

play06:50

but you add these 10-bit ADC channels so

play06:56

you have 7 10-bit ADC channels so those

play07:00

7 channels are MUX so it's not actually

play07:03

seven individual it's not seven

play07:06

enlarging dodol converters inside the

play07:08

chip it's actually one analog to digital

play07:10

converter but it's it's multiplex so

play07:12

that you can switch channels between

play07:14

pins so now the book talks about several

play07:19

other different packages it talks about

play07:20

the a 73 I'm sorry the 1680 73 16 f8 76

play07:29

16 M 874 1608 77 and even the 16 f8 8x

play07:37

parts and you can look at the book on

play07:41

pages 29 30 for those also here this

play07:49

slide is showing the pink connection

play07:51

diagram notice that the first chip we

play07:57

looked at was a a 12 F part which was in

play08:02

chapter 1 so if you go back to chapter 1

play08:05

you can pair that's on page 18 you'll be

play08:09

able to see that the 12 F 508 part only

play08:16

had 8 pins

play08:17

and many of those pins were had

play08:19

multifunction pen so that so for example

play08:23

the 12 F 508 on page 18 had a Matt had a

play08:31

master clear but it was shared with VPP

play08:34

and on purpose GP 3 so notice on this

play08:40

this part we have a dedicated master

play08:44

clear right here on pan 1 2 3 4 pin 4 of

play08:49

the master clear so that's that's a nice

play08:53

feature also we have noticed that we

play08:56

have a dedicated oscillator pins and

play09:00

clock pans whereas before these pins

play09:03

were shared with some other like output

play09:08

pins input output pins so that's a

play09:14

that's a really nice feature to have so

play09:16

you're going to have to use up your

play09:17

parallel port pins for your clock or

play09:19

oscillator also notice on this chip that

play09:24

you have also we've added an interrupt

play09:26

pin this int which we'll talk about

play09:28

interrupts later but on the RB 0 through

play09:33

7 is called port B so this makes that

play09:37

port B pin 7 8 9 10 11 12 13 it's

play09:44

considered port B and then we have a

play09:47

port a which is 17 18 1 2 and pin 1 2

play09:53

and 3 that gives us port a so it's a 5

play09:57

bit of course we have supply voltage VDD

play10:01

and then we have ground VSS and that

play10:03

makes up pretty much all the pins ok

play10:10

all right so and this chip is the 16

play10:15

f-84 8 by the way which is going to be

play10:19

the first chip that we talked about and

play10:22

we've got to get some examples in coding

play10:24

in the class so now if we look at the

play10:27

block diagram for this 16 f-84 a we can

play10:33

see that it has basically the same

play10:37

features as the the 12 F part that we

play10:41

saw in chapter 1 but we've seen a few

play10:45

and a few enhancements will talk about

play10:47

those just a little bit first off we

play10:51

went to a 13 bit address bus whereas

play10:57

before we had a 12 so that's one of the

play11:00

first things we noticed here

play11:02

also if you look on page 20 and compared

play11:05

to the 12 F 508 part well we only had

play11:09

five 12km memory but here we have one K

play11:12

of memory so that that has been

play11:14

increased as well also we've added an

play11:20

eighth level stack whereas before we

play11:22

only had two okay also we have added an

play11:31

EEPROM section this is a electronic

play11:35

electronically erasable programmable

play11:37

read-only memory that's what W problem

play11:40

stands for and it's connected here to

play11:43

the data bus so you can you can send a

play11:45

data word here from the data bus and you

play11:48

can send the data address and you can

play11:50

access your EEPROM this is data you can

play11:54

store to the chip that will will not go

play11:57

away when power is removed from the chip

play11:59

now any day that you have in the RAM

play12:02

will go away when the power is

play12:04

disconnected okay so many times here in

play12:07

the EEPROM we may want to store messages

play12:09

like hello this is rocket sassy program

play12:16

rocket or

play12:17

something like that or maybe your name

play12:18

or the name of your project whereas your

play12:23

your seat code or your assembly language

play12:25

code is going to go in your flash memory

play12:27

here now this is non-volatile as well

play12:29

which means this memory will be retained

play12:32

when you turn the power off so the flash

play12:34

memory and the EEPROM memory will be

play12:38

remembered when power goes away when you

play12:41

flip the off switch on or when you put

play12:45

the off switch the only thing that's

play12:47

going to go away is your RAM okay so

play12:49

this is the memory that goes away when

play12:51

you turn off power this stores your your

play12:55

C code or your assembly language code

play12:57

this stores data so we make a

play13:00

distinction between program code and

play13:03

data okay another thing too I want to

play13:10

highlight here is you have your four

play13:14

bits of i/o ports so this is called your

play13:19

port a our a 3 to our a 0 as for bits

play13:24

and then we have our B 0 to our b7

play13:28

that's port B notice that the int and

play13:33

external interrupts can be is

play13:35

multifunction with our B 0 so the LSB of

play13:39

our port the port B is shared with

play13:43

interrupt feature if you want so this

play13:46

would be selected in your software you

play13:47

have to select what feature you want

play13:49

inside of your software code which would

play13:51

be configured up here so I get last week

play13:57

we talked about master clear and your

play14:00

power up power on reset your oscillator

play14:02

and all that stuff so I'm not going to

play14:03

talk

play14:03

that again I do want to highlight just

play14:06

one more time your W register your W

play14:10

register is your scratch pad registers

play14:15

sometimes called and it's the result of

play14:18

your ALU so your ALU is your arithmetic

play14:23

logic unit which is the result of any

play14:26

addition subtraction and or whatever

play14:29

logic functions is gonna be in the

play14:31

Debbie register if you can imagine you

play14:38

the results your neww register you can't

play14:41

really there's more information that you

play14:44

may need other than just a result for

play14:46

example if you month if you add to two

play14:49

numbers here Nate bit number another

play14:51

8-bit number it is possible that that

play14:55

number could overflow and that the

play14:59

values could in the W register could be

play15:02

incorrect if you go back to binary

play15:05

addition it's possible if you add you

play15:09

know it for example a number of you know

play15:14

250 plus 100 while you would go above

play15:17

256 so you're you only have 8 bits on

play15:21

your W register so your result in the W

play15:23

register may be incorrect so we need to

play15:26

have a way of indicating whether or not

play15:29

you overflow your W register so the way

play15:34

we do that is with what's called a

play15:37

status register and you can see that

play15:38

right here so we want to talk a little

play15:41

bit about the status register today

play15:48

so your status register looks like this

play15:54

it has eight bits and we want to talk

play15:57

about the first three bits that has

play16:01

tells you whether result in the in your

play16:04

W register is zero or not so if your

play16:06

result is zero that's going to be

play16:07

indicated by this bit zero one two so

play16:10

this bit Fitzie it's called bit too

play16:13

it says the result of and if arithmetic

play16:16

or logic operation is zero so if that is

play16:19

set to one then you have the W register

play16:22

is 0 otherwise it would be if this bit

play16:27

is set to 0 that means well the result

play16:28

is not zero and four bit 1 which is a

play16:34

bit one this is called a digital era and

play16:38

this means that a carry from the fourth

play16:40

low order bit of the result occurred so

play16:44

I carry out from the 4th low order bit

play16:47

of there's over code let's talk about

play16:49

the 4th loader bid is the 4th loader low

play16:52

order bit of the W register ok and then

play16:56

ik and then bit 0 which is the C bit

play16:59

here is the carry bar a bit it means

play17:03

that they carry out from the most

play17:05

significant bit of result occurred

play17:06

occurred so that would be like if you

play17:09

added two numbers that were too large

play17:10

for the W register and if you added

play17:14

those numbers then you would have a bit

play17:16

shift out of the the most significant

play17:19

bit position and the result of being

play17:22

correct so you need to know that so this

play17:24

C bit should be a 1 if that occurs ok so

play17:29

these are called your condition code

play17:31

flags that's called the status register

play17:32

again the status register is located

play17:34

here in the block diagram ok

play17:39

also I'm just wanting to be tell a

play17:42

little bit more about the block diagram

play17:44

notice that the in the flash memory the

play17:47

instruction word here flows out here

play17:51

this is where the address comes into the

play17:53

flash memory this is where the data

play17:56

comes out so this is a 14 bit

play17:58

and it comes into this instruction

play18:01

register and then from instruction

play18:04

register like we talked about last week

play18:06

you have you have a literal data that

play18:11

flows along this line you have address

play18:13

information that flows along this line

play18:15

gets mixed into your RAM registers and

play18:18

then you have instruction information

play18:20

that flows into the decode register ok

play18:24

so that is it for sections 1 and 2 of

play18:31

the room source textbook and this

play18:35

lecture will be continued in a next

play18:38

video series thank you

Rate This

5.0 / 5 (0 votes)

Связанные теги
MicroprocessorsPIC Family16F877ALecture SeriesMicroprocessor ArchitectureProgramming BasicsEmbedded SystemsTech EducationClint HalsteadMicrochip
Вам нужно краткое изложение на английском?