MĐ25 vi điều khiển

120 238 2
MĐ25   vi điều khiển

Đ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

Giáo trình vi điều khiển 8051 của trường Cao đẳng cơ điện xây dựng biệt xô. địa chỉ số 184 đường quyết thắng thành phố Tam Điệp tỉnh Ninh Bình. Số điện thoại 0985001210. Bạn có thể liên hệ với chúng tôi để cùng xây dựng giáo trình vi điều khiển ngày một tốt hơn. Chúng tôi xin cảm ơn những ý kiến đóng góp của các bạn. Mọi ý kiến xin gửi về hòm thư nguyentrungtoan.tdh2gmail.com

BỘ NÔNG NGHIỆP VÀ PHÁT TRIỂN NÔNG THÔN TRƯỜNG CAO ĐẲNG CƠ ĐIỆN XÂY DỰNG VIỆT XÔ KHOA: ĐIỆN – ĐIỆN TỰ ĐỘNG HĨA GIÁO TRÌNH MƠ ĐUN:VI ĐIỀU KHIỂN NGHỀ:ĐIỆN CƠNG NGHIỆP TRÌNH ĐỘ CAO ĐẲNG Ban hành kèm theo Quyết định số: /QĐ- ngày tháng năm 20 …… ……………… Ninh Bình, năm 2018 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng nguyên trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Lập trình vi điều khiển mơ đun chun mơn mang tính đặc trưng cao thuộc nghề Điện cơng nghiệp Mơ đun có ý nghĩa định đến kỹ kiến thức người học Sau học tập mô đun này, học viên có đủ kiến thức để học tập tiếp mô đun nâng cao Trang bị điện Kỹ thuật lập trình Giáo trình thiết kế theo mô đun thuộc hệ thống mô đun/ mơn học chương trình đào tạo nghề Điện cơng nghiệp cấp trình độ Cao đẳng nghề, dùng làm giáo trình cho học viên khóa đào tạo chun ngành Ngồi ra, tài liệu sử dụng cho đào tạo ngắn hạn cho kỹ thuật viên, công nhân kỹ thuật tham khảo Mô đun triển khai sau môn học, mô đun điện tử bản, kỹ thuật xung – số Các kỹ lắp ráp, lập trình hay sửa chữa mạch điện tử khả trình máy cơng nghiệp yêu cầu bắt buộc kỹ thuật viên nghề Điện công nghiệp Mặc dù cố gắng, song sai sót khó tránh Tác giả mong nhận ý kiến phê bình, nhận xét bạn đọc để giáo trình hồn thiện Ninh Bình, ngày tháng năm 2018 Nguyễn Trung Toàn - Chủ biên MỤC LỤC VI ĐIỀU KHIỂN BÀI CÁC KHẢI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN .9 Giới thiệu chung Thuật ngữ .10 Đơn vị xử lý trung tâm 12 Bộ nhớ bán dẫn RAM ROM .12 Các Bus địa 13 Các thiết bị xuất/nhập 13 6.1 Các thiết bị lưu trữ lớn 13 6.2 Các thiết bị giao tiếp với người 14 6.3 Các thiết bị điều khiển/kiểm tra 14 So sánh vi xử lý vi điều khiển 14 Các tiêu chuẩn chọn loại vi điều khiển 16 BÀI 17 CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN 8051 .17 Giới thiệu chung 17 1.1 Cấu trúc vi điều khiển 17 1.2 Sơ đồ khối 18 Sơ đồ chân chức chân 18 Tổ chức nhớ bên 20 3.1 Tổ chức nhớ 21 3.2 RAM đa dụng .22 3.3 RAM truy xuất bit 22 3.4 Các bank ghi .23 Các ghi chức đặc biệt 23 4.1 Thanh ghi trạng thái chương trình 23 4.2 Thanh ghi B 24 4.3 Con trỏ Ngăn xếp SP (Stack Pointer) 25 4.4 Con trỏ liệu DPTR (Data Pointer) 25 4.5 Các ghi Port (Port Register) .25 4.6 Các ghi Timer (Timer Register) 25 4.7 Các ghi Port nối tiếp (Serial Port Register) 25 4.8 Các ghi ngắt (Interrupt Register) 25 4.9 Thanh ghi điều khiển nguồn PCON (Power Control Register) 26 5.Tổ chức nhớ .26 5.1 Truy xuất nhớ chương trình ngồi 27 5.2 Truy xuất nhớ liệu 29 Các phiên vi điều khiển họ MCS51 30 6.1 Bộ vi điều khiển 8031 30 6.2 Bộ vi điều khiển 8052 30 6.4 Bộ vi điều khiển 8751 31 6.5 Bộ vi điều khiển DS5000 Dallas Semiconductor: 31 Hoạt động reset 32 BÀI 34 NGƠN NGỮ LẬP TRÌNH VI ĐIỀU KHIỂN 8051 34 Giới thiệu chung 34 Ngơn ngữ lập trình Asembly 34 1.1 Các cách định địa 34 2.2 Các nhóm lệnh .39 Ngơn ngữ lập trình C .48 3.1 Cấu trúc chương trình 49 3.2 Câu lệnh lập trình 57 BÀI 60 LẬP TRÌNH VI ĐIỀU KHIỂN VỚI CÁC THIẾT BỊ NGOẠI VI 60 Điều khiển giao tiếp với LED đơn 60 1.1.Lập trình điều khiển Pin vi điều khiển 60 1.2.Lập trình điều khiển theo Port vi điều khiển 61 Điều khiển giao tiếp với LED đoạn .64 2.1 Điều khiển LED 65 2.2.Điều khiển nhiều LED 67 Điều khiển giao tiếp với LED ma trận 70 Điều khiển giao tiếp với LCD 16x2 79 Điều khiển giao tiếp với động bước .87 5.1 Điều khiển full bước 88 5.2 Điều khiển nửa bước 88 BÀI 91 GIỚI THIỆU HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI 91 TRONG VI ĐIỀU KHIỂN 8051 .91 Giới thiệu chung 91 Bộ định thời vi điều khiển 8051 .91 2.1 Thanh ghi điều khiển chế độ timer TMOD 92 2.2 Thanh ghi điều khiển timer TCON .92 2.3 Các chế độ làm việc 93 Các bước lập trình điều khiển định thời 97 Ứng dụng định thời gian lập trình điều khiển thiết bị ngoại vi .98 Ứng dụng đếm kiện lập trình điều khiển thiết bị ngoại vi 100 BAI 6: HOẠT ĐỘNG NGẮT TRONG VI ĐIỀU KHIỂN 8051 .106 Giới thiệu chung 106 Ngắt vi điều khiển 8051 107 2.1 Thanh ghi cho phép không cho phép ngắt 108 IE.7 108 ES 108 EX1 108 2.2 Thanh ghi ưu tiên ngắt 108 IP.7 108 ET2 108 ET1 108 2.3 Chuỗi Pooling 109 2.4 Vector ngắt 109 Lập trình điều khiển ngắt .110 Ứng dụng ngắt ngồi lập trình điều khiển thiết bị ngoại vi .110 Ngắt Timer 113 Ngắt cổng nối tiếp .114 MƠ ĐUN: VI ĐIỀU KHIỂN Mã mơ đun: MĐ 25 Vị trí, tính chất, ý nghĩa vai trò mơ đun - Mơ đun lập trình vi điều khiển học sau môn học Kỹ thuật số, Linh kiện điện tử mạch điện tử - Là mô đun đào tạo chun ngành - Mơ đun có vai trò cung cấp cho người học kiến thức vi điều khiển họ 8051 từ giải thích nguyên lý hoạt động hệ dùng vi điều khiển viết chương trình ứng dụng dùng vi điều khiển Mục tiêu mô đun: - Hiểu cấu tạo nguyên lý hoạt động vi điều khiển 8051 - Giải thích nguyên lý hoạt động hệ dùng vi điều khiển - Viết chương trình ứng dụng dùng vi điều khiển - Thay khối chức hư hỏng hệ dùng vi điều khiển - Vận hành thiết bị dây chuyền sản xuất dùng vi điều khiển - Có ý thức sử dụng trang thiết bị vận hành thiết bị có hiệu quả, tuổi thọ cao Nội dung mô đun: Số TT Tên mô đun Các khái niệm cấu trúc vi điều khiển Cấu trúc phần cứng vi điều khiển Ngơn ngữ lập trình vi điều khiển Tập lệnh vi điều khiển 8051 Giới thiệu hoạt động định thời vi điều khiển 8051 Giới thiệu hoạt động ngắt vi điều khiển Tổng số Thời gian(giờ) Lý Thực thuyết hành 8 24 54 14 12 11 16 Kiểm tra* 10 39 Tổng 120 47 65 BÀI CÁC KHẢI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN Mã bài: MĐ 25-01 Giới thiệu: Ứng dụng vi điều khiển để giải toán điều khiển cỡ nhỏ cỡ trung phổ biến lĩnh vực đời sống Việc giới thiệu lịch sử đời trình phát triển vi điều khiển nhằm cung cấp cho người học tổng quan vi điều khiển hướng phát triển tương lai Mục tiêu: - Hiểu lịch sử phát triển vi điều khiển - Hiểu cấu trúc chung vi điều khiển - Biết lĩnh vực ứng dụng hướng phát triển tương lai vi điều khiển Nội dung chính: Giới thiệu chung Mục tiêu: - Biết được lịch sử đời vi điều khiển - Hiểu được trình phát triển vi điều khiển Vi xử lý (viết tắt µP hay uP), đơi gọi vi xử lý, linh kiện điện tử chế tạo từ tranzito thu nhỏ tích hợp lên vi mạch tích hợp Khối xử lý trung tâm (CPU) vi xử lý nhiều người biết đến nhiều thành phần khác máy tính có vi xử lý riêng nó, dụ card hình (video card) có vi xử lý Hình 1-1 Bộ vi xử lý Intel 80486DX2 Trước xuất vi xử lý, CPU xây dựng từ mạch tích hợp cỡ nhỏ riêng biệt, mạch tích hợp chứa khoảng vào chục tranzito Do đó, CPU bảng mạch gồm hàng ngàn hay hàng triệu vi mạch tích hợp ngày nay, cơng nghệ tích hợp phát triển, CPU tích hợp lên vài vi mạch tích hợp cỡ lớn, vi mạch tích hợp cỡ lớn chứa hàng ngàn hàng triệu tranzito Nhờ cơng suất tiêu thụ giá thành vi xử lý giảm đáng kể 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, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi số sang tương tự tương tự sang số, Ở máy tính mơ đun thường xây dựng chíp mạch ngồi 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, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v Hầu hết vi điều khiển ngày xây dựng dựa kiến trúc Harvard, kiến trúc định nghĩa bốn thành phần cần thiết hệ thống nhúng Những thành phần lõi CPU, nhớ chương trình (thơng thường ROM nhớ Flash), nhớ liệu (RAM), vài định thời cổng vào/ra để giao tiếp với thiết bị ngoại vi mơi trường bên ngồi - tất khối thiết kế vi mạch tích hợp Vi điều khiển khác với vi xử lý đa chỗ hoạt động với vài vi mạch hỗ trợ bên Thuật ngữ Mục tiêu: - Hiểu được nguyên lý cấu tạo vi điều khiển - Hiểu được cấu trúc bợ nhớ vi điều khiển Một máy tính ( Computer ) định nghĩa hai điểm :  Khả lập trình để thao tác liệu mà không cần đến can thiệp người  Khả lưu trữ khôi phục liệu Tổng quát hơn, hệ máy tính ( Computer system ) bao gồm thiết bị ngoại vi ( peripheral device ) để truyền thông với người chương trình ( program ) đế xử lý liệu Thiết bị phần cứng ( hardware ) chương trình phần mềm ( software ) Chúng ta bắt đầu với phần cứng máy tính cách khảo sát sơ đồ khối máy tính cổ điển: 10 Góc quay 7.20/bước → vòng quay cần 3600/7.20 = 50 bước → 50 vòng quay cần thực 2500 bước Tốc độ 50 vòng / phút → phút (60s) thực 2500 bước → bước cần 60/2500 = 0.024s = 24,,000 µs Thứ tự kích xung bảng sau Chương trình 4.2 Điêu khiển động bước quay tuận, ngược, dừng 106 BAI 6: HOẠT ĐỘNG NGẮT TRONG VI ĐIỀU KHIỂN 8051 Mã bài: MĐ 25-06 Mục tiêu: - Hiểu tác dụng thực tế hệ thống sử dụng ngắt - Biết tổ chức ngắt ghi ngắt - Biết cách thiết kế chương trình sử dụng ngắt Nội dung chính: Giới thiệu chung Mục tiêu: - Hiểu được ngắt gi - Biết so sánh một chương trình sử dụng ngắt một chương trình không sử dụng ngắt Ngắt xuất điều kiện, kiện làm tạm dừng chương trình điều kiện phục vụ chương trình khác Ngắt có vai trò quan trọng thiết kế thực ứng dụng vi điều khiển Chúng cho phép hệ thống đáp ứng không đồng với kiện xử lý kiện chương trình khác hoạt động Một hệ thống điều khiển ngắt tạo ảo giác thực đồng thời nhiều công việc lúc Dĩ nhiên, thời điểm CPU thực nhiều lệnh tạm dừng chương trình để thực chương trình khác sau trở lại chương trình Điểm khác hệ thống điều khiển ngắt, ngắt không xảy kết lệnh (như lệnh gọi chương trình con) mà đáp ứng với kiện xảy cách không đồng với chương trình có nghĩa khơng biết trước chương trình bị ngắt lúc Chương trình xử lý ngắt gọi chương trình phục vụ ngắt (Interrupt service routine) viết tắt ISR hay quản lý ngắt ISR hoạt động để đáp ứng ngắt thường thực thao tác vào đến thiết bị Khi xảy ngắt chương trình tạm thời dừng lại rẽ nhánh đến ISR ISR thực thao tác cần thiết kết thúc với lệnh trở từ ngắt chương trình lại tiếp tục từ nơi tạm dừng Như nói chương trình hoạt động mức sở ISR hoạt động mức ngắt có dùng thuật ngữ: “phía trước” (foreground) để mức sở “phía sau” (backgrround) để mức ngắt 107 Một dụ điển hình ngắt ứng dụng lò vi sóng: Chương trình điều khiển phần tử tạo lượng vi sóng để nấu ăn, nấu hệ thống cần phải đáp ứng việc nhập tay cửa lò dụ tăng giãm thời gian nấu Khi người sử dụng thả nút nhấn, ngắt tạo (có thể tín hiệu chuyển từ mức cao xuống mức thấp) chương trình bị dừng lại, chương trình ISR hoạt động đọc mã bàn phím thay đổi q trình nấu tương ứng sau chấm dứt cách chuyển điều khiển cho chương trình chính, chương trình lại tiếp tục từ nơi bị ngắt Một điểm quan trọng dụ việc nhập tay xảy cách khơng đồng có nghĩa khơng biết trước không điều khiển phần mềm chạy hệ thống Đó đặc điễm ngắt vectơ ngắt Cờ ngắt xảy Trình phục vụ ngắt Chương trình hành Cách nhìn ngắn gọn chương trình thực thi khơng có ngắt Cách nhìn ngắn gọn chương trình thực thi có ngắt Bắt đầu trình phục vụ ngắt Kết thúc trình phục vụ ngắt Hình 32-06-1 Thực chương trình Ngắt vi điều khiển 8051 Mục tiêu: - Hiểu được cấu tạo ghi ngắt - Biết được chuỗi vòng hoạt đợng ngắt - Biết được địa chỉ ghi ngắt - Ứng dụng ghi để viết chương trình điều khiển 108 2.1 Thanh ghi cho phép không cho phép ngắt Mỗi nguồn ngắt cho phép không cho phép thông qua ghi chức đặc biệt có bit địa hóa IE (Interrupt Enable) địa 0A8H Bit Symbol Address IE.7 IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 EA ET2 ES ET1 EX1 ET0 EX0 AFH AEH ADH ACH ABH AAH A9H A8H Mô tả (1: cho phép, 0: không cho phép) Cho phép, không cho phép tồn cục Khơng xác định Cho phép ngắt timer 2(có 8952) Cho phép ngắt nối tiếp Cho phép ngắt timer1 Cho phép ngắt bên (INT 1) Cho phép ngắt timer0 Cho phép ngắt bên (INT 0) 2.2 Thanh ghi ưu tiên ngắt Khi có nhiều ngắt cho phép, số ngắt chọn ưu tiên cao Nếu ngắt chọn ưu tiên làm cho ngắt khác thực thi tạm dừng trình phục vụ ngắt ưu tiên kết thúc Trong tình khác, hai ngắt xảy lúc, ngắt có mức ưu tiên cao làm trước Ở vi điều khiển 89xxx, chương trình có sử dụng ngắt chia làm mức: mức (thường cho chương trình chính), mức ngắt ưu tiên ngắt có ngắt ưu tiên cao có nhiều ngắt cho phép Mỗi nguyên nhân ngắt riêng rẽ lập trình để có hai mức ưu tiên thơng qua ghi chức đặt biệt IP (interrupt priority) IP.7 IP.6 IP.5 IP.4 IP.3 Symbo l ET2 ES ET1 IP.2 EX1 AAH IP.1 ET0 A9H IP.0 EX0 A8H Bit Bit Address ADH ACH ABH Description (1: ưu tiên, 0: không ưu tiên) Không sử dụng Không sử dụng Ưu tiên ngắt định thời Ưu tiên ngắt port nối tiếp Ưu tiên ngắt định thời Ưu tiên ngắt bên (INT 1) Ưu tiên ngắt định thời Ưu tiên ngắt bên (INT 0) 109 2.3 Chuỗi Pooling Nếu có nhiều ngắt xuất đồng thời, chuỗi vòng xác định ngắt thực trước Chuỗi vòng là: Ngắt ngồi 0, ngắt định thời 0, ngắt 1, ngắt định thời 1, ngắt port nối tiếp, ngắt định thời Hình 32-06-2 Cấu trúc ngắt 8051 2.4 Vector ngắt Khi có kiện ngắt (Cờ ngắt) xuất hiện, chương trình ngắt bắt đầu địa cố định – gọi vectơ ngắt Interrupt System Reset External Timer External Timer Serial Port Timer2 Flag RST IE0 TF0 IE1 TF1 RI, TI TF2 & EXF2 (vđk 8952) Interrupt Vector 0000h 0003H 000BH 0013H 001BH 0023H 002BH 110 Lập trình điều khiển ngắt Mục tiêu:Viết chương trình sử dụng ngắt Để dụng ngắt 8051, cấu hình theo bước sau Bật bit cho phép ngắt (EX0 = 1), (EX1 = 1), bật hai sử dụng ngắt ngồi Cấu hình chế độ ngắt kích phát sườn kích phát mức cho ngắt ngồi 0, cách bật xóa bit IT0, IT1 Bật bit cho phép ngắt toàn cục (EA = 1) Viết chương trình phục vụ ngắt Chương trình ngắt cho 8051 Keil C viết theo cú pháp sau dụ, để sử dụng ngắt ngồi phải điền x 0, ngắt điền x (dựa theo bảng trên) dụ chương trình ngắt phục vụngắt ngồi thường viết sau Ứng dụng ngắt ngồi lập trình điều khiển thiết bị ngoại vi Mục tiêu: - Hiểu được hoạt đợng ngắt ngồi - Viết chương trình điều khiển sử dụng ngắt Các ngắt ngồi xảy có mức thấp cạnh xuống chân /INT0 /INT1 vi điều khiển Các cờ tạo ngắt bít IE.0 IE.1 ghi TCON, cờ tạo ngắt bị xóa phần cứng CPU trỏ đến ISR ngắt loại tác động cạnh, ngắt tác động mức nguồn tạo ngắt bên sẻ điều khiển mức cờ ngắt Việc chọn lựa ngắt tác động mức thấp tác động cạnh âm được lập trình thơng qua bít IT0 IT1 ghi TCON VD: Nếu IT1 = ngắt ngồi kích mức thấp chân INT1 IT1 = ngắt kích cậnh âm Trong chế độ mẫu chân INT1 mức cao chu kỳ mức thấp chu kỳ cờ IE1 TCON set sau cờ sẻ yêu cầu ngắt chân ngắt ngồi 111 lấy mẫu chu kỳ máy lần nên ngỏ vào phải trì 12 chu kỳ dao động để bảo đãm việc lấy mẫu thích hợp Nếu loại tác động cạnh nguồn ngồi phải giữ mức cao chu kỳ mức thấp chu kỳ để bảo đảm nhận chuyển mức IE0 IE1 xóa tự động CPU trỏ đến ngắt Nếu ngắt loại tác động mức nguồn ngồi phải trì mức tác động ngắt yêu cầu thực tạo Sau phải trở mức khơng tác động trước ISR hoàn tất trước ngắt khác tạo Thông thường thao tác ISR làm cho nguồn tạo ngắt trả tín hiệu ngắt trở trạng thái khơng tác động dụ: Viết chương trình sử dụng nút nhấn để điều khiển hiển thị số có chữ số led số sau: Mặc định bắt đầu, led hiển thị số Mỗi lần nhấn nút 1, giá trị led tăng đơn vi Khi giá trị led lớn 9, led hiển thị quay trở lại số Mỗi lần nhấn nút 2, giá trị led giảm đơn vị, giá trị led nhỏ thua 0, led hiển thị số Lời giải: Mình sử dụng nút nhấn nối vào chân ngắt ngoài: Nút nối vào chân ngắt (chân P3.2), nút nối vào chân ngắt (chân P3.2) Port sử dụng để xuất giá trị hiển led Sơ đồ mơ vẽ sau Trong chương trình, sử dụng biến x, kiểu có dấu(signed), để sử dụng làm biến tăng giảm hiển thị led Một mảng gồm 10 phần tử chứa mã led anot chung số từ 0->9 khai báo đầu chương trình 112 Tiếp theo, hàm main, cấu hình sử dụng ngắt ngồi Do u cầu tốn nhấn nút tăng giá trị biến, nên sử dụng ngắt kích phát mức bit IT1 =1, IT0 =1 Trong vòng lặp vơ tận while(1), cần xuất giá trị biến x led 7, việc tăng giảm biến thực chương trình phục vụ ngắt ngồi Chương trình thực ngắt viết sau Ngắt Timer Mục tiêu: 113 - Hiểu được hoạt động ngắt Timer - Viết chương trình điều khiển sử dụng ngắt Timer Các ngắt Timer xảy kiện tràn Timer, cờ tràn TF0 hoăc TF1 đặt Khi ISR đáp ứng, cờ TF0 hoăc TF1 tự động xóa phần mềm dụ: Hãy viết chương trình nhận liên tục liệu Bit cổng P0 gửi đến cổng P1 lúc tạo sóng vng chu kỳ 200ms chân P2.1 Hãy sử dụng bộTimer0 để tạo sóng vng, tần số 8051 XTAL = 11.0592MHz Lời giải: Chu kỳ 200ms, nửa chu kỳ 100ms Ta có: 100ms/1,085ms=92 Suy giá trị cần nạp cho timer0 là: -92 A4H Ta sử dụng timer0 bit #include //khai báo thu viện cho VÐK 89x51 main() { TMOD=0x02; //chọn timer0, chế độ 2, 8Bit tự nạp lại TL0=0xA4; //nạp giá trị cho TL0 TH0=0xA4; //nạp giá trị cho TH0 TR0=1; //khởi động timer0 IE=0x82; //cho phép ngắt timer0 while(1) //vòng lặp vơ hạn { 114 P1=~P0; //Cập nhật giá trị cho cổng P1 từ P0 } } void songvuong(void) interrupt //Khai báo trình phục vụ ngắt cho timer0 { TR0=0; P2_1=~P2_1; TR0=1; //Ngừng timer0 //Đảo trạng thái chân P2_1 //Khởi động timer0 //Khơng cần xóa cờ TF0, 8051 tự động xóa } Ngắt cổng nối tiếp Mục tiêu: - Hiểu được hoạt động ngắt cổng nối tiếp - Viết chương trình điều khiển sử dụng ngắt cổng nối tiếp Các ngắt cổng nối tiếp xảy hai cờ ngắt phát TI cờ ngắt thu RI set Ngắt phát xuất trình phát ký tự trước viết vào SBUF hồn tất, ngắt thu xuất ký tự nhận đầy đủ chờ đọc SBUF 115 Các ngắt cổng nối tiếp khác với ngắt timer, cờ tạo ngắt cổng nối tiếp khơng xóa phần cứng CPU trỏ đến véc tơ ngắt lý có hai nguồn tạo ngắt cổng nối tiếp TI RI Nguồn tạo ngắt phải xác định ISR cờ ngắt xóa phần mềm Trở lại với ngắt timer, cờ ngắt xóa phần cứng CPU trỏ đến ISR Hãy viết chương trình ngắt để 8051 nhận liệu từ cổng nối tiếp COM gửi đến cổng P0 Giả thiết tần số XTAL 11.0592MHz tốc độ baud 9600 Lời giải: #include main() //Khai báo thư viện cho 89c51 //Chương trình { TMOD=0x20; //Chọn Timer1, chế độ TH1=0xFD; //Cài đặt tốc độ baud 9600 SCON=0x50; //0101 0000: Chọn chế độ 1, Cho phép nhận TR1=1; //Khởi động Timer1 IE=0x90; //cho phép ngắt truyền thơng nối tiếp while(1) //Vòng lặp vơ hạn { } } void nhandulieu(void) interrupt //Khai báo ISR truyền thơng nối tiếp { if(RI==1) //Kiểm tra có phải ngắt nhận liệu không { 116 P0=SBUF; //Gửi liệu đến cổng P0 RI=0; //Xóa cờ nhận liệu nối tiếp RI } } Hình 15: Mơ nhận ký tự 0,1,2,3,4, từ máy tính, gửi đến Port0 Trong dụ ta ý đến vai trò cờ RI Trong trình phục vụ ngắt nối tiếp, ta phải kiểm tra cờ TI cờ RI hai gọi ngắt truyền thơng nối tiếp, hay nói cách khác có ngắt cho truyền nhận THỰC HÀNH VỚI NGẮT I MỤC TIÊU - Hiểu rõ tập lệnh vi điều khiển MCS-51 - Hiểu hoạt động ngắt (Interrupt) chế độ khác - Hiểu phương pháp lập trình điều khiển có sử dụng ngắt II NỘI DUNG THÍ NGHIỆM Nối mạch thí nghiệm 117 Ngắt Timer Chương trình : Viết chương trình tạo sóng vng tần số f = KHz P1.0 dùng ngắt timer (giả sử tần số thạch anh 12 MHz) Chương trình : Viết chương trình tạo xung vng tần số f =10KHz P1.0 dùng ngắt timer xung vuông tần số f = KHz P1.1 dùng ngắt timer1 Chương trình 3: Giả sử chân INT1 nối đến cơng tắc bình thường mức cao Mỗi xuống thấp phải bật đèn LED Đèn LED nối đến chân P1.3 bình thường chế độ tắt Khi bật lên phải sáng vài phần trăm giây Chừng công tắc ấn xuống thấp đèn LED phải sáng liên tục Chương trình Viết chương trình cho có mức logic xuất P3.2 (ngắt ngồi 0) tạo xung KHz P1.0 Quá trình tạo xung dừng có mức logic xuất P3.3 (ngắt ngồi 1) Chương trình Viết chương trình đếm sản phẩm vi điều khiển 8051 truyền liệu qua cổng nối tiếp Yêu cầu đánh giá kết học tập 118 * Về kiến thức: - Hiểu cấu tạo vi điều khiển 8051 - Ứng dụng định thời để tạo thời gian trễ - Biết công dụng cách sử dụng ngắt - Truyền liệu kiểu nối tiếp - Giải thích sơ đồ mạch - Viết chương trình ứng dụng theo yêu cầu *Về kỹ năng: - Lắp ráp mạch điều khiển theo sơ đồ có sẵn - Phân tích tượng phán đoán nguyên nhân gây hư hỏng mạch điều khiển thiết bị đo - Sửa chương trình điều khiển * Về thái độ - Nghiêm túc, tích cực, chủ động học tập - Chấp hành nghiêm chỉnh nội quy xưởng phòng thực hành vi điều khiển TÀI LIỆU THAM KHẢO 119 [1]- Tống Văn On, Hoàng Đức Hải, Họ vi điều khiển 8051, NXB Lao đông xã hội, Hà Nội 2005 [2]- Ngô Diên Tập, Lập trình hợp ngữ, NXB Khoa học kỹ thuật, Hà Nội 1998 [3]- Ngô Diên Tập, Vi xử lý đo lường điều khiển, NXB Khoa học kỹ thuật, Hà Nội 1999 [4]- Đỗ Xuân Thụ, Hồ Khánh Lâm, Kỹ thuật vi xử lý máy tính, NXB Giáo dục, Hà Nội 2000 [5]- Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc lập trình vi điều khiển, NXB Khoa học kỹ thuật, Hà Nội 2004 [6]- Ngô Diên Tập, Vũ Trung Kiên, Phạm Xuân Khánh, Kiều Xuân Thực, Giáo trình vi xử lý cấu trúc máy tính, NXB Giáo dục, Hà Nội 2007 120 ... dùng vi điều khiển vi t chương trình ứng dụng dùng vi điều khiển Mục tiêu mô đun: - Hiểu cấu tạo nguyên lý hoạt động vi điều khiển 8051 - Giải thích nguyên lý hoạt động hệ dùng vi điều khiển - Vi t... trúc vi điều khiển Cấu trúc phần cứng vi điều khiển Ngơn ngữ lập trình vi điều khiển Tập lệnh vi điều khiển 8051 Giới thiệu hoạt động định thời vi điều khiển 8051 Giới thiệu hoạt động ngắt vi điều. .. TRÌNH VI ĐIỀU KHIỂN VỚI CÁC THIẾT BỊ NGOẠI VI 60 Điều khiển giao tiếp với LED đơn 60 1.1.Lập trình điều khiển Pin vi điều khiển 60 1.2.Lập trình điều khiển theo Port vi điều khiển

Ngày đăng: 28/08/2018, 07:46

Từ khóa liên quan

Mục lục

  • BÀI 1

  • CÁC KHẢI NIỆM CƠ BẢN VỀ CẤU TRÚC CỦA VI ĐIỀU KHIỂN

    • 1. Giới thiệu chung

    • 2. Thuật ngữ.

    • 3. Đơn vị xử lý trung tâm.

    • 4. Bộ nhớ bán dẫn RAM và ROM

    • 5. Các Bus địa chỉ

    • 6. Các thiết bị xuất/nhập.

      • 6.1 Các thiết bị lưu trữ lớn.

      • 6.2 Các thiết bị giao tiếp với con người.

      • 6.3 Các thiết bị điều khiển/kiểm tra.

    • 7. So sánh vi xử lý và vi điều khiển.

    • 8. Các tiêu chuẩn cơ bản khi chọn loại vi điều khiển.

  • BÀI 2

  • CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN 8051

    • 1. Giới thiệu chung.

      • 1.1. Cấu trúc vi điều khiển.

      • 1.2. Sơ đồ khối

    • 2. Sơ đồ chân và chức năng của các chân.

    • 3. Tổ chức bộ nhớ bên trong.

      • 3.1. Tổ chức bộ nhớ

      • 3.2. RAM đa dụng

      • 3.3. RAM có thể truy xuất từng bit

      • 3.4. Các bank thanh ghi

    • 4. Các thanh ghi chức năng đặc biệt

      • 4.1. Thanh ghi trạng thái chương trình

      • 4.2. Thanh ghi B

      • 4.3. Con trỏ Ngăn xếp SP (Stack Pointer)

      • 4.4. Con trỏ dữ liệu DPTR (Data Pointer)

      • 4.5. Các thanh ghi Port (Port Register)

      • 4.6. Các thanh ghi Timer (Timer Register)

      • 4.7. Các thanh ghi Port nối tiếp (Serial Port Register)

      • 4.8. Các thanh ghi ngắt (Interrupt Register)

      • 4.9. Thanh ghi điều khiển nguồn PCON (Power Control Register)

    • 5.Tổ chức bộ nhớ ngoài

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

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

    • 6. Các phiên bản vi điều khiển của họ MCS51.

      • 6.1 Bộ vi điều khiển 8031

      • 6.2 Bộ vi điều khiển 8052

      • 6.4 Bộ vi điều khiển 8751

      • 6.5 Bộ vi điều khiển DS5000 của Dallas Semiconductor:

    • 7. Hoạt động reset.

  • BÀI 3

  • NGÔN NGỮ LẬP TRÌNH VI ĐIỀU KHIỂN 8051

    • 1. Giới thiệu chung.

    • 2. Ngôn ngữ lập trình Asembly.

      • 1.1 Các cách định địa chỉ

      • 2.2 Các nhóm lệnh

    • 3. Ngôn ngữ lập trình C.

      • 3.1 Cấu trúc chương trình

      • 3.2 Câu lệnh lập trình

  • BÀI 4

  • LẬP TRÌNH VI ĐIỀU KHIỂN VỚI CÁC THIẾT BỊ NGOẠI VI

    • 1. Điều khiển và giao tiếp với LED đơn

      • 1.1.Lập trình điều khiển từng Pin của vi điều khiển.

      • 1.2.Lập trình điều khiển theo Port của vi điều khiển.

    • 2. Điều khiển và giao tiếp với LED 7 đoạn

      • 2.1. Điều khiển 1 LED 7 thanh.

      • 2.2.Điều khiển nhiều LED 7 thanh.

      • 3. Điều khiển và giao tiếp với LED ma trận.

      • 4 Điều khiển và giao tiếp với LCD 16x2.

      • 5 Điều khiển và giao tiếp với động cơ bước.

      • 5.1 Điều khiển full bước.

      • 5.2 Điều khiển nửa bước.

  • BÀI 5

  • GIỚI THIỆU HOẠT ĐỘNG CỦA BỘ ĐỊNH THỜI

  • TRONG VI ĐIỀU KHIỂN 8051

    • 1. Giới thiệu chung.

    • 2. Bộ định thời của vi điều khiển 8051.

      • 2.1. Thanh ghi điều khiển chế độ timer TMOD

      • 2.2. Thanh ghi điều khiển timer TCON

      • 2.3. Các chế độ làm việc

    • 3. Các bước lập trình điều khiển bộ định thời.

    • 4. Ứng dụng bộ định thời gian trong lập trình điều khiển thiết bị ngoại vi.

    • 5. Ứng dụng đếm sự kiện trong lập trình điều khiển thiết bị ngoại vi.

  • BAI 6: HOẠT ĐỘNG NGẮT TRONG VI ĐIỀU KHIỂN 8051

    • 1. Giới thiệu chung.

    • 2. Ngắt của vi điều khiển 8051.

      • 2.1. Thanh ghi cho phép và không cho phép ngắt

  • IE.7

    • ES

    • EX1

      • 2.2. Thanh ghi ưu tiên ngắt

  • IP.7

    • ET2

    • ET1

      • 2.3. Chuỗi Pooling

      • 2.4. Vector ngắt

    • 3. Lập trình điều khiển ngắt.

    • 4. Ứng dụng ngắt ngoài trong lập trình điều khiển thiết bị ngoại vi.

    • 5. Ngắt Timer

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

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

  • Đang cập nhật ...

Tài liệu liên quan