E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 2: Chương trình điều khiển LCD hiển thị hai dòng chữ “WELLCOME TO MICROCONTROLLER SYSTEM – 51” và “DESIGNED BY: PQT.” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên. Giáo trình thực hành vi xử lý. 181 Biên soạn: Phạm Quang Trí CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;************************************************************* ;MOV TH0,#HIGH(-1000) ;DOAN LENH NAY DUOC THAY THE CHO DOAN LENH KIEM TRA DUOI DAY ;MOV TL0,#LOW(-1000) ;KHI CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW ;ACALL DELAY ;************************************************************* MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP SETB RW ;RW = 1 - READ LCD MODE CLR RS ;RS = 0 - GUI LENH CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2 CLR RW ;RW = 0 - WRITE LCD MODE ;************************************************************* RET ;*************************************************** DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H MOV R0,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR WR1: MOV A,R0 ;NAP OFFSET MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD ACALL SENDDATA ;GUI DU LIEU RA LCD INC R0 ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#16,WR1 ;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU RET ;*************************************************** DELAY: MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1 DB ' WELLCOME TO MICROCONTROLLER SYSTEM - 51' SLINE_DATA: ;DU LIEU HIEN THI DONG 2 DB 'DESIGNED BY: PQT' END 1.3 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3) E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. Giáo trình thực hành vi xử lý. 182 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. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 3 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J47 (CTRL LCD) ở khối LCDõ (chú ý là ta chỉ nối 3 bit thấp của J63 và J47 với nhau). • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J46 (DATA / CODE LCD) ở khối LCD. • Dùng dây bus 8 nối J66 (PORT3 / FUNCTION) ở khối vi điều khiển với J76 (MOMENTARY SW) ở khối nút nhấn. • Dùng dây hai bus 3 nối J104 (POWER) ở khối LCDõ và J114 (POWER) ở khối nút nhấn với nguồn +5V ở khối nguồn. MOMENTARY SW POWER PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS 3 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN LCD HIEN THI DONG CHU 1 HIEN THI XUNG, DONG CHU 2 DICH CHUYEN ;*************************************************** ;RS -> P0.0, RW -> P0.1, E -> P0.2 ;DATA BUS -> PORT 1 OMENTARY SW -> PORT 3 (P3.0 -> ACT = 0) ;*************************************************** EN BIT P0.2 RW BIT P0.1 RS BIT P0.0 DATABUS EQU P1 ;*************************************************** ORG 00H MAIN: ACALL LCDINIT ;KHOI TAO LCD MOV R7,#0 ;SO XUNG BAN DAU MOV DPTR,#FLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD ACALL DISP_FLINE ;HIEN THI DONG 1 MP1: MOV DPTR,#SLINE_DATA ;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD SHIFT: ACALL DISP_SLINE ;HIEN THI DONG 2 ACALL DISP_PULSE ;HIEN THI SO XUNG MOV R1,#100 ;DELAY 500MS JB P3.0,DEL500 ;TIEP TUC CHUONG TRINH KHI KHONG NHAN NUT NHAN MOV A,R7 ;TANG GIA TRI KHI CO NHAN NUT NHAN (P3.0 = 0) ADD A,#1 DA A MOV R7,A DEL500: MOV TH0,#HIGH(-5000) MOV TL0,#LOW(-5000) ACALL DELAY E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. Giáo trình thực hành vi xử lý. 183 Biên soạn: Phạm Quang Trí DJNZ R1,DEL500 ;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD INC DPTR ;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU MOV A,DPL ;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD CJNE A,#LOW(SLINE_DATA+91),SHIFT MOV A,DPH CJNE A,#HIGH(SLINE_DATA+91),SHIFT SJMP MP1 ;*************************************************** LCDINIT: ;CTC KHOI TAO LCD CLR RS ;RS = 0 - GUI LENH CLR RW ;RW = 0 - WRITE LCD MODE SETB EN ;E = 1 - ENABLE MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-4100) MOV TL0,#LOW(-4100) ACALL DELAY ;DELAY 4.1MS MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV TH0,#HIGH(-100) MOV TL0,#LOW(-100) ACALL DELAY ;DELAY 100US MOV DATABUS,#38H ;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7 ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#0CH ;CODE = C0H - CHO PHEP LCD HIEN THI ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#01H ;CODE = 01H - XOA LCD ACALL SENDCOMMAND ;GUI LENH RA LCD MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD (VI DONG 1 DUNG YEN TRONG KHI DONG 2 CHAY) RET ;*************************************************** SENDCOMMAND: ;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD CLR RS ;RS = 0 - GUI LENH SJMP PULSE_EN SENDDATA: SETB RS ;RS = 1 - GUI DU LIEU NOP PULSE_EN: ;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD CLR RW ;RW = 0 - WRITE LCD MODE CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP ;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN ;************************************************************* ;MOV TH0,#HIGH(-1000) ;LENH NAY DUOC THAY THE CHO DOAN MA KIEM TRA DUOI DAY KHI ;MOV TL0,#LOW(-1000) ;CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW ;ACALL DELAY ;************************************************************* MOV DATABUS,#0FFH ;CAU HINH PORT 1 CHO CHE DO PORT NHAP SETB RW ;RW = 1 - READ LCD MODE CLR RS ;RS = 0 - GUI LENH CLR EN ;EN = 0 NOP SETB EN ;EN = 1 - XUNG ENABLE NOP BUSY: ;BUSY = 0 -> HOAN TAT, BUSY = 1 -> DANG THUC HIEN MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY ;KIEM TRA CO BUSY BUSY2: ;KIEM TRA CO BAO BAN (BUSY FLAG) LAN THU HAI MOV A,DATABUS ;DOC DU LIEU TU LCD JB ACC.7,BUSY2 ;KIEM TRA CO BUSY LAN 2 CLR RW ;RW = 0 - WRITE LCD MODE (THOAT READ MODE, TRO VE WRITE MODE) ;************************************************************* E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. Giáo trình thực hành vi xử lý. 184 Biên soạn: Phạm Quang Trí RET ;*************************************************** DISP_FLINE: ;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM MOV DATABUS,#80H ;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_SLINE: ;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM MOV DATABUS,#0C0H ;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL WRITE ;GUI VUNG DU LIEU SANG LCD RET ;*************************************************** DISP_PULSE: ;CTC HIEN THI SO XUNG TAI CHAN P3.0 MOV DATABUS,#88H ;CODE = 80H - DAT DDRAM DIA CHI HIEN THI SO XUNG - 08H ACALL SENDCOMMAND ;GUI LENH RA LCD ACALL BCDTOASCII ;GOI CHUONG TRING GIAI MA BCD SANG ASCII MOV DATABUS,7FH ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD (HANG CHUC) ACALL SENDDATA MOV DATABUS,7EH ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD (HANG DON VI) ACALL SENDDATA RET ;*************************************************** BCDTOASCII: ;CTC CHUYEN DOI TU SO BCD CHUA TRONG R7 (00 - 99) SANG MA ASCII (2 MA) MOV A,R7 ;LAY GIA TRI BCD (R7) CAN CHUYEN DOI ANL A,#0FH ;GIU LAI 4 BIT THAP (HANG DON VI) ADD A,#30H ;DOI SANG ASCII (ASCII = BCD + 30H) MOV 7EH,A ;CAT SO ASCII VAO VUNG NHO HANG DON VI MOV A,R7 ;LAY GIA TRI BCD (R7) CAN CHUYEN DOI ANL A,#0F0H ;GIU LAI 4 BIT CAO (HANG CHUC) SWAP A ADD A,#30H ;DOI SANG ASCII (ASCII = BCD + 30H) MOV 7FH,A ;CAT SO ASCII VAO VUNG NHO HANG CHUC RET ;*************************************************** WRITE: ;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H MOV R0,#0 ;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR WR1: MOV A,R0 ;NAP OFFSET MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG DU LIEU MOV DATABUS,A ;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD ACALL SENDDATA ;GUI DU LIEU RA LCD INC R0 ;CHUYEN SANG DU LIEU KE TIEP CJNE R0,#16,WR1 ;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU RET ;*************************************************** DELAY: ;CTC DELAY CO KET HOP KIEM TRA NUT NHAN P3.0 MOV TMOD,#01H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 RET ;*************************************************** FLINE_DATA: ;DU LIEU HIEN THI DONG 1 DB 'PULSE = ' SLINE_DATA: ;DU LIEU HIEN THI DONG 2 DB ' ' DB 'DESIGNED BY PHAM QUANG TRI' DB ' - ELECTRIC TRAINING CENTER - ' DB 'HO CHI MINH UNIVERSITY OF INDUSTRY' END 1.3 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. E. HỆ THỐNG ĐIỀU KHIỂN LCD. Bài 3: Chương trình điều khiển LCD hiển thị hai dòng chữ “PULSE = ” và “DESIGNED BY PHAM QUANG TRI – ELECTRIC TRAINING CENTER - HO CHI MINH UNIVERSITY OF INDUSTRY” trên hai dòng của màn hình LCD với yêu cầu: số lượng xung đếm được (00 – 99) tại chân P3.0 sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “PULSE =”, dòng chữ thứ hai sẽ dịch chuyển từ phải sang trái. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. Giáo trình thực hành vi xử lý. 185 Biên soạn: Phạm Quang Trí 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUNG TAM” và “TNTH DIEN TU” đứng yên trên hai dòng của màn hình LCD. • Bài 2: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUNG TAM THI NGHIEM THUC HANH DIEN TU – BO MON DIEN TU CONG NGHIEP” và “DH CONG NGHIEP” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất dịch chuyển liên tục từ phải sang trái, dòng chữ thứ hai đứng yên. • Bài 3: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “TRUONG DAI HOC CONG NGHIEP THANH PHO HO CHI MINH” và “TRUNG TAM THI NGHIEM THUC HANH DIEN TU – BO MON DIEN TU CONG NGHIEP” trên hai dòng của màn hình LCD với yêu cầu: hai dòng chữ đồng thời dịch chuyển liên tục từ phải sang trái. • Bài 4: Hãy viết chương trình điều khiển LCD hiển thị hai dòng chữ “HO CHI MINH UNIVERSITY OF INDUSTRY – ELECTRONIC TRAINNING CENTER” và “IN 1 = … IN 2 = …” trên hai dòng của màn hình LCD với yêu cầu: dòng chữ thứ nhất sẽ dịch chuyển từ phải sang trái, số lượng xung đếm được tại chân P3.0 (IN 1) và chân P3.1 (IN 2) sẽ được hiển thị trên dòng thứ nhất tiếp phía sau dòng chữ “UP = … DOWN= …”. Xung được tạo ra bằng cách nhấn nút nhấn KEY0. • Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. TRUNG TÂM THÍ NGHIỆM THỰC HÀNH Đ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ý. 187 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 lý 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Ệ 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ý. 188 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. • Tắt nguồn cấp cho mô hình thí nghiệm. • Dùng dây bus 8 nối J64 (PORT1) ở khối vi điều khiển với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 8 nối J63 (PORT0 / DATA) ở khối vi điều khiển với J76 (MOMENTARY SW) ở khối nút nhấn. • Dùng dây bus 3 nối J103 (POWER) ở khối dãy LED và J114 (POWER) ở khối nút nhấn với nguồn +5V ở khối nguồn. MOMENTARY SW POWER PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS 33 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;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 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 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ý. 189 Biên soạn: Phạm Quang Trí 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.3 Lưu chương trình và biên dịch chương trình. 1.4 Kiểm tra lỗi và hiệu chỉnh lỗi nếu có. 1.5 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.6 Nạp chương trình vào vi điều khiển. 1.7 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.8 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) . P0 .2, KEY2OK ;KIEM TRA NUT KEY2 - Y: KEY2 NHAN -& gt; XU LY NEU NUT DUOC NHAN CLR P1 .2 ;KEY2 NHA -& gt; LED TAT SJMP KEY3 ;KIEM TRA NUT KE TIEP KEY2OK: SETB P1 .2 ;KEY2 NHAN -& gt; LED SANG KEY3:. KEY1 - Y: KEY1 NHAN -& gt; XU LY NEU NUT DUOC NHAN CLR P1.1 ;KEY1 NHA -& gt; LED TAT SJMP KEY2 ;KIEM TRA NUT KE TIEP KEY1OK: SETB P1.1 ;KEY1 NHAN -& gt; LED SANG KEY2: ;KEY2 JNB P0 .2, KEY2OK. XUNG, DONG CHU 2 DICH CHUYEN ;*************************************************** ;RS -& gt; P0.0, RW -& gt; P0.1, E -& gt; P0 .2 ;DATA BUS -& gt; PORT 1 OMENTARY SW -& gt; PORT 3 (P3.0 -& gt; ACT =