Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
646,87 KB
Nội dung
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 L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Giáo trình thực hành vixử 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ềukhiển và sử dụng mô hình thí nghiệm để kiểm chứng. • Điềukhiển thiết bị ngoại vi bằng các port của viđiều khiển. • Ưùng dụng port nốitiếp của viđiềukhiển để mở rộng port nhập và xuất. • Điềukhiển việc thu phát nối tiếp. B. YÊU CẦU: • Nắm vững tập lệnh của viđiềukhiển MCS-51. • Biết cách hoạt động của port nốitiếp ở các chế độ khác nhau. • Biết cách lập trình điềukhiển việc xuất nhập dữliệuthông qua port nốitiếp ở các chế độ khác nhau. L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 1: Chương trình điềukhiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thơng qua port nốitiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s. Giáo trình thực hành vixử lý. 3 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 J45 (PARALLEL OUT 2) ở khối thanh ghi dịch với J12 (BAR LED 2) ở khối dãy LED. • Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điềukhiển (chú ý là ta chỉ nối bit 1 (IN) của J39 với bit 0 (RXD) của J66). • Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điềukhiển (chú ý là ta chỉ nối bit 2 (CLK) của J39 với bit 1 (TXD) của J66). • Dùng dây bus 1 nối J39 (SERIAL IN 1) ở khối thanh ghi dịch với nguồn +5V ở khối nguồn (chú ý là ta chỉ nối bit 3 (STB) của J39 với nguồn +5V của khối nguồn). • Dùng hai dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch và J103 (POWER) ở khối LED dãy với nguồn +5V ở khối nguồn. PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS PARALLEL OUT 1 POWER SERIAL IN 1 PARALLEL OUT 2 SERIAL IN 2 PARALLEL IN SERIAL OUT 1.2 Sơ đồ ngun lý của hệ thống: D7 D0 D1 D2 D3 D4 D5 D6 AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D7 D6 D5 D4 D3 D2 D1 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 2 3 4 5 6 7 8 9 1 RP1 10K +5V MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐI TIẾPMẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP D 2 CLK 3 STB 1 OE 15 Q0 4 Q1 5 Q2 6 Q3 7 Q4 14 Q5 13 Q6 12 Q7 11 QS 9 QS 10 U3 4094 +5V (ỨNG DỤNG MỞ RỘNG PORT XUẤT) (ỨNG DỤNG MỞ RỘNG PORT XUẤT)(ỨNG DỤNG MỞ RỘNG PORT XUẤT) (ỨNG DỤNG MỞ RỘNG PORT XUẤT) L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 1: Chương trình điềukhiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thơng qua port nốitiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s. Giáo trình thực hành vixử lý. 4 Biên soạn: Phạm Quang Trí D7 D0 D1 D2 D3 D4 D5 D6 AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D7 D1 D2 D3 D4 D5 D6 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 2 3 4 5 6 7 8 9 1 RP1 10K +5V SRG8 R C1/-> & 1D 1 3 2 4 5 6 10 8 11 12 9 13 U2 74164 +5V MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐI TIẾPMẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP (ỨNG DỤNG MỞ RỘNG PORT XUẤT) (ỨNG DỤNG MỞ RỘNG PORT XUẤT)(ỨNG DỤNG MỞ RỘNG PORT XUẤT) (ỨNG DỤNG MỞ RỘNG PORT XUẤT) 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 1: Chương trình điềukhiển (ứng dụng mở rộng port xuất) xuất liên tục các giá trị 00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH và FFH ra 8 LED thông qua port nốitiếp và sử dụng vi mạch 4094, mỗi lần xuất cách nhau 1s. Giáo trình thực hành vixử lý. 5 Biên soạn: Phạm Quang Trí ;*************************************************** ;CHUONG TRINH DIEUKHIEN THU PHAT DULIEUDANGNOITIEP (MO RONG PORT XUAT) ;*************************************************** ;KET NOI: LED -> PARALLEL OUT ; RXD -> IN ; TXD -> CLK ;*************************************************** ORG 00H MAIN: MOV SCON,#12H ;KHOI TAO SERIAL PORT (MODE0, REN = 1, TI = 1, RI = 0) MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DULIEU MOV R0,#00H ;OFFSET VUNG DULIEU WAIT: JNB TI,WAIT ;KIEM TRA CO TI (KIEM TRA PHAT XONG) CLR TI ;XOA CO TI MOV A,R0 ;LAY OFFSET MOVC A,@A+DPTR ;LAY DULIEU TU VUNG DULIEU MOV SBUF,A ;PHAT DULIEU RA SERIAL PORT ACALL DELAY INC R0 ;CHUYEN SANG DULIEU KE TIEP CJNE R0,#9,WAIT ;KIEM TRA DA PHAT XONG HET CAC DULIEU TRONG VUNG DULIEU SJMP MAIN ;*************************************************** DELAY: PUSH 00H MOV R0,#100 MOV TMOD,#01H DEL: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL POP 00H RET DATABYTE: DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH 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ềukhiể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ềukhiể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 3) L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 2: Chương trình điềukhiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữliệu từ 8 cơng tắc thơng qua port nốitiếp và sử dụng vi mạch 74165, dữliệu nhập vào này sẽ được xuất ra 8 LED. Giáo trình thực hành vixử 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. • 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ềukhiển với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 8 nối J41 (PARALLEL IN) ở khối thanh ghi dịch với J34 (SWITCH) ở khối cơng tắc. • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điềukhiển (chú ý là ta chỉ nối bit 0 (CLK) của J43 với bit 1 (TXD) của J66). • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối vi điềukhiển (chú ý là ta chỉ nối bit 1 (LD) của J43 với bit 2 (INT0\) của J66). • Dùng dây bus 1 nối J43 (SERIAL OUT) ở khối thanh ghi dịch với J66 (PORT3 / FUNCTION) ở khối viđiềukhiển (chú ý là ta chỉ nối bit 2 (OUT) của J43 với bit 0 (RXD) của J66). • Dùng ba dây bus 3 nối J115 (POWER) ở khối thanh ghi dịch, J106 (POWER) ở khối cơng tắc và J103 (POWER) ở khối LED dãy với nguồn +5V ở khối nguồn. PORT 0PORT 1PORT 3PORT 2 PORT 1PORT 3 40 PINS 20 PINS PARALLEL OUT 1 POWER SERIAL IN 1 PARALLEL OUT 2 SERIAL IN 2 PARALLEL IN SERIAL OUT 3 POWERSWITCH 3 1 1.2 Sơ đồ ngun lý của hệ thống: AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D7 D6 D5 D4 D3 D2 D1 SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0 SW0 SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0 D0 D1 D2 D3 D4 D5 D6 D7 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 2 3 4 5 6 7 8 9 1 RP1 10K +5V SW7 SW6 SW5 SW4 SW3 SW2 SW1 SW0 MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐI TIẾPMẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP (ỨNG DỤNG MỞ RỘNG PORT NHẬP) (ỨNG DỤNG MỞ RỘNG PORT NHẬP)(ỨNG DỤNG MỞ RỘNG PORT NHẬP) (ỨNG DỤNG MỞ RỘNG PORT NHẬP) SI 10 D0 11 D1 12 D2 13 D3 14 D4 3 D5 4 D6 5 D7 6 SO 9 CLK 2 QH 7 INH 15 SH/LD 1 U3 74165 2 3 4 5 6 7 8 9 1 RP3 10K +5V L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 2: Chương trình điềukhiển (ứng dụng mở rộng port nhập) thực hiện liên tục việc nhập dữliệu từ 8 công tắc thông qua port nốitiếp và sử dụng vi mạch 74165, dữliệu nhập vào này sẽ được xuất ra 8 LED. Giáo trình thực hành vixử lý. 7 Biên soạn: Phạm Quang Trí 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEUKHIEN THU PHAT DULIEUDANGNOITIEP (MO RONG PORT NHAP) ;*************************************************** ;KET NOI: LED -> P1 ; RXD -> OUT ; TXD -> CLK ; INT0 -> LD ; SW -> PARALLEL IN ;*************************************************** ORG 00H MAIN: MOV SCON,#02H ;KHOI TAO SERIAL PORT (MODE0, REN = 0, TI = 1, RI = 0) MP1: CLR P3.2 ;INT = LD = 0 NOP ;NAP GIA TRI CHO VI MACH CHUYEN DOI (PARALLEL -> SERIAL) SETB P3.2 ;INT = LD = 1 SETB REN ;REN = 1 - CHO PHEP THU DULIEU WAIT: JNB RI,WAIT ;KIEM TRA CO RI (KIEM TRA THU XONG) CLR REN ;REN = 0 - KHONG CHO PHEP THU CLR RI ;XOA CO RI MOV A,SBUF ;DOC DULIEU DA THU DUOC TU SERIAL PORT MOV P1,A ;XUAT RA LED SJMP MP1 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: (xem thêm trong phần hướng dẫn và phần bài tập của Bài 3) L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 3: Chương trình điềukhiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữliệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nốitiếp (chân TXD) rồi thu vào port nốitiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữliệu được điềukhiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữliệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội. Giáo trình thực hành vixử lý. 8 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ềukhiển với J11 (BAR LED 1) ở khối dãy LED. • Dùng dây bus 1 nối J66 (PORT3 / FUNCTION) ở khối viđiềukhiển với J66 (PORT3 / FUNCTION) ở khối viđiềukhiển (chú ý là ta chỉ nối bit 0 (RXD) của J66 với bit 1 (TXD) của J66). • Dùng dây bus 1 nối J76 (MONENTARY SW) ở khối nút nhấn với J66 (PORT3 / FUNCTION) ở khối vi điềukhiển (chú ý là ta chỉ nối bit 0 (KEY0) của J76 với bit 2 (INT0\) của J66). • Dùng dây bus 1 nối J66 (PORT3 / FUNCTION) ở khối viđiềukhiển với J66 (PORT3 / FUNCTION) ở khối viđiềukhiển (chú ý là ta chỉ nối bit 1 (TXD) của J66 với bit 0 (RXD) của J66). • Dùng hai dây bus 3 nối J114 (POWER) ở khối nút nhấn và J103 (POWER) ở khối LED dãy 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 Sơ đồ ngun lý của hệ thống: AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D7 D6 D5 D4 D3 D2 D1 D0 D1 D2 D3 D4 D5 D6 D7 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 2 3 4 5 6 7 8 9 1 RP1 10K +5V MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐI TIẾPMẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP MẠCH ĐIỀUKHIỂN THU/PHÁT DỮLIỆUDẠNGNỐITIẾP (ỨNG DỤNG MỞ RỘNG PORT NHẬP) (ỨNG DỤNG MỞ RỘNG PORT NHẬP)(ỨNG DỤNG MỞ RỘNG PORT NHẬP) (ỨNG DỤNG MỞ RỘNG PORT NHẬP) RUN R10 10k +5V L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 3: Chương trình điềukhiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữliệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nốitiếp (chân TXD) rồi thu vào port nốitiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữliệu được điềukhiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữliệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội. Giáo trình thực hành vixử lý. 9 Biên soạn: Phạm Quang Trí 1.3 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. L. HỆTHỐNGĐIỀUKHIỂN THU PHÁT DỮLIỆUDẠNGNỐI TIẾP. Bài 3: Chương trình điềukhiển (ứng dụng mở rộng thu phát nối tiếp) tạo một bảng dữliệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nốitiếp (chân TXD) rồi thu vào port nốitiếp (chân RXD) và cất vào RAM nội có địa chỉ bắt đầu là 40H. Việc xuất dữliệu được điềukhiển bằng nút nhấn KEY0, mỗi lần xuất/nhập một byte. Dữliệu sau khi nhập vào được xuất ra 8 LED (có sử dụng bộ đệm đảo) đồng thời với việc ghi vào RAM nội. Giáo trình thực hành vixử lý. 10 Biên soạn: Phạm Quang Trí ;*************************************************** ;CHUONG TRINH DIEUKHIEN THU PHAT DULIEUDANGNOI TIEP. ;*************************************************** ;KET NOI: LED -> P1 ; RXD -> TXD ; KEY0 -> INT0 (ACT = 0) ;*************************************************** ORG 00H MAIN: MOV TMOD,#20H ;TIMER 1: MODE 2 - TAO TOC DO BAUD SERIAL PORT MOV TH1,#-26 ;BAUD RATE = 1200 SETB TR1 ;TIMER HOAT DONG MOV SCON,#52H ;SERIAL: MODE 1, TI = 1, RI = 0, REN = 1 MP1: MOV DPTR,#DATABYTE ;NAP DIA CHI VUNG DULIEU MP2: MOV R0,#50 ;BIEN LAP - CHONG DOI PHIM KEY_NHAN: JB INT0,$ ;CHO PHIM DUOC NHAN DJNZ R0,KEY_NHAN ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN) MOV R0,#50 ;BIEN LAP - CHONG DOI PHIM KEY_NHA: JNB INT0,$ ;CHO PHIM DUOC NHA DJNZ R0,KEY_NHA ;GIAM BIEN LAP - CHONG DOI (PHIM DA NHAN) ;PHIM DA DUOC NHAN VA NHA HOAN TAT MOV A,#0 ;OFFSET CUA DULIEU MOVC A,@A+DPTR ;LAY DULIEU TRONG VUNG DULIEU ACALL TRANS_DATA ;GOI CTC PHAT DULIEU QUA SERIAL PORT ACALL RECEI_DATA ;GOI CTC THU DULIEU QUA SERIAL PORT MOV 40H,A ;NAP DULIEU THU DUOC VAO O NHO 40H MOV P1,40H ;XUAT PORT HIEN THI INC DPTR ;CHUYEN SANG DULIEU KE TIEP MOV A,DPL ;KIEM TRA DA PHAT/THU XONG VUNG DULIEU CJNE A,#LOW(DATABYTE+9),MP2 SJMP MP1 ;QUAY TRO LAI ;*************************************************** TRANS_DATA: ;CTC PHAT DULIEU JNB TI,$ ;KIEM TRA PHAT XONG CLR TI ;XOA TI DE CHUAN BI CHO LAN PHAT KE TIEP MOV SBUF,A ;PHAT DULIEU RET ;*************************************************** RECEI_DATA: ;CTC THU DULIEU JNB RI,$ ;KIEM TRA THU XONG CLR RI ;XOA RI DE CHUAN BI CHO LAN THU KE TIEP MOV A,SBUF ;THU DULIEU RET ;*************************************************** DATABYTE: ;VUNG DULIEU DB 00H,01H,03H,07H,0FH,1FH,3FH,7FH,0FFH 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ềukhiển việc truyền dữliệudạngnốitiếp giữa hai chip viđiềukhiển với nhau (phương pháp nối dây cho từng viđiềukhiển tương tự bài mẫu 3): o Viđiềukhiển 1: Viết chương trình tạo một bảng dữliệu gồm 9 bytes (00H, 01H, 03H, 07H, 0FH, 1FH, 3FH, 7FH, FFH). Thực hiện việc xuất từng byte của bảng này ra port nốitiếp (TXD) để truyền sang cho viđiềukhiển 2, việc xuất dữliệu được điềukhiển bằng nút nhấn KEY0, mỗi lần xuất một byte. Đồng thời, viđiềukhiển 1 liên tục kiểm tra và thu dữliệu vào từ port nốitiếp (RXD) các dữliệu do viđiềukhiển 2 gửi sang và cất vào RAM nội có địa chỉ bắt đầu là 40H, dữliệu sau khi nhập vào được xuất ra 8 LED đồng thời với việc ghi vào RAM nội. [...]... TXD là ngõ ra xung clock o Vi t chương trình: Cho LD\ = 0 nh p d li u t các công t c Cho LD\ = 1 chu n b th c hi n vi c ghi d ch Nh p d li u t port n i ti p ch thanh ghi d ch Xu t d li u ra các LED Ph n thu phát n i ti p: o N i chân RXD c a vi i u khi n 1 v i chân TXD c a vi i u khi n 2 o N i chân TXD c a vi i u khi n 1 v i chân RXD c a vi i u khi n 2 Giáo trình th c hành vi x lý 11 Biên so n: Ph m Quang... 00H) Th c hi n vi c xu t t ng byte c a b ng này ra port n i ti p (TXD) truy n sang cho vi i u khi n 1, vi c xu t d li u ư c i u khi n b ng nút nh n KEY1, m i l n xu t m t byte ng th i, vi i u khi n 2 liên t c ki m tra và thu d li u vào t port n i ti p (RXD) các d li u do vi i u khi n 2 g i sang và c t vào RAM n i có a ch b t u là 40H, d li u sau khi nh p vào ư c xu t ra 8 LED ng th i v i vi c ghi vào... 07H, 0FH, 1FH, 3FH, 7FH, FFH) Th c hi n vi c xu t t ng byte c a b ng này ra port n i ti p (chân TXD) r i thu vào port n i ti p (chân RXD) và c t vào RAM n i có a ch b t u là 40H Vi c xu t d li u ư c i u khi n b ng nút nh n KEY0, m i l n xu t/nh p m t byte D li u sau khi nh p vào ư c xu t ra 8 LED (có s d ng b m o) ng th i v i vi c ghi vào RAM n i Vi i u khi n 2: Vi t chương trình t o m t b ng d li u... thanh ghi d ch: RXD là ngõ ra d li u n i ti p, TXD là ngõ ra xung clock o Vi t chương trình: xu t d li u ra port n i ti p ch thanh ghi d ch Ph n m r ng port nh p: o Port thu phát n i ti p c a 8051 có th s d ng m r ng thành nhi u port nh p song song th c hi n i u này, s d ng port n i ti p ch thanh ghi d ch (Shift Register – Mode 0) và vi m ch chuy n i song song t ra n i ti p (Serial Out – Parallel In) như... vào ư c xu t ra 8 LED ng th i v i vi c ghi vào RAM n i Bài 2: Sinh vi n t mình suy nghĩ và phát tri n thêm chương trình o • 3 Hư ng d n: Ph n m r ng port xu t: o Port thu phát n i ti p c a 8051 có th s d ng m r ng thành nhi u port xu t song song th c hi n i u này, s d ng port n i ti p ch thanh ghi d ch (Shift Register – Mode 0) và vi m ch chuy n i t n i ti p ra song song (Serial In – Parallel Out) . D7 D0 D1 D2 D3 D4 D5 D6 AD7 AD0 AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 AD6 AD5 AD4 AD3 AD2 AD1 D0 D7 D6 D5 D4 D3 D2 D1 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 2 3 4 5 6 7 8 9 1 RP1 10K +5V MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾPMẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP D 2 CLK 3 STB 1 OE 15 Q0 4 Q1 5 Q2 6 Q3 7 Q4 14 Q5 13 Q6 12 Q7 11 QS 9 QS 10 U3 4094 +5V (ỨNG. 3 2 4 5 6 10 8 11 12 9 13 U2 74164 +5V MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾPMẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP (ỨNG. SW0 MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾPMẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP MẠCH ĐIỀU KHIỂN THU/PHÁT DỮ LIỆU DẠNG NỐI TIẾP (ỨNG