Bài tập lớn Vi xử lý

31 342 0
Bài tập lớn Vi xử lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

p1.7 RS RW E 0 1 2 3 4 5 6 7 p1.0p1.1 p1.2 p1.3 p1.4p1.5 p1.6 p1.7 012 34567 E p1.6p1.5p1.4 p1.0 p1.1 p1.2 p1.3 RW RS GND VCC X1 CRYSTAL FREQ=12MHz C1 30p C2 30p 81% RV1 10k VCC C3 10uF R1 10k Reset 2 5 6 8 9 4 + 3 ON/C CLR CLR 7 = ALL 10 A B C D 1 2 4 3 GROUP6-TD06-HCMUTRANS D7 14 D6 13 D5 12 D4 11 D3 10 D2 9 D1 8 D0 7 E 6 RW 5 RS 4 VSS 1 VDD 2 VEE 3 LCD1 LM020L GROUP VI - TD06 - HCMUTRANS CALCULATOR 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 CALCULATOR DIGITAL TECHNOLOGY DIGITAL TECHNOLOGY UNIVERSITY OF TRANSPORT IN HOCHIMINH CITY TD06-NHÓM VI-ĐỀ TÀI 12 CALCULATOR          GVHD: HOÀNG XUÂN DƯƠNG  THỰC HIỆN: NHÓM VI - Nguyễn Công Long TD06025 - Lê Văn Tình TD06042 - Hoàng Ngọc Ninh TD06034 -Trần Võ Ngọc Quỳnh TD06038 - Nguyễn Văn Thắng(A) TD06046 NHÓM 6 MICROPROCESSOR 8951 CALCULATOR Let’s make things better HCM 25/4/2009 BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ  Nội dung: A. PHẦN MỀM: 1. GIAO TIẾP 8951 VÀ LCD 2. GIAO TIẾP 8951 VÀ BÀN PHÍM 3. CHƯƠNG TRÌNH CHÍNH 4. CÁC CHƯƠNG TRÌNH CON 5. MÔ PHỎNG TRÊN PROTUES B. PHẦN CỨNG: 1. BẢN VẼ MẠCH IN TRÊN ORCAD 2. MẠCH PHẦN CỨNG THỰC TẾ C. KẾT LUẬN:  Nhận xét của thầy giáo: …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… NHÓM 6 CALCULATOR …………………………………………………………………………………… ………………………………………… Chữ ký: NHÓM 6 CALCULATOR A.PHẦN MỀM: 2. GIAO TIẾP 8951 VÀ LCD: a. Tổng quan LCD Trong những năm gần đây, LCD (Liquid Crystal Display) đã được sử dụng rộng rãi thay thế cho LED 7 đoạn hay các loại LED nhiều đoạn khác. Ngày nay LCD với những tính năng nổi trội của nó đã được sử dụng rất nhiều trong vi điều khiển. Khả năng hiện thị của LCD là rất đa dạng, trực quan (chữ, số và nhiều loại ký tự đồ họa khác), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức khác nhau, giá thành rẻ… LCD sử dụng trong mạch: TC1602_01T - Hình dạng, kích thước: - Sơ đồ chân: b. Giao tiếp LCD với 8951: Nhóm chúng tôi thực hiện giao tiếp trực tiếp với 8951 (kết nối 8 bit): - P2.0  P2.7 (của 8951) nối với DB0  DB7 (của LCD) - P3.0 nối với E (chân 6 của LCD) - P3.1 nối với RW (chân 5 của LCD) - P3.2 nối với RS (chân 4 của LCD) Để thuận lợi cho việc viết chương trình, chúng tôi định nghĩa các chân và nhóm chân của LCD như sau (định nghĩa đầu chương trình): RS BIT P3.2 RW BIT P3.1 E BIT P3.0 DATA_LCD EQU P2 Các chương trình con khi giao tiếp với LCD:  Xử lý đường điều khiển E: NHÓM 6 CALCULATOR - Để thiết lập các lệnh hay gởi dữ liệu ký tự cho LCD, ta phải tạo ra một xung cạnh xuống trên chân E, do đó ta đưa chân E lên mức cao, tạo một đỗ trễ khoảng 200ms (để tạo độ rộng xung) và sau đó đưa E xuống thấp, ta có thể coi nó là một chương trình con để ra lệnh cho LCD đọc dữ liệu, coi nó là một chương trình con: LENH: SETB E LCALL DELAY2 CLR E RET - Đọc dữ liệu hay trạng thái từ LCD: tạo một xung cạnh lên, chương trình như sau: LENH2: CLR E LCALL DELAY2 SETB E RET - Chương trình delay: 200ms, timer1, chế độ 1 DELAY2: MOV TMOD,#10H MOV R7,#4 LL: MOV TH1,#HIGH(-50000) MOV TL1,#LOW(-50000) SETB TR1 JNB TF1,$ CLR TR1 CLR TF1 DJNZ R7,LL MOV R7,#00H RET  Kiểm tra trạng thái bận LCD: Trong khi viết chương trình ta phải kiểm tra xem LCD có còn bận thực hiện lệnh đã nhận trước đó hay không. Khi thực hiện các hoạt động bên trong chíp, mạch nội bên trong cần một khoảng thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ qua mọi giao tiếp với bên ngoài và bật cờ BF (thông qua chân DB7 khi có thiết lập RS=0, R/W=1) lên để báo cho 8951 biết nó đang “bận”. Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0. Dựa trên nguyên tắc đó ta viết đoạn chương trình con kiểm tra trạng thái bận của LCD như sau: WAIT_LCD: CLR E CLR RS SETB RW MOV DATA_LCD,#0FFH SETB E MOV A,DATA_LCD JB ACC.7,WAIT_LCD CLR RW CLR RS RET  Khởi tạo LCD: chương trình khởi tạo LCD như sau: KHOITAO: CLR RS ;Chọn chế độ gởi lệnh MOV DATA_LCD,#38H ;Chọn bus 8bit, font ký tự 5x8, 2 hàng NHÓM 6 CALCULATOR LCALL LENH ;Gọi lệnh thực thi xuất ra LCD LCALL WAIT_LCD ;Kiểm tra trạng thái bận của LCD CLR RS ;Chọn chế độ gởi lệnh MOV DATA_LCD,#0FH ;LCD on, bật cursor LCALL LENH LCALL WAIT_LCD RET  Xóa màn hình hiển thị LCD: CLR_LCD: MOV DATA_LCD,#01H LCALL LENH LCALL WAIT_LCD RET  Ghi ra màn hình LCD: CÁCH 1: WRITE_TEXT: SETB E ;E=1 bắt đầulệnh LCD SETB RS ;RS=1 để chọn thanh chế độ xuất ;các dữ liệu ký tự để hiển thị lên LCD MOV DATA_LCD,#’T’ ;goi dữ liệu ký tự chữ T lên LCD CLR E ;E=0 tạo cạnh xuống LCALL WAIT_LCD ; Kiểm tra xem LCD còn bận hay không RET CACH2: WRITE_TEXT: SETB RS MOV DATA_LCD,#’T’ LCALL LENH LCALL WAIT_LCD RET Trong chương trình có một số đoạn chương trình xuất chữ, VD: WRITE_TEXT1: MOV A,R6 MOV DPTR,#TEN1 MOVC A,@A+DPTR SETB RS MOV DATA_LCD,A LCALL LENH LCALL WAIT_LCD MOV A,R6 INC A MOV R6,A CJNE A,#18,WRITE_TEXT1 RET TEN1: DB ‘!DH GTVT TPHCM! ‘ NHÓM 6 CALCULATOR 3. GIAO TIẾP 8951 VỚI BÀN PHÍM 4x4: Kết nối: NHÓM 6 CALCULATOR Xác định mã các phím nhấn bằng phần mềm: - Khi nhấn phím thì hàng và cột tương ứng sẻ được nối với nhau - Để xác định được phím nhấn ta quét bàn phím: ta thực hiện quét từng hàng, đầu tiên cho hàng 1 ở mức logic 0, các hàng và cột khác ở mức logic 1, ta đoc giá trị hàng và cột thông qua Port 1. NHÓM 6 P1.7 P1.7 P1.7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 H1 H2 H3 H4 C1 C2 C3 C4 3 2 1 0 4 5 6 7 8 9 A B C D E F CALCULATOR - Nếu 1 phím nào đó được nhấn: hàng và cột tương ướng nối với nhau và ở mức logic 0, tuân theo quy tắc sau ta xác định mã phím: +Ta có số hàng là 4: đếm theo thứ tự h i = 1(ứng với H4), 2( ứng với H3), 3(ứng với H2), 4(ứng với H1) c i = 0 (ứng với C1), 4(ứng với C2), 8(ứng với C3), 12(ứng với C4) Ta có thể thấy các cột hơn kém nhau 4 đơn vị Mã phím i = (4-h i )+c i - Ta thực hiện quét 4 lần, lần lượt 4 hàng - Chương trình con quét bàn phím như sau: NHÓM 6 Xuất (mã quét hàng) Ra port 1 Đọc giá trị hàng và cột ở Port1 vào A Mã quét hàng = 11111110 B Nạp (đếm hàng) = 4 Xóa các bit hàng [4 bit thấp] Giữ lại các bit cột [4 bit cao] Có phím ấn? [Có bít cột nào =0] Quay trái mã quét hàng [quét hàng kế] Giảm (đếm hàng) (Đếm hàng) = 0 Xóa (cờ) 1 SCAN_KEY CALCULATOR NHÓM 6 2 Xác định hàng có phím nhấn (hàng) = 4 – (đếm hàng) (mã phím) = (hàng) 1 [...]... để vi t NHÓM 6 CALCULATOR - Chương trình còn dài dòng, phức tạp, chưa có thời gian nhiều cho vi c tối ưu Vi t chương trình xong mới nhìn vào đó vẽ lưu đồ (không tốt lắm) - Chương trình chưa được vi t hoàn thiện: thiếu phần xóa từng ký tự - Trong nhóm chưa có sự phân công công vi c hợp lý, một số thành vi n còn chưa thực sự có trách nhiệm, hăng hái đóng góp ý kiến xây dựng nhóm - Tổ chức và làm vi c... hăng hái đóng góp ý kiến xây dựng nhóm - Tổ chức và làm vi c theo nhóm còn kém, có những thành vi n không làm gì và có những thành vi n làm quá nhiều, không biết cách làm vi c theo nhóm hiệu quả 2 Ưu điểm: - Có thể kết luận mạch chạy và làm vi c hiệu quả, chính xác trên cả phần cứng và phần mềm - Chương trình xử lý được một số yếu tố khá phức tạp như: hiển thị và tính toán luôn cả số tràn thứ 5 nếu có,... đúng mục đích… - Tuy mạch còn đơn giản nên chưa áp dụng được vào thực tế, để so sánh với các loại máy tính trên thị trường, nhưng nhìn chung mạch đạt đươc mục tiêu chính của bài tập lớn này là: giao tiếp được LCD và Bàn phím với Vi xử lý Nhóm 6 – ĐH GTVT TPHCM Let’s make things better !! THE END NHÓM 6 ... cho vi c thi công, nhưng thi công còn hỏng hóc (đã nêu trên) gây thiệt hại, để đạt kết quả sản phẩm mạch tốt cần lưu ý: + Chọn padstacks (chân hàn) lớn để đảm bảo mối hàn tốt và đẹp lại dễ hàn + Chon đường đồng khá lớn: cỡ 0.7; 0.8; 0.9 là okey + Đặt vị trí các chân hợp lý khi layout - Phần mềm tương đối phức tạp, nhất là đối với những người mới học và chưa có nhiều kinh nghiệm như nhóm tui, cần vi t... LJMP R4,#07BH,NEXTTRU DIEUCHINHSOTHU1 WAIT_LCD CLR_LCD A 60H,#0FFH NHAPSO ;Nhấn phím + ;Luu so vua nhap vao dung vi tri de tinh toan sau NEXTTRU: CJNE LCALL LCALL LCALL CLR MOV LJMP R4,#07DH,NEXTBANG DIEUCHINHSOTHU1 WAIT_LCD CLR_LCD A 60H,#00H NHAPSO ;Nhấn phím ;Luu so vua nhap vao dung vi tri de tinh toan sau NEXTBANG: CJNE R4,#07EH,XUATSO LCALL KETQUA LJMP KK XUATSO: LCALL MOV LCALL LCALL DJNZ LCALL... (đếm cột) = 4 Quay phải (A) qua cờ C [để xác định vị trí của cột = 0] (C) = 0 (mã phím) = (hàng) + 4 Giảm (đếm cột) (Đếm cột) = 0 Đặt (cờ) = 1 Cất mã phím vào A 2 Ret Chương trình con quét bàn phím được vi t như sau: SCAN_KEY: MOV MOV SCAN: R1,#0FEH R6,#4 MOV MOV ANL CJNE XCH RL P1,R1 A,P1 A,#0F0H A,#0F0H,GET_CODE A,R1 A NHÓM 6 CALCULATOR EXIT: XCH DJNZ CLR LJMP GET_CODE: PUSH MOV CLR SUBB MOV POP SWAP... R1,#30H A,29H A,#30H E RS DATA_LCD,A DELAY E WAIT_LCD MOV ADD SETB SETB MOV LCALL CLR LCALL INC CJNE A,@R1 A,#30H E RS DATA_LCD,A DELAY E WAIT_LCD R1 R1,#34H,XUAT XUAT: RET CALCULATOR C1 6 KẾT QUẢ MÔGROUP VI - TD06 -PROTUES: PHỎNG TRÊN HCMUTRANS RS RW E D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 RS RW E VSS VDD VEE 1 2 3 B 8 9 CLR CLR C 4 5 6 7 D 0 1 2 3 2 3 AT89C51 ON/C 4 ALL NHÓM 6 p1.3... thực tế được kết nối với Port1 như sau: + P1.7 A = P1.6 B 8 9 CLR CLR P1.5 C 4 5 6 7 P1.4 D 0 1 2 3 ON/C 1 2 3 4 ALL P1.0 P1.1 P1.2 P1.3 NHÓM 6 CALCULATOR SƠ ĐỒ MẠCH KẾT NỐI NHƯ SAU: CALCULATOR C1 GROUP VI - TD06 - HCMUTRANS LCD1 LM020L X1 RS RW E D0 D1 D2 D3 D4 D5 D6 D7 7 8 9 10 11 12 13 14 0 1 2 3 4 5 6 7 RS RW E VSS VDD VEE 1 2 3 8 9 CLR CLR C 4 5 6 7 D 0 1 2 3 ON/C ALL 4 3 B 2 10 11 12 13 14 15 16

Ngày đăng: 22/08/2015, 21:09

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan