Trường Đại học Công nghiệp Tp. Hồ Chí Minh
Khoa Công nghệ Điện tử
Bộ môn Điện tử Công nghiệp
Bài giảng Vi xử lý
Lưu hành nội bộ
2
Mục lục
Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi điều khiển PIC
Chương 2: Giới thiệu phần cứng của PIC 16F84 và PIC 16F877A
Chương 3: Tập lệnh của PIC 16F877A
Chương 4: Vào ra. Hoạt động của bộ định thời . Lập trình vi điều khiển PIC 16F84 và
PIC 16F877A.
Chương 5: Truyền thông nối tiếp USART
Chương 6: Ngắt
Chương 7: Bộ chuyển đổi tương tự sang số (ADC).
Chương 8: Bộ nhớ dữ liệu EEPROM, PWM, SPI/I2C.
Chương 9: Thiết kế hệ vi xử lí và hệ phát triển vi điều khiển.
3
Bài giảng số 1: Giới thiệu chung về hệ vi xử lí . Giới thiệu chung về vi điều khiển
PIC ( Số tiết: 5)
I.
Ổn định lớp:
…………………….
II.
Kiểm tra bài cũ:
………………………………………………………………………………………..
………………………………………………………………………………………..
………………………………………………………………………………………..
III.
Tên bài giảng: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi
điều khiển PIC
III.1. Mục tiêu:
-Giới thiệu hệ đếm. Lịch sử phát triển của các bộ vi xử lí. Cấu trúc và chức năng
hoạt động của hệ vi xử lí. Chức năng và các thành phần bên trong của hệ vi xử lí.
Giới thiệu vi điều khiển. Các họ vi xử lí thong dụng.
-Giới thiệu vi điều khiển PIC: bộ nhớ chương trình, xung đồng hồ vi điều khiển, hệ
thống vi điều khiển. Đặc tính của vi điều khiển. Các loại vi điều khiển. Sử dụng vi
điều khiển: phần cứng vi điều khiển và lập trình vi điều khiển.
III.2. Đồ dung và phương tiện dạy học:
-Phấn trắng, khăn, bảng, bút long, micro có dây(hay không dây), máy tính, và đèn
chiếu (hay máy chiếu).
III.3. Giáo trình và tài liệu tham khảo:
Giáo trình Vi xử lí của trường Đại học công nghiệp Tp. HCM.
D.W. Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006.
Trương Trác, Chip đơn 16C84 và ứng dụng của chúng.
Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp. HCM, 2003.
Tài liệu về vi điều khiển PIC của bọ môn Điện tử công nghiệp.
Website: /> />Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition,
Tab Electronics, McGrawHill, 2008(Ebook).
Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd
ed., Macmillan/McGraw-Hill, 1992.
III.4.Nội dung bài giảng:
Nội dung chi tiết : xem bài giảng chi tiết.
Phương pháp giảng dạy: thuyết trình, nêu vấn đề và đàm thoại trao đổi với sinh
viên.
Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về vi điều khiển PIC.
1.1. Hệ nhị phân, hệ thập phân và hệ thập lục phân.
Hệ nhị phân dung cơ số 2, dung hai số 0 và 1 để biểu diễn.
Thí dụ: 01001010=0x27+1x26+0x25+0x24+1x23+0x22+1x21+0x20=64+8+2=74
Hệ thập phân, cơ số là 10 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 để biểu diễn.
Thí dụ: 125=1x102+2x101+5x100=100+20+5.
Hệ thập lục phân, cơ số là 16 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Thí dụ: 32H=3x161+2x160=48+2=50.
4
Bảng chuyển đổi giữa số nhị phân, thập phân và thập lục phân:
Hệ nhị phân (8 chữ số)
Hệ thập phân (3 chữ số)
Hệ thập lục phân (2 chữ số)
00000000
000
00h
00000001
001
01h
00000010
002
02h
00000011
003
03h
00000100
004
04h
00000101
005
05h
00000110
006
06h
00000111
007
07h
00001000
008
08h
00001001
009
09h
00001010
010
0Ah
00001011
011
0Bh
00001100
012
0Ch
00001101
013
0Dh
00001110
014
0Eh
00001111
015
0Fh
1.2. Lịch sử phát triển của kỹ thuật vi xử lí.
1.2.1.Họ vi mạch số và công nghệ :
IC dựa theo số transistor hoặc các cổng thường được chia làm :
-SSI : tích hợp cỡ nhỏ
-MSI: tích hợp cỡ trung bình
-LSI: tích hợp cỡ lớn
-VLSI: tích hợp cỡ rất lớn
-ULSI: tích hợp cỡ cực lớn
Ví dụ : MSI như counter, multiplexer,…
LSI như các vi xử lý 8 bit : 8085, Z80…
VLSI như các vi xử lý 16 bit , 32 bit: 80386
Giới thiệu công nghệ sản xuất chip :
Về công nghệ có các công nghệ chế tạo vi mạch sau :
MOS :
- NMOS ⇒ HMOS
- PMOS
- CMOS⇒ HCMOS
Với H : high-performance
TTL, IIL (integrated injection logic) thuộc Bipolar
Trong đó công nghệ MOS thường được ưa chuộng do tích hợp được nhiều, tiết
kiệm năng lượng…
5
1.2.2. TỪ MÁY TÍNH LỚN ĐẾN MÁY VI TÍNH:
a.Máy tính lớn :
Là loại máy tính được thiết kế để giải các bài toán lớn với tốc độ rất nhanh
-Nó làm việc với số liệu có độ dài từ 64 bit hoặc hơn và được trang bò bộ nhớ rất
lớn, vì vậy kích thước lớn.
-Chúng thường được dùng để điều khiển các hệ thống thiết bò dùng trong quân sự
hoặc các hệ thống máy móc của chương trình nghiên cứu vũ trụ, để xử lý thông tin
trong ngành ngân hàng, vv… Ví dụ : IBM 4381, Honeywell DSP8
Loại mạnh nhất trong các máy tính lớn gọi là siêu máy tính (supercomputer). Ví
dụ : Y-MP/832 của Gray.
b.Máy tính con :
Là dạng thu nhỏ về kích thước cũng như tính năng của máy tính lớn.
- Làm việc với dữ liệu có độ dài dữ liệu 32 bit với tốc độ chậm hơn và bộ nhớ hạn
chế - Máy tính con thường dùng cho các tính toán khoa học kỹ thuật, gia công dữ liệu
qui mô nhỏ hay để điều khiển quá trình công nghệ.
Ví dụ : Vax 6360 của DEC, MV/8000II của Data general
c.Máy vi tính :
Máy vi tính là máy thông dụng hiện nay. Một máy vi tính có thể là 1 bộ vi điều
khiển (micro controller) hoặc là một vỏ vi mạch (one-chip microcomputer). Ví dụ : vi
điều khiển 68HC11 của Motorola, MCS-8051
-Có khả năng làm việc với độ dài dữ liệu là 4, 8, 16, 32, 64 bit…
-CPU của máy đều được chế tạo bằng công nghệ mạch vi điện tử với mức độ tổ hợp
lớn VLSI.
-Trên thò trường hiện nay có các họ vi xử lý nổi bật như :
Intel dùng vi xử lý 80x86 : 8086 (16 bit)
8088( 8bit)
80286 (16bit)
80386(32 bit) 80486(32 bit)
80586(32 bit)
Motorola dùng vi xử lý 680x0
Zilog : Z80 (8bit), Z8000 (16 bit)
1.2.3. Lòch sử phát triển của các bộ vi xử lý :
a.Thế hệ 1 : (1971-1973)
-Vi xử lý Intel 4004 (4 bit) dùng trong máy tính xách tay. Sau đó xuất hiện 4040 (4
bit) Ỉ 8008 (8bit)
Đặc điểm :
-Độ dài từ thường là 4 bit.
-Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá rẻ và
chỉ có khả năng đưa ra dòng tải nhỏ.
-Tốc độ thực hiện lệnh là 10-60 micro-sec/lệnh với tần số đồng hồ (xung clock)fclk=
0,1-0,8 Mhz
-Tập lệnh đơn giản và phải cần 1 số mạch phụ trợ để tạo nên 1 hệ vi xử lý hoàn
chỉnh
b.Thế hệ 2 : (1974-1977)
Z80 của hãng Zilog (8 bit)
6
6800 của hãng Motorola (8bit)
6502 của hãng Mos technology (8bit)
8080 và 8085 của hãng Intel
-Công nghệ chế tạo là NMOS (mật độ tích hợp lớn hoặc CMOS (tiết kiệm điện năng
tiêu thụ)
-Tần số xung clock từ 1-5 Mhz và tốc độ thực hiện lệnh là tứ 1-8 microsec/lệnh
c.Thế hệ 3 : (1978-1982)
Vi xử lý Intel 8086, 8088, 80186, 80286, (16 bit), MP 68000/68010 của Motorola
(16 bit)
Đây là bộ vi xử lý dùng trong máy tính IBM PC, PC/XT, PC/AT và các máy
Macintosh của hãng Apple.
-Tần số xung clock từ 5-10 Mhz, tốc độ thực hiện lệnh là 0,1-1 microsec/lệnh
-Công nghệ chế tạo là HMOS
d.Thế hệ 4 : (1983-?)
-Các bộ vi xử lý đại diện trong thế hệ này là các vi xử ký 32 bit của Intel 80386,
80486, và 32 bit Pentium 80586, MP 32 bit 68020/68030/68040.68060 của Motorola.
Đăc điểm :
-Bus đòa chỉ đều là 32 bit (phân biệt 4GB bộ nhớ) và có khả năng làm việc bộ nhớ ảo
-p dụng cơ chế xử lý xen kẻ liên tục dòng mã lệnh (pipe line), bộ nhớ cache(bộ
nhớ ẩn), bộ nhớ ảo. Các bộ vi xử lý này đều có bộ quản lý bộ nhớ (MMU) và cả bộ
đồng xử lý toán học.
Bên cạnh các bộ vi xử lý được dùng để xây dựng máy tính với tập lệnh đầu
đủ (CISC-complete instruction set computer), người ta còn chế tạo ra các bộ vi xử lý
cải tiến dùng cho máy tính với tập lệnh rút gọn (RISC- reduced instruction set
computer). Xem bảng : các bộ vi xử lý 16/32 bit của Intel, Motorola.
e. Máy tính dùng bộ vi xử lý Pentium II, PIII, PIV:
-Độ dài dữ liệu 32-64 bit
- Tốc độ 1.8 Ghz-4.0 Ghz
Các bộ vi xử lý 16 bit của Intel
Các bộ vi xử lý 32 bit của Intel
Các bộ vi xử lý 16/32 bit của Motorola
Từ thập niên 1990 trở lại đây
1990 Microsoft WIndows 3.0 ra đời
Motorola 68040 được triển khai.
1991 Apple và IBM hợp tác để khảo sát RISC
1992 Microsoft WIndows 3.1 đã trở thành chuẩn cho các PC.
1993 Intel Pentium (80586) ra đời, công nghệ MMX được cung cấp sau.
1995 Microsoft Indows 95
1995 Intel Pentium pro (P6)
1997 Intel Pentium II
1998 Intel Pentium II Xeon
1999 Intel Pentium III
2001Intel Pentium IV
7
1.3. Cấu trúc và hoạt động của hệ vi xử lí.
1.3.1. Sơ đồ khối
SƠ ĐỒ KHỐI MỘT HỆ VI XỬ LÝ CƠ BẢN
Address bus
Data bus
CPU
Bộ nhớ
T
Vào ra I/O
Thiếtbò vào
Thiết bò ra
Control bus
Hình 1.1 :Sơ đồ khối của hệ vi xử lý
1.3.2. Nguyên lý hoạt động:
-CPU (central processing unit) đơn vò xử lý trung tâm. MP (mocroprocessor) :
Đây là bộ não của máy tính, điều khiển toàn bộ hoạt động của hệ. MP sẽ lấy lệnh,
phân tích và thi hành lệnh.
-Bộ nhớ : (memory) là nơi lưu trữ dữ liệu và chương trình cần cho quá trình
thực hiện lệnh. Bộ nhớ trong : rom, ram. Bộ nhớ ngoài : băng từ, đóa từ
-Vào ra (input/output) : là mạch giao tiếp giữa CPU với thiết bò vào (bàn
phím, chuột), thiết bò ra(màn hình, máy in)
-Ba bộ phận này được liên lạc với nhau thông qua bus hệ thống (system bus).
Bus hệ thống gồm có :
+Bus đòa chỉ : (address bus) cho phép xác đònh đòa chỉ của ô nhớ hoặc ngoại vi cần
truy xuất (đọc /ghi). Bus đòa chỉ có thể là 16, 20, 24 bit…
+Bus dữ liệu (data bus) : cho phép trao đổi thông tin giữa Cpu và bộ nhớ hay ngoại
vi. Bus dữ liệu có thể là 8, 16, 32 bit…
+Bus điều khiển (control bus) :là các đường tín hiệu do CPU đưa ra để điều khiển
bộ nhớ hay ngoại vi hoặc là tín hiệu đưa vào CPU.
Ví dụ : RD (read-đọc ), WR (write-ghi) , INTR (interrupt-ngắt)
Bus đòa chỉ chỉ có 1 chiều từ CPU đưa ra, bus dữ liệu có tính chất 2
chiều (vào/ra), bus điều khiển chỉ có 1 chiều vào, 1 chiều ra.
1.4. Chức năng của các thành phần trong hệ vi xử lí.
1.4.1. Bộ xử lí CPU.
1.4.1.1.Nhiệm vụ của CPU :
-Điều hành hoạt động của hệ thống theo ý đònh của người sử dụng.
–Thi hành chương trình theo vòng kín gọi là chu kì lấy lệnh.
8
Thi hành
lệnh
Lấy lệnh
Chu kỳ lệnh
Hình 1.2: Nhiệm vụ của CPU
1.4.1.2.Cấu trúc CPU :
Các thành phần chính của CPU gồm có :
. Các thành phần lưu trữ: các thanh ghi, các cờ.
. Các thành phần thực thi (xử lý) : ALU thực hiện các tính toán số học , logic,
dòch/xoay (các) bit.
.Các thành phần chuyển [tín hiệu]: bus
. Các thành phần điều khiển : Đơn vò điều khiển.
CPU
IR
PC
Bộ điều khiển CU
Đơn vò số học logic
ALU
Các thanh ghi
Hình 1.3 Cấu trúc bên trong của CPU
CPU (central processing unit) : đơn vò xử lý trung tâm
ALU (arithmetic logic unit) : đơn vò số học logic
Register : thanh ghi
CU : control unit, đơn vò điều khiển
+ALU : thực hiện các phép tính số học và logic bao gồm +, -, *, /, tăng , giảm, and,
or, not, xor, dòch , quay, vv… ALU có hai ngõ vào và 1 ngõ ra. Hai ngõ vào lấy dữ
liệu từ bus nội cần thiết để thực hiện phép toán và 1 ngõ ra trả kết quả thực hiện
phép toán về bus nội. Để tránh dữ liệu chồng nhau ở bus nội, ờ hai ngõ vào của ALU
có hai thanh ghi tạm, có chức năng cài dữ liệu trước khi ALU thực hiện phép toán.
9
IN 1
IN 2
ALU
OUT
Hình 1.4 : ALU
+Thanh ghi : là các ô nhớ có tên tốc độ rất cao nằm bên trong CPU. Số thanh ghi
bên trong CPU là rất ít. Một số thanh ghi đã được đònh sẵn chức năng, một số thanh
ghi khác là thanh ghi đa dụng.
-Thanh ghi PC
-Thanh ghi tích lũy A
-Thanh ghi cờ F
-Thanh ghi lệnh IR
-Thanh ghi đòa chỉ bộ nhớ MAR
-Thanh ghi đa dụng
-Thanh ghi con trỏ stack SP
+Bộ điều khiển :
- Điều khiển sự hoạt động của các khối khác trong CPU đồng bộ với nhau.
- Xuất các tín hiệu điều khiển đọc ghi bộ nhớ và bên ngoài theo 1 trình tự nhất
đònh để đảm bảo cho việc đọc ghi bộ nhớ được thực hiện đúng
1.4.1.3. Thực hiện lệnh :
a.Lấy lệnh từ bộ nhớ vào thanh ghi lệnh IR (instruction register)
b.Thay đổi thanh ghi PC (program counter: bộ đếm chương trình) để chuyển đến lệnh
kế tiếp (thanh ghi PC luôn giữ đòa chỉ của lệnh kế tiếp)
c.Xác đònh kiểu lệnh vừa lấy ra
d.Xác đònh kiểu dữ liệu mà lệnh yêu cầu và xác đònh vò trí dữ liệu trong bộ nhớ.
e.Nếu lệnh cần dữ liệu trong bộ nhớ, nạp nó vào thanh ghi của CPU
f.Thực hiện lệnh
g.Lưu kết quả ở nơi thích hợp
h.Trở về bước 1 để thực hiện lệnh kế
1.4.1.4.Dạng lệnh :
Các vùng trong lệnh :
-Vùng mã lệnh : cho biết tác vụ nào sẽ được thực hiện.
- Vùng đòa chỉ : chỉ đòa chỉ bộ nhớ hoặc thanh ghi của CPU
- Vùng cách đònh đòa chỉ : chỉ cách xác đònh toán hạng hoặc đòa chỉ thật.
1.4.1.5. Các cách đònh đòa chỉ :
-Cách đònh đòa chỉ hiểu ngầm.
- Cách đònh đòa chỉ tức thời.
10
-
Cách đònh đòa chỉ thanh ghi.
Cách đònh đòa chỉ gián tiếp qua thanh ghi.
Cách đònh đòa chỉ trực tiếp.
Cách đònh đòa chỉ gián tiếp.
Cách đònh đòa chỉ tương đối.
1.4.2. Bộ nhớ
Đòa chỉ
0
3A
1
0F
2
5
ô nhớ
n-1
Hình 1.5: Bộ nhớ
a.Bit : 0/1 biểu diễn hai trạng thái , là đơn vò cơ bản của bộ nhớ.
b.Đònh vò bộ nhớ : (memory addressing)
Bộ nhớ sẻ được đánh số bắt đầu từ 0 cho tới n-1, với n là số ô nhớ trong bộ nhớ.
Tất cả các ô nhớ đều có số lượng bit như nhau, nếu 1 ô nhớ có k bit thì nó có thể có
từ 1Ỉ 2k tổ hợp bit khác nhau
Ví dụ : với bộ nhớ 96 bit ta có 3 kiểu tổ chức bộ nhớ như sau : 12x8 bit, 8x12 bit, 6x16
bit
Thường 1 ô nhớ có 8 bit=1byte. Nếu bộ nhớ có m đường đòa chỉ thì sẽ có 2m
byte (ô nhớ)
Ví dụ : bộ nhớ có 10 bit đòa chỉ Ỉ dung lượng bộ nhớ là 210 byte=1KB
bộ nhớ có 11 bit đòa chỉ Ỉ dung lượng bộ nhớ là 211 byte=2KB
bộ nhớ có 12 bit đòa chỉ Ỉ dung lượng bộ nhớ là 212 byte=4KB
Ví dụ : EPROM 2716 2732 2764
2KB 4KB 8KB
SRAM 6116
6264
2KB
8KB
c. Bộ nhớ chính : ROM (read only memory): bộ nhớ chỉ đọc
RAM(random access memory) : bộ nhớ đọc ghi được
Bộ nhớ ngoài : băng từ, đóa từ (đóa mềm, đóa cứng)
*Chức năng bộ nhớ :
-Có nhiệm vụ lưu trữ thông tin gồm có :
+Chương trình :- khởi động
-giao tiếp cơ bản BIOS
-hệ điều hành (hệ thống)
11
-ứng dụng
+Đệm dữ liệu : dùng để chứa dữ liệu vào và lấy dữ liệu ra
*ROM :
-Chứa dữ liệu lúc chế tạo
-Chứa dữ liệu chết : -các chương trình khởi động
-thông số hệ thống
-giao tiếp bios
*Ram : thông tin trong Ram có thể thay đổi được
-Đọc thì thông tin cũ vẫn còn
-Ghi thì thông tin mới sẽ đè lên
-Khi mất điện thì sẽ mất thông tin
*ROM gồm có các loại như sau :
-EPROM : (erasable programmable ROM) : rom lập trình và xóa được . Lập trình
bằng cách đưa xung điện áp cao vào chân Vpp, xóa bằng tia cực tím
-PROM (programmable ROM) rom lập trình được
-EEPROM (electrical erasableprogrammable rom) rom lập trình và xóa bằng điện.
Ví dụ : eeprom 2832
-MROM (maskable ROM)rom mặt nạ
*RAM có các loại sau : SRAM (static ram ) ram tónh
DRAM (dynamic ram ) ram động
1.4.3. Các thiết bị ngoại vi.
1.4.3.1 Phân loại ngoại vi :
Các thiết bò I/O có tên gọi khác nhau là các thiết bò ngoại vi (peripheral devices).
Bảng sau cho thấy một số thiết bò ngoại vi tiêu biểu theo nhóm nhập (I) và xuất (O).
-Thiết bò lưu trữ ngoài: đóa từ (FDD, HDD), USB, CD-ROM, DVD.
-Thiết bò giao tiếp với cong người: Màn hình, máy in.
-Thiết bò điều khiển: cảm biến và truyền động.
1.4.3.2 Giao tiếp I/O:
Ví dụ : giao tiếp I/O lập trình được 8255, 8250
CPU
I/O
Cổng (port)
Hình 1.6
Ví dụ : cổng máy in (LPT1) có đòa chỉ 378h
Thiết bò
ngoại vi
Vào
+ Bàn phím
+ Chuột
Ra
+Màn hình
+ Máy in
12
Cổng COM1(RS232) có đòa chỉ 3F8h
- Thiết bò ngoại vi gồm có : màn hình, bàn phím, chuột, máy in, máy quét, máy vẽ,
CD Rom,vv…
- Mỗi thiết bò ngoại vi có 1 IO riêng nằm trong phần xuất nhập IO
- Mỗi IO có đòa chỉ cổng riêng
- IO không phải là chỗ chứa dữ liệu, mà chỉ là cổng để dữ liệu qua lại
- Xuất nhập tùy theo thiết bò ngoại vi
1.4.4. Hệ thống bus.
Bus
Các hệ thống con của MCU và CPU liên lạc với nhau thông qua “bus” (tuyến), bus
là tập hợp các đường tín hiệu mà qua đó có thể truyền đi thông tin về đòa chỉ, dữ liệu
và điều khiển. Thông thường bus có độ rộng là 8 hay 16 bit( hoặc lớn hơn nữa tuỳ
theo CPU hoặc thiết bò I/O). Hệ thống bus gồm bus đòa chỉ, bus dữ liệu và bus điều
khiển.
Cài đặt bus chung :
-Bus dồn kênh
- Các bộ đệm bus 3 trạng thái
- Chu kì đọc bus.
- Chu kì ghi bus
1.5. Các họ vi xử lí thong dụng:
Intel 80x86.
Motorola 680x0.
MCS-51.
68HC11, 68HC12.
Zilog Z80.
Microchip PIC 16F84, PIC 16F877A.
1.6. Vi điều khiển.
1.6.1. Các giới hạn của vi xử lý
-Cần bộ nhớ ngoài để thực thi chương trình.
-Không thể giao tiếp trực tiếp với các thiết bò I/O.
1.6.2.Vi xử lý và vi điều khiển:
So sánh vi xử lý (MPU) và vi điều khiển (MCU)
MPU:
-Được thiết kế để thực hiện chức năng CPU trong hệ máy vi tính.
- Tập lệnh được sắp xếp để cho phép mã và một lượng lớn dữ liệu được chuyển đi
giữa vi xử lý với bộ nhớ và thanh ghi ngoài.
- Các tác vụ tác động với nhóm bít không nhỏ hơn 4 bit.
MCU :
-Được thiết kế để làm việc với mạch ngoài tối thiểu.
-Tập lệnh đơn giản (khoảng 255 lệnh).
-Các tác vụ có thể tác động lên từng bít.
MCU là máy tính với tất cả trong một chip :
13
MCU = CPU + Bộ nhớ + Giao tiếp I/O
Sơ đồ khối của một MCU
Microcontroller
Memory
Register
I/O
port
ALU
Counter
Timing
&
control
Interrupt
chip
Hình 1.7 : Sơ đồ khối một MCU
So với MPU thì MCU có thêm một số mạch làm cho MCU hoạt động như
một thiết bò duy nhất. MCU làm việc với các dữ liệu được đưa vào qua các cổng
nhập nối tiếp hoặc song song được điều khiển bởi phần mềm được cất trong bộ nhớ
chương trình.
Các MCU tiêu biểu :
. 8051 (intel và các hãng khác) : là MCU thế hệ thứ hai của Intel.
. 68HC11 (Motorola và Toshiba) : có kiến trúc bộ nhớ chung trong đó các lệnh , dữ
liệu , I/O và các mạch đònh thì tất cả chia xẻ cùng vùng nhớ.
.PIC (Microchip) : Họ MCU RISC đầu tiên ( 35 lệnh).
14
1.7.Giới thiệu chung về vi điều khiển PIC.
1.7.1. Mục đích của sách
Mục đích của sách là dạy bạn làm sao để xây dựng mạch điều khiển sử dụng
thiết bị như là nút nhấn, bàn phím, cảm biến, led đơn, loa, led 7 đoạn,… Điều này được
thực hiện bằng các thí dụ.
Chương trình được viết bằng hợp ngữ.
Chúng ta cần mạch nạp (loại JDM qua cổng COM, hay loại qua cổng USB) để viết các
lệnh vào chip. Phần mềm biên dịch MPASM hay MPLAB chuyển văn bản mã nguồn
thành mã máy.
1.7.2. Bộ nhớ chương trình
Bên trong vi điều khiển chương trình mà chúng ta viết được lưu trong vùng
nhớ EPROM (Electrically Programmable Read Only Memory), bộ nhớ này không bay
hơi và có nhớ khi nguồn bị tắt. Các lệnh mà chúng ta lập trình vào vi điều khiển làm
việc bằng các di chuyển và vận hành dữ liệu trong ô nhớ được biết như là ô nhớ
(file) và thanh ghi (register). Bộ nhớ này gọi RAM (Random Access Memory). Thí dụ
trong điều khiển nhiệt độ phòng, chúng ta đo nhiệt độ phòng bằng cách bằng vi điều
khiển thông qua thanh ghi điều khiển tương tự sang số (ADCON0). Sự đo lường thì
được so sánh với dữ liệu của chúng ta lưu trong một ô nhớ người dùng (user file).
Thanh ghi trạng thái sẽ chỉ báo nếu nhiệt độ là lớn hơn hay nhỏ hơn giá trị yêu cầu
và thanh ghi cổng (port) sẽ bật/tắt lò nhiệt tương ứng. Bản đồ bộ nhớ của 16F877A
được cho ở chuơng sau.
Vi điều khiển PIC là 8 bit, nghĩa là ô nhớ người dung và thanh ghi là 8 bit nhị phân
như hình 2.1.
Bit 7
6
5
4
3
2
1
bit 0
1
0
1
1
0
0
1
0
Hình 1.7.1: Dạng thanh ghi và ô nhớ người dung.
Trong đó LSB là bit có trọng số thấp nhất (bit 0), MSB là bit có trọng số cao nhất (bit
7).
1.7.3. Xung đồng hồ vi điều khiển
Để chạy từng bước qua các lệnh, vi điều khiển cần xung clock để đồng bộ việc
di chuyển dữ liệu vòng quanh mạch điện tử. Điều này được cung cấp bởi hai tụ điện và
thạch anh hay bởi mạch dao động bên trong.
Trong 16F84 có 4 lựa chọn dao động:
. Mạch RC dao động mà cung cấp giải pháp giá thành thấp.
. Dao động LP, nghĩa là thạch anh 32 KHz, mà tối thiểu hóa tiêu thụ năng lượng.
. XT: cho cấu hình thạch anh chuẩn.
. HS là tùy chọn dao động tốc độ cao.
Các tần số thạch anh thông dụng là: 32 Khz, 1 Mhz, 4 Mhz, 10 Mhz và 20 Mhz.
PIC 16F877A còn có them 4 lựa chọn sau (tổng cộng là 8):
. EXTRC: điện trở/tụ điện ngoài.
. EXTRC điện trở tụ điện ngoài với CLKOUT.
. INTRC điện trở/tụ điện 4 Mhz nội.
. INTRC điện trở tụ điện nội 4 Mhz với CLKOUT.
1.7.4. Hệ thống vi điều khiển
15
Sơ đồ khối hệ thống vi điều khiển được cho ở hình 1.7.2.
Ngõ
vào
Điều
khiển
Ngõ
ra
Hình 1.7.2: Hệ vi điều khiển cơ bản.
. Thành phần ngõ vào gồm có thiết bị số như là công tắc, nút nhấn, bàn phím,.. và cảm
biến như là điện trở phụ thuộc ánh sang, thermixtor, cảm biến gas, cảm biến áp suất,…
. Đơn vị điều khiển hiển nhiên là vi điều khiển, vi điều khiển sẽ giám sát ngõ vào và
như là kết quả chương trình sẽ bật (turn on) ngõ ra hay tắt (turn off) ngõ ra. Vi điều
khiển lưu chương trình trong bộ nhớ và thực thi lệnh dưới sự điều khiển của mạch
đồng hồ (clock).
. Thiết bị ngõ ra được làm từ led đơn, loa, động cơ, hiển thị số, led 7 đoạn, lò nhiệt,
quạt,…
Chọn lựa hiển nhiên nhiều nhất cho vi điều khiển là có bao nhiêu ngõ vào số,
ngõ vào analog, và ngõ ra mà hệ thống yêu cầu. Điều này chỉ ra số chân tối thiểu vào
ra (I/O) mà vi điều khiển phải có. Nếu ngõ vào analog được sử dụng thì vi điều khiển
phải có bộ chuyển đổi tương tự -số (A/D).
Xem xét kế tiếp là kích cỡ bộ nhớ chương trình là gì. Điều này không là vấn đề lớn
khi bắt đầu . Các chương trình trong sách phù hợp không gian bộ nhớ chương trình 1
KByte (16f84) tới 8 KByte (16f877a).
Tần số xung clock xác định tốc độ tại đó lệnh được thực thi. Điều này là quan
trọng nếu bất kì tính toán dài là được xem xét. Tần số xung clock càng cao thì vi điều
khiển hoàn thành hiệm vụ càng nhanh và chuyển sang nhiệm vụ khác.
Một xem xét nữa là số ngắt và số mạch timer (định thì) được yêu cầu, bộ nhớ
dữ liệu EEPROM yêu cầu là bao nhiêu. Các hoạt động phức tạp hơn sẽ được xem xét
sau.
Trong sách này, chương trình yêu cầu ngõ vào analog được hiện thực
trên PIC 16F84 hay PIC16F 877A.
1.7.5. Các loại vi điều khiển
Danh sách các loại vi điều khiển PIC thì được phát triển hang ngày. Chúng bao
gồm các thiết bị cho tất cả các ứng dụng. Thí dụ: 18F8722 có 64K bộ nhớ EPROM,
3938 byte RAM (ô nhớ người dung), 1024 byte EEPROM, 16 kênh A/D 10 bit, điện
áp tham chiếu, 72 ngõ vào và ra (I/O), 3 timer 16 bit và 2 timer 8 bit.
Về cơ bản có 2 loại vi điều khiển: thiết bị Flash và thiết bị lập trình một lần (one
time programmable devices -OTP).
Thiết bị Flash có thể lập trình lại trong mạch nạp trong khi đó thiết bị lập trình
một lần không thể lập trình lại. Tất cả thiết bị OTP tuy nhiên có sự phân loại đóng
khung (windowed) mà cho phép chúng bị xóa dưới ánh sang tia cực tím trong khoảng
15 phút để mà chúng có thể lập trình lại. Thiết bị OTP dung cấu hình dao động RC, LP,
XT hay HS.
Trong sách này chúng ta dung thiết bị Flash là PIC 16F84 hay PIC 16F877A.
1.7.6. Đặc tính của vi điều khiển
Bạn chỉ ra một thiết bị với mã nhận dạng sản phẩm:
. Số sản phẩm.
. Nếu nó là loại đóng khung, OTP hay thiết bị Flash. Loại đóng khung được chỉ ra bởi
JW. Thiết bị OTP được chỉ ra bởi tần số dao động và thiết bị Flash được chỉ ra bởi
chữ F như là 16F84.
16
. Tần số dao động, thường là 04 cho các thiết bị làm việc lên tới 4 Mhz, 10 cho thiết bị
làm việc lên tới 10 Mhz, hay 20 cho thiết bị lên tới 20 Mhz. Thiết bị 20 Mhz thì đắt
tiền hơn thiết bị 4Mhz.
. Tầm nhiệt độ, cho ứng dụng tổng quát 0 oCÆ70 oC là được chỉ ra.
Hệ thống nhận dạng sản phẩm cho vi điều khiển PIC được minh họa ở hình
1.7.3.
Part No.
–XX
X
/XX
Đóng gói L= PLCC
P=PDIP (đóng gói Plastic chuẩn)
So=SOIC small outline IC
PQ=MQFP
JW=Windowed device (CERDIP)
Tầm nhiệt độ - =0oCÆ 70 oC
I = -40 oCÆ+85 oC
E = -40 oCÆ+125 oC
Phạm vi tần số: 04= 4Mhz
10 = 10 Mhz
20 = 20 Mhz
Thiết bị, thí dụ 16C711
Hình 1.7.3. Hệ thống nhận dạng sản phẩm.
1.7.7. Sử dụng vi điều khiển
Để sử dụng vi điều khiển trong mạch, có hai lĩnh vực về cơ bản chúng ta cần
hiểu
1. Cách kết nối vi điều khiển với phần cứng.
2. Cách viết chương trình và nạp mã vào vi điều khiển
1.7.1. Phần cứng vi điều khiển:
Phần cứng mà vi điều khiển cần để hoạt động thì được minh họa ở hình 1.7.4.
Thạch anh và tụ điện được nối với chân 15 và 16 của 16F84 để tạo ra xung clock mà
được yêu cầu để vi điều khiển đi qua chương trình và cung cấp xung định thì.
17
16F84
+5V
14
V+
68 pF
16
MCLR
4
32 Khz
68pF
15
0V 5
Hình 1.7.4: Mạch vi điều khiển
+5V
C3
0.1 uF
U1
C1
V+
OSC2/CLKOUT
Y1
68 pF
32 Khz
4
15
MCLR
OSC1/CLKIN
C2
68 pF
GND
RA0
RA1
RA2
RA3
RA4/TOCKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7
PIC16F84
Mạch vi điều khiển PIC 16F84
16
17
18
1
2
3
6
7
8
9
10
11
12
13
18
Mạch vi điều khiển PIC 16F877A
Nguồn cung cấp cho vi điều khiển:
Nguồn cung cấp cho vi điều khiển trong khoảng từ 2v tới 6v. Điều này có thể được
cung cấp dễ dàng từ chân 6v như hình 1.7.5.
+
-
V+
16F84
0v
Hình 1.7.5: Nguồn cung cấp cho vi điều khiển.
Diode trong mạch tạo ra áp 0,7v trên nó nên làm giảm điện áp cung cấp còn 5,3v. Nó
cung cấp bảo vệ cho vi điều khiển nếu nguồn được nối sai tình cờ. Trong trường hợp
này diode sẽ phân cực ngược và không có dòng chảy qua.
7805, mạch ổn áp:
19
Kết nối nguồn cung cấp thong dụng nhất cho vi điều khiển là dung IC ổn áp 7805 có 3
chân. Kết nối được minh họa ở hình 1.7.6.
+5V
7805
Vin
Vout
0v
Hình 1.7.6: Mạch ổn áp 7805
Điện áp vào Vin cho 7805 là từ 7v đến 30v.
Công suất tiêu tán trong 7805:
Sự cẩn trọng phải được xem xét khi sử dụng điện áp Vin cao đưa vào 7805. Thí dụ nếu
Vin=24v, ngõ ra 7805 là +5v, thế thì 7805 có 24v-5v=19v rơi trên nó. Nếu nó cung cấp
dòng 0,5A cho mạch thì công suất tiêu tán (volt x ampe) là: 19v x 0,5A=9,5 watt. Bộ
ổn áp sẽ rất nóng. Do đó ta phải có miếng tản nhiệt (bằng nhôm).
Kết nối nút nhấn với vi điều khiển:
Cách thong dụng nhất về một nút nhấn tới vi điều khiển là thong qua điện trở kéo lên
tới +5V như minh họa ở hình 1.7.7.
+5V
Vi điều
khiển
0v
Hình 1.7.7: Kết nối nút nhấn với vi điều khiển.
Khi nút nhấn là hở, logic 1 được nối với vi điều khiển.
Khi nhấn nút, logic 0 được nối với vi điều khiển.
Một số vi điều khiển như là 16F84, 16F818, và 16F877a có điện trở kéo lên
bên trong nối với một số chân I/O. Port B trong thiết bị trên.
Hình 1.7.8 minh họa nút nhấn được nối dung kéo lên bên trong.
Vi điều
khiển
0V
Hình 1.7.8: Kết nối nút nhấn sử dụng điện trở kéo lên bên trong.
Kết nối ngõ ra với vi điều khiển:
20
Vi điều khiển có khả năng cung cấp xấp xỉ 20-25 mA tới chân ngõ ra. Như vậy tải như
là led đơn, hay rờle nhỏ có thể được lái trực tiếp. Tải lớn hơn yêu cầu giao tiếp thong
qua transistor đối với dc, hay triac đối với ac. Thiết bị cách ly quang (opto-coupled
device) là giao tiếp cách li giữa vi điều khiển và tải.
Kết nối led đơn với vi điều khiển được minh họa ở hình 1.7.9.
Vi điều
khiển
680 Ohm
0V
Hình 1.7.9: Kết nối 1 led với vi điều khiển.
Logic 1: led sang
Logic 0: led tắt.
16F877a RB0
470 Ohmx4
RB1
RB2
RB3
0V
Hình 1.7.10: Kết nối 4 led với PIC 16F877A
1.7.2.Lập trình vi điều khiển:
Để vi điều khiển thực hiện một số hành động điều khiển, bạn cần giao tiếp
(truyền thong) với nó và yêu cầu vi điều khiển những lệnh phải làm gì. Khi giao tiếp
với người khác, chúng ta dung ngôn ngữ nói, khi giao tiếp với vi điều khiển chúng ta
sử dụng ngôn ngữ lập trình (hợp ngữ). Hợp ngữ cho PIC sử dụng 35 lệnh trong tập
lệnh. Thêm vài lệnh được dung trong vi điều khiển lớn.
Để giao tiếp với vi điều khiển chúng ta cần biết 35 lệnh này là gì và cách sử
dụng chúng. Không phải tất cả 35 lệnh được dung trong sách này. Thực tế bạn có thể
viết chương trình có ý nghĩa chỉ dung 5 hay 6 lệnh.
IV.
Tổng kết bài:
-Tóm tắt các ý chính trong bài.
-Chuẩn bị bài mới.
V. Câu hỏi và bài tập về nhà:
Chương 1: Giới thiệu chung về hệ vi xử lí. Giới thiệu chung về PIC.
1.Các hệ đếm dung trong máy tính. Mã BCD là gì? Mã ASCII là gì?
2.So sánh máy vi tính với các thế hệ máy trước đây.
21
3. Trình bày lịch sử phát triển của các bộ vi xử lí.
4. Trình bày cấu trúc và hoạt động của một hệ vi xử lí.
5. Trình bày cấu trúc và hoạt động của một CPU 8 bit.
6. Bộ nhớ là gì? Phân biệt ROM và RAM. Phân biệt MROM, PROM, EPROM,
EEPROM. Phân biêt RAM tĩnh và RAM động.
7. Thiết bị ngoại vi gồm những gì?
8. Giải thích các từ SSI, MSI, LSI và VLSI.
9. Trình bày sơ đồ khối một MCU (vi điều khiển). So sánh MCU và CPU (vi xử lí).
10. Kể tên các họ vi xử lí thong dụng.
11. Trình bày hệ thống vi điều khiển .
12. Cách sử dụng vi điều khiển PIC: phần cứng và viết chương trình.
13.Các thiết bị/dụng cụ 3 trạng thái là gì? Và tại sao chúng lại cần thiết trong các hệ
thống dung bus?
14.Cần bao nhiêu byte để làm thành 1 word 32 bit?
15. Một chip bộ nhớ có dung lượng 2K (2048 byte). Hỏi số chân địa chỉ của chip nhớ
này.
16. Hãy định vị bộ nhớ 96 bit theo 3 cách.
17. Trình bày sơ đồ khối của Z80 CPU.
18. Nêu các phương pháp địa chỉ hóa của Z80 CPU.
19. Nếu một chip bộ nhớ có kích thước là 1024x 4 bits, ta phải cần bao nhiêu chip
như vậy để tạo 2K (2048) byte bộ nhớ ?
VI. Rút kinh nghiệm: (về thời gian, nội dung, phương pháp, chuẩn bị)
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
Ngày ….tháng…..năm 2011
Bộ mơn
Ngày ….tháng…..năm 2011
Giảng viên soạn
22
Bài giảng số 2: : Phần cứng vi điều khiển PIC 16F84 và PIC 16F877A( Số tiết: 5)
I.Ổn định lớp:
…………………….
II.Kiểm tra bài cũ:
………………………………………………………………………………………..
………………………………………………………………………………………..
………………………………………………………………………………………..
III.Tên bài giảng: : Phần cứng vi điều khiển PIC 16F84 và PIC 16F877A
III.1. Mục tiêu:
- Vi điều khiển 16F84.
- Vi điều khiển 16F877A : sơ đồ khối PIC 16F877A, bộ nhớ chương trình, bộ
đếm chương trình (PC) và ngăn xếp (stack), bản đồ bộ nhớ dữ liệu, các thanh ghi chức
năng đặc biệt (SFR),và thanh ghi trạng thái.
III.2. Đồ dung và phương tiện dạy học:
-Phấn trắng, khăn, bảng, bút long, micro có dây(hay không dây), máy tính, và đèn
chiếu (hay máy chiếu).
III.3. Giáo trình và tài liệu tham khảo:
Giáo trình Vi xử lí của trường Đại học công nghiệp Tp. HCM.
D.W. Smith, PIC in practice: a project-based approach, Elsevier, 2nd edition, 2006.
Trương Trác, Chip đơn 16C84 và ứng dụng của chúng.
Hồ Trung Mỹ, Vi xử lí, NXB ĐHQG Tp. HCM, 2003.
Tài liệu về vi điều khiển PIC của bọ môn Điện tử công nghiệp.
Website: /> />Myke Predko, Programming and customizing the PIC microcontroller, 3rd edition,
Tab Electronics, McGrawHill, 2008(Ebook).
Douglass V.Hall, Microprocessors and interfacing: Programming and Hardware, 2nd
ed., Macmillan/McGraw-Hill, 1992.
III.4.Nội dung bài giảng:
Nội dung chi tiết : xem bài giảng chi tiết.
Phương pháp giảng dạy: thuyết trình, nêu vấn đề và đàm thoại trao đổi với sinh
viên.
Chương 2: Phần cứng vi điều khiển PIC 16F84 và PIC 16F877A.
2.1.Vi điều khiển PIC 16F84
PIC 16F84A có các đặc tính:
-có 35 lệnh, câu lệnh chỉ cần 1 chu kì máy, câu lệnh nhảy cần 2 chu kì máy. Tần số: tối
đa 20 Mhz và chu kì máy là 200 ns. Bộ nhớ chương trình 1k x 14 words, bộ nhớ RAM
là 68 byte, bộ nhớ dữ liệu dạng EEPROM là 64 byte. Chiều dài câu lệnh là 1 word 14
bit (1 từ =14 bit). Xử lí dữ liệu dạng 8 bit (1 byte). Có 15 thanh ghi chuyên dụng SFR
đặt trong bộ nhớ RAM.
-dùng ngăn xếp để cất giữ địa chỉ lệnh, ngăn xếp sâu đến 8 lớp.
-có thể truy cập bộ nhớ dung địa chỉ trực tiếp, gián tiếp và tương đối.
-Có 4 dạng ngắt.
-13 chân xuất nhập dữ liệu (PORT A 5 chân, PORT B 8 chân).
-Một đồng hồ timer 0, dung hanh đếm 8 bit nên đếm được tối đa 256 nhịp.
23
Sơ dồ chân: Hình 2.1
U3
OSC2/CLKOUT
4
15
MCLR
OSC1/CLKIN
RA0
RA1
RA2
RA3
RA4/TOCKI
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6
RB7
16
17
18
1
2
3
6
7
8
9
10
11
12
13
PIC16F84
Hình 2.1: Sơ đồ chân của PIC 16F84
Ý nghĩa các chân:
- OSC1/CLKIN: là chân ngõ vào của mạch dao động thạch anh dung để định tần số
xung nhịp và chân này cũng là ngõ vào của xung nhịp (clock input).
. OSC2/CLKOUT: là chân ngõ ra của mạch dao động thạch anh và là ngõ ra của xung
nhịp (clock output), ở đây tín hiệu xung nhịp đã được khuếch đại.
. /MCLR: (Master clear) là chân reset. Tác dụng của lệnh reset là trả chương trình về
địa chỉ đầu 0000h, và xác lập lại trạng thái cho các thanh ghi đặc dụng. Lệnh có tác
dụng ở mức thấp.
. RA0, RA1, RA2: là các chân xuất nhập của port A.
. RA4/T0CKI: là chân đa nhiệm , vừa làm chân xuất nhập của portA và lại là chân lấy
xung cho thanh đếm của đồng hồ timer 0 (Timer 0 clock input). Chân này có cực Drain
của Fet để hở.
. RB0/INT: là chân đa nhiệm, vừa làm chân xuất nhập dữ liệu của portB và là chân
phát động theo ngắt ngoài. Các chân của portB có thể được lập trình để có trở kháng
lớn dung để làm ngõ vào, dung nhập trạng thái ngoài PIC.
. RB1, RB2, RB3: là các chân xuất nhập dữ liệu của portB.
.RB4, RB5, RB6 và RB7: là các chân xuất nhập của port B và sẽ phát động ngắt khi sự
thay đổi trạng thái trên các chân này.
. RB6 là 1 chân xuất nhập dữ liệu của portB và có tính phát động ngắt theo sự thay đổi
trạng thái trên chân này. Nó còn có thể lập trình để dung chân này phát xung nhịp
(serial clock) dung cho truyền bit dạng nối tiếp.
. RB7 là 1 chân xuất nhập dữ liệu của portB và phát động ngắt theo sự thay đổi trạng
thái trẹn chân này. Nó còn có thể lập trình để dung chân này trao đổi dữ liệu (serial
data) dùng cho truyền bit dạng nối tiếp.
. Vss là chân nối mass (GND, 0V).
. VDD là chân nối với VCC (PIC có thể dung VCC từ 2v đến 5,5v).
Sơ đồ khối bên trong của PIC 16F84A
24
Hình 2.2: Cấu trúc bên trong của PIC 16F84A.
2.2. Vi điều khiển PIC 16F877A:
2.2.1. Sơ đồ khối PIC 16F877A và sơ đồ các chân và ý nghĩa
Giới thiệu PIC 16F877A:
PIC là viết tắt của “Programmable Intelligent Computer”, có thể dịch là máy
tính thong minh lập trình được, là một sản phẩm do hang General Instruments đặt
cho dòng sản phẩm đầu tiên của họ là PIC 1650.
PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip
Technology. Dòng PIC đầu tiên là PIC 1650 được phát triển bởi MicroElectronics
Division thuộc General Instruments. Lúc này PIC 1650 được dung để giao tiếp với
các thiết bị ngoại vi cho máy chủ CP 1600.
Hiện nay PIC phát triển mạnh, có rất nhiều loại PIC ra đời. PIC 12 (độ dài mã lệnh
12 bit) như là dòng PIC 12Cxxx (thí dụ : PIC 12F50x, PIC 12F675), PIC 5x (
16F54), PIC 14 như dòng PIC 16Fxxx (16F84, 16F818, 16F877A, 16F872), PIC 16
như dòng PIC 18Fxxx (PIC 18F4520, 18F2550).
PIC 16F877A là vi điều khiển PIC thông dụng, loại trung (mid- range) có đặc điểm:
-Đây là vi điều khiển thuộc họ PIC 16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14
bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối
đa cho phép là 20 Mhz với một chu kì lệnh 20 ms. Bộ nhớ chương trình Flash là
8k x 14 words, bộ nhớ dữ liệu (RAM) là 368x8 byte, và bộ nhớ EEPROM với dung
lượng 256 x 8 byte. Số port I/O là 5 với 33 chân I/O.
Các đặc tính ngọai vi bao gồm các khối chức năng sau:
-Timer 0: bộ đếm 8 bit bộ đếm với hệ số tỉ lệ trước.
-Timer 1: bộ đếm 16 bit, bộ đếm với hệ số tỉ lệ trước. Có thể được tăng đếm thông
qua xung clock/ xung clock thạch anh ngoài ở chế độ phương thức cất giữ sleep.
25
-Timer 2: bộ đếm 8 bit với thanh ghi chu kì 8 bit, bộ đếm 8 bit của hệ số tỉ lệ trước,
hệ số tỉ lệ sau.
-Có hai bộ bắt giữ/so sánh/điều rộng xung.
-Các cổng giao tiếp nối tiếp đồng bộ (SSP) với SPI phương thức chủ và I2C
(chủ/tớ).
-Bộ truyền nhận nối tiếp đồng bộ , không đồng bộ (UASRT/SCL) có khả năng phát
hiện 9 bit địa chỉ.
-Cổng phụ song song với 8 bit mở rộng, với các chân điều khiển RD, WR, CS.
Các đặc tính analog:
-Bộ chuyển đổi tương tự-số 10 bit trên chip với 8 kênh vào.
-Hai bộ so sánh,
Bên cạnh đó là một vài đặc tính của vi điều khiển như :
-Bộ nhớ Flash với khả năng ghi xóa được 100000 lần.
-Bộ nhớ dữ liệu EEPROM với khả năng ghi xóa được 1000000 lần.
-Dữ liệu bộ nhớ EEPROM có thể lưu trữ được 40 năm.
-Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
-Nạp được chương trình ngay trên mạch điện ISP (in circuit programming) thong
qua 2 chân.
-Bộ đếm xung thời gian (WDT-Watch dog timer) với dao động RC bên trong.
-Có mã chương trình bảo vệ (chức năng bảo mật mã chương trình).
-Có thể hoạt động hiều dạng dao động khác nhau.
Chế độ sleep (phương thức cất giữ) tiết kiệm năng lượng.
-Công nghệ CMOS Flash/ eeprom với nguồn mức thấp, tốc độ cao.
-Dãi điện thế hoạt động rộng : 2VÆ 5,5 V.
-Công suất tiêu thụ thấp:
<0,6 mA với 5V, 4Mhz.
20 μA với nguồn 3V, 32 Khz.
<1 μA với nguồn dự phòng.
-Khả năng ngắt: lên tới 14 nguồn ngắt trong và ngắt ngoài.
-Ngăn xếp được chia làm 8 mức.
-Truy cập bộ nhớ bằng địa chỉ trực tiếp hay gián tiếp.
-Nguồn khởi động lại (POR-Power on reset).
Sơ đồ khối vi điều khiển PIC 16F877A được minh họa ở hình 2.3.