0% found this document useful (0 votes)
51 views

單晶片控制 Design with Microcontrollers

This document provides an introduction to microcontroller design using the 8051 microcontroller. It outlines the course details, including topics, textbook, meeting times and location, evaluation methods, and course website. The course topics include introduction to computing, 8051 assembly language programming, I/O port programming, interrupts programming, and interfacing the 8051 to external memory, keyboards and LCDs.

Uploaded by

Colesha Baruka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views

單晶片控制 Design with Microcontrollers

This document provides an introduction to microcontroller design using the 8051 microcontroller. It outlines the course details, including topics, textbook, meeting times and location, evaluation methods, and course website. The course topics include introduction to computing, 8051 assembly language programming, I/O port programming, interrupts programming, and interfacing the 8051 to external memory, keyboards and LCDs.

Uploaded by

Colesha Baruka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 49

單晶片控制

Design with Microcontrollers


課本: The 8051 Microcontroller: A Systems Approach, M. A.
Mazidi, J. G. Mazidi, R. D. McKinlay, Int‘l ed. Pearson
Education, 2013 ( 全華圖書代理 )
上課時間:星期一下午 6,7,8 節
上課地點: EE207
實習地點: PC 教室
評量方式 :課堂表現 5% 、實習 15% 、上機考二次 30% 、期中
考 ( 筆試 ) 25% 、期末考 ( 筆試 ) 25%
課程網頁: http://ares.ee.nchu.edu.tw/Course.files/mpr106/
大綱
1. INTRODUCTION TO COMPUTING
2. THE 8051 MICROCONTROLLERS
3. 8051 ASSEMBLY LANGUAGE PROGRAMMING
4. I/O PORT PROGRAMMING
5. ARITHMETIC, LOGIC INSTRUCTIONS, AND
PROGRAMS
大綱 ( 續 )
6. 8051 HARDWARE CONNECTION
7. 8051 TIMER PROGRAMMING
8. 8051 SERIAL PORT PROGRAMMING
9. INTERRUPTS PROGRAMMING
10. 8051 INTERFACING TO EXTERNAL MEMORY
11. KEYBOARD AND LCD INTERFACING
CHAPTER 0

INTRODUCTION TO
COMPUTING
Decimal and Binary Number
Systems
Human beings use base 10 (decimal)
arithmetic
◦ There are 10 distinct symbols, 0, 1, 2, …, 9
Computers use base 2 (binary) system
◦ There are only 0 and 1
 These two binary digits are commonly referred to as
bits
Converting from Decimal to
Binary
Divide the decimal number by 2
repeatedly
Keep track of the remainders
Continue this process until the quotient
becomes zero
Write the remainders in reverse order to
obtain the binary number
Converting from Decimal to
Binary (cont.)
Converting from Binary to Decimal

Know the weight of each bit in a binary


number
Add them together to get its decimal
equivalent
Converting from Binary to Decimal
(cont.)
Use the concept of weight to convert a
decimal number to a binary directly
Hexadecimal
System
Base 16, the hexadecimal
system, is used as a
convenient representation
of binary numbers
◦ It is much easier to
represent a string of 0s and
1s such as 100010010110
as its hexadecimal
equivalent of 896H
Converting between Binary and
Hex
To represent a binary number as its
equivalent hexadecimal number
◦ Start from the right and group 4 bits at a time
 Replacing each 4-bit binary number with its hex
equivalent
Converting between Binary and
Hex (cont.)
To convert from hex to binary
◦ Each hex digit is replaced with its 4-bit binary
equivalent
Converting from Decimal to Hex

Convert to binary first and then convert to


hex
Convert directly from decimal to hex by
repeated division
◦ Keeping track of the remainders
Converting from Decimal to Hex
(cont.)
Converting from Hex to Decimal
Convert from hex to binary and then to
decimal

Convertdirectly from hex to decimal by


summing the weight of all digits
◦ 6 × 256 + 11 (B) × 16 + 2 = 1714
Addition of Hex Numbers
Adding the digits together from the least
significant digits
◦ If the result is less than 16, write that digit as
the sum for that position
◦ If it is greater than 16, subtract 16 from it to
get the digit and carry 1 to the next digit
Subtraction of Hex Numbers
Ifthe second digit is greater than the first,
borrow 16 from the preceding digit
ASCII Code
The ASCII (pronounced “ask-E”) code
assigns binary patterns for
◦ Numbers 0 to 9
◦ All the letters of English alphabet, uppercase
and lowercase
◦ Many control codes and punctuation marks
The ASCII system uses 7 bits to represent
each code
ASCII Code (cont.)
Binary Logic
Two voltage levels can be represented as
the two digits 0 and 1
◦ Signals in digital electronics have two distinct
voltage levels with built-in tolerances for
variations in the voltage
◦ A valid digital signal should be within either
of the two shaded areas
Logic Gates
AND gate OR gate
Logic Gates (cont.)
Tri-state buffer Inverter
Logic Gates (cont.)
XOR gate
Logic Gates (cont.)
NOR gate NAND gate
Logic Design Using Gates
Full adders
Logic Design Using Gates (cont.)
Decoders
◦ Decoders are widely used for address
decoding in computer design
Logic Design Using Gates (cont.)
Flip-flops
◦ Flip-flops are frequently used to store data
Important Terminology
The unit of data size
◦ Bit : a binary digit with the value 0 or 1
 Byte : 8 bits Nibble : half of a bye, or 4 bits
 Word : two bytes, or 16 bits
Theterms used to describe amounts of
memory in IBM PCs and compatibles
◦ Kilobyte (K): 210 bytes
◦ Megabyte (M) : 220 bytes, over 1 million
◦ Gigabyte (G) : 230 bytes, over 1 billion
◦ Terabyte (T) : 240 bytes, over 1 trillion
Internal Organization of Computers
CPU (Central Processing Unit)
◦ Execute information stored in memory
I/O (Input/output) devices
◦ Provide a means of communicating with CPU
Memory
◦ RAM (Random Access Memory)
 Temporary storage of programs that computer is
running
 The data is lost when computer is off
Internal Organization of Computers
(cont.)
◦ ROM (Read Only Memory)
 It contains programs and information essential to
operation of the computer
 The information cannot be changed by user, and is
not lost when power is off
 It is called nonvolatile memory
Internal Organization of Computers
(cont.)
The CPU is connected to memory and I/O
through strips of wire called a bus
◦ Carries information from place to place
 Address bus, Data bus, and Control bus
Internal Organization of Computers
(cont.)
Address bus
◦ For a device (memory or I/O) to be recognized
by the CPU, it must be assigned an address
 The address assigned to a given device must be
unique
◦ The CPU puts the address on the address bus
 The decoding circuitry finds the device
Internal Organization of Computers
(cont.)
Data bus
◦ The CPU either gets data from the device or
sends data to it
Control bus
◦ Provides read or write signals to the device to
indicate if the CPU is asking for information
or sending it information
More about Data Bus
Themore data buses available, the better the
CPU
◦ The processing power of a computer is related to
the size of its buses
◦ More data buses mean a more expensive CPU
and computer
The average size of data buses in CPUs
varies between 8 and 64
Data buses are bidirectional
◦ To receive or send data
More about Address Bus
The more address buses available, the larger
the number of devices that can be addressed
◦ The number of locations is always equal to 2x,
where x is the number of address lines
 ex. a CPU with 24 address lines and 8 data lines can
provide a total of 224 or 16M bytes of addressable
memory
 Each location can have a maximum of 1 byte of data
 All general-purpose CPUs are byte addressable
The address bus is unidirectional
CPU’s Relation to RAM and ROM
For the CPU to process information, the
data must be stored in RAM or ROM
◦ Referred to as primary memory
ROM provides information that is fixed and
permanent
◦ Tables or initialization program
RAM stores information that is not
permanent and can change with time
◦ Various versions of OS and application packages
CPU’s Relation to RAM and ROM
(cont.)
CPU gets information to be processed
◦ First from RAM (or ROM)
◦ If it is not there, then seeks it from a mass
storage device, called secondary memory
◦ Then transfers the information to RAM
Inside CPUs
The CPU uses registers to store
information temporarily
◦ Values to be processed
◦ Address of value to be fetched from memory
◦ In general, the more and bigger the registers,
the better the CPU
Registers can be 8-, 16-, 32-, or 64-bit
◦ The disadvantage of more and bigger registers
is the increased cost of such a CPU
Inside CPUs (cont.)
Inside CPUs (cont.)
ALU (arithmetic/logic unit)
◦ Performs arithmetic functions
 Such as add, subtract, multiply, and divide
◦ Logic functions
 Such as AND, OR, and NOT
Program counter
◦ Points to the address of the next instruction to be
executed
 As each instruction is executed, the program counter is
incremented to point to the address of the next
instruction to be executed
Inside CPUs (cont.)
Instruction decoder
◦ Interprets the instruction fetched into the CPU
A CPU capable of understanding more
instructions requires more transistors to
design
Assume that an imaginary CPU has registers called A, B, C, and D.
It has an 8-bit data bus and a 16-bit address bus.
The CPU can access memory from addresses 0000H to FFFFH (for
a total of 10000H locations).
The action to be performed by the CPU is:
1. Put hexadecimal value 21H into register A
2. Add to register A values 42H and 12H
Assume that the code for the CPU to move a value to register A is
1011 0000 (B0H) and the code for adding a value to register A is
0000 0100 (04H).
The necessary steps and code to perform them are as follows:
If the program to perform the actions listed above is stored in
memory locations starting at 1400H,
The actions performed by the CPU to run the program
above would be as follows:

1.The CPU’s program counter can have a value between


0000H and FFFFH.
The program counter must be set to the value 1400H,
indicating the address of the first instruction code to be
executed.
2.The CPU puts 1400H on the address bus and sends it
out.
The memory circuitry finds the location while the CPU
activates the READ signal, indicating to memory that it
wants the byte at location 1400H.
This causes the contents of memory location 1400H,
which is B0H, to be put on the data bus and brought into
the CPU.
3.The CPU decodes the instruction B0H with the help of its
instruction decoder dictionary.
When it finds the definition for that instruction it knows it must
bring into register A of the CPU the byte in the next memory
location.
When value 21H comes into the CPU it will go directly into
register A.
After completing one instruction, the program counter points to
the address of the next instruction to be executed, which in this
case is 1402H.
Address 1402H is sent out on the address bus to fetch the next
instruction.
4. From memory location 1402H it fetches code 04H.
After decoding, the CPU knows that it must add to the
contents of register A the byte sitting at the next address
(1403H).
After it brings the value (in this case 42H) into the CPU,
it provides the contents of register A along with this
value to the ALU to perform the addition.
It then takes the result of the addition from the ALU’s
output and puts it in register A.
The program counter becomes 1404H, the address of
the next instruction.
5.Address 1404H is put on the address bus and the code
is fetched into the CPU, decoded, and executed. This
code is again adding a value to register A.
The program counter is updated to 1406H.

6.Finally, the contents of address 1406H are fetched in


and executed.
This HALT instruction tells the CPU to stop
incrementing the program counter and asking for the
next instruction.
Now suppose that address 1403H contained value 04H
instead of 42H. How would the CPU distinguish between
data 04H to be added and code 04H?
Remember that code 04H for this CPU means move the
next value into register A. Therefore, the CPU will not try
to decode the next value. It simply moves the contents of
the following memory location into register A, regardless of
its value.

You might also like