MỤC LỤC
Trang
Chương 1. Giới thiệu chung
1.1 Sự ra đời và phát triển của các bộ vi xử lý 4
1.2 Sơ đồ khối cấu trúc và hoạt động của hệ vi xử lý 4
Chương 2. Bộ nhớ bán dẫn
2.1 Phân loại bộ nhớ 7
2.1.1 Bộ nhớ cố định (ROM, PROM) 7
2.1.2 Bộ nhớ bán cố định (EPROM, EEPROM, FLASH) 8
2.1.3 Bộ nhớ đọc ghi (SRAM, DRAM) 10
2.1.4 Bộ nhớ ngoài 10
2.2 Phân cấp bộ nhớ 10
2.3 Cấu trúc của mạch nhớ tĩnh SRAM
2.3.1 Giới thiệu công nghệ 12
2.3.2 Cấu trúc mạch nhớ SRAM 12
2.3.2.1 Bit nhớ 12
2.3.2.2 Thanh ghi 14
2.3.2.3 Bộ giải mã 15
2.3.2.4 Mạch nhớ SRAM (Các thành phần, quy trình đọc ghi,
biểu đồ thời gian) 18
2.3.3 Thiết kế thẻ nhớ SRAM 18
2.4 Cấu trúc của mạch nhớ DRAM 18
Chương 3. Các bộ vi xử lý và vi điều khiển
3.1 Giới thiệu bộ vi xử lý 8 bit tổng quát 22
3.2 Bộ vi xử lý 8 bit (8086/8088)
3.2.1 Sơ đồ khối bộ vi xử lý 8 bit 22
3.2.2 Các thanh ghi của 8086/88 23
3.2.3 Biểu đồ thời gian của chu kỳ đọc ghi số liệu 26
3.2.5 Ghép nối các chân tín hiệu 8088 28
3.2.6 Hệ lệnh của bộ vi xử lý 8 bit 30
3.3 Giới thiệu các bộ vi xử lý tiên tiến dũng 80x86 77
3.4 Vi điều khiển 8x51/52 77
3.5 Vi điều khiển thế hệ mới AVR
Thỏi Nguyờn 7-2013 1Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
3.5.1. Giới thiệu chung về AVR 92
3.5.2. Bus I2C và SPI 98
3.5.3. AVR 90S8535 101
3.6 Các hệ thống trên một chip có khả năng tái cấu hình (SoC)
3.6.1. SoC là gì? 101
3.6.2. Giới thiệu PSoC 103
3.6.3. PSoC CY8C29446 103
Chương 4. Các bộ điều khiển và ghép nối dữ liệu
4.1. Vào/ ra số liệu điều khiển bằng ngắt
4.1.1 Nguyên lý vào/ra điều khiển bằng ngắt 111
4.1.2 Bộ điều khiển ngắt PIC (8259) 113
4.1.3 Ngắt trong máy tính IBM/PC 119
4.2. Vào/ra số liệu điều khiển bằng thâm nhập bộ nhớ trực tiếp DMA
4.2.1 Nguyên lý vào/ ra bằng DMA 121
4.2.2 Bộ thâm nhập bộ nhớ trực tiếp DMAC (8237) 123
4.2.3 Sử dụng bộ điều khiển DMAC trong hệ vi xử lý 126
4.3. Bộ đếm lập trình được
4.3.1 Sơ đồ khối bộ đếm lập trình được (8254) 127
4.3.2 Các chế độ làm việc của bộ đếm lập trình 128
4.3.3 Sử dụng bộ đếm trong hệ vi xử lý 130
4.4. Phối ghép vào ra nối tiếp
4.4.1 Nguyên lý vào/ ra nối tiếp 130
4.4.2 Mạch thu phát thông tin nối tiếp UART 133
4.5. Phối ghép với thiết bị vào/ra qua cổng song song
4.5.1 Ghép nối song song đơn giản 142
4.5.2 Mạch phối ghép vào/ra song song lập trình được PPI 8255A 142
4.5.2.1 Các khối của PPI
4.5.2.2 Các tín hiệu của PPI
4.5.2.3 Các chế độ làm việc của PPI
4.5.2.5 Ghép nối PPI trong hệ vi xử lý
Chương 5 Thiết kế hệ thống vi xử lý
5.1 Thiết kế phần cứng 145
5.2 Thiết kế phần mềm 146
Thỏi Nguyờn 7-2013 2Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
5.2.1 ROM Mapping 146
5.2.2 RAM Mapping 149
5.2.3 Thiết kế các chương trình hệ thống 151
5.2.4 Thiết kế các chương trình ứng dụng 154
CÂU HỎI VÀ BÀI TẬP 159
Phụ lục CÁC HỆ SỐ ĐẾM 160
TÀI LIỆU THAM KHẢO 16
165 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 443 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình Kỹ thuật vi xử lý và lập trình hợp ngữ - Phạm Đức Long, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
h ra từng bit ra ngoài qua chân RxD (P3.0) cùng với xung đồng hồ
đ−ợc gửi ra ngoài qua đ−ờng TxD (P3.1). Mỗi bit đ−ợc truy
chu kỳ máy.
Việc nhận dữ liệu đ−ợc khởi đầu khi bit cho phép nhận (REN) đ−ợc xác lập
lên bit 1 và bit RI phải xoá về 0. Nguyên tắc ch
ch−ơng trình để khởi tạo các tham số của cổng nối tiếp và xoá
công việc nhận dữ liệu. Khi RI đ−ợc xoá, xung đồng hồ đ−ợc ghi ra chân TxD, bắt
đầu chu kỳ máy tiếp theo và dữ liệu đ−ợc đ−a vào chân RxD.
Một khả năng của chế độ thanh ghi dịch là có thể mở rộng đ−ờng ra của
8051. Thanh ghi dịch chuyển đỏi nối tiếp thành song song có thẻ kết nối với các
đ−ờng TxD và RxD cung cấp thêm 8 đ−ờng ra.
b. 8 bit UART với tốc độ baud có thể thay đổi đ−ợc (mode1).
Ở mode 1, cổng nối tiếp của 8051 hoạt động nh− là UART 8 bit với tốc độ baud
có thể thay đổi đ−ợc. UART (Universal Asynchronous Receiver/Transmitter) là 1
thiết bị nhận và truyền dữ liệu nối tiếp, mỗi ký tự đ−ợc truyền bắt đầu bằng bit
start (trạng thái thấp) sau đó là các bit dữ liệu của ký tự đ−ợc truyền, parity bit để
kiểm tra lỗi đ−ờng truyền và cuối cùng là bit stop (trạng thái cao).
Một chức năng quan trọng của UART là chuyển đổi dữ liệu song song
thành nối tiếp để truyền và chuyển đổi nối tiếp thành song song để nhận. Trong
mode này, 10 bit dữ liệu đ−ợc truyền qua TxD và nhận vào qua RxD và việc
truyền cũng
(LSB đầu tiên) và cuối cùng là stop bit. Bit TI của
Thỏi Nguyờn 7-2013 80
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
stop ở chân TxD. Trong quá trình nhận stop bit đ−ợc đ−a vào bit RB8 của thanh
ghi SCON và tốc độ truyền đ−ợc đặt bởi timer1. Việc đồng bộ thanh ghi dịch của
cổng nối tiếp ở mode 1, 2, 3 đ−ợc điều khiển bởi counter với đầu ra counter là
nhịp đồng hồ điều khiển tốc độ baud còn đầu vào của counter đ−ợc chọn bằng
phần mềm.
c.9 bit UART với tốc độ baud cố định (mode 2).
cổng nối tiếp của
ồ.
y đổi đ−ợc (mode 3).
có thể
it còn mode 2 và mode 3 là
r enable)
bit RI và TI trong thanh ghi SCON đ−ợc lập lên 1 bằng phần cứng và
cuối cùng của dữ liệu
ã kết thúc truyền 1 byte dữ liệu (receiver buffer
ngắt. Nếu ch−ơng trình muốn nhận
p
CLR RI ;xoá RI
V A,SBUF ;Đọc dữ liệu từ SBUF
truyền và nó cho biết
g trình muốn gửi dữ liệu
Mode đ−ợc chọn bằng cách đặt bit SM1=1 và SM0=0,
8051 sẽ hoạt động nh− UART 9 bit có tốc độ baud cố định. 11bit sẽ đ−ợc truyền
và nhận qua TxD và RxD: 1 start bit, 9 bits dữ liệu và stop bit. Trong khi truyền
bit thứ 9 sẽ đ−ợc đặt vào TB8 của thanh ghi SCON còn trong khi nhận bit thứ 9 sẽ
đ−ợc đặt vào bit RB8. Tốc độ baud của mode 2 có thể là 1/32 hoặc 1/64 xung nhịp
đồng h
d.9 bit UART với tốc độ baud có thể tha
Mode 3 t−ơng tự nh− mode 2 nh−ng tốc độ baud đ−ợc lập trình và đ−ợc
cung cấp bằng timer. Trong thực tế cả 3 mode 1, 2, 3 là t−ơng đ−ơng nhau chỉ
khác nhau ở chỗ tốc độ baud ở mode 2 là cố định còn mode 1 và mode 3
thay đổi đ−ợc và số l−ợng bit dữ liệu của mode 1 là 8 b
9 bit.
• Cho phép nhận (Receive
Bit cho phép nhận (REN) của thanh ghi SCON phải đ−ợc lập bằng phần
mềm để cho phép nhận dữ liệu. Việc này đ−ợc tiến hành lúc bắt đầu ch−ơng trình
khi cổng nối tiếp, timer/counter,... đ−ợc khởi tạo. Có 2 cách xác lập bit này:
SETB REN hoặc MOV SCON,#xxx1xxxxb
(Trong đó x có thể là 0 hoặc 1 tuỳ theo yêu cầu của ch−ơng trình).
• Cờ ngắt (Interrupt flag)
Hai
phải đ−ợc xoá về 0 bằng phần mềm. RI đ−ợc xác lập khi bit
đ−ợc nhận và nó cho biết rằng đ
full) nó đ−ợc test bằng ch−ơng trình để gây ra
dữ liệu từ 1 thiết bị nối với cổng nối tiếp nó phải chờ cho đến khi RI đ−ợc lập sau
đó xoá RI và đọc dữ liệu từ SBUF .
Ví dụ:
WAIT : JNB RI,WAIT ;test RI và chờ cho đến khi đ−ợc lậ
MO
T−ơng tự bit TI đ−ợc lập khi bit cuối cùng của dữ liệu đ−ợc
rằng đã truyền xong (Transmit buffer empty). Nếu ch−ơn
Thỏi Nguyờn 7-2013 81
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
đến thiết bị nối qua cổng nối tiếp nó phải kiểm tra xem ký tự tr−ớc đó đã gửi ch−a,
ếu ch−a gửi nó phải chờ đến khi gửi xong mới đ−ợc gửi .
Ví dụ:
WAIT: JNB TI,WAIT ; Kiểm tra và chờ đến khi TI set
CLR TI ; Nếu set thì xoá TI
MOV SBUF,A ; Gửi dữ liệu vào SBUF để truyền.
n
Hỡnh 3.22. Hệ vi xử lý sử dụng 8051 cú bộ nhớ ngoài
NHểM LỆNH CỦA 89C51
ập lệnh của 8051 được chia thành 5 nhúm:
Số học.
Logic.
- Chuyển
ẽ nhỏnh
CÁC
T
-
-
- Chuyển dữ liệu.
điều khiển.
- R .
Thỏi Nguyờn 7-2013 82
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
Bảng 3.5. C
anh ghi được chọn.
ỏc chi tiết thiết lập lệnh
Rn Thanh ghi R0 đến R7 của bank th
Data 8 bit địa chỉ vựng dữ liệu bờn trong. Nú cú thể là vựng RAM dữ
liệu trong (0-127) hoặc cỏc thanh ghi chức năng đặc biệt.
@Ri 8 bit vựng RAM dữ liệu trong (0-125) được đỏnh giỏ địa chỉ
giỏn tiếp qua thanh ghi R0 hoặc R1.
#data Hằng 8 bit chứa trong cõu lệnh.
#data 16 Hằng 16 bit chứa trong cõu lệnh.
Addr16 1 ong lệnh LCALL và LJMP. 6 bit địa chỉ đớch được dựng tr
Addr11 11 bit địa chỉ đớch được dựng trong lệnh LCALL và AJMP.
Rel Byte offset 8 bit cú dấu được dựng trong lệnh SJMP và những
ú điều kiện. lệnh nhảy c
Bit Bit được định địa chỉ trực tiếp trong RAM dữ liệu nội hoặc cỏc
thanh ghi chức năng đặc biệt.
Nhúm lệnh xử lý số học
xử lý số học Bảng 3.6. Lệnh
ung thanh ghi Rn vào thanh ADD A,Rn (1byte 1 chu kỳ mỏy): cộng nội d
ghi A.
ADD A,data (21): Cộng trực tiếp 1 byte vào thanh ghi A.
ADD A,@Ri (11): Cộng giỏn tiếp nội dung RAM chứa tại địa chỉ được khai
bỏo trong Ri vào thanh ghi A.
ADD A,#data (21): Cộng dữ liệu tức thời vào A.
ADD A,Rn (11): Cộng thanh ghi và cờ nhớ vào A.
ADD A,data ực tiếp byte dữ liệu và cờ nhớ vào A. (21): Cộng tr
ADDC A,@Ri (11): Cộng giỏn tiếp nội dung RAM và cờ nhớ vào A.
ADDC
A,#data
(21): Cộng dữ liệu tức thời và cờ nhớ vào A.
SUBB A,Rn (11): Trừ nội dung thanh ghi A cho nội dung thanh ghi Rn và
cờ nhớ.
SUBB A,data cờ nhớ. (21): Trừ trực tiếp A cho một số và
SUBB A,@Ri (11): Trừ giỏn tiếp A cho một số và cờ nhớ.
SUBB A,#data cờ nhớ. (21): Trừ nội dung A cho một số tức thời và
INC A (11): Tăng nội dung thanh ghi A lờn 1.
INC Rn (11): Tăng nội dung thanh ghi Rn lờn 1.
Thỏi Nguyờn 7-2013 83
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
INC data (21): Tăng dữ liệu trực tiếp lờn 1.
INC @Ri (11): Tăng giỏn tiếp nội dung vựng RAM lờn 1.
DEC A (11): Giảm nội dung thanh ghi A xuống 1.
DEC Rn (11): Giảm nội dung thanh ghi Rn xuống 1.
DEC data (21): Giảm dữ liệu trực tiếp xuống 1
DEC @Ri (11): Giảm giỏn tiếp nội dung vựng RAM xuống 1.
INC DPTR (12): Tăng nội lờn 1. dng con trỏ dữ liệu
M hõn nội dung thanh ghi A với nội dung thanh ghi B. UL AB (14): N
DIV AB (14): Chia nội dung thanh ghi A cho nội dung thanh ghi B.
DA A (11): hiệu chỉnh thập phõn thanh ghi A.
Nhúm lệnh Logic
dung thanh ghi Rn.
Bảng 3.7. Lệnh Logic
ANL A,Rn (11): AND nội dung thanh ghi A với nội
ANL A,data (21): AND nội dung thanh ghi A với dữ liệu trực tiếp.
ANL A,@Ri (11): AND nội dung thanh ghi A với dữ liệu giỏn tiếp trong
RAM.
ANL A,#data tức thời. (21): AND nội dung thanh ghi với dữ liệu
ANL data,A (21): AND một dữ liệu trực tiếp với A.
ANL
data,#data
(32): AND một dữ liệu trực tiếp với A một dữ liệu tức thời.
ANL C,bit (22): AND cờ nhớ với 1 bit trực tiếp.
ANL C,/bit (22): AND cờ nhớ với bự 1 bit trực tiếp.
ORL A,Rn (11): OR thanh ghi A với thanh ghi Rn.
ORL A,data (21): OR thanh ghi A với một dữ liệu trực tiếp.
ORL A,@Ri ỏn tiếp. (11): OR thanh ghi A với một dữ liệu gi
ORL A,#data (21): OR thanh ghi A với một dữ liệu tức thời.
ORL data,A A. (21): OR một dữ liệu trực tiếp với thanh ghi
ORL
data,#data
(31) :OR một dữ liệu trực tiếp với một dữ liệu tức thời.
ORL C,bit (22): OR cờ nhớ với một bit trực tiếp.
ORL C,/bit (22): OR cờ nhớ với bự của một bit trực tiếp.
XRL A,Rn (11): XOR thanh ghi A với thanh ghi Rn.
XRL A,data (21): XOR thanh ghi A với một dữ liệu trực tiếp.
XRL A,@Ri hi A với một dữ liệu giỏn tiếp. (11): XOR thanh g
Thỏi Nguyờn 7-2013 84
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
XRL A,#data ột dữ liệu tức thời. (21): XOR thanh ghi A với m
XRL data,A rực tiếp với thanh ghi A. (21): XOR một dữ liệu t
XRL
data,#data
ới một dữ liệu tức thời. (31): XOR một dữ liệu trực tiếp v
SETB C (11): Đặt cờ nhớ.
SETB bit (21): Đặt một bit trực tiếp.
CLR A (11): Xúa thanh ghi A.
CLR C (11): Xúa cờ nhớ.
CPL A (11): Bự nội dung thanh ghi A.
CPL C (11): Bự cờ nhớ.
CPL bit (21): Bự một bit trực tiếp.
RL A (11): Quay trỏi nội dung thanh ghi A.
RLC A (11): Quay a cờ nhớ. trỏi nội dung thanh ghi A qu
R ải nội dung thanh ghi A. R A (11): Quay ph
RRC A (11): Quay phải nội dung thanh ghi A qua cờ nhớ.
SWAP (11 te). ): Quay trỏi nội dung thanh ghi A 1 nibble (1/2by
Nhúm lệnh chuyển dữ liệu
Bảng 3.8. Lệnh chu
i A.
yển dữ liệu
MOV A,Rn (11):Chuyển nội dung thanh ghi Rn vào thanh gh
MOV A,data (21): Chuyển dữ liệu trực tiếp vào thanh ghi A.
MOV A,@Ri huyển dữ liệu giỏn tiếp vào thanh ghi A. (11): C
MOV A,#data (21): Chuyển dữ liệu tức thời vào thanh ghi A.
MOV Rn,data huyển dữ liệu trực tiếp vào thanh ghi Rn. (22): C
MOV Rn,#data (21): Chuyển dữ liệu tức thời vào thanh ghi Rn.
MOV data,A (21): Chuyển nội dung thanh ghi A vào một dữ liệu trực
tiếp.
MOV data,Rn (22): Chuyển nội dung thanh ghi Rn vào một dữ liệu trực
tiếp.
MOV data,data huyển một dữ liệu trực tiếp vào một dữ liệu trực tiếp. (32): C
MOV data,@Ri (22): Chuyển một dữ liệu giỏn tiếp vào một dữ liệu giỏn
tiếp.
MOV data,#data (32): Chuyển một dữ liệu tức thời vào một dữ liệu trực tiếp.
MOV @Ri,A (11): Chuyển nội dung thanh ghi A vào một dữ liệu giỏn
tiếp.
Thỏi Nguyờn 7-2013 85
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
MOV @Ri,data ữ liệu giỏn tiếp. (22): Chuyển một dữ liệu trực tiếp vào một d
MOV @Ri,#data (21): Chuyển dữ liệu tức thời vào dữ liệu giỏn tiếp.
MOV
DPTR,#data
o thanh ghi con trỏ dữ liệu. (32): Chuyển một hằng 16 bit và
MOV C,bit (21): Chuyển một bit trực tiếp vào cờ nhớ.
MOV bit,C (22): Chuyển cờ nhớ vào một bit trực tiếp.
MOV
A,@A+DPTR
(12): Chuyển byte bộ nhớ chương trỡnh cú địa chỉ
là@A+DPRTvào thanh ghi A.
MOVC
A,@A+PC
(12): Chuyển byte bộ nhớ chương trỡnh cú địa chỉ là
@A+PC vào thanh ghi A.
MOVX A,@Ri huyển dữ liệu ngoài (8 bit địa chỉ) vào thanh ghi A. (12): C
MOVX
A,@DPTR
(12): Chuyển dữ liệu ngoài (16 bit địa chỉ) vào thanh ghi A.
MOVX @Ri,A (12): Chuyển nội dung A ra dữ liệu ngoài (8 bit địa chỉ).
MOVX
@DPTR,A
(12): Chuyển nội dung A ra dữ liệu bờn ngoài (16 bit địa
chỉ).
PUSH data (22): Chuyển dữ liệu trực tiếp vào ngăn xếp và tăng SP.
POP data p vào ngăn xếp và giảm SP. (22): Chuyển dữ liệu trực tiế
XCH A,Rn (11): Trao đổi dữ liệu giữa thanh ghi Rn v2 thanh ghi A.
XCH A,data (21): t dữ liệu trực tiếp. Trao đổi giữa thanh ghi A và mộ
X i giữa thanh ghi A và một dữ liệu giỏn tiếp. CH A,@Ri (11): Trao đổ
XCHD A,@R (11): Trao đổi giữa nibble thấp (LSN) của thanh ghi A và
LSN của dữ liệu giỏn tiếp.
Nhúm lệnh chuyền điều khiển
hu
trỡnh con dựng địa chỡ tuyệt đối.
Bảng 3.9. Lệnh c yển điều khiển
ACALL addr11 (22): Gọi chương
LCALL addr16 trỡnh con dựng địa chỉ dài. (32): Gọi chương
RET (12): Trở về từ lệnh gọi chương trỡnh con.
RETI (12): Trở về từ lệnh gọi ngắt.
AJMP addr11 (22): Nhảy tuyệt đối.
LJMP addr16 (32): Nhảy dài.
SJMP rel (22):Nhảy ngắn.
JMP @A+DPTR (12): Nhảy giỏn tiếp từ con trỏ dữ liệu.
JZ rel (22): Nhảy nếu A=0.
Thỏi Nguyờn 7-2013 86
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
JNZ rel (22): Nhảy nếu A khụng bằng 0.
JC rel (22): Nhảy nếu cờ nhớ được đặt.
JNC rel hảy nếu cờ nhớ khụng được đặt. (22): N
JB bit,rel (32): Nhảy tương đối nếu bit trực tiếp được đặt.
JNB bit,rel hảy tương đối nếu bit trực tiếp khụng được đặt. (32):N
JBC bit,rel (32): Nhảy tương đối nếu bit trực tiếp được đặt, rồi xúa bit.
CJNE A,data,rel trực tiếp với A và nhảy nếu khụng (32): So sỏnh dữ liệu
bằng.
CJNE A,#data,rel liệu tức thời với A và nhảy nếu khụng (32): So sỏnh dữ
bằng.
CJNE
Rn,#data,rel
n và
nhảy nếu khụng bằng.
(32): So sỏnh dữ liệu tức thời với nội dung thanh ghi R
CJNE
@Ri,
(32): So sỏ ới dữ liệu giỏn tiếp và nhảy nh dữ liệu tức thời v
#data,rel nếu khụng bằng.
DJNZ Rn,rel (22): Giảm thanh ghi Rn và nhảy nếu khụng bằng.
DJNZ data (32): Giảm dữ liệu trực tiếp và nhảy nếu khụng bằng.
Cỏc lệnh rẽ nhỏnh
trong chương trỡnh bao gồm việc gọi hoặc trả lại
từ h con hoặc rẽ h ả
c h rẽ nhỏnh đều khụng ng đến cờ. Ta cú t nhảy đến nơi cần
n khụng cần đưa rừ đ biờn dịch sẽ đặ tới
v g lệnh đó đưa ra.
B 0. Lệnh nhảy cú điều k
> dition> ump_if
Cú nhiều lệnh để thực hiện
chương trỡn nhỏnh cú điều kiện hay k ụng cú điều kiện. Tất c
ỏc lện ảnh hưở hể định
hảy mà ịa chỉ, trỡnh t địa chỉ nơi cần nhảy
ào đỳn
ảng 3.1 iện
<condition Jump_if_not<con J
C=1 JNC rel JC rel
Bit=1 JNB bit,rel JB bit,rel/JNC bit,rel
A=0 JNZ rel JZ rel
Rn=0 DJNZ Rn,rel
Direct=0 DJNZ direct,rel
A direct CJNE A,direct,rel
A#data CJNE A,#data,rel
Rn#data CJNE Rn,#data,rel
@Ri#data CJNE @Ri,#data,rel
Thỏi Nguyờn 7-2013 87
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
Nhảy khụng cú điều kiện
a. C repe t until”
n>
Ngụn sembly:
ion
ondition>,LOOP
b. C hile do”
ondi n>
on>
Ngụn :
O
SJMP STOP
n else”
action 1>
Ngụn mbl
n>,ELSE
d. C of”
1 of
0 = 1
ấu trỳc “ a
Repeat
Until <conditio
ngữ As
LOOP:
JUMP_if_not_<c
ấu trỳc “w
while
<c tio
do <acti
ngữ Assembly
LOOP:
JUMP_if_not_,D
DO:
SJMP LOOP
STOP: ...
c. Cấu trỳc “if the
if
then <
else
ngữ Asse y
JUMP_if_not_<conditio
SJMP DONE
ELSE:
DONE: ...
ấu trỳc “case
case P
#11111110b: P2.
#11111101b: P2.1 = 1
Thỏi Nguyờn 7-2013 88
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
#11111011b: P2.2 = 1
else P2 = 0
end
Ngụn y
MP E IT
1b,SKIP2
.1
SJMP EXIT
IP2: CJNE P1,#11111011b,SKIP3
là sự từng
l = 0.
it, re u (bit) = 1.
it, re nếu (bit) = 0.
it, re bit = 1 và xúa bit.
A L ge 2K.
0)
((SP)) (PC15PC8)
(PC10PC0) page Address.
: Lệnh gọi dài chương trỡnh con trong 64K.
(PC) (PC) + 3
)) PC7 C0)
ddr0.
ngữ Assembl
CJNE P1,#11111110b,
SKIP1 SETB P2.0
SJ X
SKIP1: CJNE P1,#1111110
SETB P2
SK
SETB P2.2
SJMP EXIT
SKIP3: MOV P2,#0
EXIT: ...
Sau đõy túm tắt hoạt động của lệnh nhảy.
JC rel : Nhảy đến “rel” nếu cờ Carry C = 1.
JNC re : Nhảy đến “rel” nếu cờ Carry C
JB b l : Nhảy đến “rel” nế
JNB b l : Nhảy đến “rel”
JBC b l : Nhảy đến “rel” nếu
AC L addr11 : Lệnh gọi tuyệt đối trong pa
(PC) (PC) + 2 (SP) (SP) + 1
((SP)) (PC7PC
(SP) (SP) + 1
LCALL addr16
(SP) (SP) + 1
((SP ( P
(SP) (SP) + 1
((SP)) (PC15PC8)
(PC) Addr15A
Thỏi Nguyờn 7-2013 89
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
RET : Kết thỳc chương trỡnh con trở về chương trỡnh chớnh.
(PC15PC8) (SP)
7P 0) ( P))
(SP) (SP) -1.
chương trỡnh
ress.
nh LCALL.
l
A + R
)
JZ rel lệh kế nếu A = 0.
) + byte 2
JNZ rel
2
CJNE A, direct, rel
Address.
c hành lệnh kế tiếp
CJNE A, # data, rel JNE A, direct, rel.
CJNE Rn, # data, rel l.
rel rel.
DJNE Rn, rel : Giảm Rn và nhảy nếu Rn 0.
(Rn) (Rn) -1
(SP) (SP) - 1
(PC C (S
RETI : Kết thỳc thủ tục phục vụ ngắt quay về
chớnh hoạt động tương tự như RET.
AJMP Addr11 : Nhảy tuyệt đối khụng điều kiện trong 2K.
(PC) (PC) + 2
(PC10PC0) page Add
LJMP Addr16 : Nhảy dài khụng điều kiện trong 64K
Hoạt động tương tự lệ
SJMP re :Nhảy ngắn khụng điều kiện trong (-128 127) byte
(PC) (PC) + 2
(PC) (PC) + byte 2
JMP @ DPT : Nhảy khụng điều kiện đến địa chỉ (A) + (DPTR)
(PC) (A) + (DPTR
: Nhảy đến A = 0. Thực hành
(PC) (PC) + 2
(A) = 0 (PC) (PC
: Nhảy đến A 0. Thực hành lệnh kế nếu A = 0.
(PC) (PC) + 2
0 (PC) (PC) + byte
: So sỏnh và nhảy đến A direct
(PC) (PC) + 3
(A) (direct) (PC) (PC) + Relative
(A) < (direct) C = 1
(A) > (direct) C = 0
(A) = (direct). Thự
: Tương tự lệnh C
: Tương tự lệnh CJNE A, direct, re
CJNE @ Ri, # data, : Tương tự lệnh CJNE A, direct,
(PC) (PC) + 2
Thỏi Nguyờn 7-2013 90
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
(Rn) 0 (PC) (PC) + byte 2.
DJNZ direct, rel : Tương tự lệnh DJNZ Rn, rel.
Cỏc lệnh dịch chuyển dữ liệu
RAM nội hoặc cỏc vựng nhớ của cỏc thanh ghi chức
năng
toỏn hạng DESTINATION.
cực trong suốt quỏ trỡnh
thực X, cũn bỡnh thường RD và WR khụng tớch cực (mức 1).
Tất c chuyển đều khụng ảnh hưởng đến cờ. Hoạt động của từng
lệnh
PUSH direct ăn xếp
(SP) (SP) + 1
POP direct : Lấy t ra direct
XCH A, direct : (A) (direct)
3Ri0))
Cỏ tstruction):
Cỏc lệnh dịch chuyển dữ liệu trong những vựng nhớ nội thực thi 1 hoặc 2
chu kỳ mỏy. Mẫu lệnh MOV , cho phộp di chuyển dữ liệu
bất kỳ 2 vựng nhớ nào của
đặc biệt mà khụng thụng qua thanh ghi A.
Vựng năn xếp của 8951 chỉ chứa 128 byte RAM nội, nếu con trỏ ngăn xếp
SP được tăng quỏ địa chỉ 7FH thỡ cỏc byte được PUSH vào sẽ mất đi và cỏc byte
POP ra thỡ khụng biết rừ.
Cỏc lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoài sự định vị giỏn tiếp. Địa
chỉ giỏn tiếp cú thể dựng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất
cả cỏc lệnh dịch chuyển hoạt động trờn toàn bộ nhớ ngoài thực thi trong 2 chu kỳ
mỏy và dựng thanh ghi A làm
Việc đọc và ghi RAM ngoài (RD và WR) chỉ tớch
thi của lệnh MOV
ả cỏc lệnh dịch
được túm tắt như sau:
: Cất dữ liệu vào ng
(SP) (Drirect)
ừ ngăn xếp
(direct) ((SP))
(SP) (SP) - 1
XCH A, Rn : Đổi chổ nội dung của A với Rn
(A) (Rn)
XCH A, @ Ri : (A) ((Ri))
XCHD A, @ Ri : Đổi chổ 4 bit thấp của (A) với ((Ri))
(A3A0) ((Ri
c lệnh xen vào (MiCSellamous In
NOP : Khụng hoạt động gỡ cả, chỉ tốn 1 byte và 1 chu kỳ mỏy. Ta dựng để
tạo trễ những khoảng thời gian nhỏ.
Thỏi Nguyờn 7-2013 91
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
3.5 Vi điều khiển của Atmel AVR
3.5.1. Giới thiệu chung về AVR
Vi điều khiển AVR là sản phẩm của cụng ty Atmel (Hoa kỳ), là một bộ xử
lý cú liệu tỏch
biệt. B
Đõy là iều khiển này.
Sau đõ
i điều khiển 8 bit- cú 32 thanh ghi đa năng 8 bit.
8 triệu lệnh trờn 1 giõy ở tần số 8 MHz. Cú nghĩa
ập trỡnh được ngay trờn hệ thống, chịu được 10000
AM 1 kbyte
te lập trỡnh được ngay trờn hệ thống, chịu được
c tớnh năng ngoại vi:
riờng.
ế độ so sỏnh tớn
điều biến độ rộng xung PWM kộp 8,9,10
ng tự cú sẵn trờn chớp.
trờn chớp .
ảm năng lượng tiờu thụ
OS tốc độ cao, tiờu thụ ớt năng lương.
4MHz, 3V, 25 độ C.
- Chế độ làm giảm năng lượng tiờu thụ: < 1uA
- Vào ra và cỏch đúng vỏ :
- 32 chõn vào ra lập trỡnh được được đúng vỏ PDIP 40 chõn
kiến trỳc kiểu Harvard: cú bộ nhớ chương trỡnh và một bộ nhớ dữ
ộ vi điều khiển AVR cú nhiều khả năng mới để giảm năng lượng tiờu thụ.
một trong những ưu điểm lớn của họ vi đ
y là một số đặc điểm, tớnh năng kỹ thuật của AVR Atmega 16.
- Atmega 16 là v
- Tốc độ vi xử lý lờn đến
là 1 chu kỡ mỏy dựng 1 chu kỡ thạch anh.
- Bộ nhớ flash 16 kbyte l
chu kỡ viết xoỏ.
- Bộ nhớ SR
- Bộ nhớ EEPROM 512By
100.000 chu kỡ viết xoỏ.
- Lập trỡnh khoỏ để bảo mật dữ liệu trong bộ nhớ chương trỡnh flash và
EEPROM.
+ Cỏ
- Bộ định thời /đếm 8 bit với bộ chia tần
- Một bộ định thời /đếm 16 bit với bộ chia tần riờng, ch
hiệu. Chế độ bắt tớn hiệu và bộ
bit.
- Bộ so sỏnh tươ
- Bộ định thời Watchdog lập trỡnh được cú sẵn
- UART nối tiếp lập trỡnh đựơc
- Giao tiếp bus I2C
- Giao tiếp SPI
Cỏc tớnh năng đặc biệt của AVR ATMega16:
- Chế độ tiờu thụ ớt năng lượng và gi
- Cỏc nguồn ngắt trong và ngoài.
+ Cỏc đặc tớnh :
- Cụng nghệ xử lý CM
- Hoạt động tĩnh hoàn toàn.
- Mức tiờu thụ năng lượng ở
- Chế độ hoạt động tớch cực : 3,0mA
- Chế độ chờ: 1,0 mA
Thỏi Nguyờn 7-2013 92
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
- Điệ n
n ỏp nguồn uụi : 2,7 V -> 6 V
Hỡnh 3.23. Sơ đồ chõn và chức năng cỏc chõn của vi diều khiển AVR
ATMEGA 16
+ PDIP 40 chõn. Trong đú cú 32 chõn I/O (in
ut uồn, 2 chõn dao động, 1
chõn Reset, 1chõn AREF. Mỗi một chõn cú thể đảm nhận nhiều vai trũ. Cụ thể
như sa
PB0
r của timer 0-T0
r của timer 1-T1
Timer0 -OCO0
ATMega16 đúng gúi dạng
p /out put) chia thành 4 Port: A,B,C,D; 4 chõn ng
u:
1. Chõn số 1: cú vai trũ
- Chõn IO số 0 port B-
- Chõn đầu vào bộ đếm coute
2. Chõn số 2: cú vai trũ
- Chõn IO số 2 port B- PB1
- Chõn đầu vào bộ đếm coute
3. Chõn số 3: cú vai trũ
- Chõn IO số 3 port B- PB2
- Chõn ngắt ngoài 2 –INT2
4. Chõn số 4: cú vai trũ
- Chõn IO số 4 port B- PB3
- Chõn đầu ra điều chế độ rộng xung PWM của
5. Chõn số 5: cú vai trũ
- Chõn IO số 5 port B- PB4
Thỏi Nguyờn 7-2013 93
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
rong chuẩn SPI -SS
6.
Master, nhận data nếu là Slave trong SPI
7.
Slave, nhận data nếu là Master trong SPI
8.
SPI
9. reset của AVR
ấp nguồn GND 0V
12. ối với thạnh anh
huẩn RS232
15.
uẩn RS232
16.
T0
17.
T1
18.
D4
ủa Timer1 –OCO1B
rộng xung PWM của Timer1 –OCO1A
20.
D6
21.
D7
ng xung PWM của Timer2 –OCO2
- Chõn chọn con slave t
Chõn số 6: cú vai trũ
- Chõn IO số 6 port B- PB5
- Chõn xuất data nếu là
Chõn số 7: cú vai trũ
- Chõn IO số 7 port B- PB6
- Chõn xuất data nếu là
Chõn số 8: cú vai trũ
- Chõn IO số 8 port B- PB7
- Chõn xuất clock trong
Chõn số 9: cú vai trũ đầu vào
10. Chõn số 10: cú vai trũ cấp nguồn VCC 5V
11. Chõn số 11: cú vai trũ c
Chõn số 12: chõn dao động, n
13. Chõn số 13: chõn dao động, nối với thạnh anh
14. Chõn số 14: cú vai trũ
- Chõn IO số 1 port D- PD0
- Chõn nhận data theo c
Chõn số 15: cú vai trũ
- Chõn IO số 2 port D- PD1
- Chõn xuất data theo ch
Chõn số 16: cú vai trũ
- Chõn IO số 3 port D- PD2
- Chõn ngắt ngoài 0–IN
Chõn số 17: cú vai trũ
- Chõn IO số 4 port D- PD3
- Chõn ngắt ngoài 1–IN
Chõn số 18: cú vai trũ
- Chõn IO số 5 port D- P
- Chõn đầu ra điều chế độ rộng xung PWM c
19. Chõn số 19: cú vai trũ
- Chõn IO số 6 port D- PD5
- Chõn đầu ra điều chế độ
Chõn số 20: cú vai trũ
- Chõn IO số 7 port D- P
Chõn số 21: cú vai trũ
- Chõn IO số 8 port D- P
- Chõn đầu ra điều chế độ rộ
22. Chõn số 22: cú vai trũ
Thỏi Nguyờn 7-2013 94
Phạm Đức Long BM Cụng nghệ &Thiết bị Tự động
Khoa CN Tự động húa – ĐHCNTT&TT Thỏi Nguyờn
BÀI GIẢNG MễN HỌC
VI XỬ Lí VÀ LẬP TRèNH HỢP NGỮ
- Chõn IO số 1 port C- PC0
huẩn I2C-SCL
23.
huẩn I2C-SDA
24.
26.
C4
27.
29.
C7
30. iện ỏp VCC 5V
31. điện ỏp GND 0V
chuyển đổi ADC 4
- Chõn chuyển đổi ADC 3
- Chõn xuất clock theo c
Chõn số 23: cú vai trũ
- Chõn IO số 2 port C- PC1
- Chõn xuất Data theo c
Chõn số 24: cú vai trũ
- Chõn IO số 3 port C- PC2
25. Chõn số 25: cú vai trũ
- Chõn IO số 4 port C- PC3
Chõn số 26: cú vai trũ
- Chõn IO số 5 port C- P
Chõn số 27: cú vai trũ
- Chõn IO số 6 port C- PC5
28. Chõn số 28: cú vai trũ
- Chõn IO số 7 port C- PC6
Chõn số 29: cú vai trũ
- Chõn IO số 8 port C- P
Chõn số 30: cú vai trũ cấp đ
Chõn số 31: cú vai trũ cấp
32. Chõn số 33: cú vai trũ
- Chõn IO số 8 port C- PC7
- Chõn chuyển đổi ADC 7
33. Chõn số 34: cú vai trũ
- Chõn IO số 7 port C- PC6
- Chõn chuyển đổi ADC 6
34. Chõn số 35: cú vai trũ
- Chõn IO số 6 port C- PC5
- Chõn chuyển đổi ADC 5
35. Chõn số 36: cú vai trũ
- Chõn IO số 5 port C- PC4
- Chõn
36. Chõn số 37: cú vai trũ
- Chõn IO số 4 port C- PC3
37. Chõn số 38: cú vai trũ
- Chõn IO số 3 port C- PC2
- Chõn chuyển đổi ADC 2
38. Chõn số 39: cú vai trũ
- Chõn IO số
Các file đính kèm theo tài liệu này:
- giao_trinh_ky_thuat_vi_xu_ly_va_lap_trinh_hop_ngu_pham_duc_l.pdf