1. Trang chủ
  2. » Giáo án - Bài giảng

Vi xu ly chapter ă

94 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 94
Dung lượng 4,4 MB

Nội dung

10/11/2021 MICROCONTROLLER (µC, MCU) VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Giảng viên: TS Đoàn Thị Hương Giang ĐT: 037 263 0593 Email: giangdth@epu.edu.vn TÀI LIỆU THAM KHẢO [1] Họ Vi điều khiển 8051, Tống Văn On [2] Cấu trúc lập trình cho họ vi điều khiển 8051, Nguyễn Tăng Cường [3] MCS51 Microcontroller Family User’s Manual, Intel (334 pages) [4] Kỹ Thuật vi xử lý, Văn Thế Minh [5] Kỹ Thuật VXL Lập Trình Assembly VXL, Đỗ Xuân Tiến [6] Cấu Trúc – Lập Trình – Ghép Nối Ứng dụng Vi điều khiển (tập 1, 2), Nguyễn Mạnh Giang TS Đoàn Thị Hương Giang 10/11/2021 NỘI DUNG Các hệ đếm mã hóa thơng tin Vi xử lý Hệ vi xử lý Mô tả phần cứng họ µC 8051 Các tập lệnh họ µC 8051 Bộ đếm Bộ định thời Truyền tin nối tiếp Ngắt vi xử lý TS Đoàn Thị Hương Giang CÁC HỆ ĐẾM VÀ MÃ HĨA THƠNG TIN 1.1 CÁC HỆ ĐẾM Các hệ đếm thường dùng: Hệ nhị phân (Binary) - Hệ Hệ thập phân (Decimal) - Hệ 10 Hệ thập lục phân (Hexa) - Hệ 16 Chuyển đổi hệ đếm: Mọi hệ đếm → Hệ thập phân : Dùng công thức khai triển tổng quát L N= i = -M a Ví Dụ: *bi B D, ko cần viết H Trong đó: b số Hệ b =2// Hệ 10 b = 10// Hệ 16 b= 16 M, L: nguyên dương a: số số hạng hệ đếm nhận giá trị từ 0,1, (b-1) i : trọng số N : giá trị thập phân Binary b = a = Decimal b = 10a = , 1, 2, 3, 4, 5, 6, 7, 8, Hexa b = 16 a = , 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 10 11 12 13 14 15 Hệ 10: (1997)10= 1.103 + 9.102 + 9.101 + 7.100 = 1000+900+90+7 =1997 hay 1997D Hệ 2: (110 1101)2 = 1.26 + 1.25 + 0.24 + 1.23+ 1.22 + 0.21 + 1.20 = = 64 + 32 + + + + + = 109D Hệ 16: (3A5)16 = 3.162 + 10.161 + 5.160 = 3*256 + 160 +5 = 933D TS Đoàn Thị Hương Giang 10/11/2021 1.1 CÁC HỆ ĐẾM Chuyển đổi hệ đếm: Hệ thập phân → Nhị phân : Chia liên tiếp cho lấy ngược lại Hệ thập phân → Hexa : Chia liên tiếp cho 16 lấy ngược lại Có thể dùng phương pháp tính nhẩm 12 = + =1.23 + 22+ 0.21 + 20 Ví Dụ: 1100B Ký hiệu hệ đếm: 923D → 39BH 923 256 dư 155 16 dư 11 923 = 3*256 + 9*16 + 11 = 3.162 + 161 + 11 160 Cách tính làm lâu số lớn 12D → 0000 1100B TS Đoàn Thị Hương Giang 39BH Cách tính làm nhanh số lớn a) 1256  Hệ hệ 16 B: 0100 1110 1000B  4E8H b) 137  hệ hệ 16 10001001B  89H TS Đoàn Thị Hương Giang 10/11/2021 Hệ Hệ 16 ‘0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 A 1011 B 1100 C 1101 D 1110 E 1111 12D → 0000 1100B Cao 0CH Thấp byte = nibble 39BH 0011 1001 1011B F TS Đoàn Thị Hương Giang 1.1 CÁC HỆ ĐẾM HEXA → BINARY (Chuyển từ hexa sang nhị phân) Ví dụ số hexa: 0DEADH Sử dụng bảng ta có: D → 1101 B E → 1110 B A → 1010 B D → 1101 B DEAD (hex) → 1101 1110 1010 1101 (binary) 0DEADH → 1101 1110 1010 1101B TS Đoàn Thị Hương Giang 10/11/2021 1.1 CÁC HỆ ĐẾM BINARY → HEXA (Chuyển từ nhị phân sang hexa) Ví dụ cho mã nhị phân sau: 10110111101111 Lấy từ phải sang trái, gom bit chuyển sang mã hexa 0010 1101 1110 1111  0010 /1101 /1110/ 1111 Sử dụng bảng ta có được: 0010 → 1101 → D 1110 → E 1111 → F 0010 1101 1110 1111 (binary) → 02DEF (hex) 0010 1101 1110 1111B → 02DEFH TS Đoàn Thị Hương Giang CÁCBảng HỆĐẾM ĐẾM VÀ MÃHĨA HĨATHƠNG THƠNG mãVÀ ASCII 1.1.CÁC HỆ MÃ TIN TIN 1.2 CÁC MÃ Các hệ đếm: 2, 10, 16 gọi mã: mã nhị phận, mã thập phân Mã ASCII (American Standard Code for Information Interchange): Là mã chuẩn quốc tế Hoa Kỳ, mã dùng chủ yếu máy tính ngơn ngữ máy khác để thể ký tự Bảng mã ASCII đơn giản: (ngồi cịn có bảng mã ASCII mở rộng) Bảng mã ASCII có cuối sách Nguyễn Tăng Cường TS Đoàn Thị Hương Giang 10 10/11/2021 TS Đoàn Thị Hương Giang 11 Bảng mã ASCII CÁC HỆ ĐẾM VÀmở MÃrộng HÓA 1.1.CÁC HỆ ĐẾM VÀ MÃ HÓA THƠNGTIN TIN THƠNG TS Đồn Thị Hương Giang 12 10/11/2021 CÁC HỆ ĐẾM VÀ MÃ HĨA THƠNG 1.2 CÁC MÃ TIN GRAY Nhị phân Thập phân Mã GRAY TS Đoàn Thị Hương Giang 13 1.2 CÁC MÃ Mã BCD (Binary Coded Decimal): Là mã thập phân biểu diễn dạng nhị phân bít (mã BCD gói_packed) bit (mã BCD khơng gói_unpacked) Sự khác mã BCD nhị phân: 12D → 1100B 12D → (0001 0010)BCD 12D → (000 0001 0000 0010)BCD Decimal Binary BCD gói BCD khơng gói Ứng dụng hiển thị LED TS Đoàn Thị Hương Giang 14 10/11/2021 CÁC HỆ ĐẾM VÀ MÃ HÓA THÔNG 1.2 CÁC MÃ TIN Biểu diễn số âm: Biểu diễn số không dấu: Số bit:  Hệ Decimal: ÷ 255  Hệ Binary: 0000 0000 ÷ 1111 1111  Hệ Hexa: 00H ÷ FFH Cơ Số 16 bit:  Hệ Decimal: ÷ 65535  Hệ Binary: 0000 0000 0000 0000÷ 1111 1111 1111 1111  Hệ Hexa: 0000H ÷ FFFFH Biểu diễn số số âm:  Biểu diễn dạng số có dấu  Biểu diễn dạng mã bù (của  Biểu diễn dạng mã bù số dương tương ứng) TS Đoàn Thị Hương Giang 15 1.2 CÁC MÃ Biểu diễn số âm: Số có dấu: Biểu diễn dạng mã nhị phân bít có trọng số cao (MSB) bit quy ước dấu “0” : Số dương Nếu số có dấu bit: Thì bit7 bit quy ước dấu: “1” : Số âm Nếu 8bit số có dấu từ: -127,…., -0,+0,….+127 hay: 1111 1111, … , 1000 000, 0000 0000, ……, 0111 1111 Ví dụ: mã nhị phân số +5 : 0000 0101 - : 1000 0101 1000 1010 ≠ TS Đoàn Thị Hương Giang 16 10/11/2021 CÁC HỆ ĐẾM VÀ MÃ HĨA THƠNG 1.2 CÁC MÃ TIN Biểu diễn số âm: Mã bù 1: Là mã biểu diễn dạng mã nhị phân bit giá trị đảo số nhị phân số dương tương ứng Ví dụ: mã nhị phân số +5: Mã bù +5: + 0000 0101 1111 1010 Được quy ước -5 +5 0000 0101 -5 1111 1010 1111 1111 ≠ TS Đoàn Thị Hương Giang 17 1.2 CÁC MÃ Biểu diễn số âm: Mã bù 2: Là mã biểu diễn dạng mã nhị phân tính sau Mã bù = Mã bù + Ví dụ: mã nhị phân số +5 : 0000 0101 Mã bù +5: 1111 1010 + Mã bù +5: 1111 1011 Như vậy: + Được quy ước -5 +5 0000 0101 -5 1111 1011 0000 0000 ≠ Bị tràn =0 TS Đồn Thị Hương Giang 18 10/11/2021 Tìm số (-189)??? 189  hệ 2: 10111101B Bù 1: 01000010B Bù 2: + 01000011B TS Đoàn Thị Hương Giang 19 Hệ 16 189D 0000 0000 1011 1101B Số dương Hệ 16 Bù + Tổng hai số +189 -189 1111 1111 0100 0010B Bù 1111 1111 0100 0011B Số âm 0000 0000 1011 1101B 1111 1111 0100 0011B 0000 0000 0000 0000B =0 TS Đoàn Thị Hương Giang 20 10 10/11/2021 Signed Addition and Overflow 2’s 0000 … 0111 1000 … 1111 0111 1111 (positive 127) 0111 0011 (positive 115) 1111 0010 (overflow cannot represent 242 in bits 2’s complement) complement: 0000 00 1111 0000 1111 7F 127 80 -128 1000 1111 1101 0011 0110 0010 FF -1 (negative 113) (negative 45) (overflow) 0011 1111 (positive) 1101 0011 (negative) 0001 0010 (never overflows) TS Đoàn Thị Hương Giang 159 Ví dụ ; Tính Z = X + Y ; Cộng giá trị địa 78h 79h sau để kết địa 7Ah ; -X equ 78h Y equ 79h Z equ 7Ah ; org 00h ljmp Main ; org 100h Main: mov a, X add a, Y mov Z, a end TS Đoàn Thị Hương Giang 160 80 10/11/2021 Lệnh trừ Dạng lệnh Mô tả SUBB A, Rn SUBB A, direct SUBB A, @Ri SUBB A, #data trừ nội dung ghi A Rn trừ thêm cờ nhớ C, kết cất vào A trừ nội dung ghi A với ô nhớ direct trừ thêm cờ nhớ C, kết cất vào A trừ nội dung ghi A với ô nhớ trỏ Ri trừ thêm cờ nhớ C , kết cất vào A trừ nội dung ghi A số data trừ thêm cờ nhớ C, kết cất vào A Ví dụ Số CK Số byte SUBB A, R7 1 SUBB A, 41h SUBB A, @R0 1 SUBB A, #10 TS Đoàn Thị Hương Giang 161 Cú pháp thực lệnh SUBB Toán hạng 1, Toán hạng Toán hạng = Toán hạng - Toán hạng - C TS Đoàn Thị Hương Giang 162 81 10/11/2021 Phép trừ - Subtract SUBB A, byte Trừ có mượn Ví dụ: SUBB A, #4FH ;A  A – 4F – C Lưu ý: There is no subtraction WITHOUT borrow Therefore, if a subtraction without borrow is desired, it is necessary to clear the C flag Ví dụ: Clr c SUBB A, #4FH ;A  A – 4F TS Đoàn Thị Hương Giang 163 Lệnh tăng-giảm Dạng lệnh INC INC INC INC DEC DEC DEC DEC INC MUL DIV DA Mơ tả Ví dụ INC tăng nội dung ghi A lên đơn vị INC tăng nội dung ghi Rn lên đơn vị INC tăng nội dung ô nhớ direct lên đơn vị tăng nội dung ô nhớ trỏ Ri lên đơn vịINC DEC giảm nội dung ghi A lên đơn vị DEC giảm nội dung ghi Rn lên đơn vị DEC giảm nội dung ô nhớ direct lên đơn vị giảm nội dung ô nhớ trỏ Ri lên đơn @Ri DEC vị DPTR tăng giá trị ghi DPTR lên đơn vị INC nhân nội dung ghi A ghi B, kết quả: A AB MUL chứa byte thấp, B chứa byte cao chia A cho B, kết quả: A chứa thương số, B AB DIV chứa số dư hiệu chỉnh BCD cho nội dung ghi A Nếu digit A (dạng HEX) lớn A DA cộng thêm vào digit đó, ngược lại cộng lệnh hoạt động cho phép cộng A Rn direct @Ri A Rn direct TS Đoàn Thị Hương Giang Số CK Số byte A R6 42h @R0 A R6 43h 1 1 1 1 1 @R0 1 DPTR AB AB A 1 164 82 10/11/2021 Ví dụ lệnh tăng số 16 bit • Số 16-bit lưu R3:R2 mov a, r2 add a, #1 mov r2, a mov a, r3 addc a, #0 mov r3, a ; sử dụng cộng với để có nhớ sang cờ C byte thấp tràn ; Nếu byte thấp tràn có nhớ sang byte cao thơng qua C TS Đồn Thị Hương Giang 165 Lệnh nhân-chia 16 bit Dạng lệnh MUL AB DIV AB DA A Mơ tả Ví dụ Nhân nội dung ghi A ghi B, kết quả: A chứa byte MUL AB thấp, B chứa byte cao Chia A cho B, kết quả: A chứa DIV AB thương số, B chứa số dư Hiệu chỉnh BCD cho nội dung ghi A Nếu digit A (dạng HEX) lớn DA A cộng thêm vào digit đó, ngược lại cộng lệnh hoạt động cho phép cộng TS Đoàn Thị Hương Giang Số Số CK byte 4 1 166 83 10/11/2021 Nhân Nhân số 8-bit kết phép nhân 16-bits FF x FF = FE01 (255 x 255 = 65025) bit MUL AB bit 16 bit ; BA  A * B Lưu ý: B chứa kết byte cao A kết byte thấp TS Đoàn Thị Hương Giang 167 Chia • Integer Division DIV AB ; divide A by B A  Kết phép chia (A/B) B  Phần dư phép chia(A/B) OV - used to indicate a divide by zero condition C – set to zero TS Đoàn Thị Hương Giang 168 84 10/11/2021 Hiệu chỉnh BCD DA a ; decimal adjust a Used to facilitate BCD addition Adds “6” to either high or low nibble after an addition to create a valid BCD number Example: mov a, #23h mov b, #29h add a, b DA a ; a  23h + 29h = 4Ch (wanted 52) ; a  a + = 52 TS Đoàn Thị Hương Giang 169 Các nhóm lệnh 8051 • Lệnh di chuyển • Lệnh số học • Lệnh logic • Xử lý bit • Lệnh rẽ nhánh • Lệnh tạo trễ TS Đồn Thị Hương Giang 170 85 10/11/2021 Các lệnh logic  Bitwise logic operations  (AND, OR, XOR, NOT)  Clear  Rotate  Swap Logic instructions NOT affect the flags in PSW TS Đoàn Thị Hương Giang 171 Lệnh AND Dạng lệnh ANL ANL ANL ANL ANL ANL Mô tả thực AND nội dung ghi A với Rn, kết cất vào A thực AND nội dung ghi A A, direct với ô nhớ direct, kết cất vào A thực AND nội dung A, @Ri ghi A với nhớ có địa trỏ Ri, kết cất vào A thực AND nội dung ghi A A, #data với số data, kết cất vào A thực AND nội dung ô nhớ direct, A direct với ghi A , kết cất vào ô nhớ direct thực AND nội dung ô nhớ direct, #data direct với số data , kết cất vào ô nhớ direct A, Rn TS Đồn Thị Hương Giang Ví dụ Số CK Số byte ANL A, R7 1 ANL A, 45h ANL A, @R0 1 ANL A, #45h ANL 45h, A ANL 45h, #45h 172 86 10/11/2021 ALN Toán hạng 1, Toán hạng Toán hạng = Toán hạng1 (and) Toán hạng Thực and theo bit tương ứng hai toán hạng Bit 0 Bit Kết 0 1 1 TS Đoàn Thị Hương Giang 173 Lệnh OR Dạng lệnh ORL A, Rn ORL A, direct ORL A, @Ri ORL A, #data ORL direct, A ORL direct, #data Mô tả thực OR nội dung ghi ORL A với Rn, kết cất vào A thực OR nội dung ghi A với ô nhớ direct, kết cất vào ORL A thực OR nội dung ghi A với nhớ có địa trỏ ORL Ri, kết cất vào A thực OR nội dung ghi A với số data, kết cất vào ORL A thực OR nội dung ô nhớ direct với ghi A , kết cất ORL vào ô nhớ direct thực OR nội dung ô nhớ direct với số data , kết cất ORL TS Đoàn Thị Hương Giang vào nhớ direct Ví dụ Số Số byte CK A, R7 1 A, 45h A, @R0 1 A, #45h 45h, A 45h, #45h 174 87 10/11/2021 ORL Toán hạng 1, Toán hạng Toán hạng = Toán hạng (or) Toán hạng Thực and theo bit tương ứng hai toán hạng Bit Bit Kết 0 0 1 1 1 Cộng logic Bit Bit Kết 0 0 1 1 Viết nhớ 1 Cộng số học TS Đoàn Thị Hương Giang 175 Lệnh XOR Dạng lệnh XRL A, Rn XRL A, direct XRL A, @Ri XRL A, #data XRL direct, A XRL direct, #data Mô tả thực XOR nội dung ghi XRL A với Rn, kết cất vào A thực XOR nội dung ghi A với ô nhớ direct, kết cất XRL vào A thực XOR nội dung ghi A với nhớ có địa trỏ XRL Ri, kết cất vào A thực XOR nội dung ghi A với số data, kết cất vào XRL A thực XOR nội dung ô nhớ direct với ghi A , kết XRL cất vào ô nhớ direct thực XOR nội dung ô nhớ direct vớiTS.con kết XRL Đồnsố Thịdata Hương,Giang cất vào nhớ direct Ví dụ Số Số byte CK A, R7 1 A, 45h A, @R0 1 A, #45h 45h, A 45h, #45h 176 88 10/11/2021 XOR Toán hạng 1, Toán hạng Toán hạng = Toán hạng (xor) Toán hạng Thực and theo bit tương ứng hai toán hạng Bit 0 1 Bit 1 Kết 1 TS Đồn Thị Hương Giang 177 Bitwise Logic Ví dụ ANL  AND ORL  OR XRL  XOR ANL 00001111 10101100 00001100 ORL 00001111 10101100 10101111 XRL 00001111 10101100 10100011 CPL 10101100 01010011 CPL  Complement TS Đoàn Thị Hương Giang 178 89 10/11/2021 Address Modes with Logic a, byte ANL – AND ORL – OR XRL – eXclusive oR direct, reg indirect, reg, immediate byte, a direct byte, #constant CPL – Complement a ex: cpl a TS Đoàn Thị Hương Giang 179 Các lệnh xử lý bit khác Dạng lệnh Mơ tả Ví dụ Số Số byte CK CLR A gán A=0 CLR A 1 CPL A lấy bù giá trị A (gán A= 255 – A) CPL A 1 RL A quay trái bit ghi A RL A 1 RLC A quay trái bit ghi A có dùng RLC thêm cờ nhớ C A 1 RR A quay phải bit ghi A RR A 1 RRC A quay phải bit ghi A có dùng thêm cờ nhớ C RRC A 1 SWAP A hoán đổi nibble cao nibble thấp ghi A SWAP A 1 TS Đoàn Thị Hương Giang 180 90 10/11/2021 Các lệnh xử lý bit khác (tt) CLR RL RLC RR RRC SWAP – – – – – Clear Rotate Left Rotate Left through Carry Rotate Right Rotate Right through Carry Swap accumulator nibbles TS Đoàn Thị Hương Giang 181 CLR ( Set tất bit 0) CLR A CLR byte CLR Ri CLR @Ri (Chế độ ghi - register mode) (Chế độ trực tiếp - direct mode) (Chế độ ghi - register mode) (Chế độ gián tiếp - register indirect mode) TS Đoàn Thị Hương Giang 182 91 10/11/2021 Rotate • Rotate instructions operate only on a RL a Mov a,#F0H RL a ; a 11110000 ; a 11100001 RR a Mov a,#F0H RR a ; a 11110000 ; a 01111000 TS Đoàn Thị Hương Giang 183 Rotate through Carry C RLC a mov a, #3ch setb c rlc a ; a  3ch(00111100) ; c  ; a  01111001, C1 C RRC a mov a, #0A9h add a, #14h ; a  A9 ; a  BD (10111101), C0 rrc a ; a  01011110, C1 TS Đoàn Thị Hương Giang 184 92 10/11/2021 Rotate and Multiplication/Division • Note that a shift left is the same as multiplying by 2, shift right is divide by mov clr rlc rlc rrc a, #3 C a a a ; ; ; ; ; A C A A A 00000011 00000110 00001100 00000110 (3) (6) (12) (6) TS Đoàn Thị Hương Giang 185 Swap SWAP a mov a, #72h swap a ; a  72h ; a  27h TS Đoàn Thị Hương Giang 186 93 10/11/2021 To chapter 2… TS Đoàn Thị Hương Giang 187 94 ... Thị Hương Giang 29 VI XỬ LÝ VÀ HỆ VI XỬ LÝ c) THIẾT KẾ PHẦN MỀM - Vi? ??t chương trình điều khiển hoạt động hệ thống (thường dùng hợp ngữ Assembly, ngơn ngữ C) - Dịch chương trình vi? ??t sang ngôn ngữ... Giang 21 VI XỬ LÝ VÀ HỆ VI XỬ LÝ VI XỬ LÝ (Microprocessor_ µP) a) KHÁI NIỆM Bộ VXL mạch tích hợp hàng ngàn chí hàng triệu Transistor (LSI, VLSI, MSI) kết nối với Các Transistor làm vi? ??c để lưu... Đoàn Thị Hương Giang 22 11 10/11/2021 VI XỬ LÝ VÀ HỆ VI XỬ LÝ b) Lịch sử phát triển VXL - Thế hệ 1: (1971-1973) Năm 1971: hãng Intel cho đời VXL 4004 (4 bít) Năm 1972: Bộ VXL 8008 (8 bít) Intel

Ngày đăng: 12/10/2022, 01:21

HÌNH ẢNH LIÊN QUAN

12D → 0000 1100B 0CH - Vi xu ly chapter ă
12 D → 0000 1100B 0CH (Trang 4)
Bảng mã ASCII mở rộng - Vi xu ly chapter ă
Bảng m ã ASCII mở rộng (Trang 6)
1.CÁC HỆĐẾM VÀ MÃ HÓA THÔNG TIN - Vi xu ly chapter ă
1. CÁC HỆĐẾM VÀ MÃ HÓA THÔNG TIN (Trang 6)
Hình dạng thực và sơ đồ chân của PIC16F877APIC16F877A - Vi xu ly chapter ă
Hình d ạng thực và sơ đồ chân của PIC16F877APIC16F877A (Trang 21)
Hình dạng thực và sơ đồ chân của AT89C52 - Vi xu ly chapter ă
Hình d ạng thực và sơ đồ chân của AT89C52 (Trang 22)
Các bảng nhảy(2) - Vi xu ly chapter ă
c bảng nhảy(2) (Trang 70)
Các bảng nhảy(2) - Vi xu ly chapter ă
c bảng nhảy(2) (Trang 70)
w