Giáo trình nghề Điện tử công nghiệp - Môđun: Kỹ thuật vi xử lý
BỘ CÔNG THƯƠNG
TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP VÀ THƯƠNG MẠI
GIÁO TRÌNH
Tên mô đun: Kỹ thuật vi xử lý
NGHỀ: ĐIỆN TỬ CÔNG NGHIỆP
TRÌNH ĐỘ TRUNG CẤP/ CAO ĐẲNG NGHỀ
Ban hành kèm theo Quyết định số:
/QĐ-CĐCNPY, ngày tháng năm 2018
của Hiệu trưởng trường Cao đẳng Công nghiệp và Thương mại
Vĩnh Phúc, năm 2018
1
MỤC LỤC
TRANG
MỤC LỤC.............................................................................................. 1
TRANG.................................................................................................. 1
CHƯƠNG TRÌNH MÔ ĐUN...................................................................... 5
Bài 1. GIỚI THIỆU CHUNG...................................................................... 7
1.1. Sơ đồ khối của một hệ vi xử lý cơ bản............................................... 7
1.1.1. Định nghĩa hệ vi xử lý: ................................................................. 8
1.1.2. Hệ vi xử lý tổng quát................................................................... 10
1.2. Vi xử lý (uP: Micro-Processor)...................................................... 10
1.2.1. Cấu trúc chung............................................................................ 12
1.2.2. Thao tác tìm nạp lệnh................................................................. 12
1.2.3. Giải mã – thực hiện lệnh. ........................................................... 13
1.3. Bộ nhớ (memory) ........................................................................... 14
1.3.1. Phân loại. ....................................................................................... 14
1.3.2. Cấu trúc bên trong tiêu biểu của bộ nhớ.................................. 14
1.3.3. Giải mã địa chỉ cho bộ nhớ......................................................... 16
1.3.4. Thiết kế bộ nhớ dùng dùng IC 74LS138. .................................. 18
1.4. Nhập xuất (I/O: Input/Output). .................................................... 19
1.4.1. Phân loại. ....................................................................................... 21
1.4.2. Giải mã địa chỉ cho I/O................................................................. 21
1.4.3. Các phương pháp điều khiển I/O................................................. 22
1.5. Vi xử lý và vi điều khiển. ............................................................... 22
1.5.1. So sánh giữa vi xử lý và vi điều khiển........................................ 23
2
1.5.2. Lựa chọn vi điều khiển ................................................................. 30
2.1. Tổng quát về VDK 8051................................................................... 34
2.1.1 Mô tả các chân (pinout) .............................................................. 36
2.1.2. Sơ đồ chân...................................................................................... 38
2.1.3. Chức năng các chân....................................................................... 40
2.2. Cấu trúc của port I/O....................................................................... 43
2.2.1. Cấu trúc của port xuất .................................................................. 44
2.2.2. Cấu trúc của port nhập................................................................. 48
2.3. Tổ chức bộ nhớ............................................................................... 50
2.3.1. Các bank thanh ghi..................................................................... 54
2.3.2. Vùng RAM định địa chỉ bit ........................................................ 56
2.3.3. Vùng RAM đa dụng.................................................................... 74
2.3.4. Các thanh ghi chức năng đặc biệt (SFRs_ Special Function
Registers) ................................................................................................. 74
2.4. Hoạt động reset .............................................................................. 75
2.4.1. Cấu trúc mạch............................................................................. 75
2.4.2. Nguyên lý hoạt động ................................................................... 75
3.1. Tổng quan về ngôn ngữ lập trình C .............................................. 78
3.1.1. Các loại biến trong ngôn ngữ C.................................................. 78
3.1.2. Hàm trong C ................................................................................. 80
3.2. Toán tử cơ bản.................................................................................. 81
3.3. Các cấu trúc cơ bản trong C.......................................................... 88
3.3.1. Cấu trúc IF.....THEN .................................................................. 88
3
3.3.2. Cấu trúc IF.....THEN....ELSE .................................................... 89
3.3.3. Cấu trúc SWICH.....CASE ......................................................... 89
3.3.4. Cấu trúc lặp FOR-DO ................................................................ 89
3.3.5. Cấu trúc lặp WHILE-DO........................................................... 90
3.3.6. Cấu trúc lặp REPEAT-UNTIL .................................................. 90
3.4. Các ví dụ minh hoạ cụ thể ............................................................. 91
3.4 Các ví dụ minh hoạ cụ thể ............................................................. 93
3.4.1. Lập trình điều khiển LED đơn................................................... 94
3.4.2. Lập trình điều khiển LED 7 thanh............................................. 97
4.1. Bộ định thời (TIMER).................................................................... 101
4.1.1. Giới thiệu...................................................................................... 101
4.1.2. Các thanh ghi định thời............................................................... 103
4.1.3. Các chế độ hoạt động .................................................................... 106
4.1.4. Nguồn xung clock cho bộ định thời ............................................ 107
4.1.5. Khởi động và truy xuất các thanh ghi định thời........................ 108
4.1.6. Ví dụ............................................................................................. 111
4.2.1. Giới thiệu ..................................................................................... 112
4.2.2. Thanh ghi điều khiển port nối tiếp SCON ................................. 114
4.2.3. Các chế độ hoạt động................................................................ 115
4.2.4. Tốc độ baud của port nối tiếp................................................... 120
4.2.5. Khởi động và truy xuất các thanh ghi port nối tiếp ................ 120
4.2.6. Ví dụ .......................................................................................... 120
4.3. Ngắt (INTERRUPT) .................................................................... 124
4
4.3.1. Giới thiệu................................................................................... 124
4.3.2. Các thanh ghi ngắt.................................................................... 126
4.3.3. Xử lý ngắt .................................................................................. 131
4.3.4. Các ngắt của 8051 ..................................................................... 132
4.3.5. Ví dụ .......................................................................................... 133
5
CHƯƠNG TRÌNH MÔ ĐUN
Tên mô đun: KỸ THUẬT VI XỬ LÝ
Mã mô đun: MĐTC14010081
Thời gian thực hiện mô đun: 60 giờ: (Lý thuyết: 30 giờ; Thực hành, thí nghiệm,
thảo luận, bài tập: 27 giờ: Kiểm tra: 3 giờ).
I.
Vị trí, tính chất mô đun
- Vị trí: Mô đun này phải học sau khi đã học xong các mô đun: Kỹ thuật mạch điện
tử 1, Kỹ thuật mạch điện tử 2, Kỹ thuật xung, số.
- Tính chất: Là mô đun chuyên ngành bắt buộc
II.
Mục tiêu mô đun
- Kiến thức:
+
8051.
+
Mô tả được cấu trúc bên trong, chức năng các chân của họ vi điều khiển
Trình bày được tập lệnh của họ vi điều khiển 8051.
Trình bày được một số ứng dụng của họ vi điều khiển.
+
- Kỹ năng:
+
+
Lập được lưu đồ thuật toán của một số ứng dụng cơ bản.
Lập trình trên ngôn ngữ lập trình C và nạp được vào trong chip một số
bài tập ứng dụng của vi điều khiển.
- Về năng lực tự chủ và trách nhiệm:
+
Dự lớp đầy đủ theo quy định, rèn luyện tác phong công nghiệp, biết cách
làm việc nhóm.
III. Nội dung mô đun
1. Nội dung tổng quát và phân bổ thời gian
Thời gian (giờ)
Thực
hành,
Số
thí
Lý
Tên các bài trong mô đun
Tổng
Kiểm
TT
nghiệm,
thuyết
số
tra
thảo
luận,
bài tập
6
1. Bài 1.
GIỚI THIỆU CHUNG
9
6
9
3
8
1.1. Sơ đồ khối của một hệ vi xử lý cơ bản
1.2. Vi xử lý (uP: Micro-Processor)
1.3. Bộ nhớ (memory)
1.4. Nhập xuất (I/O: Input/Output)
1.5. Vi xử lý và vi điều khiển
2. Bài 2.
PHẦN CỨNG HỌ MCS-51
18
1
2.1. Tổng quát về VDK 8051
2.2. Mô tả các chân (pinout)
2.3. Cấu trúc của port I/O
2.4. Tổ chức bộ nhớ
2.5. Các thanh ghi chức năng đặc biệt
(SFRs_ Special Function Registers)
2.6. Hoạt động reset
3. Bài 3.
LẬP TRÌNH ĐIỀU KHIỂN VỚI
21
12
60
9
6
11
1
1
3
VDK 8051,
3.1. Tổng quan về ngôn ngữ lập trình C
3.2. Các cấu trúc cơ bản trong C
3.3. Các ví dụ minh hoạ cụ thể
4. Bài 4.
MCS-51
CÁC CHỨA NĂNG CỦA HỌ
5
4.1. Bộ định thời (TIMER)
4.2. PORT NỐI TIẾP (SERIAL PORT)
4.3. NGẮT (INTERRUPT)
Cộng
30
27
7
Bài 1. GIỚI THIỆU CHUNG
Giới thiệu
Khoa học kỹ thuật đang ngày càng phát triển rất mạnh mẽ, các công
nghệ mới thuộc các lĩnh vực khác nhau nhờ đó đã ra đời nhằm đáp ứng nhu
cầu của xã hội và kỹ thuật Vi xử lý cũng nằm trong số đó. Hiện nay kỹ thuật
Vi xử lý đã được giảng dạy rộng rãi ở các trường Đại học và Cao đẳng trong
cả nước, tuy nhiên lĩnh vực mới này (Vi xử lý) vẫn đang còn rất mới mẻ, và
những ứng dụng của nó vẫn chưa được khai thác triệt để trong các hệ thống
điều khiển, đo lường và điều chỉnh của các dây chuyền công nghiệp.
Mục tiêu:
- Trình bày được một số hệ đếm, và các mã thường dùng trong hệ vi
xử lý.
- Tính toán, chuyển đổi được các phép toán nhị phân.
- Trình bày được cách biểu diễn thông tin trong các hệ vi xử lý.
- Rèn luyện tính tư duy, tác phong trong công nghiệp.
1.1. Sơ đồ khối của một hệ vi xử lý cơ bản
- Đây là hệ đếm mà chúng ta sử dụng hàng ngày. Hệ đếm này sử dụng
mười chữ số ‘0’..’9’để biểu diễn các số hệ 10. Chữ số ‘0’ biểu diễn số 0, chữ
số ‘1’ biểu diễn số 1,… Khi đếm đến 10 thì hết số nên phải thêm 1 sang hàng
bên trái để thành ‘10’ (mười) rồi lại tiếp tục đếm ‘11’, ‘12’, ‘13’,... Một số hệ
10 có giá trị bằng tổng giá trị của từng chữ số nhân với trọng số tương ứng
của chữ số. Trọng số của chữ số thứ i là 10i.
Ví dụ: 12345,67 = 1x104+ 2x103 + 3x102 + 4x101 + 5x100 + 6x10-1 + 7x10-2.
- Khi làm việc với nhiều hệ đếm các số hệ 10 có thêm chữ D ở cuối để
chỉ ra rằng đó là số hệ 10.
Ví dụ: 12,25D.
Tổng quát hóa cho hệ đếm cơ số a bất kỳ (a ≥ 2, a ∈ N):
- Sử dụng a chữ số để biểu diễn các số hệ a. Chữ số có giá trị nhỏ nhất
là ‘0’, chữ số có giá trị lớn nhất tùy thuộc vào từng hệ đếm nhưng có giá trị là
a-1.
- Giá trị (lượng) của một số hệ a bằng tổng giá trị của từng chữ số nhân
với trọng số tương ứng của chữ số. Trọng số của chứ số thứ i là ai.
Ví dụ: Số 5346,72 biểu diễn như sau:
5346,72 = 5.103 + 3.102 + 4.10 + 6 + 7.10-1 + 2.10-2
- Tuy nhiên, trong các mạch điện tử, việc lưu trữ và phân biệt 10
8
mức điện áp khác nhau rất khó khăn nhưng việc phân biệt hai mức điện áp
thì lại dễ dàng. Do đó, người ta sử dụng hệ nhị phân để biểu diễn các giá trị
trong hệ thống số. Trong số thập phân thì:
+ Số tận cùng bên trái là số có giá trị lớn nhất MSD ( Most Significant
Digit).
+ Số tận cùng bên phải là số có giá trị nhỏ nhất LSD ( Least Significant
Digit).
1.1.1. Định nghĩa hệ vi xử lý:
- Hệ nhị phân gồm có 2 chữ số: 0 và 1, ký số nhị phân gọi là bit (binary
digit). Cơ số hệ nhị phân hay gọi là cơ số 2. Một số nhị phân (binary digit)
thường được gọi là bit. Một chuỗi gồm 4 bit nhị phân gọi là nibble, chuỗi 8
bit gọi là byte, chuỗi 16 bit gọi là word và chuỗi 32 bit gọi là double
word. Bit tận cùng bên trái là bit có giá trị lớn nhất MSB ( Most Significant
bit), bit tận cùng bên phải là bit có giá trị nhỏ nhất LSB ( Least Significant
bit). Một số trong hệ nhị phân được biểu diễn theo số mũ của 2. Ta thường
dùng chữ B cuối chuỗi bit để xác định đó là số nhị phân.
- Các linh kiện điện tử cấu tạo nên máy tính chỉ có hai trạng thái: có
điện và không có điện. Hai trạng thái này có thể được biểu diễn bằng 1 và
0. Chính vì lý do này mà hệ đếm cơ số 2 là hệ đếm duy nhất được dùng
trong máy tính.
- Trong kỹ thuật máy tính, mỗi chữ số nhị phân được gọi là một bit
(viết tắt của từ tiếng anh binary digit). Một cụm 4 bit tạo thành một nible,
cụm 8 bit tạo thành 1 byte, cụm 16 bit tạo thành 1 từ (word), cụm 32 bit
tạo thành một từ kép (double word). Bit đầu tiên bên trái trong các số nhị
phân gọi là bit có trọng số lớn nhất (Most Significant Bit, MSB), còn bit
tận cùng bên phải gọi là bit có trọng số nhỏ nhất (Least Significant Bit,
LSB). Vị trí của các bit trong nibble, byte, word, double word như sau:
3 0
Nibble
7
0
Byte
15
0
Word
31
Double word
0
9
Ví dụ 1: Số 101110.01b biểu diễn giá trị số:
101110.01b = 1x25 + 0x24 + 1x23 +1x22 + 1x21 + 0 + 0x2-1 + 1x2-2
Ví dụ 2: cho 1 số nhị phân 1100,1102 được minh hoạ như hình vẽ:
3
2
1 0
-1 -2 -3
2
2
2 2
2 2 2
1 1
0
0, 1
1
0
MSB dấu phẩy nhị phân LSB
1100,1102 = 1x 23 +1x22 + 0x21 + 0x20 + 1x2-1 + 1x2-2 + 0x2-3
Cách đếm số nhị phân: ta dùng một số nhị phân 4 bit trình bày như bảng sau:
23 22 21 20 Thập phân tương ứng
v Với số nhị phân 4 bit như
0 0 0
0 0 0
0 0 1
0 0 1
0 1 0
0 1 0
0 0 1
1 0 0
1 0 0
1 0 1
1 0 1
1 1 0
1 1 0
1 1 1
1 1 1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
trên có 24 =16 trạng
thái khác
nhau và số thập phân tương ứng
4
Vậy với
lớn nhất là:2 – 1 =15.
2
một số nhị phân n bit thì:
3
+ Số thập phân tương ứng lớn
n
4
nhất 2 -1.
+ Số trạng thái 2 .
n
5
7
8
9
10
11
12
13
14
15
1.3. Hệ thập lục phân
(Hexadecimal
System):
Number
- Nếu dùng hệ nhị phân
thì sẽ cần một số lượng lớn các
bit để biểu diễn. Trong thực tế để viết kết quả biểu diễn các số cho gọn lại
người ta tìm cách nhóm 4 số hệ hai (1 nibble) thành một số hệ mười sáu. Khác
10
với hệ BCD hệ 16 dùng hết các tổ hợp có thể của 4 bit để biểu diễn các giá trị
số. Để làm được điều này người ta sử dụng các chữ số sẵn có của hệ mười (0
.. 9) để biểu diễn các giá trị số ứng với 0 .. 9 và dùng thêm các chữ cái A .. F
để biểu diễn các giá trị còn lại ứng với 10 .. 15. Để phân biệt một số hệ mười
sáu với các số hệ khác ta kèm thêm chữ H ở cuối. Ta cũng dễ nhận thấy rằng
số mười chỉ là một bộ phận của hệ mười sáu.
A
B
C
D
E
F
biểu diễn cho 10
biểu diễn cho 11
biểu diễn cho 12
biểu diễn cho 13
biểu diễn cho 14
biểu diễn cho 15
- Khi đếm đến 16 vì không còn chữ số nên phải thêm 1 sang bên trái
để tạo thành ‘10’,… Giá trị của một số hệ 16 bằng tổng các tích giữa giá trị
của từng chữ số nhân với trọng số của nó. Trọng số của chữ số thứ i trong
một số hệ 16 là 16i: S16={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F }
Ví dụ 1: Để biểu diễn số 255 ta cần đến 8 bit viết như sau:
255 = 111111112
Ví dụ 2: 2AE4H = 2x163 + Ax162 + Ex161 + 4x160 = 10980D
1.1.2. Hệ vi xử lý tổng quát
2. Trong thực tế, đối với một số ứng dụng như đếm tần, đo điện áp, …
ngõ ra ở dạng số thập phân, ta dùng mã BCD. Mã BCD dùng 4 bit nhị phân
để mã hóa cho một số thập phân 0..9. Như vậy, các số hex A..F không tồn tại
trong mã BCD. Vì tầm quan trọng của các số BCD nên các bộ vi xử lý thường
có các lệnh thao tác với chúng.
Ví dụ: Số thập phân
5
2
9
Số BCD
0101 0010 1001
1.2.
Vi xử lý (uP: Micro-Processor)
- Đối với các ứng dụng dùng hiển thị số liệu ra Led 7 đoạn, ta dùng
mã hiển thị
Led 7 đoạn (bảng 1.1).
11
Bảng 1.1: Bảng mã led 7 đoạn
Số thập
Mã Led 7 đoạn
a b c d e f
Số thập lục
Số nhị
phân
phân
phân
Hiển thị
g
12
0
1
2
3
4
5
6
7
8
9
A
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
1 1 1 1 1 1 0
0 1 1 0 0 0 0
1 1 0 1 1 0 1
1 1 1 1 0 1 1
0 1 1 0 0 1 1
1 0 1 1 0 1 1
1 0 1 1 1 1 1
1 1 1 0 0 0 0
1 1 1 1 1 1 1
1 1 1 0 0 1 1
1 1 1 1 1 0 1
0 0 1 1 1 1 1
0 0 0 1 1 0 1
0 1 1 1 1 0 1
1 1 0 1 1 1 1
1 0 0 0 1 1 1
0
1
2
3
4
5
6
7
8
9
A
B
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
B
C
C
D
D
E
F
E
F
1.2.1. Cấu trúc chung
Để chuyển một số nhị phân thành một số thập phân, ta chỉ cần nhân các chữ
số
của số nhị phân với giá trị thập phân của nó và cộng tất cả các giá trị lại.
3
2
1
0
-1
-2
Ví dụ: 1011.11 = 1x2 + 0x2 + 1x2 + 1x2 + 1x2 + 1x2 = 11.75
1.2.2. Thao tác tìm nạp lệnh
13
Để chuyển một số thập phân thành số nhị phân, ta dùng 2 phương pháp sau:
i
- Phương pháp 1: Ta lấy số thập phân cần chuyển trừ đi 2 trong đó
i
2 là số lớn nhất nhỏ hơn hay bằng số thập phân cần chuyển. Sau đó, ta lại
0
lấy kết quả này và thực hiện tương tự cho đến 2 thì dừng. Trong quá trình
thực hiện, ta sẽ ghi lại các giá trị 0 hay 1 cho các bit tùy theo trường hợp
i
i
số thập phân nhỏ hơn 2 (0) hay lớn hơn 2 (1).
i
4
Ví dụ: Xét số 21 thì số 2 lớn nhất là 2
4
3
2
1
0
2
2
8
2
4
2
2
2
1
16
21= 24 +03 + 22 + 01 + 20 = 16 + 0 + 0 + 4 + 1
-
Phương pháp 2: Lấy số cần chuyển chia cho 2, ta nhớ lại số dư
lấy tiếp thương của kết quả trên chia cho 2 và thực hiện tương tự cho đến
và
khi thương cuối cùng bằng 0. Kết quả chuyển đổi sẽ là chuỗi các bit là các
số dư lấy theo thứ tự ngược lại.
Ví dụ: Chuyển 227 ra số nhị phân
Số bị chia
Thương Số dư
227
113
56
28
14
7
113
56
28
14
7
1 (LSB)
1
0
0
0
1
3
3
1
1
1
0
1 (MSB) ( 227 = 11100011b)
Để thực hiện chuyển các số thập phân nhỏ hơn 1 sang các số nhị
phân, ta làm như sau: lấy số cần chuyển nhân với 2, giữ lại phần nguyên và
lại lấy phần lẻ nhân với 2. Quá trình tiếp tục cho đến khi phần lẻ bằng 0 thì
dừng. Kết quả chuyển đổi là chuỗi các bit là giá trị các phần nguyên.
Ví dụ: Chuyển 0.625 thành số nhị phân
0.625 × 2 = 1.25
0.25 × 2 = 0.5
0.5
× 2 = 1.0
( 0.625 = 0.101b)
1.2.3. Giải mã – thực hiện lệnh.
14
Phương pháp: các bit nhị phân được nhóm 4 bit từ LSB, mỗi nhóm 4 bit
được chuyển sang số hex tương ứng (bảng 1.1). Nếu số bit không đủ thì cộng
thêm bit 0 vào MSB.
Ví Dụ:
1110100110 = 0 0 1 1 1 0 1 0 0 1 1 0 = 3A6
2 16
3
A 6
1.3. Bộ nhớ (memory)
1.3.1. Phân loại.
Đơn vị cơ sở của dữ liệu văn bản là chữ. Chữ ở đây được hiểu theo nghĩa
rộng, không chỉ là các chữ cái Latinh mà kể cả chữ số, các dấu chính tả, các
dấu toán học, các kí hiệu để trình bày. Mặt khác không phải dân tộc nào cũng
dùng chữ Latinh nên đối với một số dân tộc có thể có những chữ riêng. Chúng
ta dùng thuật ngữ ký tự (character) với ý nghĩa là một ký hiệu dùng trong văn
bản.
Nếu dùng một vùng nhớ k bit để mã hóa một chữ thì chỉ có thể biểu diễn
tối đa được 2k ký tự vì chỉ có thể tạo được đúng 2k các mã nhị phân khác
nhau. Điều này giải thích tại sao người Mỹ chỉ cần 7 bitđể mã hóa cho các
chữ của họ; để có thêm các mặt chữ Châu Âu, chữ Hy Lạp hay người Nhật
phải dùng các mã 16 bit.
Các văn bản được hình dung như một chuỗi ký tự. Nội dung một cuốn
sách, một bài thơ được đưa vào máy tính là những ví dụ cụ thể về thông tin
văn bản. Hầu hết các máy tính và môi trường lập trình hiện nay đều sử dụng
một byte để mã hóa một chữ.
Về nguyên tắc có thể mã hóa giá trị sai hay không bởi bit0, giá trị đúng
hay không bởi bit1. Tuy nhiên ít khi người ta sử dụng tới mức bitvì cơ chế địa
chỉ hóa thường ít nhất ở mức byte. Khi đó người ta vẫn dùng một byte để mã
hóa các giá trị logic.
1.3.2. Cấu trúc bên trong tiêu biểu của bộ nhớ.
Dữ liệu loại logic chỉ có thể hiện một trong hai trạng thái đối lập là
đúng/sai, hoặc có/không. Điều này ta thường thấy trong rất nhiều loại hồ sơ.
Ví dụ: Trong lý lịch cá nhân: họ tên, quê quán là dữ liệu kiểu văn bản, ngày
tháng năm sinh, lương có thể hiện bằng số, còn các thông tin như là đoàn viên
thì không, có gia đình hay không là các thông tin có kiểu logic. Các thông tin
kiểu logic chịu tác động của các phép toán so sánh, các phép toán nhân logic
“và”, cộng logic hoặc hay phủ định logic “không”.
15
Về nguyên tắc có thể mã hóa giá trị sai hay không bởi bit0, giá trị
đúng hay có bởi bit1. Tuy nhiên ít khi người ta sử dụng tới mức bitvì cơ chế
địa chỉ hóa thường ít nhất ở mức byte. Khi đó người ta vẫn dùng một byte để
mã hóa các giá trị logic.
Hình 1.1. Ảnh bitmap
Hình ảnh cũng có thể xử lý bằng máy tính. Khác với hình ảnh thông
16
thường, hình ảnh trong máy tính được mã hóa dưới dạng nhị phân. Có rất
nhiều kiểu mã hóa ảnh trong đó hai kiểu thông dụng nhất là Ảnh bitmap
(nghĩa là bản đồ các bit) thể hiện ảnh như một lưới điểm. Như vậy mỗi điểm
sẽ phải nằm trong một hàng và một cột nào đó trong lưới, ngoài ra màu của
điểm
cũng
được
mã
hóa.
Các ảnh khí tượng do các vệ tinh chụp gửi về, ảnh phong cảnh, chân dung
đều có thể thể hiện theo kiểu này. Ta cũng có thể đưa một ảnh bất kỳ vào máy
dưới dạng bitmap bằng máy quét ảnh (scanner), máy quay video số (digital
video camera) hay máy chụp ảnh số (digita camera)... Nói chung dữ liệu ảnh
này là dữ liệu lớn. Vì vậy, người ta thường sử dụng các kỹ thuật nén ảnh
trước khi đưa vào máy lưu trữ và khôi phục ảnh khi trình bày. Có rất nhiều
chuẩn ảnh khác nhau, chủ yếu khác nhau ở cách tổ chức để nén được ảnh mà
vẫn giữ được chất lượng và thể hiện được các hiệu ứng ảnh. Còn lúc hiển thị
để xem thì ảnh sẽ được khôi phục dưới dạng bitmap. Ảnh thể hiện theo từng
điểm còn gọi là ảnh raster.
Kiểu thứ 2 thể hiện ảnh theo cách vẽ. Kiểu này chỉ phù hợp với các
ảnh có thành phần l các điểm rời rạc, các đường hoặc hình thể hiện bằng các
đường biên như bản vẽ kiến trúc các bản vẽ kỹ thuật, bản đồ. Cách lưu trữ là
lưu thông tin về các thành phần của ảnh. Đối với một đoạn thẳng thì chỉ lưu
tọa độ các đầu mút, đối với một hình tròn thì chỉ lưu tọa độ tâm và bán kính...
Vì thế các ảnh này thường gọn gàng và dễ phóng to thu nhỏ (vì chỉ dùng các
phép biến đổi toạ độ). Các ảnh kiểu này gọi là ảnh vector.
1.3.3. Giải mã địa chỉ cho bộ nhớ.
Âm thanh cũng có thể được xử lý bằng máy tính. Cũng có nhiều phương
pháp mã hóa âm thanh. Cách đơn giản nhất là mã hóa bằng cách xấp xỉ dao
động sóng âm bằng một chuỗi các byte thể hiện biên độ dao dộng tương ứng
theo từng khoảng thời gian bằng nhau. Dĩ nhiên các đơn vị thời gian này cần
phải đủ nhỏ để không làm nghèo âm thanh. Đơn vị thời gian này gọi là chu kỳ
lấy mẫu. Hình vẽ dưới đây minh hoạ cách lưu trữ xấp xỉ sóng âm, theo đó sẽ
lưu lại dãy các giá trị sau (xem hình 1.2).
17
Hình 1.2. Số hóa âm thanh
- Khi phát, một mạch điện sẽ khôi phục lại sóng âm với một sai lệch
chấp nhận được.
- Một cách khác là phân tích dao động âm thanh thành tổng các dao
động điều hòa (các dao động hình sin với tần số và biên độ khác nhau) và chỉ
lưu lại các đặc trưng về tần số và biên độ.
- Còn có nhiều cách mã hóa âm thanh dựa theo những nguyên lý nén dữ
liệu rất hiệu quả. Việc số hóa âm thanh cũng được thực hiện nhờ các thiết bị
chuyên dụng. Xử lý âm thanh trên máy tính gồm những việc sau:
+ Thu và mã hóa âm thanh.
+ Biên tập (sửa chữa, ghép, cắt).
+ Phân tích (tìm các đặc trưng để nhận dạng tiếng nói). Một số máy
tính đã có thể nghe được các lệnh đơn giản. Các máy điện thoại di động hiện
nay đã có khả năng nhận dạng tiếng nói.
+ Tổng hợp tiếng nói. Ở mức độ đơn giản máy tính có thể đọc văn bản
18
thành lời.
1.3.4. Thiết kế bộ nhớ dùng dùng IC 74LS138.
-
Nếu dùng 1 byte (8 bit) để biểu diễn các số nguyên không dấu (số tự
n
8
nhiên) thì ta có thể biểu diễn được 2 = 2 = 256 số từ 0 đến 255.
Mã nhị phân
0000 0000
0000 0001
0000 0010
………….
1111 1111
Số
0
1
2
….
255
-
Nếu dùng 1 byte để biểu diễn các số nguyên có dấu thì có thể biểu
n
8
256 số từ -128 đến 127. Do đó khoảng số nguyên biểu
diễn được 2 = 2 =
diễn được là từ -128 đến 127 là vì phải dùng mất 1 bit để biểu diễn dấu. Bit
biểu diễn dấu là bit MSB. MSB = 1 cho số âm, MSB = 0 cho số dương.
Khi MSB = 0 thì ta có số dương lớn nhất là 0111 1111 = 127. Khi MSB = 1
ta có số âm, số âm có nhiều cách biểu diễn nhưng hay dùng nhất là kiểu số
bù hai. Với kiểu số bù hai số âm nhỏ nhất là 1000 0000 = -128 (ta sẽ nói
cách tìm số -128 sau).
1. Cách tìm số bù hai biểu diễn một số âm như sau:
- Đổi trị tuyệt đối của số âm ra mã nhị phân (với độ dài từ mã cố định,
ví dụ 8, 16, 32).
- Tìm số bù một của số nhị phân bằng cách đảo các bit: 0 thành 1, 1
thành 0.
- Cộng số bù một với 1 ta sẽ được số bù hai.
Ví dụ: Biểu diễn số -128 trong dạng số bù hai 8 bit
12810 = 1000 00002 Bù một = 0111 1111
+ 1
Bù hai = 1000 0000
Ngược lại, từ một số nhị phân hãy tìm số nguyên mà nó biểu diễn (giả
sử số nhị phân biểu diễn số nguyên có dấu). Khi đó ta làm như sau:
- Xét bit MSB. Nếu MSB = 0 thì chỉ cần đổi số nhị phân sang hệ
mười. Nếu MSB = 1 thì chuyển sang bước tiếp theo.
- Tìm số bù một
- Lấy số bù một cộng với 1 để được số bù hai.
19
- Đổi số nhị phân bù hai sang hệ mười.
Ví dụ: Cho số nhị phân 1101 1001, số này biểu diễn một số nguyên
có dấu, hãy tìm số nguyên đó.
Bit MSB = 1 => Số biểu diễn là số âm.
Số bù một = 0010 0110
Số bù hai = 0010 0111
Số nguyên cần tìm là -39
1.4. Nhập xuất (I/O: Input/Output).
- Thông tin, dữ liệu xung quanh chúng ta có rất nhiều loại như văn
bản, số liệu, âm thanh, hình ảnh,…Muốn đưa các loại thông tin này vào máy
tính chúng ta phải dùng mã nhị phân để biểu diễn. Trong thực tế thông tin
được truyền đi, được lưu giữ trong các bộ nhớ máy tính hoặc để hiển thị
trên màn hình đều ở dưới dạng ký tự và tuân theo một loại mã được dùng
rộng rãi trên thế giới gọi là mã ASCII (American Standard Code for
Information Interchange, mã chuẩn của Mỹ dùng để trao đổi thông tin).
Việc dùng các ký tự để mã hóa thông tin theo bảng mã ASCII cho phép các
máy tính và các bộ phận của một máy tính có thể trao đổi thông tin với
nhau.
- Các từ mã trong bảng mã ASCII có độ dài 1 byte (8 bit). Bảng mã
ASCII được chia thành 2 nửa: nửa đầu có mã từ 0 đến 127 gọi là bảng mã
ASCII tiêu chuẩn, nửa sau có mã từ 128 đến 255 gọi là bảng mã ASCII
mở rộng. Hầu hết các nước trên thế giới có bảng mã ASCII tiêu chuẩn
giống nhau. Bảng mã ASCII mở rộng thường khác nhau và dùng để chứa bộ
ký tự của riêng từng nước.
- Trong bảng mã ASCII tiêu chuẩn người ta chỉ dùng hết 7 bit (từ bit
0 đến bit 6) để mã hóa các ký tự, còn 1 bit MSB có thể cho liên tục bằng 0,
hoặc bằng 1, hoặc có thể dùng để chứa bit parity phục vụ việc phát hiện lỗi
khi truyền.
Khi xem xét bảng mã ASCII tiêu chuẩn ta có thể rút ra mấy nhận xét
sau:
+ Hai cột đầu (cột 0 và cột 1) của bảng mã dùng cho các ký tự điều
khiển.
+ Các ký tự số nằm ở cột 3. Mã của ký tự ‘0’ là 30H, của ký tự ‘9’ là
39H. Giữa giá trị số và mã ASCII của số đó có khoảng cách là 30H.
+ Các chữ cái hoa nằm ở cột 4 và 5, các chữ cái thường nằm ở cột 6
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình nghề Điện tử công nghiệp - Môđun: Kỹ thuật vi xử lý", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- giao_trinh_nghe_dien_tu_cong_nghiep_modun_ky_thuat_vi_xu_ly.pdf