Giáo trình Vi điều khiển - Phần 2

Ngay sau khi reset hệ thống, bộ đếm chương trình PC được nạp 0000H. Lệnh đầu tiên được thực thi là LJMP MAIN, lệnh này rẽ nhánh đến chương trình chính ở địa chỉ 0030H trong bộ nhớ chương trình. Ba lệnh đầu tiên của chương trình chính sẽ khởi động Timer 0 ở chế độ 8 bit tự động nạp lại (Mode 2), sao cho Timer 0 sẽ tràn sau mỗi 50µs. Lệnh MOV IE, #82H cho phép các ngắt do Timer0 tạo ra. Mỗi một lần tràn, Timer sẽ tạo ra một ngắt. Dĩ nhiên là lần tràn đầu tiên sẽ không xuất hiện sau 50µs do chương trình chính đang ở trong vòng lặp “không làm gì”. Khi ngắt xuất hiện sau mỗi 50µs, chương trình chính bị ngắt và ISR cho Timer0 được thực thi. Ở ví dụ trên ISR này chỉ đơn giản lấy bù bit của port và quay trở về chương trình chính nơi vòng lặp “không làm gì” được thực thi để chờ một ngắt mới sau mỗi 50µs.

pdf146 trang | Chia sẻ: huongthu9 | Lượt xem: 494 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Vi điều khiển - Phần 2, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
12 Q4 7 Q5 5 Q6 4 Q7 6 Q8 14 Q9 13 Q10 15 Q12 1 Q13 2 Q14 3VCC 16 GND 8 OSC 9 OSC 10 VCC Hình 6.4.1: Sơ đồ nguyên lý khối phát xung vuông (Square Wave Generator). 6.4.1.2. Sơ đồ bố trí linh kiện. Hình 6.4.2: Khối phát xung vuông (Square Wave Generator). BÀI THỰC HÀNH Viết chương trình, mô phỏng và lắp ráp mạch điều khiển đếm số xung tại chân INT0 (sử dụng ngắt ngoài) và hiển thị số xung này (tối đa là 255 lần) lên ba LED 7 đoạn (LED7 – LED4 được nối với Port0, SEL IN1 được nối với Port1, PULSE được nối với chân INT0) 6.4.2. Lưu đồ giải thuật.  Bước 1: Vẽ lưu đồ giải thuật của chương trình điều khiển. 393 Hình 6.4.3: Lưu đồ giải thuật của chương trình. 6.4.3. Chương trình điều khiển. Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình và biên dịch, kiểm tra lỗi cú pháp của chương trình.  Bước 2: Khởi động phần mềm Topview Simulation.  Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên tập tin chương trình là: J2.ASM  Bước 4: Viết chương trình điều khiển dưới đây vào máy tính. ;*************************************************** ;CHUONG TRINH DIEU KHIEN DEM SO XUNG TAI CHAN INT0 (SU DUNG NGAT NGOAI INT0) ;*************************************************** ;KET NOI: 7 SEG -> PORT0 SEL LED -> PORT1 PULSE - >INT0 ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 03H ;DIEM NHAP ISR NGOAI 0 EX0ISR: INC 40H ;TANG GIA TRI XUNG KICH RETI ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV 40H,#0 ;NAP GIA TRI XUNG KICH BAN DAU MOV IE,#81H ;CHO PHEP NGAT NGOAI 0 HOAT DONG 394 SETB IT0 ;DAT CHE DO NGAT NGOAI KICH KHOI CANH MP1: MOV R7,40H ;SO LUONG XUNG KICH ACALL BIN8TOBCD ;CHUYEN DOI BIN SANG BCD ACALL BCD4TO7SEG ;CHUYEN DOI BCD SANG 7 DOAN ACALL DISP7SEGMUL4 ;HIEN THI SJMP MP1 ;*************************************************** BIN8TOBCD: ;CTC CHUYEN DOI SO BINARY 8 BIT (<= 255) SANG SO BCD. PUSH ACC PUSH B MOV B,#10 MOV A,R7 DIV AB ;LAY R7 CHIA CHO 10 PUSH B ;CAT SO HANG DON VI MOV B,#10 DIV AB ;LAY KET QUA TREN CHIA TIEP CHO 10 MOV R7,A ;R7 = TRAM MOV A,B ;LAY SO HANG CHUC SWAP A ;DUA SO HANG CHUC LEN 4 BIT CAO POP B ;LAY SO HANG DON VI TU STACK ORL A,B ;KET HOP SO HANG CHUC VA SO HANG DON VI MOV R6,A ;R6 = CHUC - DON VI POP B POP ACC RET ;*************************************************** BCD4TO7SEG: CTC GIAI MA TU SO BCD NEN SANG MA 7 DOAN (2 SO BCD NEN). PUSH DPH ;CATTAM THOI GIA TRI CAC THANH GHI PUSH DPL PUSH ACC MOV DPTR,#CODE7SEG ;DIA CHI VUNG MA 7 DOAN MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 60H,A ;CAT BCD HANG DON VI VAO O NHO MOV A,R6 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP 395 SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 61H,A ;CAT BCD HANG CHUC VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0FH ;XOA 4 BIT CAO MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 62H,A ;CAT BCD HANG TRAM VAO O NHO MOV A,R7 ;LAY SO BCD CAN GIAI MA ANL A,#0F0H ;XOA 4 BIT THAP SWAP A ;HOAN CHUYEN CAO - THAP MOVC A,@A+DPTR ;LAY MA 7 DOAN TUONG UNG MOV 63H,A ;CAT BCD HANG NGAN VAO O NHO POP ACC ;PHUC HOI GIA TRI CHO CAC THANH GHI POP DPL POP DPH RET CODE7SEG: ;VUNG CHUA MA 7 DOAN (0 -> 9) DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;*************************************************** DISP7SEGMUL4: ;CTC QUET HIEN THI LED 7 DOAN (4 LED 7 DOAN) PUSH ACC ;CATTAM THOI GIA TRI CAC THANH GHI PUSH 00H MOV A,#0F7H ;MA QUET MOV R0,#63H ;DIA CHI VUNG MA HIEN THI DISP: MOV P0,@R0 ;XUAT MA HIEN THI MOV P1,A ;XUAT MA QUET LCALL DELAYLED MOV P1,#0FFH ;CHONG LEM DEC R0 ;LAY MA HIEN THI KE TIEP RR A ;CHUYEN SANG LED KE TIEP CJNE R0,#5FH,DISP ;KIEM TRA DA QUET XONG CHUA POP 00H ;PHUC HOI GIA TRI CHO CAC THANH GHI POP ACC RET ;*************************************************** DELAYLED: ;CHUONG TRINH CON TAO THOI GIAN TRE 2.5MS PUSH 00H PUSH 01H MOV R1,#5 DEL: 396 MOV R0,#250 DJNZ R0,$ DJNZ R1,DEL POP 01H POP 00H RET END  Bước 5: Lưu chương trình trên vào máy tính.  Bước 6: Thực hiện biên dịch và kiểm tra lỗi chương trình. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5. o Nếu không có lỗi xuất hiện thì phần mềm sẽ tự động tạo tập tin mã máy với tên là: J2.HEX và thực hiện tiếp theo các phần nội dung dưới đây. 6.4.4. Mô phỏng hoạt động. Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô phỏng quá trình hoạt động của hệ thống vi điều khiển.  Bước 7: Khởi động phần mềm ISIS 7 Professional (Protues 7.10).  Bước 8: Vẽ sơ đồ thiết kế mạch mô phỏng điều khiển LED 7 đoạn như Hình 6.5.4 dưới đây. AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 A B C D E F G A B C D E F G AD0 A AD1 B AD2 C AD3 D AD4 E AD5 F AD6 G A B C D E F G A B C D E F G P1.3 P 1 .0 P 1 .1 P 1 .2 P 1 .3 P1.0 P1.1 P1.2 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 2 3 4 5 6 7 8 9 1 RP1 10K + 5 V MA ÏCH Ñ I EÀU K HI EÅN N GA ÉT ( N GA ÉT N GOA ØI ) LED7 Q1 A1015 +5V LED6 Q2 A1015 +5V R2 1K R3 1K R4 56 R5 56 R6 56 R7 56 R8 56 R9 56 R10 56 LED5 Q3 A1015 +5V LED4 Q4 A1015 +5V R11 1K R12 1K C3 10uF R1 10k +5V U1(P3.2/INT0) A B 397 Hình 6.4.4: Sơ đồ nguyên lý mô phỏng hệ thống điều khiển.  Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính với tên tập tin là: J-2.DSN. Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học.  Bước 9: Chọn tập tin chương trình cần mô phỏng (tập tin mã máy đã được tạo ra từ Bước 6) cho hệ thống vi điều khiển: J2.HEX  Bước 10: Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả trên màn hình máy tính. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do giải thuật chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5 (do giải thuật chương trình không chính xác) hoặc Bước 8 (do mạch mô phỏng vẽ không chính xác). o Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây. 6.4.5. Lắp mạch và nạp chương trình điều khiển. Sử dụng các khối "Microcontroller Unit Slot", "Square Wave Generator", và "Power Supply" có sẵn trên mô hình thực hành vi điều khiển để lắp ráp mạch theo thiết kế bên trên.  Bước 11: Kết nối các khối trên mô hình như Hình 6.5.5 để tạo thành hệ thống mạch điều khiển như bên trên. o Tắt nguồn AC cấp cho mô hình thực hành. o Dùng dây bus 4 nối J64 (PORT1) ở khối vi điều khiển với J1 (SEL IN1) ở khối LED 7 đoạn (chú ý là ta chỉ nối 4 bit thấp của J64 với J1) o Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J4 (7SEG IN MUL) ở khối giải mã. o Dùng dây bus 1 nối J33 (PULSE) ở khối tạo xung với J66 (PORT3 / FUNCTION) ở khối vi điều khiển (chú ý là ta chỉ nối bit 2 (chân INT0\) của J66 và J33 lại với nhau). o Dùng dây bus 3 nối J113 (POWER) ở khối tạo xung và J110 (POWER) ở khối LED 7 đoạn với nguồn +5V ở khối nguồn. 398 Hình 6.4.5: Sơ đồ kết nối mạch trên mô hình. Sử dụng phần mềm Flash Magic để thực hiện việc nạp chương trình cho vi điều khiển P89V51RB2 trên mô hình thực hành.  Bước 12: Bật nguồn AC cấp cho mô hình thực hành.  Bước 13: Khởi động phần mềm Flash Magic.  Bước 14: Kiểm tra cấu hình phần mềm (loại vi điều khiển, cổng COM, tốc độ truyền, chuẩn giao tiếp,...  Bước 15: Chọn tập tin chương trình điều khiển (tập tin mã máy đã được tạo ra từ Bước 6): J2.HEX  Bước 16: Nạp chương trình vào vi điều khiển.  Bước 17: Nhấn nút "Master Reset" ở khối "Microcontroller Unit Slot" để chạy chương trình và quan sát trực tiếp kết quả trên mô hình thực hành. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại. Sau khi hoàn tất việc kiểm tra và hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 15. o Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành. 6.4.6. Bài tập thực hành.  Bài 1: Hãy viết chương trình điều khiển đếm số lần nhấn nút nhấn KEY1 (sử dụng ngắt ngoài) và hiển thị số lần nhấn nút này (tối đa là 255 lần) lên ba LED 7 đoạn (LED4, LED5 và LED6). Tự lựa chọn phương pháp kết nối nút nhấn và LED 7 đoạn. 399  Bài 2: Hãy viết chương trình điều khiển đếm số lần nhấn nút nhấn KEY1 và KEY2 (sử dụng hai ngắt ngoài) và hiển thị số lần nhấn nút KEY1 (tối đa là 255 lần) lên ba LED 7 đoạn (LED0, LED1 và LED2), hiển thị số lần nhấn nút KEY2 (tối đa là 255 lần) lên ba LED 7 đoạn (LED5, LED6 và LED7). Tự lựa chọn phương pháp kết nối nút nhấn và LED 7 đoạn. 6.5. Ứng dụng ngắt bộ định thời trong lập trình điều khiển thiết bị ngoại vi. 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.  Thiết kế các ứng dụng điều khiển thực tế có sử dụng ngắt (Interrupt).  So sánh ưu và nhược điểm của các chương trình điều khiển có sử dụng ngắt và không sử dụng ngắt. Yêu cầu:  Nắm vững tập lệnh của vi điều khiển MCS-51.  Tham khảo trước hoạt động của ngắt (Interrupt) ở các chế độ khác nhau.  Nắm được phương pháp lập trình và điều khiển có sử dụng các ngắt. 6.5.1. Sơ đồ nguyên lý. 6.5.1.1. Sơ đồ nguyên lý. GND GND +5V L E D 5 L E D 2 L E D 1 L E D 6 L E D 4 L E D 0 L E D 7 L E D 3 L E D 2 L E D 1 L E D 4 L E D 0 L E D 5 L E D 3 L E D 6 L E D 7 L E D 0 D29 LED L E D 3 D22 LED D23 LED R3 330 1 2 3 4 5 6 7 8 9 D1 LED J1 POWER 1 2 3 D13 LED D4 LED D27 LED J3 BARLED2 1 2 3 4 5 6 7 8 D25 LED D21 LED D19 LED D31 LED D30 LED D12 LED D10 LED D24 LED D7 LED R2 330 1 2 3 4 5 6 7 8 9 D8 LED D26 LED D9 LED R4 330 1 2 3 4 5 6 7 8 9 D15 LED D2 LED D20 LED D14 LED J5 BARLED4 1 2 3 4 5 6 7 8 J2 BARLED1 1 2 3 4 5 6 7 8 D5 LED J4 BARLED3 1 2 3 4 5 6 7 8 D32 LED D3 LED D11 LED R1 330 1 2 3 4 5 6 7 8 9 D16 LED D6 LED D18 LED D17 LED D28 LED L E D 4 L E D 5 L E D 2 L E D 1 L E D 7 L E D 6 VCC VCC VCC VCCVCC L E D 2 L E D 1 L E D 0 L E D 5 L E D 3 L E D 6 L E D 4 L E D 7 Hình 6.5.1: Sơ đồ nguyên lý khối LED đơn (Point LED). 6.5.1.2. Sơ đồ bố trí linh kiện. 400 Hình 6.5.2: Khối LED đơn (Point LED). BÀI THỰC HÀNH Viết chương trình, mô phỏng và lắp ráp mạch điều khiển tạo sóng vuông tuần hoàn có tần số 10 Hz (sử dụng ngắt Timer) tại chân P0.0 và hiển thị mức logic tại chân này lên LED0 (LED0 được nối với P0.0) có sử dụng bộ đệm đảo 6.5.2. Lưu đồ giải thuật.  Bước 1: Vẽ lưu đồ giải thuật của chương trình điều khiển. Hình 6.5.3: Lưu đồ giải thuật của chương trình. 6.5.3. Chương trình điều khiển. Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình và biên dịch, kiểm tra lỗi cú pháp của chương trình.  Bước 2: Khởi động phần mềm Topview Simulation.  Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên tập tin chương trình là: J1.ASM  Bước 4: Viết chương trình điều khiển dưới đây vào máy tính. ;*************************************************** 401 ;CHUONG TRINH DIEU KHIEN TAO SONG VUONG TAI P0.0 CO SU DUNG NGAT TIMER0 ;*************************************************** ;KET NOI: 8 LED ->PORT0 ;*************************************************** ORG 00H ;DIEM NHAP RESET SJMP MAIN ORG 0BH ;DIEM NHAP ISR TIMER0 T0ISR: CPL P0.0 ;DAO TRANG THAI P0.0 (TAO XUNG) RETI ORG 30H ;DIEM NHAP CHUONG TRINH CHINH MAIN: MOV TMOD,#01H ;TIMER0 -> TIMER 16 BIT MOV TH0,#(-50000) ;THOI GIAN TRE = 50 MS (THOI GIAN XUNG O MUC THAP HOAC MUC CAO) MOV TL0,#(-50000) ;CHU KY = 2 x 50 = 100 MS -> F = 10 Hz SETB TR0 ;CHO TIMER BAT DAU CHAY MOV IE,#82H ;CHO PHEP NGAT TIMER0 HOAT DONG SJMP $ ;DUNG YEN END  Bước 5: Lưu chương trình trên vào máy tính.  Bước 6: Thực hiện biên dịch và kiểm tra lỗi chương trình. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5. o Nếu không có lỗi xuất hiện thì phần mềm sẽ tự động tạo tập tin mã máy với tên là: J1.HEX và thực hiện tiếp theo các phần nội dung dưới đây. 6.5.4. Mô phỏng hoạt động. Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô phỏng quá trình hoạt động của hệ thống vi điều khiển.  Bước 7: Khởi động phần mềm ISIS 7 Professional (Protues 7.10).  Bước 8: Vẽ sơ đồ thiết kế mạch mô phỏng điều khiển LED đơn như Hình 6.6.4 dưới đây. 402 D 7 D 0 D 1 D 2 D 3 D 4 D 5 D 6 AD7 AD7 AD0 D0AD0 AD0 AD1 AD1 AD2 AD2 AD3 AD3 AD4 AD4 AD5 AD5 AD6 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D7 D6 D5 D4 D3 D2 D1 D0 D1 D2 D3 D4 D5 D6 D7 D 0 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 D1 R2 330 +5V D2 R3 330 +5V D3 R4 330 +5V D4 R5 330 +5V D5 R6 330 +5V D6 R7 330 +5V D7 R8 330 +5V D8 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 +5V 2 3 4 5 6 7 8 9 1 RP1 10K + 5 V MA ÏCH Ñ I EÀU K HI EÅN N GA ÉT ( N GA ÉT T I MER ) 2 3 4 5 6 7 8 9 1 RP2 10K +5V A B Hình 6.5.4: Sơ đồ nguyên lý mô phỏng hệ thống điều khiển.  Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính với tên tập tin là: J-1.DSN. Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học.  Bước 9: Chọn tập tin chương trình cần mô phỏng (tập tin mã máy đã được tạo ra từ Bước 6) cho hệ thống vi điều khiển: J1.HEX  Bước 10: Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả trên màn hình máy tính. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do giải thuật chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5 (do giải thuật chương trình không chính xác) hoặc Bước 8 (do mạch mô phỏng vẽ không chính xác). o Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây. 6.5.5. Lắp mạch và nạp chương trình điều khiển. Sử dụng các khối "Microcontroller Unit Slot", "Point LED", "Inverter" và "Power Supply" có sẵn trên mô hình thực hành vi điều khiển để lắp ráp mạch theo thiết kế bên trên. 403  Bước 11: Kết nối các khối trên mô hình như Hình 6.5.5 để tạo thành hệ thống mạch điều khiển như bên trên. o Tắt nguồn AC cấp cho mô hình thực hành. o Dùng dây bus 8 nối J64 (PORT0 / DATA) ở khối vi điều khiển với J12 (BAR LED 2) ở khối dãy LED. o Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED với nguồn +5V ở khối nguồn. Hình 6.5.5: Sơ đồ kết nối mạch trên mô hình. Sử dụng phần mềm Flash Magic để thực hiện việc nạp chương trình cho vi điều khiển P89V51RB2 trên mô hình thực hành.  Bước 12: Bật nguồn AC cấp cho mô hình thực hành.  Bước 13: Khởi động phần mềm Flash Magic.  Bước 14: Kiểm tra cấu hình phần mềm (loại vi điều khiển, cổng COM, tốc độ truyền, chuẩn giao tiếp,...  Bước 15: Chọn tập tin chương trình điều khiển (tập tin mã máy đã được tạo ra từ Bước 6): J1.HEX  Bước 16: Nạp chương trình vào vi điều khiển.  Bước 17: Nhấn nút "Master Reset" ở khối "Microcontroller Unit Slot" để chạy chương trình và quan sát trực tiếp kết quả trên mô hình thực hành. 404 o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại. Sau khi hoàn tất việc kiểm tra và hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 15. o Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành. 6.5.6. Bài tập thực hành.  Bài 1: Hãy viết chương trình điều khiển tạo sóng vuông tuần hoàn có tần số 5 Hz (sử dụng ngắt Timer) tại chân P1.0 và hiển thị mức logic tại chân này lên LED0. Tự lựa chọn phương pháp kết nối LED.  Bài 2: Hãy viết chương trình điều khiển tạo sóng vuông tuần hoàn có tần số 1 Hz (sử dụng ngắt Timer) tại chân P1.0 và hiển thị mức logic tại chân này lên LED0. Tự lựa chọn phương pháp kết nối LED.  Bài 3: Hãy viết chương trình điều khiển đồng thời tạo hai sóng vuông tuần hoàn có tần số 1 Hz và 5 Hz (sử dụng ngắt Timer) tại chân P1.0 và P1.1, hiển thị mức logic tại các chân này lên LED0 và LED1. Tự lựa chọn phương pháp kết nối LED. 6.5.7. Ứng dụng ngắt port nối tiếp trong lập trình điều khiển thiết bị ngoại vi. 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 truyền dữ liệu giữa hai vi điều khiển thông qua port nối tiếp (UART) để điều khiển các thiết bị ngoại vi có sử dụng phương pháp thiết lập ngắt port nối tiếp.  Trình bày kỹ thuật truyền dữ liệu giữa hai vi điều khiển thông qua port nối tiếp (UART) có sử dụng phương pháp thiết lập ngắt port nối tiếp.  Trình bày một số ứng dụng trong kỹ thuật truyền dữ liệu giữa hai vi điều khiển thông qua port nối tiếp (UART) có sử dụng phương pháp thiết lập ngắt port nối tiếp. Yêu cầu:  Nắm vững tập lệnh của vi điều khiển MCS-51. 405  Biết cách viết các chương trình điều khiển sử dụng port nối tiếp (UART) để điều khiển các thiết bị ngoại vi khác nhau có sử dụng phương pháp thiết lập ngắt port nối tiếp.  Nắm được nguyên lý truyền dữ liệu thông qua port nối tiếp (UART) có sử dụng phương pháp thiết lập ngắt port nối tiếp. 6.5.8. Sơ đồ nguyên lý. 6.5.8.1. Sơ đồ nguyên lý. GND GND +5V L E D 5 L E D 2 L E D 1 L E D 6 L E D 4 L E D 0 L E D 7 L E D 3 L E D 2 L E D 1 L E D 4 L E D 0 L E D 5 L E D 3 L E D 6 L E D 7 L E D 0 D29 LED L E D 3 D22 LED D23 LED R3 330 1 2 3 4 5 6 7 8 9 D1 LED J1 POWER 1 2 3 D13 LED D4 LED D27 LED J3 BARLED2 1 2 3 4 5 6 7 8 D25 LED D21 LED D19 LED D31 LED D30 LED D12 LED D10 LED D24 LED D7 LED R2 330 1 2 3 4 5 6 7 8 9 D8 LED D26 LED D9 LED R4 330 1 2 3 4 5 6 7 8 9 D15 LED D2 LED D20 LED D14 LED J5 BARLED4 1 2 3 4 5 6 7 8 J2 BARLED1 1 2 3 4 5 6 7 8 D5 LED J4 BARLED3 1 2 3 4 5 6 7 8 D32 LED D3 LED D11 LED R1 330 1 2 3 4 5 6 7 8 9 D16 LED D6 LED D18 LED D17 LED D28 LED L E D 4 L E D 5 L E D 2 L E D 1 L E D 7 L E D 6 VCC VCC VCC VCCVCC L E D 2 L E D 1 L E D 0 L E D 5 L E D 3 L E D 6 L E D 4 L E D 7 Hình 6.5.6: Sơ đồ nguyên lý khối LED đơn (Point LED). SW5 KEY3 SW2 KEY0 SW6 KEY4 SW4 KEY2 SW9 KEY7 SW3 KEY1 SW7 KEY5 J25 POWER 1 2 3 SW8 KEY6 J26 PUSH KEY 1 2 3 4 5 6 7 8 VCC KEY1 KEY7 KEY0 KEY3 KEY5 KEY4 KEY6 KEY2 K5 K6 K2 K4 K3 K7 K0 K1 VCCR1510K 1 2 3 4 5 6 7 8 9 +5V GND GND K 0 K 1 K 2 K 3 K 4 K 5 K 6 K 7 K7 K6 K5 K4 K3 K2 K1 K0 Hình 6.5.7: Sơ đồ nguyên lý khối nút nhấn (Momentary Switch). SEL4 SEL1 SEL7 SEL6 SEL5 SEL0 SEL2 SEL3 F D G DP E C B A GND GND +5V Q 7 R35 2K2 J58 7SEG6 IN 1 2 3 4 5 6 7 8 J53 SEL LED IN 1 2 3 4 5 6 7 8 R 5 5 3 3 0 R 6 6 3 3 0 R 7 5 3 3 0 R 6 9 3 3 0 R 6 4 3 3 0 Q7 A1015 FD G Q5 A1015 E U22 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 U23 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 U24 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 R30 2K2 A D PB R 5 3 3 3 0 C A U28 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 R 4 8 3 3 0 G R40 330 C R 6 5 3 3 0 R 5 6 3 3 0 Q1 A1015 U25 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 R 5 8 3 3 0 D P U27 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 R 4 5 3 3 0 J55 7SEG IN MUL 1 2 3 4 5 6 7 8 R34 2K2 B R42 330 F R 6 7 3 3 0 R31 2K2 Q 6 ED R 4 7 3 3 0 Q 4 R 5 1 3 3 0 A R76 330 R38 330 G R 7 4 3 3 0 C GA R29 2K2 B J52 SEL IN1 1 2 3 4 Q3 A1015 R 7 2 3 3 0 R36 2K2 R 5 9 3 3 0 R 6 2 3 3 0 R 7 0 3 3 0 C D P Q8 A1015 R 5 7 3 3 0 Q6 A1015 J54 SEL IN1 1 2 3 4 J56 POWER 1 2 3 J60 7SEG4 IN 1 2 3 4 5 6 7 8 R 5 4 3 3 0 R33 2K2 R39 330 B R 5 2 3 3 0 F R 7 3 3 3 0 EF R 4 4 3 3 0 Q 5 R 6 0 3 3 0 DE D P R 4 6 3 3 0 D R 4 9 3 3 0 Q2 A1015 J57 7SEG7 IN 1 2 3 4 5 6 7 8 R 6 8 3 3 0 Q 2 R41 330 U26 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 Q 0 R 7 1 3 3 0 R 6 1 3 3 0 R37 330 U21 LED7 C A 8 C A 3 A 7 B 6 C 4 D 2 F 9 E 1 G 1 0 D P 5 R43 330 R 6 3 3 3 0 R32 2K2 R 5 0 3 3 0 Q4 A1015 Q 3 Q 1 J59 7SEG5 IN 1 2 3 4 5 6 7 8 VCC VCCVCCVCC VCC VCC VCCVCCVCC A B C D D P E GF F D P DA E GCB F D P D P D EA CA BE G D FCB G SEL0 SEL2 SEL1 SEL3 Q0 Q1 Q3 Q2 Q7 Q6SEL5 Q5 Q4 SEL4 SEL6 SEL7 Q0 Q1 Q3 Q2 Q5 Q6 Q7 Q4 F E DP B C G D A Hình 6.5.8: Sơ đồ nguyên lý khối LED 7 đoạn (7 Segment LED). 406 SEL B SEL A SEL0 SEL3 SEL2 SEL2 SEL1 SEL3 SEL1 SEL0 E C B D G DP F A C G D F E DP A B C136 104 U102A 74139 A 2 B 3 G 1 Y0 4 Y1 5 Y2 6 Y3 7 V C C 1 6 G N D 8 U102B 74139 A 14 B 13 G 15 Y0 12 Y1 11 Y2 10 Y3 9 U98 74138 A 1 B 2 C 3 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 VCC 16 GND 8 G1 6 G2A 4 G2B 5 U97 7447 D0 7 D1 1 D2 2 D3 6 BI/RBO 4 RBI 5 LT 3 A 13 B 12 C 11 D 10 E 9 F 15 G 14 VCC 16 GND 8 C135 104 C A C140 104 B D D A C B J211 DECODER 3-8 1 2 3J212 7SEG OUT 3 1 2 3 4 5 6 7 8 U101 7447 D0 7 D1 1 D2 2 D3 6 BI/RBO 4 RBI 5 LT 3 A 13 B 12 C 11 D 10 E 9 F 15 G 14 VCC 16 GND 8 A D J219 DECODER 2-4 1 2 J220 DECODER OUT 1 2 3 4 D J214 BCD IN 3-4 1 2 3 4 5 6 7 8 B C G A C F E J213 BCD IN 1-2 1 2 3 4 5 6 7 8 C A C138 104 J209 DECODER OUT 1 2 3 4 5 6 7 8 J215 7SEG OUT 2 1 2 3 4 5 6 7 8 E C DP G J210 7SEG OUT 1 1 2 3 4 5 6 7 8 D J218 DECODER OUT 1 2 3 4 B A D DP F B U99 7447 D0 7 D1 1 D2 2 D3 6 BI/RBO 4 RBI 5 LT 3 A 13 B 12 C 11 D 10 E 9 F 15 G 14 VCC 16 GND 8 B J221 POWER 1 2 3 C137 104 J216 7SEG OUT 4 1 2 3 4 5 6 7 8 C139 104 U100 7447 D0 7 D1 1 D2 2 D3 6 BI/RBO 4 RBI 5 LT 3 A 13 B 12 C 11 D 10 E 9 F 15 G 14 VCC 16 GND 8 J217 DECODER 2-4 1 2 VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC VCC GND GND +5V SEL4 SEL5 SEL7 SEL6 SEL2 SEL3 SEL1 SEL0 SEL C SEL B SEL A SEL B SEL A Hình 6.5.9: Sơ đồ nguyên lý khối giải mã 7 đoạn (7 Segment Decoder). 6.5.9. Sơ đồ bố trí linh kiện. Hình 6.5.10: Khối LED đơn (Point LED) Hình 6.5.11: Khối nút nhấn (Momentary Switch). Hình 6.5.12: Khối LED 7 đoạn (7 Segment LED). 407 Hình 6.5.13: Khối giải mã 7 đoạn (7 Segment Decoder). BÀI THỰC HÀNH Viết chương trình, mô phỏng và lắp ráp mạch điều khiển truyền dữ liệu thông qua port nối tiếp. Thay đổi trạng thái của các LED đơn tại vi điều khiển 2 (Slave) theo trạng thái của các nút nhấn tại vi điều khiển 1 (Master) và ngược lại. Sử dụng phương pháp ngắt port nối tiếp cho việc truyền dữ liệu. 6.5.10. Lưu đồ giải thuật.  Bước 1: Vẽ lưu đồ giải thuật của chương trình điều khiển. KIỂM TRA NGẮT PHÁT (TI) = 1 Đ S BEGIN SP_ISR: RECEI_DATA: XÓA CỜ BÁO THU RI = 0 CẤT DỮ LIỆU NHẬN ĐƯỢC TỪ PORT NỐI TIẾP (A) = (SBUF) XUẤT GIÁ TRỊ RA LED (P1) = (A) EXIT_SP_ISR: END TRANS_DATA: XÓA CỜ BÁO PHÁT TI = 0 ĐỌC TRẠNG THÁI CÁC SW (A) = (P0) ĐẢO TRẠNG THÁI LOGIC CỦA CÁC SW TẢI DỮ LIỆU CẦN PHÁT VÀO PORT NỐI TIẾP (SBUF) = (A) MASTER & SLAVE BEGIN THIẾT LẬP VECTƠ Vectơ RESET: 0000H Vectơ ngắt port nối tiếp: 0023H Vectơ chương trình: 0030H SP1 MAIN: ĐIỀU KHIỂN TẮT LED (P1) = 00H CẤU HÌNH PORT NỐI TIẾP T1 AUTO RELOAD BAUD RATE = 9600 BPS DATA = 8 BIT STOP = 1 BIT PARITY = NONE KÍCH HOẠT TIMER 1 TẠO BAUD RATE (TR1) = 1 CHO PHÉP NGẮT PORT NỐI TIẾP (IE) = 90H Hình 6.5.14: Lưu đồ giải thuật của chương trình. 6.5.11. Chương trình điều khiển. Sử dụng phần mềm Topview Simulation để thực hiện việc viết chương trình và biên dịch, kiểm tra lỗi cú pháp của chương trình.  Bước 2: Khởi động phần mềm Topview Simulation. 408  Bước 3: Mở chức năng soạn thảo một chương trình mới và đặt tên tập tin chương trình là: SP_1_M.ASM và SP_1_S.ASM  Bước 4: Viết chương trình điều khiển dưới đây vào máy tính. Chương trình cho vi điều khiển Master: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN. ;CHUONG TRINH CHO VI DIEU KHIEN MASTER. ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG. ;MO PHONG PROTUES: SERIALPORT_1. ;*************************************************** ;*************************************************** ;KET NOI: 8 SWITCH -> PORT 0 (ACT = 0) ; 8 LED -> PORT 1 (CO SU DUNG DEM DAO - ACT = 1) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET. SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP. AJMP SP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP. ORG 30H ;DIEM NHAP CHUONG TRINH CHINH. MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1. MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD CHO SERIAL PORT. MOV TH1,#(-3) ;BAUD RATE = 9600. SETB TR1 ;TIMER HOAT DONG - PORT NOI TIEP HOAT DONG. ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP. MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP. ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT SJMP MP1 ;QUAY LAI ;**************************************************** 409 SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP. ;P0 = DU LIEU PHAT. ;P1 = DU LIEU THU. PUSH ACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU. RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A. CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP. MOV A,SBUF ;THU DU LIEU. MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED. SJMP EXIT_SP_ISR ;THOAT KHOI ISR. TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP. CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP. MOV A,P0 ;DOC DU LIEU LAY TU PORT SW. CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1). MOV SBUF,A ;PHAT DU LIEU. EXIT_SP_ISR: POP ACC RETI END Chương trình cho vi điều khiển Slave: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN. ;CHUONG TRINH CHO VI DIEU KHIEN SLAVER. ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG. ;MO PHONG PROTUES: SERIALPORT_1. ;*************************************************** ;KET NOI: 8 SWITCH -> PORT 0 (ACT = 0) ; 8 LED -> PORT 1 (CO SU DUNG DEM DAO - ACT = 1) ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET. SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP. AJMP SP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP. ORG 30H ;DIEM NHAP CHUONG TRINH CHINH. MAIN: MOV P1,#00H ;LED TAT 410 ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1. MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD CHO SERIAL PORT. MOV TH1,#(-3) ;BAUD RATE = 9600. SETB TR1 ;TIMER HOAT DONG - PORT NOI TIEP HOAT DONG. ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP. MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP. ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT SJMP MP1 ;QUAY LAI ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP. ;P0 = DU LIEU PHAT. ;P1 = DU LIEU THU. PUSH ACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU. RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A. CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP. MOV A,SBUF ;THU DU LIEU. MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED. SJMP EXIT_SP_ISR ;THOAT KHOI ISR. TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP. CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP. MOV A,P0 ;DOC DU LIEU LAY TU PORT SW. CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1). MOV SBUF,A ;PHAT DU LIEU. EXIT_SP_ISR: POP ACC RETI END  Bước 5: Lưu chương trình trên vào máy tính.  Bước 6: Thực hiện biên dịch và kiểm tra lỗi chương trình. 411 o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5. o Nếu không có lỗi xuất hiện thì phần mềm sẽ tự động tạo tập tin mã máy với tên là: SP_1_M.HEX và SP_1_S.HEX và thực hiện tiếp theo các phần nội dung dưới đây. 6.5.12. Mô phỏng hoạt động. Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô phỏng quá trình hoạt động của hệ thống vi điều khiển.  Bước 7: Khởi động phần mềm ISIS 7 Professional (Protues 7.10).  Bước 8: Vẽ sơ đồ thiết kế mạch mô phỏng điều khiển truyền dữ liệu nối tiếp như Hình 6.5.15 dưới đây. P0.7M P0.0M P0.0M P0.1M P0.2M P0.3M P0.4M P0.5M P0.6M P0.7M P0.6M P0.5M P0.4M P0.3M P0.2M P0.1M P0.7S P0.0S P0.0S P0.1S P0.2S P0.3S P0.4S P0.5S P0.6S P0.7S P0.6S P0.5S P0.4S P0.3S P0.2S P0.1S D 0 S D0M D0M D1M D1M D2M D2M D3M D3M D4M D4M D5M D5M D6M D6M D7M D7M D 7 S D 6 S D 5 S D 4 S D 3 S D 2 S D 1 S P 0 .0 S P 0 .1 S P 0 .2 S P 0 .3 S P 0 .4 S P 0 .5 S P 0 .6 S P 0 .7 S D0SD0S D1SD1S D2SD2S D3SD3S D4SD4S D5SD5S D6SD6S D7SD7S D 0M D 7M D 6M D 5M D 4M D 3M D 2M D 1M P 0 .0 M P 0 .1 M P 0 .2 M P 0 .3 M P 0 .4 M P 0 .5 M P 0 .6 M P 0 .7 M 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 U9 AT89C51 C1 33p C2 33p X1 11.0592MHz C3 10uF R1 10k +5V 2 3 4 5 6 7 8 9 1 RP1 10K + 5 V MA ÏCH ÑI EÀU K H I EÅN GI A O T I EÁP COÅN G N OÁI T I EÁP 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 C4 33p C5 33p X2 11.0592MHz C6 10uF R18 10k +5V 2 3 4 5 6 7 8 9 1 RP2 10K + 5 V MA ST ER SLA V E 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 RP3 10K +5V +5V KEY7 KEY6 KEY5 KEY4 KEY3 KEY2 KEY1 KEY0 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 U3 ULN2803 2 3 4 5 6 7 8 9 1 RP4 10K +5V +5V D8 R10 330 +5V D9 R11 330 +5V D10 R12 330 +5V D11 R13 330 +5V D12 R14 330 +5V D13 R15 330 +5V D14 R16 330 +5V D15 R17 330 +5V KEY15 KEY14 KEY13 KEY12 KEY11 KEY10 KEY9 KEY8 Hình 6.5.15: Sơ đồ nguyên lý mô phỏng hệ thống điều khiển.  Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính với tên tập tin là: SerialPort_1.DSN. Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học.  Bước 9: Chọn tập tin chương trình cần mô phỏng (tập tin mã máy đã được tạo ra từ Bước 6) cho hệ thống vi điều khiển: SP_1_M.HEX và SP_1_S.HEX 412  Bước 10: Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả trên màn hình máy tính. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thông thường do giải thuật chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính xác, cần phải được kiểm tra lại. Sau khi hoàn tất việc hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 5 (do giải thuật chương trình không chính xác) hoặc Bước 8 (do mạch mô phỏng vẽ không chính xác). o Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây. 6.5.13. Lắp mạch và nạp chương trình điều khiển. Sử dụng các khối "Microcontroller Unit Slot", "Point LED", "Inverter" và "Power Supply" có sẵn trên mô hình thực hành vi điều khiển để lắp ráp mạch theo thiết kế bên trên.  Bước 11: Kết nối các khối trên mô hình như Hình 6.5.16 để tạo thành hệ thống mạch điều khiển như bên trên. o Tắt nguồn AC cấp cho mô hình thực hành. Hình 6.5.16: Sơ đồ kết nối mạch trên mô hình. Sử dụng phần mềm Flash Magic để thực hiện việc nạp chương trình cho vi điều khiển P89V51RB2 trên mô hình thực hành.  Bước 12: Bật nguồn AC cấp cho mô hình thực hành.  Bước 13: Khởi động phần mềm Flash Magic.  Bước 14: Kiểm tra cấu hình phần mềm (loại vi điều khiển, cổng COM, tốc độ truyền, chuẩn giao tiếp,...  Bước 15: Chọn tập tin chương trình điều khiển (tập tin mã máy đã được tạo ra từ Bước 6): SP_1_M.HEX và SP_1_S.HEX 413  Bước 16: Nạp chương trình vào vi điều khiển.  Bước 17: Nhấn nút "Master Reset" ở khối "Microcontroller Unit Slot" để chạy chương trình và quan sát trực tiếp kết quả trên mô hình thực hành. o Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này. Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại. Sau khi hoàn tất việc kiểm tra và hiệu chỉnh sai sót thì quay trở về thực hiện từ Bước 15. o Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành. 6.5.14. Bài tập thực hành. 6.5.14.1. Bài tập mẫu.  Bài tập số 1: Nội dung: "Viết chương trình, mô phỏng và lắp ráp mạch điều khiển truyền dữ liệu thông qua port nối tiếp. Thay đổi trạng thái của các LED đơn tại vi điều khiển 2 (Slave) theo trạng thái của các nút nhấn tại vi điều khiển 1 (Master) và ngược lại, trong khi các LED 7 đoạn vẫn hiển thị số đếm liên tục từ 00 đến 99. Sử dụng phương pháp ngắt port nối tiếp cho việc truyền dữ liệu." Lưu đồ giải thuật: 414 Sơ đồ nguyên lý mô phỏng: P0.7M P0.0M P0.0M P0.1M P0.2M P0.3M P0.4M P0.5M P0.6M P0.7M P0.6M P0.5M P0.4M P0.3M P0.2M P0.1M P0.7S P0.0S P0.0S P0.1S P0.2S P0.3S P0.4S P0.5S P0.6S P0.7S P0.6S P0.5S P0.4S P0.3S P0.2S P0.1S D 0 S D0M D0M D1M D1M D2M D2M D3M D3M D4M D4M D5M D5M D6M D6M D7M D7M D 7 S D 6 S D 5 S D 4 S D 3 S D 2 S D 1 S P 0 .0 S P 0 .1 S P 0 .2 S P 0 .3 S P 0 .4 S P 0 .5 S P 0 .6 S P 0 .7 S D0SD0S D1SD1S D2SD2S D3SD3S D4SD4S D5SD5S D6SD6S D7SD7S D 0 M D 7 M D 6 M D 5 M D 4 M D 3 M D 2 M D 1 M P 0 .0 M P 0 .1 M P 0 .2 M P 0 .3 M P 0 .4 M P 0 .5 M P 0 .6 M P 0 .7 M P2.0M P2.7M P2.0S P2.7S P2.1M P2.2M P2.3M P2.4M P2.5M P2.6M P2.1S P2.2S P2.3S P2.4S P2.5S P2.6S P2.4M P2.5M P2.6M P2.7M A1 B1 C1 D1 E1 F1 G1 A1 B1 C1 D1 E1 F1 G1 P2.0M P2.1M P2.2M P2.3M A2 B2 C2 D2 E2 F2 G2 A2 B2 C2 D2 E2 F2 G2 P2.4S P2.5S P2.6S P2.7S A3 B3 C3 D3 E3 F3 G3 A3 B3 C3 D3 E3 F3 G3 P2.0S P2.1S P2.2S P2.3S A4 B4 C4 D4 E4 F4 G4 A4 B4 C4 D4 E4 F4 G4 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 U9 AT89C51 C1 33p C2 33p X1 11.0592MHz C3 10uF R1 10k +5V 2 3 4 5 6 7 8 9 1 RP1 10K + 5 V MA ÏCH Ñ I EÀU K H I EÅN GI A O T I EÁP COÅN G N OÁI T I EÁP 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 C4 33p C5 33p X2 11.0592MHz C6 10uF R18 10k +5V 2 3 4 5 6 7 8 9 1 RP2 10K + 5 V MA ST ER SLA V E 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 RP3 10K +5V +5V KEY7 KEY6 KEY5 KEY4 KEY3 KEY2 KEY1 KEY0 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 U3 ULN2803 2 3 4 5 6 7 8 9 1 RP4 10K +5V +5V D8 R10 330 +5V D9 R11 330 +5V D10 R12 330 +5V D11 R13 330 +5V D12 R14 330 +5V D13 R15 330 +5V D14 R16 330 +5V D15 R17 330 +5V KEY15 KEY14 KEY13 KEY12 KEY11 KEY10 KEY9 KEY8 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U4 74LS47 +5VR19 56 R20 56 R21 56 R22 56 R23 56 R24 56 R25 56 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U5 74LS47 R2656 R2756 R2856 R2956 R3056 R3156 R3256 +5V A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U6 74LS47 +5VR33 56 R34 56 R35 56 R36 56 R37 56 R38 56 R39 56 A 7 QA 13 B 1 QB 12 C 2 QC 11 D 6 QD 10 BI/RBO 4 QE 9 RBI 5 QF 15 LT 3 QG 14 U7 74LS47 R4056 R4156 R4256 R4356 R4456 R4556 R4656 +5V 415 Sơ đồ lắp ráp: Chương trình điều khiển cho vi điều khiển Master: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN. ;CHUONG TRINH CHO VI DIEU KHIEN MASTER. ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG. ;TRONG KHI SO DEM TANG DAN TU 00 DEN 99. ;MO PHONG PROTUES: SERIALPORT_1. ;*************************************************** ;*************************************************** ;KET NOI: 8 SWITCH -> PORT 0 (ACT = 0). ; 8 LED -> PORT 1 (CO SU DUNG DEM DAO - ACT = 1). ; 2 LED 7 -> PORT 2 (BCD). ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET. SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP. AJMP SP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP. ORG 30H ;DIEM NHAP CHUONG TRINH CHINH. MAIN: MOV P1,#00H ;LED TAT ;**************************************************** 416 ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1. MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD CHO SERIAL PORT. MOV TH1,#(-3) ;BAUD RATE = 9600. SETB TR1 ;TIMER HOAT DONG - PORT NOI TIEP HOAT DONG. ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP. MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP. ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT. MOV A,#00H ;GIA TRI BAT DAU. LOOP: MOV P2,A ;XUAT HIEN THI. LCALLDELAY500MS ADD A,#1 ;TANG GIA TRI (+1). DA A CJNE A,#00,LOOP SJMP MP1 ;QUAY LAI. ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP. ;P0 = DU LIEU PHAT. ;P1 = DU LIEU THU. PUSH ACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU. RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A. CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP. MOV A,SBUF ;THU DU LIEU. MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED. SJMP EXIT_SP_ISR ;THOAT KHOI ISR. TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP. CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP. MOV A,P0 ;DOC DU LIEU LAY TU PORT SW. CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1). MOV SBUF,A ;PHAT DU LIEU. EXIT_SP_ISR: POP ACC RETI ;*************************************************** 417 DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H PUSH 01H PUSH 02H MOV R0,#250 DEL2: MOV R1,#100 DEL1: MOV R2,#10 DJNZ R2,$ DJNZ R1,DEL1 DJNZ R0,DEL2 POP 02H POP 01H POP 00H RET END Chương trình điều khiển cho vi điều khiển Slave: ;*************************************************** ;CHUONG TRINH DIEU KHIEN GIAO TIEP PORT NOI TIEP TRUC TIEP GIUA HAI VI DIEU KHIEN. ;CHUONG TRINH CHO VI DIEU KHIEN SLAVER. ;DIEU KHIEN CAC LED SANG/TAT THEO SU DIEU KHIEN CUA CAC SW TUONG UNG. ;TRONG KHI SO DEM GIAM DAN TU 99 DEN 00. ;MO PHONG PROTUES: SERIALPORT_1. ;*************************************************** ;KET NOI: 8 SWITCH -> PORT 0 (ACT = 0). ; 8 LED -> PORT 1 (CO SU DUNG DEM DAO - ACT = 1). ; 2 LED 7 -> PORT 2 (BCD). ;*************************************************** $MOD51 ORG 00H ;DIEM NHAP RESET. SJMP MAIN ORG 23H ;DIEM NHAP NGAT PORT NOI TIEP. AJMP SP_ISR ;NHAY TOI CTC PHUC VU NGAT PORT NOI TIEP. ORG 30H ;DIEM NHAP CHUONG TRINH CHINH. MAIN: MOV P1,#00H ;LED TAT ;**************************************************** ;KHOI DONG PORT NOI TIEP. MOV SCON,#52H;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1. 418 MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD CHO SERIAL PORT. MOV TH1,#(-3) ;BAUD RATE = 9600. SETB TR1 ;TIMER HOAT DONG - PORT NOI TIEP HOAT DONG. ;**************************************************** ;THIET LAP CAC NGAT CHO PORT NOI TIEP. MOV IE,#90H ;CHO PHEP NGAT PORT NOI TIEP. ;**************************************************** MP1: ;DOAN CHUONG TRINH SE THUC HIEN KHI KHONG CO TIN HIEU NGAT. MOV A,#99H ;GIA TRI BAT DAU. LOOP: MOV P2,A ;XUAT HIEN THI. LCALLDELAY500MS ADD A,#99H ;GIAM GIA TRI (-1). CJNE A,#0FFH,PROCESS_ERROR ;KIEM TRA LOI KHI GIAM QUA GIA TRI 66 - 65. SETB C ;XU LY LOI (CHO CO C = 1). PROCESS_ERROR: DA A CJNE A,#0F9H,LOOP SJMP MP1 ;QUAY LAI. ;**************************************************** SP_ISR: ;CTC PHUC VU NGAT PORT NOI TIEP. ;P0 = DU LIEU PHAT. ;P1 = DU LIEU THU. PUSH ACC JB TI,TRANS_DATA ;KIEM TRA TIN HIEU NGAT LA NGAT PHAT HAY NGAT THU. RECEI_DATA: ;XU LY THU DU LIEU TU PORT NOI TIEP VAO THANH GHI A. CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP. MOV A,SBUF ;THU DU LIEU. MOV P1,A ;XUAT DU LIEU THU DUOC RA PORT LED. SJMP EXIT_SP_ISR ;THOAT KHOI ISR. TRANS_DATA: ;XU LY PHAT DU LIEU TU THANH GHI A RA PORT NOI TIEP. CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP. MOV A,P0 ;DOC DU LIEU LAY TU PORT SW. CPL A ;DAO TRANG THAI (SW ACT = 0, LED ACT = 1). MOV SBUF,A ;PHAT DU LIEU. EXIT_SP_ISR: POP ACC 419 RETI ;*************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H PUSH 01H PUSH 02H MOV R0,#250 DEL2: MOV R1,#100 DEL1: MOV R2,#10 DJNZ R2,$ DJNZ R1,DEL1 DJNZ R0,DEL2 POP 02H POP 01H POP 00H RET END 6.5.15. Bài tập ứng dụng.  Bài 1: Cho hệ thống truyền dữ liệu giữa hai vi điều khiển (Master và Slave) thông qua port nối tiếp (UART) được thiết kế như hình vẽ bên dưới. Viết chương trình điều khiển hệ thống để thực hiện các hoạt động sau: o Ban đầu khi chưa nhấn nút thì tất cả các LED đơn đều tắt và các LED 7 đoạn đều hiển thị số 0. o Truyền dữ liệu từ MASTER sang SLAVE:  Nhấn nút “KEY8/MASTER”: 8 LED đơn “D0- D7/SLAVE” sáng tắt liên tục.  Nhấn nút “KEY9/MASTER”: 8 LED đơn “D0- D7/SLAVE” sáng đuổi từ trái sang phải liên tục.  Nhấn nút “KEY10/MASTER”: 8 LED đơn “D0- D7/SLAVE” sáng dần từ trái sang phải liên tục.  Nhấn nút “KEY11/MASTER”: 8 LED đơn “D0- D7/SLAVE” sáng dần từ hai bên vào giữa liên tục.  Nhấn nút “KEY12/MASTER”: 8 LED đơn “D0- D7/SLAVE” tắt hết.  Nhấn nút “KEY13/MASTER”: 8 LED đơn “D0- D7/SLAVE” sáng hết. o Truyền dữ liệu từ SLAVE sang MASTER: 420  Nhấn nút “KEY0/SLAVE”: 2 LED 7 đoạn “7seg/MASTER” đếm lên liên tục (giá trị đếm nằm trong khoảng 0099).  Nhấn nút “KEY0/SLAVE”: 2 LED 7 đoạn “7seg/MASTER” đếm xuống liên tục (giá trị đếm nằm trong khoảng 0099).  Nhấn nút “KEY1/SLAVE”: 2 LED 7 đoạn “7seg/MASTER” đang đếm (lên hoặc xuống) sẽ bị dừng lại và hiển thị liên tục giá trị tại thời điểm bị dừng.  Nhấn nút “KEY2/SLAVE”: 2 LED 7 đoạn “7seg/MASTER” đang dừng sẽ tiếp tục đếm (lên hoặc xuống) từ giá trị bị dừng.  Nhấn nút “KEY4/SLAVE”: 2 LED 7 đoạn “7seg/MASTER” hiển thị liên tục giá trị 00.  Bài 2: Cho hệ thống truyền dữ liệu giữa hai vi điều khiển (Master và Slave) thông qua port nối tiếp (UART) như hình vẽ ở Bài 1 bên trên. Viết chương trình điều khiển hệ thống để thực hiện các hoạt động sau: o Ban đầu khi chưa nhấn nút thì tất cả các LED đơn đều tắt và các LED 7 đoạn đều hiển thị số 0. o Nhấn nút “KEY8/MASTER”: 16 LED đơn “D8- D15/MASTER” và “D0-D7/SLAVE” sáng đuổi từ trái sang phải liên tục. o Nhấn nút “KEY9/MASTER”: 16 LED đơn “D8- D15/MASTER” và “D0-D7/SLAVE” sáng đuổi từ phải sang trái liên tục. o Nhấn nút “KEY10/MASTER”: 16 LED đơn “D8- D15/MASTER” và “D0-D7/SLAVE” tắt hết. o Nhấn nút “KEY0/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” đếm lên liên tục từ 0000 đến 9999. o Nhấn nút “KEY1/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” đếm xuống liên tục từ 9999 đến 0000. o Nhấn nút “KEY2/SLAVE”: 4 LED 7 đoạn “7seg/MASTER” và “7seg/SLAVE” hiển thị giá trị 0000.

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_vi_dieu_khien_phan_2.pdf