Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
1,21 MB
Nội dung
1 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ CHƯƠNG 1: CẤU TẠO VI XỬ LÝ 89V51RB2 1.1 Tóm tắt phần cứng MCS-51 họ IC vi điều khiển hãng INTEL sản xuất Các IC tiêu biểu cho họ 8031, 8051, 8951… Những đặc điểm nguyên tắc hoạt động vi điều khiển khác không nhiều Khi sử dụng thành thạo vi điều khiển ta nhanh chóng vận dụng kinh nghiệm để làm quen làm chủ ứng dụng vi điều khiển khác Vì để có hiểu biết cụ thể vi điều khiển để phục vụ cho đề tài ta bắt đầu tìm hiểu vi điều khiển thơng dụng nhất, họ MCS-51 1.2 Sơ đồ khối, sơ đồ chân, chức chân: 1.2.1 Sơ đồ khối: 1.2.2 Sơ đồ chân: Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ 1.2.3.Chức chân: 89V51RB2 có 40 chân 32 chân có cơng dụng xuất/ nhập Trong 32 chân có 24 chân có tác dụng kép (nghĩa chân có chức năng), đường hoạt động xuất/ nhập, hoạt động đường điều khiển hoạt động đường địa chỉ/ liệu bus địa chỉ/ liệu đa hợp 1.2.4 Các port: ➢ Port 0: - Port (P0.0 – P0.7) có số chân từ 32 – 39 - Port có chức xuất nhập liệu (P0.0 – P0.7) thiết kế cỡ nhỏ khơng sử dụng nhớ ngồi - Port có chức bus địa byte thấp bus liệu đa hợp (AD0 – AD7) thiết kế cỡ lớn có sử dụng nhớ ngồi ➢ Port 1: - Port (P1.0 – P1.7) có số chân từ – - Port port xuất nhập liệu (P1.0 – P1.7) sử dụng khơng sử dụng nhớ ngồi ➢ Port 2: - Port (P2.0 – P2.7) có số chân từ 21 – 28 - Port có chức port xuất nhập liệu (P2.0 – P2.7) không sử dụng nhớ ngồi - Port có chức bus địa byte cao (A8 - A15) sử dụng nhớ ➢ Port 3: - Port (P3.0 – P3.7) có số chân từ 10 – 17 - Port có chức xuất nhập liệu (P3.0 – P3.7) không sử dụng nhớ chức đặc biệt - Port có chức tín hiệu điều khiển sử dụng nhớ chức đặc biệt - Chức chân port 3: Bit Tên Địa bit Chức Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ P3.0 RxD B0H Chân nhận liệu port nối tiếp P3.1 TxD B1H Chân phát liệu port nối tiếp P3.2 INT0\ B2H Ngõ vào ngắt P3.3 INT1\ B3H Ngõ vào ngắt P3.4 T0 B4H Ngõ vào định thời/ đếm P3.5 T1 B5H Ngõ vào định thời/ đếm P3.6 WR\ B6H Điều khiển ghi vào RAM P3.7 RD\ B7H Điều khiển đọc từ RAM ngồi Bảng tóm tắt chức chân Port 1.2.5 Các chân tín hiệu điều khiển ➢ Chân PSEN: - PSEN (Program Store Enable): cho phép nhớ chương trình, chân số 29 - Chân PSEN\ có chức tín hiệu cho phép truy xuất (đọc) nhớ chương trình (ROM) ngồi tín hiệu truy xuất, tích cực mức thấp - PSEN mức thấp thời gian CPU tìm - nạp lệnh từ ROM Khi CPU sử dụng ROM trong, PSEN mức cao - Khi sử dụng nhớ chương trình bên ngồi, chân PSEN\ thường nối với chân OE\ ROM phép CPU đọc mã lệnh từ ROM ➢ Chân ALE: - ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ - Chân ALE có chức tín hiệu cho phép chốt địa để thực việc giải đa hợp cho bus địa byte thấp bus liệu đa hợp (AD0 – AD7) Ngồi chân ALE cịn tín hiệu xuất, tích cực mức cao - Các xung tín hiệu ALE có tốc độ 1/6 lần tần số dao động chíp dùng làm tín hiệu clock cho phần khác hệ thống Chân ALE dùng làm ngõ vào xung lập trình (PGM\) ➢ Chân EA\: - EA ( External Access): truy xuất ngoài, chân số 31 - Tín hiệu vào EA\ thường mắc lên mức mức Nếu mức 1, 89V51RB2 thi hành chương trình từ ROM nội Nếu mức 0, 89V51RB2 thi hành chương trình từ ROM ngồi - Khi lập trình cho ROM chip chân EA đóng vai trị ngõ vào điện áp lập trình (Vpp = 12V – 12,5V cho 89V51RB2) ➢ Chân RST: - RST (Reset): thiết lập lại, chân số - Khi ngõ vào RST đưa lên cao chu kỳ máy, 89V51RB2 thiết lập lại trạng thái ban đầu Khi ngõ vào RST mức thấp IC hoạt động bình thuờng ➢ Chân XTAL1, XTAL2: - XTAL (Crystal): tinh thể thạch anh, chân số 18 – 19 - XTAL1: ngõ vào mạch tạo xung clock chip - XTAL2: ngõ mạch tạo xung clock chip - Bộ dao động tích hợp bên 89V51RB2, sử dụng 89V51RB2 người thiết kế cần nối thêm thạch anh (tần số thạch anh thường sử dụng 12MHZ) tụ ➢ Chân Vcc, GND: - Vcc: chân số 40, cung cấp nguồn điện cho chip hoạt động Vcc = 4,5 – 5,5V - GND: chân số 20 GND = 0V Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ 1.3 Tổ chức nhớ PSEN\ FFFFH WR\ RD\ FFFH SFR 80H chương chương 7FH 00H Bộ nhớ Bộ nhớ 000H trình trình 0000H (mã) Bộ nhớ chip Bộ nhớ liệu (mã) Bộ nhớ ngồi chip Hình: Tóm tắt vùng nhớ 89V51RB2 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ Bảng tóm tắt nhớ liệu chip 89V51 ( Special Function Register: Thanh ghi chức đặc biệt ) 1.3.1 Bộ nhớ trong: Bộ nhớ 89V51RB2 bao gồm ROM RAM RAM 89V51RB2 bao gồm nhiều thành phần: RAM đa chức năng, RAM định địa bit dãy ghi 1.3.1.1 Bộ nhớ ROM ( Bộ nhớ chương trình): Bộ nhớ chương trình dùng để lưu trữ chương trình điều khiển cho chip hoạt động Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ 1.3.1.2 Bộ nhớ RAM (Bộ nhớ liệu): Bộ nhớ liệu dùng để lưu trữ liệu tham số 1.3.1.3 RAM đa chức năng: - Trên hình vẽ cho thấy 80 byte RAM đa chức chiếm địa từ 30H đến 7FH - Mọi địa vùng RAM đa chức truy xuất tự dùng kiểu định địa trực tiếp gián tiếp 1.3.1.4 RAM định địa bit: - RAM định địa bit gồm 128 bit định địa chứa byte có địa từ 20H đến 2FH - RAM định địa bit có kiểu truy xuất liệu: trực tiếp, gián bit 1.3.1.5 Các dãy ghi: - 32 vị trí thấp nhớ nội chứa dãy ghi Các lệnh 89V51RB2 hỗ trợ ghi từ R0 – R7 thuộc dãy theo mặc định sau Reset hệ thống ghi địa từ 00H đến 07H - Các lệnh dùng ghi R0 đến R7 ngắn nhanh so với lệnh có chức tương ứng dùng kiểu địa trực tiếp Các liệu dùng thường xuyên nên dùng ghi - Do có dãy ghi nên thời điểm có dãy ghi tích cực Dãy ghi tích cực thay đổi cách thay đổi bit chọn dãy từ trạng thái chương trình PSW 1.3.1.6 Các ghi chức đặc biệt: - Các ghi nội hầu hết vi xử lý truy xuất rõ ràng tập lệnh Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ - Các ghi nội 89V51RB2 cấu hình thành phần RAM chip, ghi có địa (ngoại trừ ghi đếm chương trình ghi lệnh ghi bị tác động trực tiếp) Cũng ghi từ R0 đến R7, ta có 21 ghi chức đặc biệt (SFR: Special Function Register) chiếm phần RAM nội từ địa 80H đến FFH - Ngoại trừ ghi A truy xuất rõ ràng cịn lại hầu hết ghi chức đặc biệt truy xuất kiểu định địa trực tiếp ❖ Thanh ghi từ PSW ( Program Status Word ): Bit Ký hiệu Địa Mô tả bit PSW.7 CY D7H Cờ nhớ PSW.6 AC D6H Cờ nhớ phụ PSW.5 F0 D5H Cờ PSW.4 RS1 D4H Chọn dãy ghi (bit 1) PSW.3 RS0 D3H Chọn dãy ghi (bit 0): 00 = dãy 0: địa từ 00H đến 07H 01 = dãy 1: địa từ 08H đến 0FH 10 = dãy 2: địa từ 10H đến 17H 11 = dãy 2: địa từ 18H đến 1FH PSW.2 OV D2H Cờ tràn PSW.1 - D1H Dự trữ PSW.0 P D0H Cờ kiểm tra chẵn lẻ Thanh ghi PSW ❖ Thanh ghi A: 10 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ Trong hình vẽ địa 02H, mã lệnh 16H, có 32 khả địa 128 lệnh Tồn thời gian truyền đị khung thay đổi theo thời gian độ rộng bit > độ rộng bit Nếu bạn giữ nút bấm, khung liệu nặp lại sau 25 ms Nếu bạn sử dụng mắt nhìn hồng ngoại có sẵn thi truờng, tất dạng sóng bị đảo sau: Để thu giải mã tín hiệu Remote TV sony, thực tế khơng cần thu tồn 12 bit mã hóa, ta cần thu bit COMMAND bỏ qua bit địa Bởi với điều khiển tất nút bắm phát mã địa nhau, khác mã lệnh Mã địa Sony để phân biệt MODEL REMOD SONY khác Để thu bit mã lệnh ta có thuật tốn sau: 1) thiết lập nghi A = 01000000B 2) khởi đầu cách chờ tín hiệu xuống – xẽ bít START 3) chờ cho tín hiệu lên – khởi đầu bit 4) chờ cho tín hiệu xuống 5) chờ khoảng 750 – 950 s 6) đo mức tín hiệu 7) mức tín hiệu mức cao, bit nhận bit - thiết lập cờ nhớ C = - quay phải có nhớ A, C gửi vào MSB A, LSB A gửi vào C 32 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ - ban đầu A = 01000000B sau quay ta có C = MSB A bít mã lệnh - sau lần quay C = bit bên trái A chứa mã lệnh - kiểm tra cờ nhớ C, C = nhẩy tới bước 9, C = quay lại bước 8) mức tín hiệu thấp bit nhận - thiết lập cờ nhớ C = (bit mã lệnh thu được) - quay phải có nhớ A - kiểm tra cờ nhớ C, C = nhẩy tới bước 9, C = nhẩy tới bước 9) bẩy bit mã lệnh chứa bit trái A: A = D6D5D4D3D2D1D00 - quay phải A ta bit phải A chứa ma lệnh A=0D0D1D2D3D4D5D6 33 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ Lưu đồ thuật toán: Begin Đo mức tín hiệu N Tín hiệu mức thấp Y Đo mức tín hiệu N Tín hiệu mức cao Y Đo mức tín hiệu N Tín hiệu mức thấp Y Tạo chễ 750 - 950µs Đo mức tín hiệu N Y Tín hiệu mức thấp Đặt cờ nhớ C = Quay phải có nhớ A Đặt cờ nhớ C = Quay phải có nhớ A C=1 N Y Quay phải A End 34 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ 2.4 Thiết bị thu phát - Thiết bị phát sử dụng điều khiển TV Sony với nút bấm hồng ngoại phát với mã hóa khác - Thiết bị thu sử dụng mắt nhận hồng ngoại chân, loại mắt nhận sử dụng TV: - Mắt nhận hồng ngoại nhận tín hiệu hồng ngoại từ điều khiển từ xa phát đưa tín hiệu đảo mức chân Out Tín hiệu từ chân Out đưa tới P3.3 Vi xử lý để giải mã, điều khiển Port P2 35 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ CHƯƠNG 3: SƠ ĐỒ VÀ NGUYÊN LÝ HOẠT ĐỘNG 3.1 Sơ đồ nguyên lý +5V R1 D1 330R RL1 5V D4007 D1 L1 220V Q1 R5 So mach A1015 2K2 +5V +5V RP1 C2 33p X1 12MHz C1 33p +5V U1 19 18 C3 XTAL1 XTAL2 10uF RST R9 +5V 10k VO U2 VI GND 29 30 31 PSEN ALE EA P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 R2 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 RL2 5V D 4007 D2 10K P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 D2 330R 39 AD0 38 AD1 37 AD2 36 AD3 35 AD4 34 AD5 33 AD6 32 AD7 L2 220V Q2 R6 A1015 2K2 +5V 21 22 23 24 25 26 27 28 R3 D3 330R RL3 5V D 4007 10 11 12 13 14 15 16 17 D3 L3 220V Q3 R7 AT89C51 A1015 Remod 2K2 +5V R4 330R D4 A1015 Vin 220 V RL4 5V D4 L4 220V R8 Q4 A1015 2K2 3.2 Nguyên lý hoạt động Cấp nguồn DC 5V cho mạch, mắt hồng ngoại chân Out nối với P3.3 Vi xử lý Tín hiệu tới chân P3.3 lập trình giải mã đưa tín hiệu điều khiển cổng P2 Trong mạch sử dụng chân P2, từ P2.0 đến P2.6 để điều khiển thiết bị điện 220V tắt mở theo ý muốn nhờ RELAY 5V P2.7 dùng để tắt bật led đoạn Các chân từ P2.0 đến P2.6 nối với cực Base tranzitor A1015, cực Emittor nối với đầu cuộn dây RELAY (đầu 36 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ cuộn dây nối với Vcc), cực Collector nối với mass Khi P2 mức cao (+5V) tranzitor không dẫn, Relay ngắt mạch, P2 mức thấp (0V) tranzitor dẫn làm đóng Relay cho dịng 220V qua thiết bị 3.3 Lưu đồ thuật toán điều khiển ngõ P2 37 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ Begin Thu tín hiệu Y Bấm phin Đảo bit P2.0 Bấm phin Y Đảo bit P2.1 Bấm phin Y Đảo bit P2.6 Bấm phin VOL Y Đảo bit P2.7 Bấm phin Y SETB P2.0 P2.6 Bấm phin Y CLR bit P2.0 P2.6 N 3.4 Mã chương Trình $MOD51 ORG 00H 38 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ MOV P2,#01111111B ; cấp nguồn tắt tất thiết bị LCALL LONG_DELAY ; cho tín hiệu nhận không bị sai ; MAIN: SETB P3.3 MOV A,#01000000B RP1: JB P3.3,RP1 RP2: JNB P3.3,RP2 RP3: JB P3.3,RP3 LCALL DELAY MOV C,P3.3 JC BIT0 SETB C RRC A JC ENG_SINGNAL SJMP RP2 ; -BIT0: 39 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ CLR C RRC A JC ENG_SINGNAL SJMP RP3 ; ENG_SINGNAL: LCALL LONG_DELAY RR A MOV P1,A ; PHIM1: CJNE A,#00000000B,PHIM2 CPL P2.0 SJMP MAIN ; -PHIM2: CJNE A,#1,PHIM3 CPL P2.1 SJMP MAIN ; -40 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ PHIM3: CJNE A,#2,PHIM4 CPL P2.2 SJMP MAIN ; PHIM4: CJNE A,#3,PHIM5 CPL P2.3 SJMP MAIN ; PHIM5: CJNE A,#4,PHIM6 CPL P2.4 SJMP MAIN ; -PHIM6: CJNE A,#5,PHIM7 CPL P2.5 SJMP MAIN ; -41 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ PHIM7: CJNE A,#6,PHIM8 CPL P2.6 SJMP MAIN ; -PHIM8: CJNE A,#7,PHIM9 SETB P2.0 SETB P2.1 SETB P2.2 SETB P2.3 SETB P2.4 SETB P2.5 SETB P2.6 SJMP MAIN ; PHIM9: CJNE A,#8,PHIMVOL CLR P2.0 CLR P2.1 CLR P2.2 42 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ CLR P2.3 CLR P2.4 CLR P2.5 CLR P2.6 ; PHIMVOL: CJNE A,#10,OTHER CPL P2.7 SJMP MAIN ; -OTHER: LJMP MAIN ; DELAY: MOV R5,#165 LAP: NOP NOP NOP DJNZ R5,LAP RET 43 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ ; LONG_DELAY: MOV R5,#50 MP1: MOV R6,#255 MP2: DJNZ R6,MP2 DJNZ R5,MP1 RET ; END ; - Mã lệnh Remod TV Sony: Tín hiệu tới P3.3 Phím Mã lệnh (HEX) 00000000B 00000001B 00000010B 00000011B 00000100B 00000101B 44 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ 00000110B 00000111B 00001000B 00001001B 10 3.4 Sơ đồ mạch in 45 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ CHƯƠNG 4: HƯỚNG PHÁT TRIỂN CỦA ĐỒ ÁN - Đồ án xây dựng thành công mạch điều khiển từ xa, tắt mở thiết bị theo ý muốn Phần cứng chạy tương đối ổn định, nhiên lần thực đồ án, nên kinh nghiện chưa nhiều Mạch điều khiển đựợc số thiết bị, số chân Vi xử lý nhiều - Một đặc điểm mạch là: điện, sau có điện trở lại tất thiết bị tắt, điều có tác dụng bảo vệ hệ thống gia đình Tuy nhiên đơi lúc khơng tiện lợi Điểm khắc phục cách sử dụng nhớ EPROM để lưu trạng thái thiết bị trước điện, có điện trở lại đọc nhớ để điều khiển ngõ - Thiết kế thêm chức nút bấm cho chân tín hiệu đề phịng hư hỏng Remote - Mạch kết hợp với định thời gian, nhớ để hẹn cho thiết bị tắt mở tự động cần thiết 46 Tài liệu sưu tầm group ARDUINO IOT VIETNAMhttps://www.facebook.com/groups/486295328966960/ ... AD1 37 AD2 36 AD3 35 AD4 34 AD5 33 AD6 32 AD7 L2 22 0V Q2 R6 A1015 2K2 +5V 21 22 23 24 25 26 27 28 R3 D3 330R RL3 5V D 4007 10 11 12 13 14 15 16 17 D3 L3 22 0V Q3 R7 AT89C51 A1015 Remod 2K2 +5V R4... XTAL2 10uF RST R9 +5V 10k VO U2 VI GND 29 30 31 PSEN ALE EA P1.0 P1.1 P1 .2 P1.3 P1.4 P1.5 P1.6 P1.7 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 R2 P2.0/A8 P2.1/A9 P2 .2/ A10 P2.3/A11 P2.4/A 12 P2.5/A13 P2.6/A14... hiệu điều khiển cổng P2 Trong mạch sử dụng chân P2, từ P2.0 đến P2.6 để điều khiển thiết bị điện 22 0V tắt mở theo ý muốn nhờ RELAY 5V P2.7 dùng để tắt bật led đoạn Các chân từ P2.0 đến P2.6 nối