Giáo trình Kỹ thuật vi xử lý
Hệ thống số có liên quan đến vi xử lý
Hệ đếm thập phân (Decimal): Hệ đếm thập phân còn gọi là hệ đếm cơ số mười và nó
được biểu diễn bởi 10 con số từ (0,1,2,3,4,5,6,7,8,9 ) những con số này được sử dụng rất nhiều
trong khoa học kỹ thuật cũng như trong đời sống hàng ngày, khi biểu diễn số thập phân thì
dứng sau dãy số thường có chữ D.
Ví dụ: Ba nghìn Chín trăm Bảy mươi Tám được biểu diễn như sau
3978 = 3x103 + 9x102 + 7x101 + 8x100
= 3000 + 900 + 70 + 8
Hệ đếm thập lục phân (Hexadecimal): Hệ đếm thập phân còn gọi là hệ đếm cơ số mười
sáu và nó được biểu diễn bởi 16 ký số (0,1,2,3,4,5,6,7,8,9,B,C,D,E,F) những con số này được
sử dụng rất nhiều trong khoa học kỹ thuật đặc biệt là khoa học máy tính vì biểu diễn mã Hexa
rất ngắn gọn, khi biểu diễn số thập lục phân thì sau dãy số phải có chữ H.
Ví dụ: 3978h , 12CCh, 1998h, ABCDh, 2008h
Tóm tắt nội dung tài liệu: Giáo trình Kỹ thuật vi xử lý
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN KHOA ĐIỆN-ĐIỆN TỬ BÀI GIẢNG KỸ THUẬT VI XỬ LÝ Hưng Yên 2015 (Tài liệu lưu hành nội bộ) ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 1 CHƢƠNG 1: Tổng quan hệ vi xử lý 1.1 Hệ thống số có liên quan đến vi xử lý Hệ đếm thập phân (Decimal): Hệ đếm thập phân còn gọi là hệ đếm cơ số mƣời và nó đƣợc biểu diễn bởi 10 con số từ (0,1,2,3,4,5,6,7,8,9 ) những con số này đƣợc sử dụng rất nhiều trong khoa học kỹ thuật cũng nhƣ trong đời sống hàng ngày, khi biểu diễn số thập phân thì dứng sau dãy số thƣờng có chữ D. Ví dụ: Ba nghìn Chín trăm Bảy mƣơi Tám đƣợc biểu diễn nhƣ sau 3978 = 3x10 3 + 9x10 2 + 7x10 1 + 8x10 0 = 3000 + 900 + 70 + 8 Hệ đếm thập lục phân (Hexadecimal): Hệ đếm thập phân còn gọi là hệ đếm cơ số mƣời sáu và nó đƣợc biểu diễn bởi 16 ký số (0,1,2,3,4,5,6,7,8,9,B,C,D,E,F) những con số này đƣợc sử dụng rất nhiều trong khoa học kỹ thuật đặc biệt là khoa học máy tính vì biểu diễn mã Hexa rất ngắn gọn, khi biểu diễn số thập lục phân thì sau dãy số phải có chữ H. Ví dụ: 3978h , 12CCh, 1998h, ABCDh, 2008h Hệ đếm nhị phân (Binary): Hệ đếm nhị phân còn gọi là hệ đếm cơ số hai và nó đƣợc biểu diễn bởi 2 con số là 0 và 1, trong kỹ thuật điện tử số thì số 0 gọi là mức logic thấp ứng với điện áp thấp, số 1gọi là mức logic cao tƣơng ứng với điện áp cao nhất. Mỗi ký hiệu 0 hoặc 1 đƣợc gọi là 1 Bit (Binary Digit), khi biểu diễn số nhị phân thì dứng sau dãy số phải có chữ B. Ví dụ: 1100b ; gọi là 1 nibble 10011001b ; gọi là 1 Byte 1010101111001101b ; gọi là 1 Word Trong dãy số nhị phân đƣợc biểu diễn thì số nhị phân sát phải gọi là bít LSB còn số nhị phân sát trái gọi là bít MSB Ví dụ: Số nhị phân thƣờng đƣợc biểu diễn ở 2 dạng là số nhị phân có dấu và số nhị phân không dấu, nếu số nhị phân không dấu sẽ chỉ biểu diễn các số không âm ( 0) còn số nhị phân có dấu thì biểu diễn đƣợc cả giá trị âm Ví dụ : (1101) = 1x23 + 1x22 + 0x21 + 1x20 = 8 + 4 + 0 + 1 = 13 Dải giá trị của các số có dấu 8 bít là [-128, +127 ] Dải giá trị của các số có dấu 16 bít là [-32768, +32767 ] Trong khi biểu diễn dãy số nhị phân có dấu thì ngƣời ta sử dụng bít MSB để quy ƣớc cho bít dấu, với bít 0 cho dãy số nhị phân dƣơng còn bít 1 cho dãy số nhị phân âm. Hệ đếm BCD (Binary Coded Decimal): Số đếm BCD đƣợc định nghĩa là số thập phân nhƣng đƣợc biểu diễn dƣới dạng nhị phân 4 bít, nhƣng dãy số nhị phân 4 bít này khi quy sang hệ thập phân thì giá trị của nó phải 9 .Trong kỹ thuật điện tử nói chung thì mã BCD đƣợc sử dụng để giải mã hiển thị LED bảy thanh 1010101010101010 MSB LSB ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 2 Ví dụ: (0011), (0100), (0101), (0110), (1001) ; đây gọi là số BCD không nén Ví dụ: (00110100), (01010110), (01111000) ; đây gọi là số BCD nén Dƣới đây là bảng các mã BCD Thập phân BCD Thập phân BCD 0 0000 5 0101 1 0001 6 0110 2 0010 7 0111 3 0011 8 1000 4 0100 9 1001 Ví dụ: Cho số thập phân là 15 , biểu diễn dƣới dạng số BCD là 00010101 Số bù 2: Trong kỹ thuật Vi xử lý để biểu diễn một con số nào đó dƣới dạng dãy số nhị phân thì ngoài việc biểu diễn số không dấu, số có dấu thì ngƣời ta còn sử dụng cách biểu diễn số bù 2. Vậy số bù 2 sẽ biểu diễn nhƣ thế nào? Ví dụ: Hãy biểu diễn dãy số A = 10011001 sang số bù 2 của nó: - b1: Tìm số bù 1 của A(bằng cách lấy bù tất cả các bit của A): 01100110 - b2: Tìm số bù 2 của A (bằng cách lấy số bù 1 cộng cho 1) : 01100111 đến đây ta nhận thấy rằng số bù 2 của một số nào đó nó chính là số đối của nó và tổng = 0 1.2 Các phép biến đổi giữa các hệ đếm Phép cộng nhị phân không dấu : Ví dụ : Cho 2 số nhị phân nhƣ sau A = 10010011 ; B = 00111001 hãy tìm tổng Y của 2 số nhị phân đã cho 0+0=1 0+1=1 1+0=1 1+1=0;nhớ 1 A=10010011b B=00111001b Y=A+B=11001100b Phép trừ nhị phân: Ví dụ : Cho 2 số nhị phân nhƣ sau A = 10010011 ; B = 00111001 hãy tìm hiệu Z của 2 số nhị phân đã cho (Lƣu ý rằng phép trừ có thể thực hiện bằng cách biến thành phép cộng) 0-0=0 0-1=1;mƣợn 1 1-0=1 1-1=0 A=10010011b B=00111001b Z=A -B=01011010b Phép nhân nhị phân : Ví dụ : Cho 2 số nhị phân nhƣ sau A = 00100101 ; B = 00000100 hãy tìm tích F Khi nhân 2 dãy số nhị phân với nhau thì ta đặt phép toán nhân giống nhƣ nhân số thập phân, kết quả của phép nhân 2 dãy số nhị phân 8 bít sẽ thu đƣợc dãy số nhị phân là 16 bít, nhƣ vậy ta có F = A*B = 0000000010010100b Phép chia nhị phân : Ví dụ : Cho 2 số nhị phân nhƣ sau A = 10010110 ; B = 00000100 hãy tìm thƣơng ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 3 Khi chia 2 dãy số nhị phân với nhau thì ta đặt phép toán chia cũng giống nhƣ khi chia 2 số thập phân, kết quả của phép chia cũng nhƣ phần dƣ (nếu có) thu đƣợc tƣơng tự nhƣ khi làm phép chia đối với số thập phân, nhƣ vậy ta có M = A/B = 00100101b dƣ 0010b Chuyển đổi số thập phân sang nhị phân : Để chuyển đổi số thập phân sang số nhị phân ngƣời ta thƣờng dùng phƣơng pháp lấy số thập phân cần chuyển rồi chia 2 liên tiếp đến khi không thể chia đƣợc nữa thì dừng Ví dụ : Chuyển số thập phân 25 sang số nhị phân không dấu Chuyển đổi số nhị phân sang thập phân : Để chuyển đổi số nhị phân sang số thập phân ngƣời ta thƣờng dùng phƣơng pháp lấy tổng của tích n các số nhị phân cần chuyển nhân với 20 đến 2N-1 hay theo biểu thức tổng quát nhƣ sau: A = B(N-1)* 2 (N-1) + B(N-2)* 2 (N-2) + B(N-3)* 2 (N-3) + + B(1)* 2 (1) + B(0)* 2 (0) Ví dụ : Chuyển số nhị phân không dấu 01011110b sang số thập phân A = 0*2 7 + 1*2 6 +0*2 5 + 1*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 0*2 0 = 94 nhƣ vậy ta có 01011110b = 94 Chuyển đổi số nhị phân sang Hexa : Ví dụ : Chuyển số nhị phân 1100101011111110 sang số hexa Trƣớc hếtta chia số nhị phân đã cho thành các nhóm 4-bit tính từ bít có trọng số nhỏ nhất, sau đó thay thế mỗi nhóm 4-bit bằng ký hiệu hexa tƣơng ứng với nó ta sẽ thu đƣợc kết quả nhƣ sau: Chuyển đổi số Hexa sang nhị phân: Ví dụ : Chuyển số hexa 2F8h và ABBAh sang số nhị phân Tƣơng tự nhƣ trƣờng hợp trên ta sẽ thay thế mỗi ký hiệu hexa bằng 4-bit nhị phân tƣơng ứng với nó và ta sẽ thu đƣợc kết quả nhƣ sau: 1100 1010 1111 1110 hay 1100101011111110b = CAFEh C A F E 2 F 8 0010 1111 1000 hay 2F8h = 001011111000b A B B A 1010 1011 1011 1010 hay ABBAh = 1010101110111010b Chia 2 Thƣơng số Dƣ số 25/2 = 12 1 LSB 12/2 = 6 0 6/2 = 3 0 3/2 = 1 1 1/2 = 0 1 MSB Kết quả thu đƣợc là: 11001 với số dƣ lần thứ nhất là bít có trọng số nhỏ nhất ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 4 Mã ASCII: (American Standard Code for Information Interchange ) Quá trình trao đổi thông tin trong máy tính nói chung cũng nhƣ quá trình xử lý thông tin của các bộ vi xử lý, tất cả các thông tin đều đƣợc biểu diễn dƣới dạng các số 0 và 1. Mỗi tổ hợp số 0 hoặc 1 đƣợc gán một ký tự chữ cái, chữ số hoặc một ký tự đặc biệt nào đó. Khi thông tin đƣợc truyền đi, đƣợc lƣu giữ trong bộ nhớ và 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ã chuẩn đƣợc sử dụng rất rộng rãi gọi là mã ASCII. BẢNG Mà ASSII (American Standard Code for Information Interchange) ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 5 BẢNG Mà ASSII mở rộng ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 6 1.3 Lịch sử phát triển của các hệ Vi xử lý Kiến trúc hệ Vi xử lý là một thuật ngữ dùng để chỉ rõ những đặc trƣng của hệ vi xử lý trong đó bao gồm có cấu trúc phần cứng và tổ chức phần mềm đƣợc cài đặt trong hệ. Một hệ thống vi xử lý hay gọi ngắn hơn là hệ vi xử lý thƣờng bao gồm các thành phần cơ bản nhƣ: - Bộ xử lý trung tâm CPU (Central Processing Unit ) là trung tâm đầu não của hệ - Bộ nhớ tâm bao gồm 2 thành phần là ROM và RAM - Thiết bị vào/ra dữ liệu - Các kênh thông tin hay Bus hệ thống Tất cả các thiết bị có các chức năng nhƣ vậy đều đƣợc gọi là một hệ vi xử lý.Trong thực tế có rất nhiều hãng chế tạo các bộ vi xử lý cho các máy vi tính nhƣ: IBM, Intel, Cyrix, AMD, Motorola.... nhƣng thông dụng nhất vẫn là bộ vi xử lý của Intel. Các bộ vi xử lý của Intel đƣợc phát triển qua các thời kỳ nhƣ sau: Năm 1971, Intel đƣa ra bộ vi xử lý 4004 với 4 bit dữ liệu, 12 bit địa chỉ; 0,8MHz Năm 1972, bộ vi xử lý Intel 8080 ra đời với 8bit dữ liệu, 12 bit địa chỉ; tốc độ 0,8 -5MHz Năm 1978, bộ vi xử lý Intel 8086 ra đời với 16bit dữ liệu, 20 bit địa chỉ; tốc độ 10MHz Năm 1979, bộ vi xử lý Intel 8088 ra đời nhƣng vẫn tƣơng thích với hệ thống 8086 Năm 1982 bộ vi xử lý 80286 ra đời với 16bit dữ liệu, 20 bit địa chỉ, tốc độ 20MHz Năm 1985-1988, bộ vi xử lý 80386 ra đời với 32 bit dữ liệu và 32 bit địa Năm 1989, bộ vi xử lý 80486 ra đời với 32 bit dữ liệu và 32 bit địa chỉ tốc độ 50-60MHz Năm 1993, bộ vi xử lý Pentium ra đời với 64 bit dữ liệu, tốc độ xử lý 100MHz sau đó là các bộ vi xử lý Pentium Pro,Pentium II, Pentium III, Celeron, Pentium 4 Hình 1.1 Đƣờng tăng trƣởng số lƣợng transistor trên bộ vi xử lý (dot) của Intel và định luật Moore (đƣờng trên với chu kỳ 18 tháng, đƣờng dƣới chu kỳ 24 tháng ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 7 1.4 Chức năng của vi xử lý Vi xử lý dùng các cổng logic giống nhƣ các cổng logic đƣợc sử dụng trong đơn vị xử lý trung tâm của máy tính số. Do cấu trúc giống nhƣ CPU và đƣợc xây dựng từ các mạch vi điện tử nên có tên là vi xử lý: microprocessor. Giống nhƣ CPU, microprocessor có các mạch điện tử cho việc điều khiển dữ liệu và tính toán sự điều khiển của chƣơng trình. Ngoài ra microprocessor là một đơn vị xử lý dữ liệu. Công việc xử lý dữ liệu là chức năng chính của vi xử lý. Việc xử lý dữ liệu bao gồm tính toán và điều khiển dữ liệu. Việc tính toán đƣợc thực hiện bởi các mạch điện logic đƣợc gọi là đơn vị xử lý logic số học có thể thực hiện các phép toán nhƣ Add, Subtract, And, Or Compare, Increment, Decrement. ALU không thể thực hiện một phép toán mà không có dữ liệu , ví dụ ALU cộng 2 dữ liệu với nhau thì 2 dữ liệu phải đặt đúng vị trí trƣớc khi cộng. ALU không thể thực hiện việc chuyển dữ liệu từ nơi này đến nơi khác. Để ALU có dữ liệu cho việc xử lý thì ngoài mạch điện ALU, vi xử lý còn có các mạch điện logic khác để điều khiển dữ liệu. Các mạch điện logic điều khiển dữ liệu sẽ di chuyển dữ liệu vào đúng vị trí để khối ALU xử lý dữ liệu. Sau khi thực hiện xong, khối điều khiển sẽ di chuyển dữ liệu đến bất cứ nơi nào mong muốn. Để xử lý dữ liệu, vi xử lý phải điều khiển các mạch logic , để vi xử lý điều khiển các mạch logic thì cần phải có chƣơng trình. Chƣơng trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh đã đƣợc lƣu trong bộ nhớ , công việc thực hiện bao gồm các bƣớc nhƣ sau: đón lệnh từ bộ nhớ, sau đó các mạnh logic điều khiển sẽ giải mã lệnh và sau cùng thì các mạch logic điều khiển sẽ thực hiện sau khi giải mã. Do các lệnh lƣu trữ trong bộ nhớ nên có thể thay đổi các lệnh nếu cần. Khi thay đổi các lệnh của vi xử lý tức là thay đổi cách thức xử lý dữ liệu. Các lệnh lƣu trữ trong bộ nhớ sẽ quyết định công việc mà vi xử lý sẽ làm. Tóm tắt: chức năng chính của vi xử lý là xử lý dữ liệu. Để làm đƣợc điều này vi xử lý phải có các mạch logic cho việc xử lý và điều khiển dữ liệu và các mạch logic điều khiển. Các mạch logic xử lý sẽ di chuyển dữ liệu từ nơi này đến nơi khác và thực hiện các phép toán trên dữ liệu, mạch logic điều khiển sẽ quyết định mạch điện nào cho việc xử lý dữ liệu. Vi xử lý thực hiện một lệnh với trình tự nhƣ sau: đón lệnh từ bộ nhớ , tiếp theo mạch logic điều khiển sẽ giải mã lệnh để xem lệnh đó yêu cầu vi xử lý thực hiện công việc gì, sau đó vi xử lý sẽ thực hiện đúng công việc của lệnh đã yêu cầu , quá trình này đƣợc gọi là chu trình đón – và – thực hiện lệnh Ngoài chức năng đón và thực hiện lệnh , các mạch logic điều khiển còn điều khiển các mạch điện giáo tiếp giao tiếp bên ngoài kết nối với vi xử lý. Vi xử lý cần phải có sự trợ giúp của các mạch điện bên ngoài. Các mạch điện dùng để lƣu trữ lệnh để vi xử lý xử lý đƣợc gọi là bộ nhớ, các mạch điện giao tiếp để di chuyển dữ liệu từ bên ngoài vào bên trong xử lý và xuất dữ liệu từ bên trong vi xử lý ra ngoài đƣợc gọi là các thiết bị I/O hay các thiết bị ngoại vi ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 8 1.5 Cấu trúc cơ bản của vi xử lý 1.5.1. Sơ đồ khối tổng quát của hệ Vi xử lý Sơ đồ khối : Hình 1.2 Sơ đồ khối tổng quát của hệ VXL Chức năng các khối : Bộ xử lý trung tâm CPU (Central Processing Unit ) là trung tâm đầu não của hệ, nó có chức năng thu thập, xử lý thông tin và điều khiển mọi hoạt động của hệ vi xử lý. Bộ nhớ trung tâm có nhiệm vụ lƣu trữ thông tin dữ liệu trƣớc khi CPU xử lý Thiết bị I/O thực hiện việc nhận dữ liệu từ các kênh thông tin từ bên ngoài vào để cho CPU xử lý và xuất ra các tín hiệu điều khiển hệ thống Các kênh thông tin hay Bus hệ thống là cầu nối liên kết giữa các khối trong đó thực hiện 3 việc chính là liên kết các Bus địa chỉ, Bus điều khiển và Bus dữ liệu. 1.5.2 Tổ chức các kênh thông tin trong hệ Vi xử lý Kiến trúc Harvard Memory CPU Program Address Bus Data Bus Data Address Bus Fetch Bus 0 0 CPU Address Bus Data Bus Memory 0 Program Memory Data Memory Kiến trúc Von Neumann Hình 1.3 Cấu trúc các kênh thông tin trong hệ VXL ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 9 Trên đây là 2 cách tổ chức bộ nhớ theo kiểu Von Neumann và Harvard. Với kiểu tổ chức bộ nhớ chƣơng trình và dữ liệu tách biệt cho phép tốc độ truy xuất thông tin nhanh hơn đáng kể. Các kênh dữ liệu đều là kênh song song và dùng chung cho tất cả các bộ nhớ, tuy nhiên nó phải đƣợc kiểm soát thông qua các cổng lôgic 3 trạng thái. Cổng này có nhiệm vụ tạo ra trạng thái đặc biệt khi có những thành phần không đƣợc kích hoạt làm việc, trạng thái đặc biệt này sẽ cách ly về mặt tín hiệu giữa kênh thông tin với từng thành phần trong hệ mặc dù chúng vẫn đƣợc kết nối với nhau về mặt vật lý. 1.5.3 Khối xử lý trung tâm (Central Processing Unit) Bộ vi xử lý là hạt nhân của hệ vi xử lý, nó là thành phần quan trọng nhất kiểm soát tất cả các hoạt động của hệ và thực hiện các thao tác trên dữ liệu. Hầu hết các CPU đƣợc hình thành từ các mạch lôgic nhằm thực hiện liên tục 2 thao tác là tìm nạp lệnh từ bộ nhớ để giải mã và thực thi lệnh. CPU có khả năng hiểu và thực thi các lệnh dựa trên một tập các mã nhị phân gọi là mã máy trong đó mỗi mã nhằm thực hiện một thao tác nào đó.Tổ hợp các lệnh cho mỗi loại CPU gọi là tập lệnh và nó thƣờng chia ra thành các nhóm lệnh nhƣ: - Nhóm lệnh chuyển dữ liệu - Nhóm lệnh số học - Nhóm lệnh Lôgic - Nhóm lệnh rẽ nhánh chƣơng trình - Nhóm lệnh xử lý bít Cấu trúc đơn giản của một loại CPU đƣợc minh họa nhƣ sau: - PC (Program Couter): Bộ đếm trƣơng trình có vai trò nhƣ một con trỏ, trỏ đến ô nhớ chứa lệnh mà CPU cần truy nhập Hình 1.4 Cấu trúc chung của một bộ CPU Control Bus FLAG S ... g øng c¸c ch©n A-F,H ph¶i cã møc logic 1 B¶ng 3.2: B¶ng m· cho Led cathode chung: Sè h g f e d c b a HEX 0 0 0 1 1 1 1 1 1 03Fh 1 0 0 0 0 0 1 1 0 06h 2 0 1 0 1 1 0 1 1 5Bh 3 0 1 0 0 1 1 1 1 4Fh 4 0 1 1 0 0 1 1 0 66h 5 0 1 1 0 1 1 0 1 6Dh 6 0 1 1 1 1 1 0 1 7Dh 7 0 0 0 0 0 1 1 1 07h 8 0 1 1 1 1 1 1 1 7Fh 9 0 1 1 0 1 1 1 1 6Fh Khi kÕt nèi chung d÷ liÖu Led 7 thanh ta kh«ng thÓ cho c¸c Led s¸ng ®ång thêi do ¶nh h-ëng cña c¸c Led víi nhau. Muèn c¸c Led s¸ng ta ph¶i sö dông ph-¬ng ph¸p quÐt, nghÜa lµ t¹i mçi thêi ®iÓm chØ cã mét Led ®-îc s¸ng cßn c¸c Led kh¸c t¾t. V× kho¶ng thêi gian t¾t më nµy rÊt ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 112 nhanh (cì ms) vµ do hiÖn t-îng l-u ¶nh cña m¾t ta sÏ thÊy c¸c Led s¸ng ®ång thêi. Dùa vµo hiÖn t-îng l-u ¶nh ®ã, chóng ta thiÕt kÕ phÇn cøng nh- sau: - S¬ ®å kÕt nèi phÇn cøng vi ®iÒu khiÓn víi Led 7 thanh lo¹i cathode chung H×nh 5.2. S¬ ®å kÕt nèi phÇn cøng vi ®iÒu khiÓn víi Led 7 thanh lo¹i cathode chung - S¬ ®å kÕt nèi phÇn cøng vi ®iÒu khiÓn víi Led 7 thanh lo¹i anode chung H×nh 5.3. S¬ ®å kÕt nèi phÇn cøng vi ®iÒu khiÓn víi Led 7 thanh lo¹i anode chung Bµi 1: ViÕt ch-¬ng tr×nh ®ång hå: hiÓn thÞ giê, phót, gi©y trªn Led 7 thanh. Bµi 2: Lµm l¹i bµi 1 víi xung Clock chÝnh x¸c 1s sö dông ng¾t Timer. Bµi 3: ViÕt ch-¬ng tr×nh ®Õm s¶n phÈm sö dông ng¾t ngoµi, hiÓn thÞ sè s¶n phÈm trªn Led 7 thanh. 5.2.3 LCD Ở phần này ta sẽ mô tả các chế độ hoạt động của các LCD và sau đó mô tả cách lập trình và phối ghép một LCD tới 8951 a) Hoạt động của LCD. Trong những năm gần đây LCD đang ngày càng đƣợc sử dụng rộng rãi thay thế dần cho các đèn LED (các đèn LED 7 đoạn hay nhiều đoạn). Đó là vì các nguyên nhân sau: 1. Các LCD có giá thành hạ. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 113 2. Khả năng hiển thị các số, các ký tự và đồ hoạ tốt hơn nhiều so với các đèn LED (vì các đèn LED chỉ hiển thị đƣợc các số và một số ký tự). 3. Nhờ kết hợp một bộ điều khiển làm tƣơi vào LCD làm giải phóng cho CPU công việc làm tƣơi LCD. Trong khi đèn LED phải đƣợc làm tƣơi bằng CPU (hoặc bằng cách nào đó) để duy trì việc hiển thị dữ liệu. 4. Dễ dàng lập trình cho các ký tự và đồ hoạ. b) Mô tả các chân của LCD. LCD đƣợc nói trong mục này có 14 chân, chức năng của các chân , Vị trí của các chân đƣợc mô tả trên bảng cho nhiều LCD khác nhau. 1. Chân VCC, VSS và VEE: Các chân VCC, VSS và VEE: Cấp dƣơng nguồn - 5v và đất tƣơng ứng thì VEE đƣợc dùng để điều khiển độ tƣơng phản của LCD. 2. Chân chọn thanh ghi RS (Register Select). Có hai thanh ghi rất quan trọng bên trong LCD, chân RS đƣợc dùng để chọn các thanh ghi này nhƣ sau: Nếu RS = 0 thì thanh ghi mà lệnh đƣợc chọn để cho phép ngƣời dùng gửi một lệnh chẳng hạn nhƣ xoá màn hình, đƣa con trỏ về đầu dòng v.v Nếu RS = 1 thì thanh ghi dữ liệu đƣợc chọn cho phép ngƣời dùng gửi dữ liệu cần hiển thị trên LCD. 3. Chân đọc/ ghi (R/W). Giáo trình Vi xử lý – Vi điều khiển - Trƣờng Đại học Sao Đỏ - Bộ Công thƣơng ©khactoan.kshq@gmail.com 90 Đầu vào đọc/ ghi cho phép ngƣời dùng ghi thông tin lên LCD khi R/W = 0 hoặc đọc thông tin từ nó khi R/W = 1. 4. Chân cho phép E (Enable). Chân cho phép E đƣợc sử dụng bởi LCD để chốt thông tin hiện hữu trên chân dữ liệu của nó. Khi dữ liệu đƣợc cấp đến chân dữ liệu thì một xung mức cao xuống thấp phải đƣợc áp đến chân này để LCD chốt dữ liệu trên các chân dữ liêu. Xung này phải rộng tối thiểu là 450ns. 5. Chân D0 - D7. Đây là 8 chân dữ liệu 8 bít, đƣợc dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và các con số, chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến f và các con số từ 0 - 9 đến các chân này khi bật RS = 1. Cũng có các mã lệnh mà có thể đƣợc gửi đến LCD để xoá màn hình hoặc đƣa con trỏ về đầu dòng hoặc nhấp nháy con trỏ. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 114 Bảng 5.1: Mô tả chân LCD ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 115 Bảng 5.2: Liệt kê các mã lênh. Chúng ta cũng sử dụng RS = 0 để kiểm tra bít cờ bận để xem LCD có sẵn sàng nhân thông tin. Cờ bận là D7 và có thể đƣợcđọc khi R/W = 1 và RS = 0 nhƣ sau: Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thì LCD bận bởi các công việc bên trong và sẽ không nhận bất kỳ thông tin mới nào. Khi D7 = 0 thì LCD sẵn sàng nhận thông tin mới. Lƣu ý chúng ta nên kiểm tra cờ bận trƣớc khi ghi bất kỳ dữ liệu nào lên LCD. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 116 Hình 5.4 Ghép nối LCD với VĐK 5.3. Vi xử lý giao tiếp với bộ biến dổi ADC Các bộ chuyển đổi ADC thuộc trong những thiết bị đƣợc sử dụng rộng rãi nhất để thu dữ liệu. Các máy tính số sử dụng các giá trị nhị phân, nhƣng trong thế giới vật lý thì mọi đại lƣợng ở dạng tƣơng tự (liên tục). Nhiệt độ, áp suất (khí hoặc chất lỏng), độ ẩm và vận tốc và một số ít trọng những đại lƣợng vật lý của thế giới thực mà ta gặp hàng ngày. Một đại lƣợng vật lý đƣợc chuyển về dòng điện hoặc điện áp qua một thiết bị đƣợc gọi là các bộ biến đổi. Các bộ biến đổi cũng có thể đƣợc coi nhƣ các bộ cảm biến. Mặc dù chỉ có các bộ cảm biến nhiệt, tốc độ, áp suất, ánh sáng và nhiều đại lƣợng tự nhiên khác nhƣng chúng đều cho ra các tín hiệu dạng dòng điện hoặc điện áp ở dạng liên tục. Do vậy, ta cần một bộ chuyển đổi tƣơng tự số sao cho bộ vi điều khiển có thể đọc đƣợc chúng. Một chíp ADC đƣợc sử dụng rộng rãi là ADC 0804. Chíp ADC 0804 là bộ chuyển đổi tƣơng tự số đƣợc nhiều hãng khác sản xuất, nó làm việc với +5v và có độ phân giải là 8 bít. Ngoài độ phân giải thì thời gian chuyển đổi cũng là một yếu tố quan trọng khác khi đánh giá một bộ ADC. Thời gian chuyển đổi đƣợc định nghĩa nhƣ là thời gian mà bộ ADC cần để chuyển một đầu vào tƣơng tự thành một số nhị phân. Trong ADC 0804 thời gian chuyển đổi thay đổi phụ thuộc vào tần số đồng hồ đƣợc cấp tới chân CLK và CLK IN nhƣng không thể nhanh hơn 110. ADC 0804 đƣợc mô tả nhƣ sau: 1. Chân CS - chọn chíp: Là một đầu vào tích cực mức thấp đƣợc sử dụng để kích hoạt chíp ADC 804. Để truy cập ADC 804 thì chân này phải ở mức thấp. 2. Chân RD (đọc): Đây là một tín hiệu đầu vào đƣợc tích cực mức thấp. Các bộ ADC chuyển đổi đầu vào tƣơng tự thành số nhị phân tƣơng đƣơng với nó và giữ nó trong một thanh ghi trong. RD đƣợc sử dụng để nhận dữ liệu đƣợc chuyển đổi ở đầu ra của ADC 0804. Khi CS = 0 nếu một xung cao - xuống - thấp đƣợc áp đến chân RD thì đầu ra số 8 bít đƣợc hiển diện ở các chân dữ liệu D0 - D7. Chân RD cũng đƣợc coi nhƣ cho phép đầu ra. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 117 3. Chân ghi WR (thực ra tên chính xác là “Bắt đầu chuyển đổi”). Đây là chân đầu vào tích cực mức thấp đƣợc dùng để báo cho ADC 0804 bắt đầu quá trình chuyển đổi. Nếu CS = 0 khi WR tạo ra xung cao - xuống - thấp thì bộ ADC 0804 bắt đầu chuyển đổi giá trị đầu vào tƣơng tự Vin về số nhị phân 8 bít. Lƣợng thời gian cần thiết để chuyển đổi thay đổi phụ thuộc vào tần số đƣa đến chân CLK IN và CLK R. Khi việc chuyển đổi dữ liệu đƣợc hoàn tất thì chân INTR đƣợc ép xuống thấp bởi ADC 0804. 4. Chân CLK IN và CLK R. Chân CLK IN là một chân đầu vào đƣợc nối tới một nguồn đồng hồ ngoài khi đồng hồ ngoài đƣợc sử dụng để tạo ra thời gian. Tuy nhiên 0804 cũng có một máy tạo xung đồng hồ. Để sử dụng máy tạo xung đồng hồ trong (cũng còn đƣợc gọi là máy tạo đồng hồ riêng) của 0804 thì các chân CLK IN và CLK R đƣợc nối tới một tụ điện và một điện trở . Trong trƣờng hợp này tần số đồng hồ đƣợc xác định bằng biểu thức: 1 1,1 f RC Với R= 10k , C = 150pF tần số nhận đƣợc là 606KHz và thời gian chuyển đổi mất 110s 5. Chân ngắt INTR(ngắt hay gọi chính xác hơn là “kết thúc chuyển đổi‟). Đây là chân đầu ra tích cực mức thấp. Bình thƣờng nó ở trạng thái cao và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho CPU biết là dữ liệu đƣợc chuyển đổi sẵn sàng để lấy đi. Sau khi INTR xuống thấp, ta đặt CS = 0 và gửi một xung cao 0 xuống - thấp tới chân RD lấy dữ liệu ra của 0804. 6. Chân Vin (+) và Vin (-). Đây là các đầu vào tƣơng tự vi sai mà Vin = Vin (+) - Vin (-). Thông thƣờng Vin (-) đƣợc nối xuống đất và Vin (+) đƣợc dùng nhƣ đầu vào tƣơng tự đƣợc chuyển đổi về dạng số. 7. Chân VCC. Đây là chân nguồn nuối +5v, nó cũng đƣợc dùng nhƣ điện áp tham chiếu khi đầu vào Vref/2 (chân 9) để hở. 8. Chân Vref/2. Chân 9 là một điện áp đầu vào đƣợc dùng cho điện áp tham chiếu. Nếu chân này hở (không đƣợc nối) thì điện áp đầu vào tƣơng tự cho ADC 804 nằm trong dải 0 đến +5v (giống nhƣ chân VCC). Tuy nhiên, có nhiều ứng dụng mà đầu vào tƣơng tự áp đến Vin cần phải khác ngoài dải 0 đến 5v. Chân Vref/2 đƣợcdùng để thực thi các điện áp đầu vào khác ngoài dải 0 - 5v. Ví dụ, nếu dải đầu vào tƣơng tự cần phải là 0 đến 4v thì Vref/2 đƣợc nối với +2v ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 118 Bảng 5.3 Điện áp Vref liên hệ với Vin Ghi chú: - VCC = 5V - Khi Vref/2 hở thì đo đƣợc ở đó khoảng 2,5V - Kích thƣớc bƣớc (độ phân dải) là sự thay đổi nhỏ nhất mà ADC có thể phân biệt đƣợc. 9. Các chân dữ liệu D0 - D7. Các chân dữ liệu D0 - D7 (D7 là bít cao nhất MSB và D0 là bít thấp nhất LSB) là các chân đầu ra dữ liệu số. Đây là những chân đƣợc đệm ba trạng thái và dữ liệu đƣợc chuyển đổi chỉ đƣợc truy cập khi chân CS = 0 và chân RD bị đƣa xuống thấp. Để tính điện áp đầu ra ta có thể sử dụng công thức sau: inV kich thuoc buoc outD Với Dout là đầu ra dữ liệu số (dạng thập phân). Vin là điện áp đầu vào tƣơng tự và độ phân dải là sự thay đổi nhỏ nhất đƣợc tính Vref/2) chia cho 256 đối với ADC 8 bít. nhƣ là ( ef V (2x ) / 256 2 r đối với ADC 8 bít 10.Chân đất tƣơng tự và chân đất số. Đây là những chân đầu vào cấp đất chung cho cả tín hiệu số và tƣơng tự. Đất tƣơng tự đƣợc nối tới đất của chân Vin tƣơng tự, còn đất số đƣợc nối tới đất của chân Vcc. Lý do mà ta phải có hai đất là để cách ly tín hiệu tƣơng tự Vin từ các điện áp ký sinh tạo ra việc chuyển mạch số đƣợc chính xác. Trong phần trình bày của chúng ta thì các chân này đƣợc nối chung với một đất. Tuy nhiên, trong thực tế thu đo dữ liệu các chân đất này đƣợc nối tách biệt. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 119 Hình 5.5 Sơ đồ kiểm tra ADC ở chế độ chạy tự do Từ những điều trên ta kết luận rằng các bƣớc cần phải thực hiện khi chuyển đổi dữ liệu bởi ADC 0804 là: a) Bật CS = 0 và gửi một xung thấp lên cao tới chân WR để bắt đầu chuyển đổi. b) Duy trì hiển thị chân INTR. Nếu INTRxuống thấp thì việc chuyển đổi đƣợc hoàn tất và ta có thể sang bƣớc kế tiếp. Nếu INTRcao tiếp tục thăm dò cho đến khi nó xuống thấp. c) Sau khi chân INTRxuống thấp, ta bật CS = 0 và gửi một xung cao - xuống - thấp đến chân RD để lấy dữ liệu ra khỏi chíp ADC0804. Phân chia thời gian cho quá trình này đƣợc trình bày trên hình. Hình 5.6 Phân chia thời gian ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 120 Hình 5.7 Sơ đồ ghép nối ADC với VĐK Chƣơng trình để hiển thị chân INTR và lấy đầu vào tƣơng tự vào thanh ghi A. Sau đó gọi một chƣơng trình chuyển đổi mã Hex ra ASCII và một chƣơng trình hiển thị dữ liệu. Thực hiện điều này liên tục. ;Đặt P2.6 = WR (bắt đầu chuyển đổi cần 1 xung thấp lên cao) ; Đặt chân P2.7 = 0 khi kết thúc chuyển đổi ; Đặt P2.5 = RD (xung cao - xuống - thấp sẽ đọc dữ liệu từ ADC) ; P1.0 – P1.7 của ADC 0804 MOV P1, # 0FFH ; Chọn P1 là cổng đầu vào BACK: CLR P2.6 ; Đặt WR = 0 SETB P2.6 ; Đặt WR = 1 để bắt đầu chuyển đổi HERE: JB P2.7, HERE ; Chờ cho P2.7 to để kết thúc chuyển đổ i CLR P2.5 ; Kết thúc chuyển đổi, cho phép đọc RD MOV A, P1 ; Đọc dữ liệu vào thanh ghi A ACALL CONVERSION ; Chuyển đổi số Hex ra mã ASCII ACALL DATA-DISPLAY ; Hiển thị dữ liệu SETB P2.5 ; Đƣa RD = 1 để cho lần đọc sau. SJMP BACK 5.4. Vi xử lý giao tiếp với Động cơ /relay - CÊu t¹o ®éng c¬ b-íc: ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 121 H×nh 5.8. S¬ ®å cÊu t¹o ®éng c¬ b-íc B¶ng 1.1: Chuçi 4 b-íc th«ng th-êng vµ c¸c gãc b-íc cña ®éng c¬ b-íc. 1.2. S¬ ®å ghÐp nèi 89C51 víi ®éng c¬ b-íc: H×nh 5.9. S¬ ®å ghÐp nèi 89C51 víi ®éng c¬ b-íc - Ch-¬ng tr×nh ®iÒu khiÓn ®éng c¬ b-íc: VÝ dô 1: $include(reg51.inc) Org 0000H B-íc Cuén d©y A Cuén d©y B Cuén d©y C Cuén d©y D 1 1 0 0 1 2 1 1 0 0 3 0 1 1 0 4 0 0 1 1 Gãc b-íc Sè b-íc/ vßng 0.72 500 1.8 200 2.0 180 2.5 144 5.0 72 7.5 48 15 24 ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 122 MOV A, # 01100110B ; N¹p chuçi xung b-íc BACK: MOV P1, A ; XuÊt chuçi xung ®Õn ®éng c¬ RR A ; Quay theo chiÒu kim ®ång hå ACALL DELAY ; Chê SJMP BACK ; TiÕp tôc ch¹y DELAY MOV R2, # 100 W1: MOV R3, # 255 W2: DJNZ R3, W2 DJNZ R2, W1 RET H·y thay ®æi gi¸ trÞ cña DELAY ®Ó ®Æt tèc ®é quay. Ta cã thÓ sö dông lÖnh ®¬n bÝt SETB vµ CLR thay cho lÖnh RRA ®Ó t¹o ra chuçi xung. - Chuçi xung bèn b-íc vµ sè r¨ng trªn r« to: Chuçi xung chuyÓn m¹ch ®-îc tr×nh bµy trong b¶ng 1.1 ®-îc gäi lµ chuçi chuyÓn m¹ch 4 bíc bëi v× sau 4 bíc th× hai cuén d©y gièng nhau sÏ ®îc bËt “ON”. VËy ®é dÞch chuyÓn cña 4 b-íc nµy sÏ lµ bao nhiªu? Sau mçi khi thùc hiÖn 4 b-íc nµy th× r« to chØ dÞch ®-îc mét b-íc r¨ng. Do vËy, trong ®éng c¬ b-íc víi 200 b-íc/ vßng th× r« to cña nã cã 50 r¨ng v× 50 4 = 200 b-íc cÇn ®Ó quay hÕt mét vßng. §iÒu nµy dÉn ®Õn mét kÕt luËn lµ gãc b-íc tèi thi Óu lu«n lµ hµm cña sè r¨ng trªn r« to. Hay nãi c¸ch kh¸c gãc b-íc cµng nhá th× r« to quay ®-îc cµng nhiÒu r¨ng. H·y xÐt vÝ dô 1. VÝ dô 2: H·y tÝnh sè lÇn cña chuçi 4 b-íc trong b¶ng 1.1 ph¶i cÊp cho mét ®éng c¬ b-íc ®Ó t¹o ra mét dÞch chuyÓn 800 nÕu ®éng c¬ gãc b-íc lµ 20. Lêi gi¶i: Mét ®éng c¬ cã gãc b-íc lµ 20 th× ph¶i cã nh÷ng ®Æc tÝnh sau: gãc b-íc 20, sè b-íc/ vßng lµ 180, sè r¨ng cña r« to lµ 45, ®é dÞch chuyÓn sau mçi chuçi 4 b-íc lµ 8 0. VËy ®Ó dÞch chuyÓn 800 th× cÇn 40 chuçi 4 b-íc v× 10 4 2 = 80. Bài tập 1: - ThiÕt kÕ l¹i phÇn cøng ghÐp nèi 89C51 víi ®éng c¬ b-íc sö dông phÇn tö b¸n dÉn. - Cho ®éng c¬ b-íc cã gãc b-íc 2o, viÕt ch-¬ng tr×nh ®iÒu khiÓn dõng ®éng c¬ ë 90 o, 45o. - ViÕt ch-¬ng tr×nh ®iÒu khiÓn ®éng c¬ b-íc cã nót ®¶o chiÒu quay, t¨ng tèc/gi¶m tèc. Bài tập 2: - ViÕt ch-¬ng tr×nh ®iÒu khiÓn ®éng c¬ DC cã nót Start/Stop, t¨ng tèc/gi¶m tèc. ĐỀ CƢƠNG MÔN HỌC KỸ THUẬT VI XỬ LÝ KHOA ĐIỆN – ĐIỆN TỬ - ĐHSPKT-HY_01/2017 Trang 123 TÀI LIỆU THAM KHẢO [1]. Đỗ Xuân Tiến Kỹ thuật Vi xử lý và lập trình Assembly cho hệ VXL_ NXBKH&KT 2001 [2]. Tống Văn On Vi điều khiển 8051 _ NXB Lao động & xã hội 2001 [3]. Văn Thế Minh Kỹ thuật Vi xử lý _ NXBGD 1997 [4]. Ngô Diên Tập Vi xử lý trong đo lƣờng và điều khiển – NXB KHKT – 2000 [5]. Nguyễn Mạnh Giang Cấu trúc, lập trình ghép nối và ứng dụng của VĐK – NXB LĐ&XH - 2005 [6]. Nguyễn Tăng Cƣờng Cấu trúc và lập trình họ vi điều khiển 8051 – NXB KH&KT - 2004
File đính kèm:
- giao_trinh_ky_thuat_vi_xu_ly.pdf