vi xử lý hệ thống điều khiển nút nhấn

8 1.1K 7
vi xử lý hệ thống điều khiển nút nhấn

Đang tải... (xem toàn văn)

Thông tin tài liệu

KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP T T À À I I L L I I Ệ Ệ U U H H Ư Ư Ớ Ớ N N G G D D Ẫ Ẫ N N T T H H Í Í N N G G H H I I Ệ Ệ M M - - T T H H Ự Ự C C H H À À N N H H F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Giáo trình thực hành vi xử lý. 2 Biên soạn: Phạm Quang Trí A. MỤC ĐÍCH: • Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp vào vi điều khiển và sử dụng mô hình thí nghiệm để kiểm chứng. • Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển. • Điều khiển các thiết bị ngoại vi bằng nút nhấn. • Trình bày một số ứng dụng điều khiển các thiết bị ngoại vi có sử dụng nút nhấn. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Biết cách viết các chương trình điều khiển nút nhấn. • Nắm được sơ đồ và nguyên hoạt động của khối nút nhấn trên mô hình thí nghiệm. • Biết cách viết các chương trình ứng dụng có sử dụng nút nhấn để điều khiển các thiết bị ngoại vi khác nhau. F. H THNG IU KHIN NT NHN. Bi 1: Chng trỡnh iu khin nỳt nhn, khi ta nhn nỳt no trong 8 nỳt thỡ LED tng ng s sỏng lờn v ngc li (MOMENTARY SW c ni vi Port0, LED c ni vi Port1 (cú s dng b m o)). Giỏo trỡnh thc hnh vi x lý. 3 Biờn son: Phm Quang Trớ 1 Trỡnh t tin hnh thớ nghim: 1.1 Kt ni thit b thớ nghim. Tt ngun cp cho mụ hỡnh thớ nghim. Dựng dõy bus 8 ni J64 (PORT1) khi vi iu khin vi J11 (BAR LED 1) khi dóy LED. Dựng dõy bus 8 ni J63 (PORT0 / DATA) khi vi iu khin vi J76 (MOMENTARY SW) khi nỳt nhn. Dựng dõy bus 3 ni J103 (POWER) khi dóy LED v J114 (POWER) khi nỳt nhn vi ngun +5V khi ngun. MOMENTARY SW POWER PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS 33 1.2 S nguyờn ca h thng: AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D0 D0 D1 D1 D2 D2 D3 D3 D4 D4 D5 D5 D6 D6 D7 D7 D7 D6 D5 D4 D3 D2 D1 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 C1 33p C2 33p X1 12MHz C3 10uF R1 10k +5V D0 R2 330 +5V D1 R3 330 +5V D2 R4 330 +5V D3 R5 330 +5V D4 R6 330 +5V D5 R7 330 +5V D6 R8 330 +5V D7 R9 330 +5V 1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8 1C 18 2C 17 3C 16 4C 15 5C 14 6C 13 7C 12 8C 11 COM 10 U2 ULN2803 2 3 4 5 6 7 8 9 1 RP1 10K +5V MAẽCH ẹIEU KHIEN NUT NHAN MAẽCH ẹIEU KHIEN NUT NHANMAẽCH ẹIEU KHIEN NUT NHAN MAẽCH ẹIEU KHIEN NUT NHAN 2 3 4 5 6 7 8 9 1 RP2 10K +5V +5V KEY7 KEY6 KEY5 KEY4 KEY3 KEY2 KEY1 KEY0 1.3 V lu gii thut v vit chng trỡnh iu khin. F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên và ngược lại (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)). Giáo trình thực hành vi xử lý. 4 Biên soạn: Phạm Quang Trí BEGIN ĐIỀU KHIỂN TẮT LED 0 (P1.0) = 0 MAIN: F1 Đ S KEY0 NHẤN ? (P0.0) = 0 ĐIỀU KHIỂN TẮT LED (P1) = 00H KEY1: ĐIỀU KHIỂN SÁNG LED 0 (P1.0) = 1 KEY0: KEY0OK: ĐIỀU KHIỂN TẮT LED 1 (P1.1) = 0 Đ S KEY1 NHẤN ? (P0.1) = 0 KEY2: ĐIỀU KHIỂN SÁNG LED 1 (P1.1) = 1 KEY1OK: ĐIỀU KHIỂN TẮT LED 2 (P1.2) = 0 Đ S KEY2 NHẤN ? (P0.2) = 0 KEY3: ĐIỀU KHIỂN SÁNG LED 2 (P1.2) = 1 KEY2OK: ĐIỀU KHIỂN TẮT LED 3 (P1.3) = 0 Đ S KEY3 NHẤN ? (P0.3) = 0 KEY4: ĐIỀU KHIỂN SÁNG LED 3 (P1.3) = 1 KEY3: KEY3OK: ĐIỀU KHIỂN TẮT LED 4 (P1.4) = 0 Đ S KEY4 NHẤN ? (P0.4) = 0 KEY5: ĐIỀU KHIỂN SÁNG LED 4 (P1.4) = 1 KEY4OK: ĐIỀU KHIỂN TẮT LED 5 (P1.5) = 0 Đ S KEY5 NHẤN ? (P0.5) = 0 KEY6: ĐIỀU KHIỂN SÁNG LED 5 (P1.5) = 1 KEY5OK: ĐIỀU KHIỂN TẮT LED 6 (P1.6) = 0 Đ S KEY6 NHẤN ? (P0.6) = 0 KEY7: ĐIỀU KHIỂN SÁNG LED 6 (P1.6) = 1 KEY6OK: ĐIỀU KHIỂN TẮT LED 7 (P1.7) = 0 Đ S KEY7 NHẤN ? (P0.7) = 0 ĐIỀU KHIỂN SÁNG LED 7 (P1.7) = 1 KEY7OK: KEY6: ;*************************************************** ;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG ;*************************************************** ;KET NOI: 8 LED -> PORT1 ; MOMENTARY SW -> PORT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV P1,#00H ;TAT CAC LED KEY0: ;KEY0 JNB P0.0,KEY0OK ;KIEM TRA NUT KEY0 - Y: KEY0 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.0 ;KEY0 NHA -> LED TAT SJMP KEY1 ;KIEM TRA NUT KE TIEP F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên và ngược lại (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)). Giáo trình thực hành vi xử lý. 5 Biên soạn: Phạm Quang Trí KEY0OK: SETB P1.0 ;KEY0 NHAN -> LED SANG KEY1: ;KEY1 JNB P0.1,KEY1OK ;KIEM TRA NUT KEY1 - Y: KEY1 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.1 ;KEY1 NHA -> LED TAT SJMP KEY2 ;KIEM TRA NUT KE TIEP KEY1OK: SETB P1.1 ;KEY1 NHAN -> LED SANG KEY2: ;KEY2 JNB P0.2,KEY2OK ;KIEM TRA NUT KEY2 - Y: KEY2 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.2 ;KEY2 NHA -> LED TAT SJMP KEY3 ;KIEM TRA NUT KE TIEP KEY2OK: SETB P1.2 ;KEY2 NHAN -> LED SANG KEY3: ;KEY3 JNB P0.3,KEY3OK ;KIEM TRA NUT KEY3 - Y: KEY3 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.3 ;KEY3 NHA -> LED TAT SJMP KEY4 ;KIEM TRA NUT KE TIEP KEY3OK: SETB P1.3 ;KEY3 NHAN -> LED SANG KEY4: ;KEY4 JNB P0.4,KEY4OK ;KIEM TRA NUT KEY4 - Y: KEY4 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.4 ;KEY4 NHA -> LED TAT SJMP KEY5 ;KIEM TRA NUT KE TIEP KEY4OK: SETB P1.4 ;KEY4 NHAN -> LED SANG KEY5: ;KEY5 JNB P0.5,KEY5OK ;KIEM TRA NUT KEY5 - Y: KEY5 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.5 ;KEY5 NHA -> LED TAT SJMP KEY6 ;KIEM TRA NUT KE TIEP KEY5OK: SETB P1.5 ;KEY5 NHAN -> LED SANG KEY6: ;KEY6 JNB P0.6,KEY6OK ;KIEM TRA NUT KEY6 - Y: KEY6 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.6 ;KEY6 NHA -> LED TAT SJMP KEY7 ;KIEM TRA NUT KE TIEP KEY6OK: SETB P1.6 ;KEY6 NHAN -> LED SANG KEY7: ;KEY7 JNB P0.7,KEY7OK ;KIEM TRA NUT KEY7 - Y: KEY7 NHAN -> XU LY NEU NUT DUOC NHAN CLR P1.7 ;KEY7 NHA -> LED TAT SJMP KEY0 ;KIEM TRA NUT KE TIEP KEY7OK: SETB P1.7 ;KEY7 NHAN -> LED SANG SJMP KEY0 END 1.4 Lưu chương trình và biên dịch chương trình. 1.5 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có. 1.6 Gắn chip vi điều khiển thí nghiệm vào socket tương ứng trên khối nạp chip và bật nguồn cho khối nạp chip hoạt động. 1.7 Nạp chương trình vào vi điều khiển. 1.8 Sử dụng vi điều khiển vừa nạp gắn vào socket tương ứng trên khối vi điều khiển. 1.9 Bật nguồn cho mô hình thí nghiệm. Quan sát kết quả hoạt động, nếu kết quả hoạt động không đúng yêu cầu của đề bài thì phải quay lại kiểm tra việc kết nối mạch, hiệu chỉnh chương trình và làm lại các bước từ bước 3 đến bước 9. 2 Bài tập: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 2) F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz và ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)). Giáo trình thực hành vi xử lý. 6 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Sơ đồ nguyên của hệ thống: • Sơ đồ nguyên của hệ thống tương tự như Bài 1. 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. BEGIN GỌI CTC CHỚP TẮT 20 Hz DELAY50MS MAIN: F2 Đ S KEY0 NHẤN ? (P0.0) = 0 XÓA THANH GHI A (A) = 00H GỌI CTC CHỚP TẮT 5 Hz DELAY200MS MP1: NHAN: DELAY50MS CẤT TẠM GIÁ TRỊ CỦA R0 VÀO STACK NẠP GIÁ TRỊ VÒNG LẶP (R0) = 50 DEL50: GIÃM SỐ LẦN LẶP SỐ LẦN LẶP ≠ 0 (CHƯA LẶP XONG) Đ S LẤY LẠI GIÁ TRỊ CHO R0 TỪ STACK RET KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H NẠP GIÁ TRỊ CHO TIMER (T DELAY = 1000.T MÁY ) (TH0/TL0) = -1000 = FC18H CHƯA ĐỦ THỜI GIAN (TF0) = 0 Đ S CHO TIMER HOẠT ĐỘNG (TR0) = 1 DỪNG TIMER (TR0) = 0 XÓA CỜ TRÀN TIMER (TF0) = 0 DELAY50MS: DELAY200MS CẤT TẠM GIÁ TRỊ CỦA R0 VÀO STACK NẠP GIÁ TRỊ VÒNG LẶP (R0) = 100 DEL5: GIÃM SỐ LẦN LẶP SỐ LẦN LẶP ≠ 0 (CHƯA LẶP XONG) Đ S LẤY LẠI GIÁ TRỊ CHO R0 TỪ STACK RET KHỞI ĐỘNG TIMER (TIMER 0, MODE 1) (TMOD) = 01H NẠP GIÁ TRỊ CHO TIMER (T DELAY = 1000.T MÁY ) (TH0/TL0) = -2000 = F830H CHƯA ĐỦ THỜI GIAN (TF0) = 0 Đ S CHO TIMER HOẠT ĐỘNG (TR0) = 1 DỪNG TIMER (TR0) = 0 XÓA CỜ TRÀN TIMER (TF0) = 0 DELAY200MS: ;*************************************************** ;CHUONG TRINH DIEU KHIEN NUT NHAN LAM 8 LED HOAT DONG ;*************************************************** ;KET NOI: 8 LED -> PORT1 ; MOMENTARY SW -> PORT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV A,#00H MP1: JNB P0.0,NHAN ;KIEM TRA NUT NHAN - Y: NUT DUOC NHAN ;NUT DUOC NHA -> F = 20 Hz ACALL DELAY50MS SJMP MP1 ;THOAT RA NHAN: ;NUT DUOC NHAN -> F = 5 Hz ACALL DELAY200MS SJMP MP1 ;THOAT RA ;*************************************************** DELAY50MS: ;CTC DELAY 500MS (F = 20 Hz) PUSH 00H CPL A ;CHOP TAT PORT 1 MOV P1,A MOV R0,#50 MOV TMOD,#01H DEL50: MOV TH0,#HIGH(-1000) MOV TL0,#LOW(-1000) F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz và ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)). Giáo trình thực hành vi xử lý. 7 Biên soạn: Phạm Quang Trí SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL50 POP 00H RET ;*************************************************** DELAY200MS: ;CTC DELAY 200MS (F = 5 Hz) PUSH 00H CPL A ;CHOP TAT PORT 1 MOV P1,A MOV R0,#100 MOV TMOD,#01H DEL5: MOV TH0,#HIGH(-2000) MOV TL0,#LOW(-2000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL5 POP 00H RET END 1.4 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển nút nhấn và biểu diễn các kiểu hiển thị trên 8 LED. Tự lựa chọn phương pháp kết nối các nút nhấn và LED.  Nhấn nút “KEY0”: 8 LED sáng tắt liên tục.  Nhấn nút “KEY1”: 8 LED sáng dần và tắt hết liên tục.  Nhấn nút “KEY2”: 8 LED đếm lên nhị phân 8 bit liên tục.  Nhấn nút “KEY3”: 8 LED sáng đuổi liên tục.  Nhấn nút “KEY4”: 8 LED sáng dồn liên tục.  Nhấn nút “KEY5”: 8 LED tắt hết (không hoạt động). • Bài 2: Hãy viết chương trình điều khiển khi nhấn nút nhấn nào thì số thứ tự của nút nhấn đó hiển thị lên LED 7 đoạn (LED0). Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn. • Bài 3: Hãy viết chương trình điều khiển khi nhấn nút nhấn nào thì số thứ tự của nút nhấn đó hiển thị lên LED ma trận. Tự lựa chọn phương pháp kết nối các nút nhấn và LED ma trận. • Bài 4: Hãy viết chương trình điều khiển khi nhấn nút nhấn KEY1 thì RELAY1 đóng, khi nhấn nút nhấn KEY2 thì RELAY2 đóng và ngược lại khi không nhấn nút nhấn thì các relay sẽ ngắt. Tự lựa chọn phương pháp kết nối các nút nhấn và relay. • Bài 5: Hãy viết chương trình điều khiển khi nhấn nút nhấn KEY0 thì LED 7 đoạn (LED1) sẽ bắt đầu đếm BCD từ 9 xuống 0. Khi giá trị của LED 7 đoạn này giãm xuống tới giá trị 0 thì RELAY1 sẽ đóng lại. Sau đó khi nhấn nút nhấn KEY1 thì LED 7 đoạn tắt và RELAY1 ngắt. Tự lựa chọn phương pháp kết nối các nút nhấn, LED 7 đoạn và relay. • Bài 6: Hãy viết chương trình điều khiển hiển thị số đếm BCD từ 00 lên 59 trên hai LED 7 đoạn (LED1 và LED2). Khi nhấn nút nhấn KEY0 thì qúa trình đếm dừng lại và giá trị trên hai LED 7 đoạn bắt đầu sáng tắt liên tục. Sau đó, khi nhấn nút KEY1 thì giá trị trên hai LED 7 đoạn tăng dần lên theo số lần nhấn nút, khi nhấn nút KEY2 thì giá trị trên hai LED 7 đoạn giãm dần lên theo số lần nhấn nút, khi nhấn nút KEY0 thì quá trình đếm lại tiếp tục. Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn. • Bài 7: Hãy viết chương trình điều khiển hiển thị đồng hồ số trên sáu LED 7 đoạn (LED3 – LED7) có thể điều chỉnh dược thời gian bằng các nút nhấn:  Nút “KEY0”: dùng để chọn lựa tính năng điều chỉnh (Giờ / Phút / Giây) hoặc dùng để thoát khỏi quá trình điều chỉnh thời gian.  Nút “KEY1”: dùng để tăng giá trị thời gian.  Nút “KEY2”: dùng để giãm giá trị thời gian. F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 2: Chương trình điều khiển nút nhấn, khi ta nhấn nút KEY0 thì 8 LED sẽ chớp tắt với tần số 5 Hz và ngược lại khi ta nhả nút KEY0 thì 8 LED sẽ chớp tắt với tần số 20 Hz (MOMENTARY SW được nối với Port0, LED được nối với Port1 (có sử dụng bộ đệm đảo)). Giáo trình thực hành vi xử lý. 8 Biên soạn: Phạm Quang Trí Trong quá trình điều chỉnh thời gian thì đồng hồ dừng hoạt động và khi chọn lựa tính năng điều chỉnh nào (Giờ / Phút / Giây) thì cặp LED 7 đoạn tương ứng sẽ sáng tắt liên tục. Tự lựa chọn phương pháp kết nối các nút nhấn và LED 7 đoạn. • Bài 8: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. . KEY1 KEY0 1.3 V lu gii thut v vit chng trỡnh iu khin. F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên. số ứng dụng điều khiển các thiết bị ngoại vi có sử dụng nút nhấn. B. YÊU CẦU: • Nắm vững tập lệnh của vi điều khiển MCS-51. • Biết cách vi t các chương trình điều khiển nút nhấn. • Nắm. LED TAT SJMP KEY1 ;KIEM TRA NUT KE TIEP F. HỆ THỐNG ĐIỀU KHIỂN NÚT NHẤN. Bài 1: Chương trình điều khiển nút nhấn, khi ta nhấn nút nào trong 8 nút thì LED tương ứng sẽ sáng lên và ngược lại

Ngày đăng: 09/05/2014, 21:15

Từ khóa liên quan

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

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

Tài liệu liên quan