Bài Bài giảng Kỹ thuật Vi xử lý - Chương 2

16 636 6
Bài Bài giảng Kỹ thuật Vi xử lý - Chương 2

Đ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

Là loại máy tính được thiết kế để giải các bài toán lớn với tốc độ rất nhanh -Nó làm việc với số liệu có độ dài từ 64 bit hoặc hơn và được trang bị bộ nhớ rất lớn, vì vậy kích thước lớn. -Chúng thường được dùng để điều khiển các hệ thống thiết bị dùng trong quân sự hoặc các hệ thống máy móc của chương trình nghiên cứu vũ trụ, để xử lý thông tin trong ngành ngân hàng, vv… Ví dụ : IBM 4381, Honeywell DSP8 Loại mạnh nhất trong các máy tính lớn gọi là siêu máy tính (supercomputer). Ví dụ : Y-MP/832 của Gray.

Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 1 CHƯƠNG 2: PHẦN CỨNG HỌ MCS-51 I. GIỚI THIỆU CHUNG VỀ VI ĐIỀU KHIỂN Q trình phát triển nhanh của các loại vi xử cho phép ứng dụng chúng trong các q trình sản xuất như các bộ điều khiển. Khác với các loại vi xử sử dụng để xử thơng tin (các máy tính PC xử văn bản, cơ sở dữ liệu, tính tốn khoa học kỹ thuật), các vi điều khiển (microcontroller) được thiết kế để lắp đặt trực tiếp vào ứng dụng cụ thể. Trong đó suốt q trình vận hành củ a mình vi điều khiển chỉ thực hiện duy nhất một chức năng. Việc ứng dụng rộng rãi các bộ vi điều khiển dẫn đến u cầu sản xuất tất cả các vi mạch trong một vỏ. Việc tích hợp nhiều vi mạch trên một vỏ làm giảm giá thành và làm tăng tính tin cậy của vi điều khiển. u cầu tăng cao tốc độ xử dẫn đến các cấu trúc c ủa vi điều khiển khác với các cấu trúc của các bộ vi xử như Z80, 8086 và các vi xử dùng cho máy tính PC. Cấu trúc của vi điều khiển cho phép truy cập nhanh bộ nhớ dữ liệu, truy cập và xử nhanh các dữ liệu, truy cập nhanh các thiết bị (phép nhân và chia dấu phẩy đứng, các phép tốn đại số Boole với 1 bit … ) Tổng qt ta có thể nói rằng vi điều khiển là một máy tính trong một chip (monolithic microcomputer). Trong đó đã bao gồm CPU, bộ nhớ, các thiết v ị vào/ra phổ biến. Cấu trúc của vi điều khiển được thiết kế để phục vụ một mục đích cụ thể mà chỉ cần tối thiểu các mạch phụ trợ. Chức năng của vi điều khiển được xác định bởi chương trình lưu trong bộ nhớ ROM hoặc EPROM. Chương trình được nạp một lần và khơng thay đổi trong suốt q trình hoạt động. B ộ nhớ của các vi điều khiển có cấu trúc khác với bộ nhớ của vi xử Z80 cùng loại. Tại các họ vi xử ta dùng cấu trúc bộ nhớ Neuman, trong đó bản đồ bộ nhớ dùng chung cho cả chương trình (thường trong ROM- Read only memory) và dữ liệu (RWM – read write memory). Các bộ vi điều khiển sử dụng cấu trúc Harward. Tại đây bộ nhớ được chia làm hai loại: bộ nhớ chương trình (ROM) và bộ nhớ dữ liệ u (RWM). Hình 2.1: Cấu trúc Neuman Hình 2.2: Cấu trúc Harward Việc phân biệt này được suy ra từ thực tế rằng bộ nhớ ROM dùng để lưu chương trình khơng thể ghi vào được, và bộ nhớ này thường có độ dài vài kB (u cầu 10 đến 16 bit địa chỉ). CPU truy cập bộ nhớ này chủ yếu để đọc lệnh. Bộ nhớ dữ liệu để lưu các kết quả tạm thời thơng thường bé hơn, chỉ cần 8 bit địa chỉ hoặc thậm chí 4 bit địa chỉ. Với địa chỉ bộ nhớ dữ liệu nhỏ, tốn hạng sẽ có địa chỉ ngắn và nhiều khi có thể lọt vào vào mã lệnh (object code) có độ dài 8 bit. Cấu trúc bộ nhớ Harward là cơ sở cho việc xử nhanh thơng tin trong các ứng dụng điều khiển. Cấu trúc khơng đổi của các loại vi điều khiển lại là giới hạn đối với việc áp dụng trong thực tế. Tuy vậy trên thị trường có rất nhiều loại vi điều khiển cho các loại ứng dụng cụ thể khác nhau, mỗi loại tự phân biệt bằng lượng tối thiểu thiết bị được tích hợp bên trong. CPU Bộ nhớ chương trình + Bộ nhớ dữ liệu CPU Bộ nhớ chương trình Bộ nhớ dữ liệu Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 2 * HỌ VI ĐIỀU KHIỂN X51 Vi điều khiển 8051 ra đời vào năm 1980 và đã là loại vi điều khiển tương đối “lớn tuổi”. Tuy vậy 8051 đã nhận được sự mến chuộng đặc biệt của các nhà thiết kế hệ thống đến nỗi hiện nay tồn tại rất nhiều nhà sản xuất tập trung phát triển các sản phẩm trên cơ sở 8051 và phát triển thêm các thi ết bị ngoại vi khác. dụ chỉ riêng Philips đã sản xuất 24 loại vi điều khiển trên cơ sở 8051 như được thể hiện trên hình 2.1. Các vi điều khiển này khác nhau như sau: bộ nhớ chương trình từ 2kB đến 32 kB, bộ nhớ này có loại có thể nạp một lần hoặc nhiều lần (EPROM), bộ nhớ EEPROM để nhớ các hằng số, bộ nhớ dữ liệu mở rộng đến 256 kB, bộ ADC 8 hoặc 10 bit với bộ chọn 8 kênh, các cổng vào/ra mở rộng, bộ so sánh hoặc lưu dữ liệu, bus 2 dây I 2 C. Các nhà sản xuất cung cấp các vi điều khiển có tần số từ 12MHz đến 33 MHz với loại vỏ DIL, PLCC đến loại nhỏ PQFP. Một số nhà sản xuất tập trung vào các vi điều khiển với các phép tính số học (Siemens 80C537) hoặc việc định thời khác nhau (Dallas DS80C320). Tổng kết các hướng phát triển cụ thể của vi điều khiển trên cơ sở 8051 được tổng kết như trên hình 2.3. Hình 2.3: Các thành phần mở rộng của họ vi điều khiển trên cơ sở 8051 Trên thị trường Việt nam hiện tại loại vi điều khiển AT89C51 của hãng Atmel rất được phổ biến. Vi điều khiển này có thể mua được với giá 25,000 đ/1đv. Kèm theo với vi điều khiển này là rất nhiều các thiết bị phụ trợ như bộ lập trình, các board mạch cơ bản, các phần mềm phụ trợ… Vi điều khiển AT89C51 và các loại cùng họ của hãng Atmael có bộ nhớ chương trình bên trong là EEPROM là bộ nhớ có thể xố là nạp được bằng tín hiệu điện. Điều này cho phép người lập trình có thể thử nghiệm, nạp chương trình vào vi điều khiển nhiều lần. Thiết bị nạp chương trình (programmer) cho vi điều khiển này là tương đối đơn giản và có thể tự làm được. Có thể tham khảo tại trang chủ của hãng Atmel tại địa chỉ www.atmel.com. Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 3 II. CẤU TRÚC CỦA VI ĐIỀU KHIỂN 8051 Các vi mạch của họ MCS-51 gồm: 8031/8032, 8051/8052, 8751/8752, 8951/8952, 892051 … Vi mạch tiêu biểu của họ MCS-51 là 8031/8051 có các đặc điểm sau: - 4 KB ROM nội (0 KB đối với 8031). - 128 byte RAM nội. - 4 port nhập/xuất 8 bit (I/O port). - 2 bộ đònh thời 16 bit (timer). - Mạch giao tiếp nối tiếp (serial port) 2 chiều. - Bộ điều khiển ngắt xử 5 nguồn yêu cầu ngắt trong đó có 2 nguồn ngắt ngoài, 2 nguồn ngắt bên trong từ hai timer và 1 nguồn ngắt từ kênh nối tiếp. Mức độ ưu tiên của các ngắt được quy đònh cụ thể. - 64 KB không gian bộ nhớ chương trình ngoài. - 64 KB không gian bộ nhớ dữ liệu ngoài. - 210 bit được đòa chỉ hoá. - Bộ nhân/chia 4 μs (với tần số thạch anh 12MHz). Chip Bộ nhớ chương trình trên chip Bộ nhớ dữ liệu trên chip Số bộ đònh thời (timer) 8031 0 KB 128 byte 2 8051 4 KB ROM 128 byte 2 8751 4 KB EPROM 128 byte 2 8951 4 KB Flash ROM 128 byte 2 8032 0 KB 256 byte 3 8052 8 KB ROM 256 byte 3 8752 8 KB EPROM 256 byte 3 8952 8 KB Flash ROM 256 byte 3 Bảng 2.1: Một số thông số của các chip tiêu biểu của họ MCS-51. III. SƠ LƯC CÁC CHÂN (PINOUT) CỦA 8051 Sơ đồ chân 8031/8051: 8051 29 30 40 20 31 19 18 9 39 38 37 36 35 34 33 32 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 PSEN ALE VCC VSS EA XTAL1 XTAL2 RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD Hình 2.4 Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 4 Sơ đồ khối của 8051: Hình 2.5 1. Port 0 Port 0 (P0.0 ÷ P0.7) là port hai chức năng trên các chân từ 32 đến 39. Trong các thiết kế cỡ nhỏ (không dùng bộ nhớ ngoài) nó có chức năng như các đường I/O. Đối với các thiết kế lớn với bộ nhớ ngoài, port 0 được dồn kênh giữa bus dữ liệu (D0 ÷ D7) và byte thấp của bus đòa chỉ (A0 ÷ A7). 2. Port 1 Port 1 (P1.0 ÷ P1.7) là một port I/O trên các chân từ 1 đến 8. Port 1 không có chức năng khác, nó chỉ được dùng cho giao tiếp với thiết bò ngoài. 3. Port 2 Port 2 (P2.0 ÷ P2.7) là port có công dụng kép trên các chân từ 21 đến 28. Nó được dùng như các đường I/O hoặc là byte cao của bus đòa chỉ (A8 ÷ A15) đối với các thiết kế dùng bộ nhớ ngoài. 4. Port 3 Port 3 (P3.0 ÷ P3.7) là một port công dụng kép trên các chân từ 10 đến 17. Các chân của port này vừa có chức năng là các đường I/O vừa có chức năng riêng khác tùy từng chân. Bảng sau mô tả các chức năng riêng của từng chân: Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INT0 Ngắt ngoài 0 P3.3 INT1 Ngắt ngoài 1 Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 5 P3.4 T0 Ngõ vào timer/counter 0 P3.5 T1 Ngõ vào timer/counter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngoài P3.7 RD Xung đọc bộ nhớ dữ liệu ngoài Bảng 2.2: Chức năng của các chân của port 3. 5. PSEN (Program Store Enable) - PSEN là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển để cho phép đọc bộ nhớ chương trình ngoài và thường được nối đến chân OE (Output Enable) của bộ nhớ này. - PSEN sẽ ở mức 0 (mức tích cực) trong thời gian lấy lệnh. Các mã nhò phân của chương trình được đọc từ bộ nhớ qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8051 để giải mã. Khi thực thi chương trình trong ROM nội, PSEN được duy trì ở mức 1 (mức không tích cực). 6. ALE (Address Latch Enable) - ALE là tín hiệu ra trên chân 30. Nó là tín hiệu ra cho phép chốt đòa chỉ để phân kênh cho bus dữ liệu (D0 ÷ D7) và byte thấp của bus đòa chỉ (A0 ÷ A7) trên port 0: trong nửa đầu của chu kỳ bộ nhớ, xung ALE cho phép chốt đòa chỉ vào một thanh ghi bên ngoài, trong nửa sau của chu kỳ bộ nhớ, các đường port 0 như là các đường xuất/nhập dữ liệu. - Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số của mạch dao động trên chip và có thể được dùng làm nguồn xung nhòp cho các thành phần khác của hệ thống. dụ, nếu xung nhòp mạch dao động trên 8051 là 12 MHz thì ALE có tần số là 2 MHz. Chỉ trừ khi thi hành lệnh MOVX, một xung ALE sẽ bò mất đi. Chân này cũng được làm ngõ vào của xung lập trình cho EPROM trong 8051. 7. EA (External Access) EA là tín hiệu vào trên chân 31. Nó thường được nối với +5V (mức 1) hay GND (mức 0). Nếu ở mức 1, 8051 thực thi chương trình từ ROM nội trong khoảng đòa chỉ thấp (4 KB). Nếu ở mức 0, 8051 chỉ thực thi chương trình từ bộ nhớ chương trình ngoài. Trong 8031, chân này luôn được nối GND không có bộ nhớ chương trình trên chip. 8. RST (Reset) RST là ngõ vào trên chân 9. Khi tín hiệu này được đưa lên mức cao (trong ít nhất là 2 chu kỳ máy), hệ thống sẽ khởi động lại. 9. XTAL1 và XTAL2 XTAL1 và XTAL2 là ngõ vào và ngõ ra của mạch dao động trên chip ở chân 18 và 19. Chúng thường được nối với một thạch anh ngoài và các tụ như hình 2.6 để tạo xung clock. Tần số thạch anh thông thường là 12 MHz. Chu kì máy (T M ) = 1 / (f OSC /12) = 12 / f OSC Nếu tần số thạch anh là 12 MHz thì chu kì máy bằng 1 μs. Hình 2.6 10. V CC và V SS Là các chân nguồn trên chân 40 và20. VCC = +5V, VSS nối đất. Mạch dao động trên chip f osc XTAL 12 MHz C2 30p 0 XTAL2 C1 30p XTAL1 Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 6 IV. CẤU TRÚC CỦA PORT I/O Sơ đồ mạch bên trong của các chân port I/O được vẽ đơn giản như sau: Hình 2.7 Việc ghi ra một chân port sẽ nạp dữ liệu từ bus nội vào chốt port. Ngõ ra của chốt được nối qua một cổng đảo đến cực G của FET và ngõ ra của FET nối đến chân port. Khi ghi mức 1 đến chốt port, ngõ ra cổng đảo sẽ là mức 0 làm FET tắt, ngõ ra chân port sẽ là mức 1. Ngược lại, khi ghi mức 0 đến chốt port sẽ làm FET dẫn nên ngõ ra chân port sẽ là mức 0. Các câu lệnh yêu cầu hoạt động đọc-sửa-ghi (ví dụ lệnh CPL P1.5), sẽ đọc ở chân chốt port để tránh hiểu nhầm mức điện áp ở chân port do ảnh hưởng tải. Các câu lệnh nhập một bit từ port (ví dụ MOV C,P1.5) sẽ đọc chân port. Trong trường hợp này, chốt port phải ở mức 1, nếu không thì FET sẽ dẫn và kéo ngõ ra xuống mức 0. Khi reset hệ thống, tất cả các chốt port được cài bằng 1, thế các chân port có thể được dùng như là các ngõ nhập ngay mà không cần phải cài các chốt port nữa. Tuy nhiên nếu một chốt port bò xoá (ví dụ lệnh CLR P1.5), và sau đó muốn nhập vào từ chân port thì bộ chốt phải được thiết lập lên mức 1 trước (ví dụ phải dùng lệnh SETB P1.5 trước). Chú ý: điện trở kéo lên (pull up) không có ở port 0 (trừ khi port này làm nhiệm vụ dồn kênh bus đòa chỉ/dữ liệu). Do đó khi port này được dùng làm I/O thì cần có điện trở kéo lên bên ngoài. V. TỔ CHỨC BỘ NHỚ - 8051 có không gian bộ nhớ riêng bên trong cho chương trình (ROM) và dữ liệu (RAM). - Có thể mở rộng đến 64K bộ nhớ chương trình ngoài và 64K bộ nhớ dữ liệu ngoài (tương ứng với 16 bit đòa chỉ). - Có 256 byte RAM nội ( đòa chỉ 00H ÷ FFH): + 128 byte RAM nội đòa chỉ 00H ÷ 7FH: là các bank (dãy) thanh ghi, vùng RAM đònh vò bit và vùng RAM đa dụng. + 128 byte RAM nội đòa chỉ 80H ÷ FFH: là các thanh ghi chức năng đặc biệt. 1. Các bank thanh ghi - Đòa chỉ từ 00H ÷ 1FH. - Có 4 bank thanh ghi: 0, 1, 2, 3. - Mỗi bank có 8 thanh ghi: từ R0 ÷ R7. - Tại mỗi thời điểm, chỉ có một bank thanh ghi tích cực (thông qua việc cài các bit chọn bank trong thanh ghi PSW). Bank thanh ghi tích cực mặc nhiên sau khi reset hệ thống là bank 0. 2. Vùng RAM đònh vò bit - Đòa chỉ từ 20H ÷ 2FH. Ghi vào chốt Chốt port Bus nội của 8051 Vcc chân port Điện trở nội kéo lên Đọc chân port D CLK Q Q Đọc chốt port 0 Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 7 - Gồm 128 bit được đònh đòa chỉ từ 00H đến 7FH trong các byte đòa chỉ từ 20H ÷ 2FH. - Có thể truy xuất từng byte hay từng bit. Ý tưởng truy xuất từng bit riêng rẽ bằng phần mềm là một đặc tính mạnh của các vi điều khiển, đặc biệt đối với các ứng dụng điều khiển. Các bit có thể được đặt, xóa, AND, OR… với một lệnh đơn. 3. Vùng RAM đa dụng - Đòa chỉ từ 30 ÷ 7FH. - Gồm 80 byte được đònh đòa chỉ từ 30H ÷ 7FH, được sử dụng tùy mục đích của người dùng. Hình 2.8 Đòa chỉ byte Đòa chỉ bit 7F 30 RAM đa dụng 2F 7F 7E 7D 7C 7B 7A 79 78 2E 77 76 75 74 73 72 71 70 2D 6F 6E 6D 6C 6B 6A 69 68 2C 67 66 65 64 63 62 61 60 2B 5F 5E 5D 5C 5B 5A 59 58 2A 57 56 55 54 53 52 51 50 29 4F 4E 4D 4C 4B 4A 49 48 28 47 46 45 44 43 42 41 40 27 3F 3E 3D 3C 3B 3A 39 38 26 37 36 35 34 33 32 31 30 25 2F 2E 2D 2C 2B 2A 29 28 24 27 26 25 24 23 22 21 20 23 1F 1E 1D 1C 1B 1A 19 18 22 17 16 15 14 13 12 11 10 21 0F 0E 0D 0C 0B 0A 09 08 20 07 06 05 04 03 02 01 00 1F 18 Bank 3 17 10 Bank 2 0F 08 Bank 1 07 00 Bank thanh ghi mặc đònh cho R0 – R7 (Bank 0) RAM Đòa chỉ byte Đòa chỉ bit hiệu (tên) FF F0 F7 F6 F5 F4 F3 F2 F1 F0 B E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC D0 D7 D6 D5 D4 D3 D2 - D0 PSW B8 - - - BC BB BA B9 B8 IP B0 B7 B6 B5 B4 B3 B2 B1 B0 P3 A8 AF - - AC AB AA A9 A8 IE A0 A7 A6 A5 A4 A3 A2 A1 A0 P2 99 Không được đòa chỉ hóa bit SBUF 98 9F 9E 9D 9C 9B 9A 99 98 SCON 90 97 96 95 94 93 92 91 90 P1 8D Không được đòa chỉ hóa bit TH1 8C Không được đòa chỉ hóa bit TH0 8B Không được đòa chỉ hóa bit TL1 8A Không được đòa chỉ hóa bit TL0 89 Không được đòa chỉ hóa bit TMOD 88 8F 8F 8D 8C 8B 8A 89 88 TCON 87 Không được đòa chỉ hóa bit PCON 83 Không được đòa chỉ hóa bit DPH 82 Không được đòa chỉ hóa bit DPL 81 Không được đòa chỉ hóa bit SP 80 87 86 85 84 83 82 81 80 P0 CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 8 VI. CÁC THANH GHI CHỨC NĂNG ĐẶC BIỆT (SFRs – SPECIAL FUNCTION REGISTERS) 1. Thanh ghi tích luỹ A (Accummulator) - Còn kí hiệu là ACC (tương ứng với đòa chỉ E0H), được đònh đòa chỉ từng bit. - Thường là toán hạng đích trong các lệnh số học và logic, kết quả của lệnh chứa trong thanh ghi A. dụ: 2. Thanh ghi trạng thái chương trình PSW (Program Status Word) Đòa chỉ là D0H, chứa các bit trạng thái như sau: CY AC F0 RS1 RS0 OV - P - Cờ nhớ CY (C) Có hai công dụng: + Được đặt bằng 1 nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn bởi phép trừ. dụ, nếu thanh ghi tích luỹ chứa FFH, thì lệnh sau: ADD A, #1 sẽ trả về thanh ghi A kết quả là 00H và đặt cờ nhớ C = 1. + Là “thanh ghi tích lũy” 1 bit trong các lệnh logic thao tác trên bit. dụ, lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ: ANL C, 25H - Cờ nhớ phụ AC (Auxiliary Carry) + Cờ nhớ AC được đặt bằng 1 nếu có số nhớ sinh ra từ bit 3 sang bit 4 trong phép cộng. dụ: 78 0111 1000 + 69 + 0110 1001 E1 1110 0001 + Được dùng khi cộng các giá trò BCD. - Cờ F0 : là một bit cờ đa dụng, được dùng tùy mục đích của người sử dụng. - RS1 và RS0 Là các bit dùng để chọn bank thanh ghi tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần. RS1 RS0 Bank 0 0 0: đòa chỉ 00H ÷ 07H 0 1 1: đòa chỉ 08H ÷ 0FH 1 0 2: đòa chỉ 10H ÷ 17H 1 1 3: đòa chỉ 18H ÷ 1FH Bảng 2.3: Chọn bank thanh ghi. - Cờ tràn OV (Overflow) Được đặt bằng 1 sau một lệnh cộng hoặc lệnh trừ nếu có một phép toán bò tràn số học. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để A + Toán hạng nguồn = Kết quả Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 9 xác đònh xem kết quả có nằm trong tầm xác đònh không. Khi các số không dấu được cộng, bit OV có thể được bỏ qua. Các kết quả lớn hơn +127 hoặc lớn hơn –128 sẽ đặt bit OV. dụ, phép cộng sau bò tràn và bit OV được đặt: Hex: 0F Thập phân: 15 + 7F + 127 8E 142 Kết quả là một số có dấu 8EH được xem như –114, không phải là kết quả đúng (142), vậy bit OV được đặt. - Cờ kiểm tra chẵn lẻ P (Parity) Được tự động tạo ra theo phương pháp kiểm tra chẵn đối với dữ liệu trong thanh ghi A. + Kiểm tra chẵn (even parity): tổng số các bit 1 trong thanh ghi A và cờ P là chẵn. + Kiểm tra lẻ (odd parity): tổng số các bit 1 trong thanh ghi A và cờ P là lẻ. 3. Thanh ghi B - Đòa chỉ là F0H, được đònh đòa chỉ từng bit. - Được dùng kèm với thanh ghi A trong các phép toán nhân, chia hay dùng như một thanh ghi đa dụng. 4. Con trỏ stack SP (Stack Pointer) - Stack (ngăn xếp) là vùng nhớ trên RAM mà μP dùng để lưu thông tin tạm thời. - Con trỏ stack SP có đòa chỉ là 81H, là thanh ghi chứa đòa chỉ của byte dữ liệu hiện hành trên đỉnh của stack. - Các lệnh trên stack bao gồm các thao tác cất dữ liệu vào stack và lấy dữ liệu ra khỏi vùng stack. Lệnh cất dữ liệu vào stack (PUSH) sẽ làm tăng nội dung SP trước khi ghi dữ liệu và lệnh lấy dữ liệu ra khỏi vùng stack (POP) sẽ đọc dữ liệu và giảm nội dung SP. Việc cất và lấy dữ liệu trên vùng stack tuân theo nguyên tắc First In Last Out (FILO). - Vùng stack của 8051 được giữ trong RAM nội. Khi khởi động, nội dung mặc đònh của SP là 07H. Do đó vùng stack là 08H ÷ 7FH. Trong trường hợp này, bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vùng RAM này đã được dùng làm stack. vậy, cần khởi động lại giá trò cho SP, thường lấy vùng nhớ phía trên từ 60H ÷ 7FH. - Trước khi thực hiện một chương trình con hoặc chương trình phục vụ ngắt, đòa chỉ của lệnh kế tiếp của lệnh hiện hành sẽ được tự động lưu vào vùng stack. Sau khi thực thi xong và thoát khỏi chương trình con hoặc chương trình phục vụ ngắt, đòa chỉ của lệnh kế tiếp được lưu trong vùng stack sẽ được đưa vào PC và chương trình sẽ tiếp tục thực thi tại điểm mà nó đã ngưng trước đó. Trong trường hợp có nhiều chương trình con lồng nhau hoặc ngắt trong ngắt, quy tắc FILO sẽ đảm bảo cho việc thực thi chương trình theo đúng trình tự. 5. Thanh ghi con trỏ dữ liệu DPTR (Data Pointer) - Là thanh ghi 16 bit, gồm hai thanh ghi 8 bit là DPL (byte thấp) và DPH (byte cao). - Được dùng để xác đònh đòa chỉ bộ nhớ ngoài (bộ nhớ chương trình ngoài hay bộ nhớ dữ liệu ngoài). 6. Các thanh ghi port - Gồm 4 thanh ghi tương ứng với 4 port: P0 Ù Port 0 : ở đòa chỉ 80H P1 Ù Port 1 : ở đòa chỉ 90H P2 Ù Port 2 : ở đòa chỉ A0H P3 Ù Port 3 : ở đòa chỉ B0H - Để truy xuất port ta truy xuất các thanh ghi port tương ứng. Bài giảng VI XỬ Chương 2: Phần cứng họ MCS-51 http://www.ebook.edu.vn 10 - Các thanh ghi này được đònh đòa chỉ từng bit. dụ: P1.0 : bit 0 của thanh ghi P1 P2.7 : bit 7 của thanh ghi P2 7. Các thanh ghi bộ đònh thời (Timer) - 8051 có hai bộ đònh thời/đếm 16 bit được dùng cho việc đònh thời hoặc đếm sự kiện: + Timer 0 gồm TL0 (byte thấp) ở đòa chỉ 8AH và TH0 (byte cao) ở đòa chỉ 8BH. + Timer 1 gồm TL1 (byte thấp) ở đòa chỉ 8CH và TH1 (byte cao) ở đòa chỉ 8DH. - Việc vận hành timer được điều khiển bởi thanh ghi chế độ timer TMOD (ở đòa chỉ 89H) và thanh ghi điều khiển timer TCON (ở đòa chỉ 88H). - Chỉ có TCON được đònh đòa chỉ từng bit. 8. Các thanh ghi port nối tiếp (Serial port) - 8051 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết bò nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao tiếp nối tiếp (các bộ chuyển đổi A/D, các thanh ghi dòch …). - Thanh ghi SBUF (Serial Buffer) ở đòa chỉ 99H là bộ đệm nhập/xuất nối tiếp. Khi xuất dữ liệu thì ghi lên SBUF, khi nhập dữ liệu thì đọc từ SBUF. - Các chế độ hoạt động khác nhau của port nội tiếp được lập trình thông qua thanh ghi điều khiển port nối tiếp SCON (Serial Control) ở đòa chỉ 98H. Đây là thanh ghi được đònh đòa chỉ từng bit. 9. Các thanh ghi ngắt (Interrupt) - 8051 có 5 nguồn ngắt, 2 mức ưu tiên ngắt. - Các ngắt bò cấm sau khi reset hệ thống và sẽ được cho phép bằng cách lập trình cho thanh ghi cho phép ngắt IE (Interrupt Enable) ở đòa chỉ A8H. Đây là thanh ghi đònh đòa chỉ từng bit. -Việc xác lập chế độ ưu tiên ngắt được lập trình thông qua thanh ghi ưu tiên ngắt IP (Interrupt Priority). 10. Thanh ghi điều khiển nguồn PCON (Power Control) - Không được đònh đòa chỉ từng bit. - Chứa các bit điều khiển như sau: SMOD - - - GF1 GF0 PD IDL + SMOD:bit tăng gấp đôi tốc độ baud của port nối tiếp nếu được đặt (SMOD = 1). + GF1, GF0: các bit cờ đa dụng. + PD: thiết lập chế độ nguồn giảm khi được đặt, chỉ thoát khi reset. + IDL: thiết lập chế độ nguồn nghỉ khi được đặt, chỉ thoát nếu có ngắt hoặc reset. • Chế độ nguồn giảm (PD =1): cần cỡ 2V + Mạch dao động trên chip ngừng hoạt động. + Mọi chức năng ngừng hoạt động. + Nội dung các RAM trên chip được duy trì. + Các chân port được duy trì ở mức logic của chúng. + ALE và PSEN được giữ ở mức thấp. • Chế độ nghỉ (IDL = 1) + Tín hiệu clock nội khóa không cho đến CPU nhưng không khóa đối với các chức năng ngắt, đònh thời và port nối tiếp. + Nội dung của tất cả các thanh ghi được duy trì. + ALE và PSEN được giữ ở mức cao.

Ngày đăng: 27/08/2013, 14:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan