1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

KY THUAT VI DIEU KHIEN ĐIỆN TỬ DÂN DỤNG

177 20 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

Cấu trúc

  • 3.1. Sản phẩm dân dụng.

  • 3.2. Trong các thiết bị y tế.

  • 3.3. Các sản phẩm công nghiệp.

  • BÀI TẬP ÔN TẬP

  • 2.2. Port 1

  • 2.3. Port 2

  • 2.4. Port 3

  • 2.5. Chân cho phép bộ nhớ chương trình PSEN

  • 2.6. Chân cho phép chốt địa chỉ ALE

  • 2.7. Chân truy xuất ROM ngoài EA

  • 2.8. Chân RESET ( RST )

  • 2.9. Các chân XTAL1, XTAL2

  • 3.1. Chức năng các Port I/O.

  • 3.2. Kết nối các Port với led.

  • 4.2. Vùng RAM đa năng.

  • 4.3. Vùng RAM định địa chỉ bit.

  • 5.1. Từ trạng thái chương trình PSW (program status word).

  • 5.4. Con trỏ dữ liệu DPTR.

  • 5.5. Các thanh ghi Port nối tiếp.

  • 5.6. Các thanh ghi định thời.

  • 5.7. Các thanh ghi port nối tiếp (Serial Data Buffer).

  • 5.8. Các thanh ghi ngắt.

  • 5.9. Thanh ghi điều khiển nguồn PCON.

  • 6.1. Truy xuất bộ nhớ chương trình ngoài.

  • 6.2. Truy xuất bộ nhớ dữ liệu ngoài.

  • 6.3. Giải mã địa chỉ.

  • 7. Các cải tiến của 8032/8052.

  • 8. Hoạt động Reset.

  • 9. Thực hành ứng dụng

  • 1.1. Cú pháp lệnh.

  • 1.2. Khai báo dữ liệu.

  • 2.1. Định địa chỉ bằng thanh ghi

  • 2.2. Định địa chỉ trực tiếp

  • 2.3. Định địa chỉ gián tiếp (Indirect Addressing)

  • 2.4. Định địa chỉ tức thời (Immediate Addressing)

  • 2.5. Định địa chỉ tương đối

  • 2.6. Định địa chỉ tuyệt đối

  • 2.7. Định địa chỉ dài (Long Addressing)

  • 2.8. Định địa chỉ chỉ số (Index Addressing).

  • 3.1. Nhóm lệnh số học.

  • 3.2. Nhóm lệnh logic.

  • 3.3. Nhóm lệnh truyền dữ liệu.

  • 3.4. Nhóm lệnh boolean.

  • 3.5. Nhóm lệnh rẽ nhánh chương trình.

  • 4.1. Chức năng định thời.

  • 6.1. Đọc bộ định thời đang hoạt động.

  • 6.2. Thời gian ngắn và thời gian dài.

  • 7.1. Các thanh ghi điều khiển Timer 2.

  • 7.2. Chế độ capture.

  • 7.3. Chế độ tự động nạp lại.

  • 7.4. Chế độ tạo xung clock.

  • 7.5 Chế độ tạo tốc độ baud.

  • 2.2. Thanh ghi BDRCON (Baud Rate Control Register).

  • 3.1. Thanh ghi dịch 8 bit.

  • 3.2. Chế độ UART 8 bit có tốc độ baud thay đổi ( chế độ 1).

  • 3.3. Chế độ 2: UART 9 bit với tốc độ Baud cố định.

  • 3.4. Chế độ 3: UART 9 bit với tốc độ Baud thay đổi.

  • 4.1. Bit điều khiển cho phép nhận dữ liệu (Receive Enable).

  • 4.2. Bit dữ liệu thứ 9.

  • 4.3. Thêm vào bit chẵn lẻ Parity

  • 4.4. Các cờ ngắt.

  • 5. Truyền thông đa xử lý (Multiprocessor Communications).

  • 6. Tốc độ baud.

  • 6.1. Sử dụng bộ định thời 1 là xung clock tốc độ baud.

  • 6.2. Tạo tốc độ baud bằng Timer 1.

  • 6.3. Tạo tốc độ baud bằng Timer 2.

  • 6.4. Bộ tạo tốc độ baud nội (INT_BRG – Internal Baud Rate Renerator).

  • 1. Mở đầu.

  • 2.1 Cho phép và không cho phép ngắt:

  • 2.2 Ưu tiên ngắt.

  • 2.3. Chuỗi.

  • 3.1 Các vector ngắt.

  • 3.2. Ngắt ngoài (External Interrupt).

  • 4. Thiết kế chương trình sử dụng ngắt.

  • 4.1. Các trình phục vụ ngắt kích thước nhỏ.

  • 4.2. Các trình phục vụ ngắt kích thước lớn.

  • 5. Ngắt cổng nối tiếp.

  • 6. Các cổng ngắt ngoài.

  • 7. Đồ thị thời gian của ngắt.

Nội dung

BÀI 1 SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI ĐIỀU KHIỂN 1 Lịch sử phát triển Năm 1976 Intel giới thiệu bộ vi điều khiển (microcontroller) 8748, một chip tương tự như các bộ vi xử lý và là chip đầu tiên trong họ MCS 48 Độ phức tạp, kích thước và khả năng của Vi điều khiển tăng thêm một bậc quan trọng vào năm 1980 khi intel tung ra chip 8051, bộ Vi điều khiển đầu tiên của họ MCS 51 và là chuẩn công nghệ cho nhiều họ Vi điều khiển được sản xuất sau này Chip 8051 chứa trên 60000 transistor ba.

BÀI 1: SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI ĐIỀU KHIỂN Lịch sử phát triển Năm 1976 Intel giới thiệu vi điều khiển (microcontroller) 8748, chip tương tự vi xử lý chip họ MCS-48 Độ phức tạp, kích thước khả Vi điều khiển tăng thêm bậc quan trọng vào năm 1980 intel tung chip 8051, Vi điều khiển họ MCS-51 chuẩn công nghệ cho nhiều họ Vi điều khiển sản xuất sau Chip 8051 chứa 60000 transistor bao gồm 4K byte ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Sau nhiều họ Vi điều khiển nhiều nhà chế tạo khác đưa thị trường với tính cải tiến ngày mạnh Hiện có nhiều họ Vi điều khiển thị trường với nhiều ứng dụng khác nhau, họ Vi điều khiển họ MCS-51 sử dụng rộng rãi giới Việt Nam Vào năm 1980 Intel cơng bố chíp 8051(80C51), vi điều khiển họ vi điều khiển MCS-51 Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất nhập, port nối tiếp định thời 16 bit Tiếp theo sau đời chip 8052, 8053, 8055 với nhiều tính cải tiến Hiện Intel khơng cịn cung cấp loại Vi điều khiển họ MCS-51 nữa, thay vào nhà sản xuất khác Atmel, Philips/signetics, AMD, Siemens, Matra&Dallas, Semiconductors cấp phép làm nhà cung cấp thứ hai cho chip họ MSC-51 Chip Vi điều khiển sử dụng rộng rãi giới Việt Nam Vi điều khiển hãng Atmel với nhiều chủng loại vi điều khiển khác Hãng Atmel có chip Vi điều khiển có tính tương tự chip Vi điều khiển MCS-51 Intel, mã số chip thay đổi chút Atmel sản xuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 Intel sản xuất Atmel mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính chương trình tương tự Tương tự 8051,8053,8055 có mã số tương đương Atmel 89C51,89C53,89C55 Vi điều khiển Atmel sau ngày cải tiến bổ sung thêm nhiều chức tiện lợi cho người dùng Dung lượng RAM Dung lượng ROM Chế độ nạp 89C51 89C52 128 byte 128 byte Kbyte Kbyte song song song song 89C53 128 byte 12 Kbyte song song 89C55 128 byte 20 Kbyte song song Sau khoảng thời gian cải tiến phát triển, hãng Atmel tung thị trường dòng Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến đặc biệt có thêm khả nạp chương trình theo chế độ nối tiếp đơn giản tiện lợi cho người sử dụng 89S51 89S52 89S53 89S55 Dung lượng RAM Dung lượng ROM Chế độ nạp 128 byte 128 byte 128 byte 128 byte Kbyte Kbyte 12 Kbyte 20 Kbyte nối tiếp nối tiếp nối tiếp nối tiếp Tất Vi điều khiển có đặc tính giống phần mềm (các tập lệnh lập trình nhau), phần cứng bổ sung với chip có mã số hai số cuối cao hơn, Vi điều khiển sau có nhiều tính vượt trội Vi điều khiển hệ trước Các Vi điều khiển 89Cxx bảng có cấu tạo ROM RAM 98Sxx bảng 2, nhiên 98Sxx bổ sung số tính có thêm chế độ nạp nối tiếp 8051 vi điều khiển bit tức CPU làm việc với bit liệu Dữ liệu lớn bit chia thành liệu bit để xử lý 8051 trở nên phổ biến sau Intel cho phép nhà sản xuất khác (Siemens, Atmel, Philips, AMD, Matra, Dallas, Semiconductor …) sản xuất bán dạng biến thể 8051 mà họ muốn với điều kiện họ phải để mã chương trình tương thích với 8051 Từ dẫn đến đời nhiều phiên 8051 với tốc độ dung lượng ROM chip khác Tuy nhiên, điều quan trọng có nhiều biến thể 8051, khác tốc độ, dung lượng ROM tất lệnh tương thích với 8051 ban đầu Điều có nghĩa chương trình viết cho phiên 8051 chạy với phiên khác không phụ thuộc vào hãng sản xuất Các loại vi điều khiển khác: vi điều khiển AVR, vi điều khiển PIC, vi điều khiển MCUs Philips, Ngoài ra, loại vi điều khiển chuyên dụng hãng sản xuất khác: loại vi điều khiển sử dụng chuyên dụng theo chức cần điều khiển Bảng 3: Địa số hãng sản xuất thành viên vi điều khiển Hãng intel Antel Philips/Signetis Siemens Dallas Semiconductor Địa chỉ Website www.intel.com/design/mcs51 www.atmel.com www.semiconductors.philips.com www.sci.siemens.com www.dalsemi.com Vi điều khiển 2.1 Nguyên lý cấu tạo Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển thực chất gồm vi xử lý có hiệu suất đủ cao giá thành thấp (so với vi xử lý đa dùng máy tính) kết hợp với thiết bị ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi từ số sang tương tự từ tương tự sang số, mô đun điều chế độ rộng xung (PWM) Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động Hầu hết loại vi điều khiển có cấu trúc Harvard loại cấu trúc mà nhớ chương trình nhớ liệu phân biệt riêng Cấu trúc vi điều khiển gồm CPU, nhớ chương trình (thường nhớ ROM nhớ Flash), nhớ liệu (RAM), định thời, cổng vào/ra để giao tiếp với thiết bị bên ngoài, tất khối tích hợp vi mạch Các loại vi điều khiển thị trường nay: - VDK MCS-51: 8031, 8032, 8051, 8052, - VDK ATMEL: 89Cxx, AT89Cxx51 - VDK AVR AT90Sxxxx - VDK PIC 16C5x, 17C43 2.2 Các kiểu cấu trúc nhớ - Memory (bộ nhớ): ROM/RAM lưu trữ chương trình hay kết trung gian  Read Only Memory (ROM): Read Only Memory (ROM) loại nhớ sử dụng để lưu vĩnh viễn chương trình thực thi Kích cỡ chương trình viết phụ thuộc vào kích cỡ nhớ ROM tích hợp vi điều khiển hay thêm vào chip gắn bên ngoài, tùy thuộc vào loại vi điều khiển Cả hai tùy chọn có số nhược điểm Nếu ROM thêm vào chip bên ngoài, vi điều khiển rẻ chương trình tồn lâu đáng kể Đồng thời, làm giảm số lượng chân vào/ra để vi điều khiển sử dụng với mục đích khác ROM nội thường nhỏ đắt tiền hơn, có thêm ghim sẵn để kết nối với mơi trường ngoại vi Kích thước dãy ROM từ 512B đến 64KB  Random Access Memory (RAM): Random Access Memory (RAM) loại nhớ sử dụng cho liệu lưu trữ tạm thời kết trung gian tạo sử dụng trình hoạt động vi điều khiển Nội dung nhớ bị xóa nguồn cung cấp bị tắt - Electrically Erasable Programmable ROM (EEPROM) (hình 1.1) EEPROM kiểu đặc biệt nhớ có số loại vi điều khiển Nội dung thay đổi trình thực chương trình (tương tự RAM), lưu giữ vĩnh viễn, sau điện (tương tự ROM) Nó thường dùng để lưu trữ giá trị tạo sử dụng trình hoạt động (như giá trị hiệu chuẩn, mã, giá trị để đếm, v.v ), mà cần phải lưu sau nguồn cung cấp ngắt Một bất lợi nhớ trình ghi vào tương đối chậm Hình 1.1 Giao tiếp nhớ - Bộ đếm chương trình (PC:Program Counter): Bộ đếm chương trình chứa địa chỉ đến ô nhớ chứa câu lệnh kích hoạt Sau thực lệnh, giá trị đếm tăng lên Chức CPU tiến hành thao tác tính tốn xử lý, đưa tín hiệu địa chỉ, liệu điều khiển nhằm thực nhiệm vụ người lập trình đưa thông qua lệnh (Instructions) - CPU-Central Processing Unit(Đơn vị xử lý trung tâm): Chức CPU tiến hành thao tác tính tốn xử lý, đưa tín hiệu địa chỉ, liệu điều khiển nhằm thực nhiệm vụ người lập trình đưa thơng qua lệnh (Instructions)  Bộ giải mã lệnh có nhiệm vụ nhận dạng câu lệnh điều khiển mạch khác theo lệnh giải mã Việc giải mã thực nhờ có tập lệnh “instruction set” Mỗi họ vi điều khiển thường có tập lệnh khác  Thanh ghi tích lũy (Accumulator) ghi SFR liên quan mật thiết với hoạt động ALU Nó lưu trữ tất liệu cho q trình tính toán lưu giá trị kết để chuẩn bị cho tính tốn Một ghi SFR khác gọi ghi trạng thái (Status Register) cho biết trạng thái giá trị lưu ghi tích lũy  Arithmetical Logical Unit (ALU): Thực thi tất thao tác tính tốn số học logic - Các ghi chức đặc biệt (SFR): Thanh ghi chức đặc biệt (Special Function Registers) phần nhớ RAM Mục đích chúng định trước nhà sản xuất thay đổi Các bit chúng liên kết vật lý tới mạch vi điều khiển chuyển đổi A/D, modul truyền thông nối tiếp,… Mỗi thay đổi trạng thái bit tác động tới hoạt động vi điều khiển vi mạch - Các cổng vào/ra (I/O Ports): Để vi điều khiển hoạt động hữu ích, cần có kết nối với thiết bị ngoại vi Mỗi vi điều khiển có ghi (được gọi cổng) kết nối với chân vi điều khiển Chúng thay đổi chức năng, chiều vào/ra theo yêu cầu người dùng - Address bus(Bus địa chỉ): Là đường tín hiệu song song chiều nối từ CPU đến nhớ, CPU gửi giá trị địa ô nhớ cần truy nhập (đọc/ghi) đường tín hiệu Độ rộng bus địa n (là số đường tín hiệu, với n 8, 18, 20, 24, 32 hay 64), số nhớ mà CPU địa hố 2n - Data bus(Bus liệu): Là đường tín hiệu song song chiều, nhiều thiết bị khác nối với bus liệu, thời điểm có thiết bị phép đưa liệu lên bus Độ rộng Bus liệu m(với m 4, 8, 16, 32 hay 64), số bit mà mơi chu kỳ đọc/ghi truyền trên bus m bits - Control bus(Bus điều khiển): CPU gửi tín hiệu thơng qua bus để điều khiển hoạt động hệ thống Các tín hiệu điều khiển thường là: đọc/ ghi nhớ, đọc/ ghi cổng vào/ra,… Hình 1.2 Cấu trúc bên vi điều khiển Lĩnh vực ứng dụng 3.1 Sản phẩm dân dụng  Nhà thơng minh: Cửa tự động, khóa số, tự động điều tiết ánh sáng thông minh (bật/tắt đèn theo thời gian, theo cường độ ánh sáng, ), điều khiển thiết bị từ xa (qua điều khiển, qua tiếng vỗ tay, ), điều tiết ẩm, điều tiết nhiệt độ, điều tiết khơng khí, gió Hệ thống vệ sinh thơng minh  Các máy móc dân dụng: Máy điều tiết độ ẩm cho vườn cây,buồng ấp trứng gà/vịt.Đồng hồ số, đồng hồ số có điều khiển theo thời gian  Các sản phẩm giải trí: Máy nghe nhạc, m áy chơi game, Đầu thu kỹ thuật số, đầu thu set-top-box, 3.2 Trong thiết bị y tế  Máy móc thiết bị hỗ trợ: máy đo nhịp tim, máy đo đường huyết, máy đo huyết áp, điện tim đồ, điện não đồ,…  Máy cắt/mài kính  Máy chụp chiếu (city, X-quang, ) 3.3 Các sản phẩm công nghiệp  Điều khiển động  Đo lường (đo điện áp, đo dòng điện, áp suất, nhiệt độ, )  Cân băng tải, cân toa xe, cân ô tô,  Điều khiển dây truyền sản xuất công nghiệp  Làm điều khiển trung tâm cho Robot Hướng phát triển - Kết hợp vi xử lý vi điều khiển sản phẩm hệ thống nhúng - Sử dụng tốt tính vi điều khiển: tốc độ mà vi điều khiển hỗ trợ, dung lượng nhớ RAM ROM chíp, - Tìm hiểu khả phát triển sản phẩm xung quanh - Nghiên cứu vi điều khiển 8051 từ hãng khác nhau: 8751, AT89C51, DS500, BÀI TẬP ÔN TẬP Câu 1: Nêu cấu trúc Vi điều khiển họ 8051? Gợi ý: Cấu trúc vi điều khiển gồm CPU, nhớ chương trình (thường nhớ ROM nhớ Flash), nhớ liệu (RAM), định thời, cổng vào/ra để giao tiếp với thiết bị bên ngoài, tất khối tích hợp vi mạch Câu 2: Chức ghi ALU? - Gợi ý: Arithmetical Logical Unit (ALU): Thực thi tất thao tác tính toán số học logic Câu 3: Nêu số lĩnh vực ứng Vi điều khiển - Gợi ý: Một số ứng dụng thành cơng kể sau đây: Sản phẩm dân dụng Nhà thông minh, máy móc dân dụng, sản phẩm giải trí, máy móc thiết bị hỗ trợ, máy cắt/mài kính, máy chụp chiếu (city, X-quang, ) Các sản phẩm công nghiệp  Điều khiển động  Đo lường (đo điện áp, đo dòng điện, áp suất, nhiệt độ, )  Cân băng tải, cân toa xe, cân ô tô,  Điều khiển dây truyền sản xuất công nghiệp  Làm điều khiển trung tâm cho Robot BÀI 2: CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 Tổng quan Hình 2.1 Sơ đồ khối vi điều khiển 8051 Thuật ngữ “8051” dùng để rộng rãi chip họ MSC-51.Vi mạch tổng quát họ MSC-51 chip 8051,linh kiện họ hãng Intel đưa thị trường MCS-51 bao gồm nhiều phiên khác nhau, phiên sau tăng thêm số ghi điều khiển hoạt động MCS-51 Hiện hay nhiều nhà sản xuất IC Seimens, Advance Micro Devices ( AMD ), Fujitsu, Philips, Atmel … cấp phép làm nhà cung cấp thứ hai cho chip họ MSC-51 Ở Việt Nam chip biến thể họ MSC-51 hãng Atmel Philips sử dụng rộng rãi : AT89C2051, AT89C4051, AT89C51, AT8C52, AT89S52, AT89S8252, AT89S8253, P89C51RDxx, P89V51RDxx … Vi điều khiển 8051có 40 chân, chân có kí hiệu tên có đặc trưng sau : - 4KB ROM, 128 byte RAM - port xuất nhập (I/O port) bit - định thời 16 bit, mạch giao tiếp nối tiếp - Không gian nhớ chương trình ngồi 64K, khơng gian nhớ liệu 10 MAIN: TMOD, #02H; Chọn Timer0, chế độ tự nạp lại MOV P0, #0FFH ; Lấy P0 làm cổng vào nhận liệu MOV TH0, # - 92 ; Đặt TH0 = A4H cho – 92 MOV IE, #82H SETB TR0 ; IE = 1000 0010 cho phép Timer0 ; Khởi động Timer0 BACK: MOV A, P0 ; Nhận liệu vào từ cổng P0 MOV P1, A SJMP BACK ;Chuyển liệu đến cổng P1 ;Tiếp tục nhận chuyển liệu, chừng bị ngắt TF0 END Luyện tập Bài 1: Chương trình điều khiển sóng vng tuần hồn có tần số 10Hz (sử dụng ngắt Timer) chân P0.0 hiển thị mức logic chân lên LED0 (LED0 nối với P0.0) Giải: Trình tự tiến hành thí nghiệm: Kết nối thiết bị thí nghiệm: - Tắt nguồn cấp cho kít thí nghiệm - Dùng dây bus nối - Dùng dây bus Vẽ lưu đồ giải thuật viết chương trình điều khiển ORG 0000H ;DIEM NHAP RESET DJMP MAIN ORG 0BH ;DIEM NHAP ISR TIMER0 CPL P0.0 ;DAO TRANG THAI P0.0 (TAO XUNG) 30H ;DIEM NHAP CHUONG TRINH CHINH T0ISR: RETI ORG MAIN: 163 MOV TMOD,#01H;TIMER0 LA TIMER 16 BIT MOV TH0,#(-50000);THỜI GIAN TRE -50MS (THOI GIAN XUNG O MUC THAP HOAC MUC CAO) MOV TL0,#CHU KY -2x50 =100 MS LA F = 10Hz SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG SJMP $ ;DUNG YEN END Lưu chương trình biên dịch chương trình Kiểm tra lỗi hiệu chỉnh lỗi có Gắn chip vi điều khiển thí nghiệm vào socket tương ứng khối nạp chip bật nguồn cho khối nạp chip hoạt động Vẽ lưu đồ giải thuật viết chương trình điều khiển ORG 0000H DJMP MAIN ORG 0BH ;DIEM NHAP RESET ;DIEM NHAP ISR TIMER0 T0ISR: 164 CPL P0.0 ;DAO TRANG THAI P0.0 (TAO XUNG) ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MOV TMOD,#01H;TIMER0 LA TIMER 16 BIT MOV TH0,#(-50000);THỜI GIAN TRE -50MS (THOI GIAN RETI MAIN: XUNG O MUC THAP HOAC MUC CAO) MOV TL0,#CHU KY -2x50 =100 MS LA F = 10Hz SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG SJMP $ ;DUNG YEN END Lưu chương trình biên dịch chương trình Kiểm tra lỗi hiệu chỉnh lỗi có Gắn chip vi điều khiển thí nghiệm vào socket tương ứng khối nạp chip bật nguồn cho khối nạp chip hoạt động Nạp chương trình vào vi điều khiển Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng tren khối vi điều khiển Bật nguồn cho mơ hình thí nghiệm Quan sát kết hoạt động, kết hoạt động không yêu cầu đề phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình làm lại bước từ bước đến bước Bài (thực hành lớp): Chương trình điều khiển đếm số xung chân INT0 (sử dụng ngắt ngoài) hiển thi số xung (tối đa 225 lần) lên ba LED đoạn (LED7 – LED4 nối với Port1, PULSE nối với chân INT0) Viết đoạn chương trình theo yêu cầu: - Khởi động cổng nối tiếp chế độ UART bit với tốc độ truyền 4800 bps - Định thời 1s đọc liệu từ P1, lưu vào ô nhớ 30h xuất liệu vừa đọc cổng nối tiếp 165 Viết đoạn chương trình theo yêu cầu: - Khởi động cổng nối tiếp chế độ UART bit với tốc độ truyền 9600 bps - Khi có ngắt xảy ngắt ngồi xuất liệu nhớ 30h cổng nối tiếp bit truyền thứ bit parity THỰC HÀNH VIẾT CHƯƠNG TRÌNH: Bài 1: Viết chương trình điều khiển ma trận 8x8? Chương trình mẫu: ORG 000H MOV R2,#0FEH MAIN: MOV DPTR,#BITMAP X1: MOV A,#0 MOVC A,@A+DPTR MOV P0,A MOV P2,R2 CALL DELAY MOV P2,#0FFH INC DPTR MOV A,R2 RL A MOV R2,A CJNE A,#0FEH,X1 JMP MAIN ;CHONG LEM ;****************************************** DELAY: MOV R7,#200 DJNZ R7,$ RET 166 ;****************************************** BITMAP: DB 0F8H,24H,22H,21H,21H,22H,24H,0F8H END Bài 2: Viết chương trình điều khiển đèn giao thơng ngã tư? Chương trình mẫu: ;***************************************************** ;Chuong trinh dieu khien den giao thong ;***************************************************** BGIAY EQU R2 GIAY EQU R3 X1_D2 EQU 01111011B V1_D2 EQU 10111011B D1_X2 EQU D1_V2 EQU 11011101B D1_D2 EQU 11011011B 11011110B ;***************************************************** ORG 000H JMP MAIN ORG 00BH JMP NGAT_T0 MAIN: MOV TMOD,#01H ;T0 CHAY XUNG NOI, MODE1 MOV TL0,#LOW(-50000) MOV TH0,#HIGH(-50000) CLR TF0 SETB TR0 MOV IE,#82H ;T0 DUOC PHEP NGAT KHI TRAN MOV BGIAY,#0 ;====================================== 167 TD: MOV GIAY,#10 MOV P0,#X1_D2 CJNE GIAY,#0FFH,$ MOV P0,#V1_D2 MOV GIAY,#3 CJNE GIAY,#0FFH,$ MOV P0,#D1_D2 MOV GIAY,#5 CJNE GIAY,#0FFH,$ MOV P0,#D1_X2 MOV GIAY,#15 CJNE GIAY,#0FFH,$ MOV P0,#D1_V2 MOV GIAY,#3 CJNE GIAY,#0FFH,$ MOV P0,#D1_D2 MOV GIAY,#5 CJNE GIAY,#0FFH,$ JMP TD ;CHO DEN X1 + V2 SANG 10s ;CHO DEN V1 + D2 SANG 3s ;CHO DEN D1 + D2 SANG GIAY ;CHO DEN D1 + X2 SANG 15s ;CHO DEN D1 + V2 SANG 3s ;CHO DEN D1 + D2 SANG GIAY ;***************************************************** NGAT_T0: MOV TL0,#LOW(-50000) MOV TH0,#HIGH(-50000) CLR TF0 INC BGIAY CJNE BGIAY,#20,EXIT1 MOV BGIAY,#0 DEC GIAY ;20 x 50ms = 1000ms = 1s EXIT1: RETI 168 END Bài 3: Viết chương trình điều khiển phím ma trận phím 4x4? Chương trình mẫu: ;************************************************************** ;KEYPAD 4X4 ;************************************************************** MAPHIM EQU 30H MACOT EQU 31H CHONGDOI EQU 32H TEMP EQU 33H ;************************************************************** ORG 000H MOV A,#0 ;GIA TRI HIEN THI TREN LED DOAN BAN DAU X1: CALL GIAIMA_HIENTHI X2: CALL QUETPHIM CJNE A,#0FFH,X1 JMP X2 ;************************************************************** GIAIMA_HIENTHI: MOV DPTR,#MA7DOAN MOVC A,@A+DPTR MOV P0,A RET ;************************************************************** QUETPHIM: MOV CHONGDOI,#50 X3: ;CHONG DOI KHI NHAN PHIM CALL DOPHIM JC DJNZ EXIT ;C = LA KO CO PHIM NHAN CHONGDOI,X3 169 MOV TEMP,A X4: MOV CHONGDOI,#50 X5: CALL DOPHIM JNC X4 DJNZ CHONGDOI,X5 ;LUU TAM MA PHIM ;CHONG DOI KHI NHA PHIM ;C = LA CO PHIM NHAN EXIT: MOV A,TEMP RET ;************************************************************** DOPHIM: MOV MAPHIM,#0 MOV MACOT,#0EFH X6: ;MA COT MOV P3,MACOT NOP ;CHO NHAN PHIM NOP NOP NOP NOP NOP NOP NOP MOV A,P3 ANL A,#0FH CJNE A,#0FH,LAPMA ;LAY MA HANG ;KIEM TRA CO NHAN PHIM KO ;*****ko co phim nhan MOV A,MAPHIM ADD A,#4 MOV MAPHIM,A MOV A,MACOT ;MAPHIM = MAPHIM + 170 RL A MOV MACOT,A CJNE A,#0FEH,X6 ;DICH SANG COT KE ;KIEM TRA DA DICH DEN COT THU CHUA ? SETB C MOV A,#0FFH ;KO CO PHIM BAM RET ;*****co phim nhan LAPMA: RRC A JNC X7 INC MAPHIM JMP LAPMA X7: MOV A,MAPHIM CLR ;MA PHIM = MA PHIM + ;DA CO PHIM AN C RET ;XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX MA7DOAN: DB 0F8H, 80H, 90H, 0B0H, 99H, 92H, 82H, 0C0H, 0F9H, 0A4H, 0B0H, 0FFH, 0FFH, 0C0H END Bài 4: Viết chương trình điều khiển đồng hồ số dùng timer tạo thời gian trễ? Chương trình mẫu: GIAY EQU R2 PHUT EQU R3 GIO EQU R4 BIEN_GIAY EQU R5 ORG 000H JMP MAIN ORG 00BH 171 JMP NGAT_T0 MAIN: MOV TMOD,#01H MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) CLR TF0 SETB TR0 MOV IE,#82H LOOP: MOV GIO,#0 X4: MOV PHUT,#0 X3: MOV GIAY,#0 X2: MOV BIEN_GIAY,#0 CALL HEX_BCD CALL BCD_7DOAN X1: CALL HIENTHI CJNE BIEN_GIAY,#20,X1 INC GIAY CJNE GIAY,#60,X2 INC PHUT CJNE PHUT,#60,X3 INC GIO CJNE GIO,#24,X4 JMP LOOP ;********************************************* NGAT_T0: MOV TL0,#LOW(-50000) MOV TH0,#HIGH(-50000) INC BIEN_GIAY RETI 172 ;********************************************* HEX_BCD: MOV A,GIAY MOV B,#10 DIV AB MOV 10H,B ;LUU SO HANG DV GIAY MOV 11H,A ;LUU SO HANG CHUC GIAY MOV A,PHUT MOV B,#10 DIV AB MOV 12H,B ;LUU SO HANG DV PHUT MOV 13H,A ;LUU SO HANG CHUC PHUT MOV A,GIO MOV B,#10 DIV AB MOV 14H,B ;LUU SO HANG DV GIO MOV 15H,A ;LUU SO HANG CHUC GIO RET ;********************************************* BCD_7DOAN: MOV DPTR,#MA7DOAN MOV R0,#10H MOV R1,#20H GM1: MOV R6,#2 GM2: MOV A,@R0 MOVC A,@A+DPTR MOV @R1,A INC R0 INC R1 DJNZ R6,GM2 173 MOV @R1,#0BFH INC R1 CJNE R0,#16H,GM1 RET ;********************************************* HIENTHI: MOV R0,#20H MOV A,#80H HT: MOV P0,@R0 MOV P2,A CALL DELAY MOV P2,#00H INC R0 RR A ;CHONG LEM CJNE A,#80H,HT RET ;********************************************* DELAY: MOV R7,#0FFH DJNZ R7,$ RET ;********************************************* MA7DOAN: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END 174 MỤC LỤC BÀI 1: SƠ LƯỢC VỀ LỊCH SỬ VÀ HƯỚNG PHÁT TRIỂN CỦA VI ĐIỀU KHIỂN Lịch sử phát triển Vi điều khiển 2.1 Nguyên lý cấu tạo 2.2 Các kiểu cấu trúc nhớ Lĩnh vực ứng dụng Hướng phát triển BÀI 2: CẤU TRÚC HỌ VI ĐIỀU KHIỂN 8051 Tổng quan Sơ đồ chân 2.1 Port 2.2 Port 2.3 Port 2.4 Port 2.5 Chân cho phép nhớ chương trình PSEN 2.6.Chân cho phép chốt địa ALE 2.7 Chân truy xuất ROM EA 2.8 Chân RESET ( RST ) 2.9 Các chân XTAL1, XTAL2 Cấu trúc Port I/O Tổ chức nhớ 4.1 Vùng RAM đa 4.2 Vùng RAM địa bit 4.3 Các dãy ghi Các ghi chức đặc biệt 5.1 Từ trạng thái chương trình PSW 5.2 Thanh ghi B 5.3 Con trỏ Stack 5.4 Con trỏ liệu DPTR 5.5 Các ghi Port nối tiếp 5.6 Các ghi định thời 5.7 Các ghi port nối tiếp (Serial Data Buffer) 5.8 Các ghi ngắt 5.9 Thanh ghi điều khiển nguồn PCON Bộ nhớ ngồi 6.4 Truy xuất nhơ chương trình ngồi 6.5 Truy xuất nhớ liệu 6.6 Giải mã địa 175 1 10 10 13 15 15 15 15 16 17 17 17 18 20 23 23 23 24 24 24 25 25 26 26 26 27 27 27 29 29 29 29 6.7 Các khơng gian chương trình liệu gối Các cải tiến 8032/8052 Hoạt động Reset Thực hành ứng dụng BÀI 3: TẬP LỆNH 8051 Mở đầu Các cách định địa 2.1 Bằng ghi 2.2 Trực tiếp 2.3 Gián tiếp 2.4 Tức thời 2.5 Tương đối 2.6 Định địa tuyệt đối 2.7 Định địa dài 2.8 Định địa theo số Các nhóm lệnh 3.1 Nhóm lệnh số học 3.2 Nhóm lệnh logic 3.3 Nhóm lệnh truyền liệu 3.4 Nhóm lênh Boolean 3.5 Nhóm lệnh rẽ nhánh chương trình Luyện tập BÀI 4: BỘ ĐỊNH THỜI Mở đầu Thanh ghi SFR timer 2.1 Thanh ghi chế độ TMOD 2.2 Thanh ghi điều khiển TCON Các chế độ làm việc 3.1 Chế độ Timer 13 bit 3.2 Chế độ Timer 16 bit 3.3 Chế độ tự nạp lại bit 3.4 Chế đọ tách biệt Timer Nguồn cung cấp xung cho Timer 4.1 Chức định thời 4.2 Chức đếm kiện Khởi động, dừng, điều khiển Timer Khởi tạo truy xuất ghi Timer 6.1 Đọc thời gian hoạt động 6.2 Thời gian ngắn thời gian dài Timer 8052 Luyện tập BÀI 5: CỔNG NỐI TIẾP 176 29 30 30 31 37 37 39 39 40 41 42 42 43 43 44 45 45 57 68 75 78 86 93 93 93 93 93 96 96 96 96 97 97 97 98 98 99 99 100 101 107 110 Mở đầu Thanh ghi điều khiển Chế độ làm việc 3.1 Thanh ghi dịch bit 3.2 Chế độ UART bit có tốc độ baud thay đổi 3.3 UART bit với tốc độ baud cố định 3.4 Chế độ UART với tốc độ baud cố định Khởi tạo truy suất ghi PORT nối tiếp 4.1 Cho phép nhận 4.2 Bít liệu thứ 4.3 Thêm vào bít chẵn - lẻ 4.4 Các cờ ngắt Truyền thông đa xử lý Tốc độ BAUD Luyện tập BÀI 6: NGẮT Mở đầu Tổ chức ngắt 8051 Xử lý ngắt Thiết kế chương trình dùng ngắt Ngắt cổng nối tiếp Các cổng ngắt Đồ thị thời gian ngắt Luyện tập 177 110 112 114 114 116 118 118 119 119 119 119 120 121 123 131 140 140 141 148 151 156 158 159 162 ... sử dụng với giá trị từ 4.7KΩ đến 10KΩ Nếu tất chân Port kết nối để tác động mức cao điện trở R2 thay điện trở chân có hình dáng sử dụng dễ làm mạch điện 3.2.2 Ngoài cách sử dụng điện trở treo Vi? ??c... dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động Hầu hết loại vi điều khiển có cấu trúc Harvard loại cấu trúc... www.sci.siemens.com www.dalsemi.com Vi điều khiển 2.1 Nguyên lý cấu tạo Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển thực chất gồm vi xử lý có hiệu suất

Ngày đăng: 12/04/2022, 10:54

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w