Chương 10: Khởi tạo cổng giao tiếp 8255 Cổng giao tiếp dùng để giao tiếp giữa kit viđiềukhiển với mạch nạp EPROM nội. Cổng này làm việc theo phương pháp giao tiếp song song và làm việc ở chế độ xuất nhập I/0. Để thiết lập từ điềukhiển 8255 ta thiết lập đoạn chương trình sau: MOV A , Hằng số. MOV DPTR , Đòa chỉ từ điều khiển. MOVX @DPTR ,A Ở đây giá trò của từ điềukhiển nhập vào là hằng số thập lục phân, nội dung của từ điềukhiển sẽ quyết đònh các cổng xuất hay nhập theo yêu cầu thiết kế. Các cổng này phải được điềukhiển trước khi xuất hay nhập dữ liệu qua cổng. I I V V . . C C h h ư ư ơ ơ n n g g t t r r ì ì n n h h đ đ o o ï ï c c d d ư ư õ õ l l i i e e ä ä u u t t ư ư ø ø E E P P R R O O M M n n o o ä ä i i : : Giải thuật lập trình: Khởi tạo 8255. Xuất các tín hiệu điều khiển. Xuất đòa chỉ cần đọc. Nhận dữ liệu từ bus dữ liệu. Giải mã hiển thò. Kết thúc. Khi chưa nạp dữ liệu vào hoặc sau khi chạy chương trình xóa, nếu chương trình đúng thì dữ liệu đọc ra là FFH. Khi đã chạy chương trình nạp rồi thì dữ liệu đọc ra làdữ liệu mà ta cần nạp. Tại các đòa chỉ 030H, 031H, 032H đọc ra có nội dung là:1EH, 51H, FFH (read-signature) đối với loại AT89C51, đây là loại IC mà ta thực hiện việc lập trình. Đối với các loại khác thuộc họ AT89 thì signature theo bảng sau: Signatu re Môtả 1E 51 FF AT89C51 1E 51 05 AT89C51 1E 61 FF AT89VL 51 1E 61 05 AT89VL 51 1E 52 FF AT89C52 1E 52 05 AT89C52 1E 62 FF AT89VL 52 1E 62 05 AT89VL 52 1E 11 AT89C10 51 1E 21 AT89C20 51 V V . . C C h h ư ư ơ ơ n n g g t t r r ì ì n n h h n n a a ï ï p p E E P P R R O O M M n n o o ä ä i i : : Viđiềukhiển AT89C51 được tung ra thò trường với mảng bộ nhớ bên trong rỗng (nghóa là nội dung =FFH) và sẵn sàng được lập trình. Chương trình nạp EPROM nội sẽ được lập trình một trong hai mức điện áp 12v hoặc 5v. Vậy để xác đònh mức điện áp lập trình ta đọc signature tại các đòa chỉ: 030H, 031H, 032H như sau: Adres s Vpp=5 v Vpp=1 2v 030H 1EH 1EH 031H 51H 51H 032H 05H FFH Mặt khác ta có thể xem top -side - mark (nhãn) như sau: Vpp=1 2v Vpp=5 v AT895 1 AT895 1 XXXX XXXX -5 YYW W YYW W Ở đây loại IC mà em lập trình là 12v. Giải thuật lập trình: Khởi tạo 8255. Trỏ đòa chỉ đến vùng nhớ cần nạp. Xuất dữ liệu ra bus dữ liệu. Xuất các tín hiệu điều khiển. Nâng điện áp Vpp lên 12v. Tạo xung lập trình ALE/PROG. Kết thúc. Chú ý: Chu kỳ viết 1byte không quá 1,5ms. Khi nạp dữ liệu cho viđiềukhiển thì chương trình nạp phải nạp từng byte, đồng thời phải chạy chương trình xóa trước khi lập trình choEPROM nội. Giản đồ thời gian lập trình choEPROM nội: V V I I . . C C h h ư ư ơ ơ n n g g t t r r ì ì n n h h x x o o a a ù ù E E P P R R O O M M n n o o ä ä i i : : Chương trình xoá phải được thực hiện trước khi lập trình. Khi xoá thì xoá toàn bộ vùng nhớ bên trong. Giải thuật lập trình: Khởi tạo 8255. Xuất các tín hiệu điều khiển. Điềukhiển điện áp Vpp=12v. Điềukhiển xung ALE /PROG. Kết thúc. Chú ý: Để xoá được nội dung bên trong đòi hỏi xung lập trình PROG\ phải ở mức thấp khoảng 10ms. L ƯU ĐỒ CHƯƠNG TRÌNH ĐỌC MÃ DỮ LIỆU BEGIN Khởi tạo 8255 1-2 PROG=L;V pp =5V Điềukhiển P 2.6 =L;P 2.7 =L;P 3.6 =H;P 3.7 =H Chuyển đòa chỉ bắt đầu và kết thúc EPROM vào ô nhớ Xuất đòa chỉ cần đọc ra EPROM Giải mã đòa chỉ và dữ liệu Lcall Key END Hiển thò Nhận dữ liệu từ EPROM Hiển thò Tăng đòa chỉ đọcEPROM So sánh với đòa chỉ cuối Yes Yes No No L ƯU ĐỒ CHƯƠNG TRÌNH XOÁ EPROM BEGIN Khởi tạo 8255 1-2 Xuất tín hiệu điềukhiển Tạo xung L END V pp =12V Delay 100ms Tạo xung H L ƯU ĐỒ CHƯƠNG TRÌNH NẠP EPROM BEGIN Khởi tạo 8255 1-2 Điềukhiển V pp =5V, PROG=H Chuyển đòa chỉ bắt đầu viết choEPROM vào ô nhớ Chuyển đòa chỉ đầu dữ liệu và kết thúc dữ liệu vào ô nhớ Gọi đòa chỉ cần nạp ra EPROM của 8255 Giải mã hiển thò đòa chỉ và dữ liệu cần nạp Điềukhiển P 2.6 =L;P 2.7 =H;P 3.6 =H;P 3.7 =H Tạo xung L và V pp =12V Delay 100us So sánh cần nạp với đòa chỉ cuối vùng dữ liệu No Hiển thò END END Yes Điềukhiển PROG=H,V pp =5V Tăng đòa chỉ cần viết choEPROM Tăng đòa chỉ vùng dữ liệu cần nạp . =12V Delay 100 ms Tạo xung H L ƯU ĐỒ CHƯƠNG TRÌNH NẠP EPROM BEGIN Khởi tạo 8255 1-2 Điều khiển V pp =5V, PROG=H Chuyển đòa chỉ bắt đầu vi t cho EPROM vào. và làm vi c ở chế độ xuất nhập I/0. Để thiết lập từ điều khiển 8255 ta thiết lập đoạn chương trình sau: MOV A , Hằng số. MOV DPTR , Đòa chỉ từ điều khiển.