1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiet ke may tinh cong tru nhan chia su dung vi xu ly 8051

30 11 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 548,77 KB

Nội dung

CALCULATOR MICROPROCESSOR 8951 DIGITAL TECHNOLOGY DIGITAL TECHNOLOGY UNIVERSITY OF TRANSPORT IN HOCHIMINH CITY TD06-NHÓM VI-ĐỀ TÀI 12 CALCULATOR C1 GROUP VI - TD06 - HCMUTRANS LCD1 LM020L X1 D0 D1 D2 D3 D4 D5 D6 D7 10 11 12 13 14 RS RW E RS RW E VSS VDD VEE B CLR CLR C D ON/C ALL p1.3 AT89C51 p1.0 10k 10 11 12 13 14 15 16 17 = p1.2 R1 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD + A   P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 VCC p1.1 Reset GND C3 PSEN ALE EA 21 22 23 24 25 26 27 28 GROUP6-TD06-HCMUTRANS p1.7 10uF p1.7 p1.5 p1.4 p1.2p1.0 p1.6 p1.3 p1.1 29 30 31 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 10k p1.6 RST VCC RV1 39 38 37 36 35 34 33 32 p1.5 XTAL2 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 p1.4 18 30p XTAL1 32 19 U1 FREQ=12MHz RSRW E C2 CRYSTAL 81% 30p CALCULATOR CALCUL Y OF TRANSPORT I N HOCHI MI ALCUL Y  GVHD: HOÀNG XUÂN DƯƠNG  THỰC HIỆN: NHĨM VI - Nguyễn Cơng Long - Lê Văn Tình - Hoàng Ngọc Ninh -Trần Võ Ngọc Quỳnh - Nguyễn Văn Thắng(A) TD06025 TD06042 TD06034 TD06038 TD06046 Let’s make things better          HCM 25/4/2009 NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ  Nội dung: A PHẦN MỀM: GIAO TIẾP 8951 VÀ LCD GIAO TIẾP 8951 VÀ BÀN PHÍM CHƯƠNG TRÌNH CHÍNH CÁC CHƯƠNG TRÌNH CON MƠ PHỎNG TRÊN PROTUES B PHẦN CỨNG: BẢN VẼ MẠCH IN TRÊN ORCAD MẠCH PHẦN CỨNG THỰC TẾ C KẾT LUẬN:  Nhận xét thầy giáo: …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ………………………………………… Chữ ký: NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR A.PHẦN MỀM: GIAO TIẾP 8951 VÀ LCD: a Tổng quan LCD Trong năm gần đây, LCD (Liquid Crystal Display) sử dụng rộng rãi thay cho LED đoạn hay loại LED nhiều đoạn khác Ngày LCD với tính trội sử dụng nhiều vi điều khiển Khả thị LCD đa dạng, trực quan (chữ, số 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 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 thực giao tiếp trực tiếp với 8951 (kết nối 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 LCD) - P3.1 nối với RW (chân LCD) - P3.2 nối với RS (chân LCD) Để thuận lợi cho việc viết chương trình, chúng tơi định nghĩa chân nhóm chân LCD sau (định nghĩa đầu chương trình): RS RW E D A T A_LC D BIT BIT BIT EQ U P3.2 P3.1 P3.0 P2 Các chương trình giao tiếp với LCD:  Xử lý đường điều khiển E: NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR - Để thiết lập lệnh hay gởi liệu ký tự cho LCD, ta phải tạo xung cạnh xuống chân E, ta đưa chân E lên mức cao, tạo đỗ trễ khoảng 200ms (để tạo độ rộng xung) sau đưa E xuống thấp, ta coi chương trình để lệnh cho LCD đọc liệu, coi chương trình con: LENH: SETB E LCALL DELAY2 CLR E RET - Đọc liệu hay trạng thái từ LCD: tạo xung cạnh lên, chương trình sau: LENH2: - CLR E LCALL DELAY2 SETB E RET Chương trình delay: 200ms, timer1, chế độ DELAY2: LL: MOV MOV MOV MOV SETB JNB CLR CLR DJNZ MOV RET TMOD,#10H R7,#4 TH1,#HIGH(-50000) TL1,#LOW(-50000) TR1 TF1,$ TR1 TF1 R7,LL R7,#00H  Kiểm tra trạng thái bận LCD: Trong viết chương trình ta phải kiểm tra xem LCD có cịn bận thực lệnh nhận trước hay khơng Khi thực hoạt động bên chíp, mạch nội bên cần khoảng thời gian để hoàn tất Khi thực thi hoạt động bên chip thế, LCD bỏ qua giao tiếp với bên bật cờ BF (thơng qua chân DB7 có thiết lập RS=0, R/W=1) lên để báo cho 8951 biết “bận” Dĩ nhiên, xong việc, đặt cờ BF lại mức Dựa nguyên tắc ta viết đoạn chương trình kiểm tra trạng thái bận LCD sau: WAIT_LCD: CLR CLR SETB MOV SETB MOV JB CLR CLR RET E RS RW DATA_LCD,#0FFH E A,DATA_LCD ACC.7,WAIT_LCD RW RS  Khởi tạo LCD: chương trình khởi tạo LCD sau: KHOITAO: CLR RS ;Chọn chế độ gởi lệnh NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR MOV LCALL LCALL CLR MOV LCALL LCALL RET DATA_LCD,#38H LENH WAIT_LCD RS DATA_LCD,#0FH LENH WAIT_LCD ;Chọn bus 8bit, font ký tự 5x8, hàng ;Gọi lệnh thực thi xuất LCD ;Kiểm tra trạng thái bận LCD ;Chọn chế độ gởi lệnh ;LCD on, bật cursor  Xóa hình hiển thị LCD: CLR_LCD: MOV DATA_LCD,#01H LCALL LENH LCALL WAIT_LCD RET  Ghi hình LCD: CÁCH 1: WRITE_TEXT: SETB SETB E RS MOV DATA_LCD,#’T’ CLR E LCALL WAIT_LCD RET ;E=1 bắt đầulệnh LCD ;RS=1 để chọn chế độ xuất ;các liệu ký tự để hiển thị lên LCD ;goi liệu ký tự chữ T lên LCD ;E=0 tạo cạnh xuống ; Kiểm tra xem LCD cịn bận hay khơng CACH2: WRITE_TEXT: SETB MOV LCALL LCALL RET RS DATA_LCD,#’T’ LENH WAIT_LCD Trong chương trình có 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR GIAO TIẾP 8951 VỚI BÀN PHÍM 4x4: Kết nối: NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR P1.7 C4 P1.6 C3 P1.7 P1.7 P1.5 C2 P1.4 C1 P1.3 H4 P1.2 B F A E D C H3 P1.1 H2 P1.0 H1 Xác định mã phím nhấn phần mềm: - Khi nhấn phím hàng cột tương ứng sẻ nối với - Để xác định phím nhấn ta quét bàn phím: ta thực quét hàng, cho hàng mức logic 0, hàng cột khác mức logic 1, ta đoc giá trị hàng cột thơng qua Port NHĨM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR - - Nếu phím nhấn: hàng cột tương ướng nối với mức logic 0, tuân theo quy tắc sau ta xác định mã phím: +Ta có số hàng 4: đếm theo thứ tự hi = 1(ứng với H4), 2( ứng với H3), 3(ứng với H2), 4(ứng với H1) ci = (ứng với C1), 4(ứng với C2), 8(ứng với C3), 12(ứng với C4) Ta thấy cột đơn vị Mã phími = (4-hi)+ci Ta thực quét lần, hàng Chương trình quét bàn phím sau: SCAN_KEY Mã quét hàng = 11111110 B Nạp (đếm hàng) = Xuất (mã quét hàng) Ra port Đọc giá trị hàng cột Port1 vào A Xóa bit hàng [4 bit thấp] Giữ lại bit cột [4 bit cao] Có phím ấn? [Có bít cột =0] Quay trái mã quét hàng [quét hàng kế] Giảm (đếm hàng) NHÓM (Đếm hàng) = LUAN VAN CHAT LUONG download Xóa (cờ:) add luanvanchat@agmail.com CALCULATOR Xác định hàng có phím nhấn (hàng) = – (đếm hàng) (mã phím) = (hàng) NHĨM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR Chuyễn mã cột bit thấp (đếm cột) = Quay phải (A) qua cờ C [để xác định vị trí cột = 0] (C) = (mã phím) = (hàng) + Giảm (đếm cột) (Đếm cột) = Đặt (cờ) = Cất mã phím vào A Ret Chương trình quét bàn phím viết sau: SCAN_KEY: MOV MOV SCAN: R1,#0FEH R6,#4 MOV MOV ANL CJNE XCH RL XCH P1,R1 A,P1 A,#0F0H A,#0F0H,GET_CODE A,R1 A A,R1 NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR KK: NEXT: MOV MOV MOV LCALL MOV 31H,#0FFH 32H,#0FFH 33H,#0FFH SCAN_KEY R4,P1 CJNE JMP CJNE LCALL R4,#0F7H,NEXT ;Tiep tuc scan key tin hieu vao tu ban phim ko co KK R4,#077H,XOATUNGKYTU TATMO ;stop tat mo ct ;Quet ban phim XOATUNGKYTU: CJNE R4,#0BBH,NEXT3 MOV 29H,#0 MOV 39H,#0 LCALL CLR_LCD LJMP NHAPSO NEXT3: CJNE MOV MOV LCALL JMP R4,#0B7H,NEXTCONG 29H,#0 39H,#0 CLR_LCD NHAPSO ;Xoa man hinh NEXTCONG: CJNE LCALL LCALL LCALL CLR MOV 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 MOV LCALL LCALL MOV LCALL WRITE1 DATA_LCD,#07H LENH WAIT_LCD R3,KK CLR_LCD DATA_LCD,#06H LENH WAIT_LCD R6,#0 WRITE_TEXT3 ;quay lai nhap lai so moi ;quay lai nhap lai so moi ;Nhấn phím = ;Xuất số hình LCD ;Dich hien thi sang trai de xuat so ke tiep ;Số chữ số có q khơng, báo ngay! ;Xuất báo nhập chữ số NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR LCALL CLR_LCD LCALL XOA LJMP NHAPSO END CÁC ĐOẠN CHƯƠNG TRÌNH CON: + Xuất chữ: WRITE_TEXT2 (Số ký tự xuất)=0 A = (số ký tự xuất) DPTR tới bảng TEN2 Lấy ký tự từ TEN2 vào A SETB RS chọn cđ xuất Xuất ký tự LCD Lệnh xuất Kiểm tra LCD cịn bận khơng Tăng (số ký tự xuất) WRITE_TEXT2: MOV R6,#0 WW: MOV A,R6 MOV DPTR,#TEN2 MOVC A,@A+DPTR SETB RS MOV DATA_LCD,A LCALL LENH LCALL WAIT_LCD MOV A,R6 INC A MOV R6,A (Số ký tự xuất) = 16 RET NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR CJNE RET A,#16,WW NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR + Tắt mở: TATMO (R3)=(dấu hiệu tắt) (R3) = 22H Gán lại dấu hiệu mở (69H) = 00H Xuất chữ bye bye Xóa số tràn phép tính Xóa LCD clear RS Xóa LCD Tắt LCD (DATA_LCD) = 08H Lệnh xuất TATMO: Kiệm tra LCD bận ko Gán lại dấu hiệu tắt (69H) = 22H TAT: Đưa Port1 vào R4 đề kiểm tra (R4) = 077H TAT1: MOV CJNE MOV MOV LCALL JMP R3,69H R3,#22H,TAT 69H,#00H 39H,#0 CLR_LCD NHAPSO LCALL MOV LCALL LCALL MOV LCALL LCALL MOV LCALL LCALL CLR_LCD DATA_LCD,#06H LENH WAIT_LCD R6,#0 WRITE_TEXT4 CLR_LCD DATA_LCD,#08H LENH WAIT_LCD MOV 69H,#22H MOV CJNE LJMP RET R4,P1 R4,#077H,TAT1 TATMO NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR +Điều chỉnh lưu số thứ nhất: ĐIỀU CHỈNH SỐ THỨ (33H) = 0FFH (43H) = (33H) (42H) = (32H) (32H) = 0FFH (43H) = (32H) (41H) = (31H) (40H) = (30H) (42H) = (31H) (39H) = (29H) (41H) = (30H) R (40H) = (31H)= 0FFH (43H) = (31H) R (42H) = (30H) (43H) = (30H) (41H) = (30H) = 0FFH (40H) = (42H) = R R E (41H) = (40H) = R RET DIEUCHINHSOTHU1: B4: B3: MOV CJNE MOV CJNE MOV CJNE MOV CJNE MOV MOV MOV MOV LJMP MOV A,33H A,#0FFH,B1 A,32H A,#0FFH,B2 A,31H A,#0FFH,B3 A,30H A,#0FFH,B4 43H,30H 42H,#00H 41H,#00H 40H,#00H EXIT1 43H,31H B2: B1: MOV MOV MOV LJMP MOV MOV MOV MOV LJMP MOV MOV MOV MOV EXIT1: 42H,30H 41H,#00H 40H,#00H EXIT1 43H,32H 42H,31H 41H,30H 40H,#00H EXIT1 43H,33H MOV 42H,32H 41H,31H 40H,30H 39H,29H RET NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR + Kết quả: KẾT QUẢ Xóa LCD Đặt vị trí cusor cuối dịng LCD Điều chỉnh số thứ (60H) = 00H Tính trừ Tính cộng Xuất kết Gán lại (R0) = 30H Để tính phép tính khác Gán lại (R5) = Để tính phép tính khác RET KETQUA: TINH: TIEPTUC: LCALL MOV LCALL LCALL LCALL MOV CJNE LCALL JMP LCALL LCALL MOV MOV RET CLR_LCD DATA_LCD,#8FH LENH WAIT_LCD DIEUCHINHSOTHU2 A,60H A,#00H,TINH TINHTRU TIEPTUC TINHCONG BANG R0,#30H R3,#5 NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR + Điều chỉnh số thứ 2: ĐIỀU CHỈNH SỐ THỨ (33H) = 0FFH R (32H) = 0FFH (33H) = (32H) (32H) = (31H) (31H) = (30H) (31H)= 0FFH (30H) = (33H) = (31H) R (32H) = (30H) (33H) = (30H) (31H) = (30H) = 0FFH (30H) = (32H) = R R ’ (31H) = (30H) = R RET BB3: DIEUCHINHSOTHU2: MOV CJNE MOV CJNE MOV CJNE MOV MOV MOV MOV LJMP A,33H A,#0FFH,EXIT2 A,32H A,#0FFH,BB2 A,31H A,#0FFH,BB3 33H,30H 32H,#00H 31H,#00H 30H,#00H EXIT2 BB2: MOV MOV MOV MOV LJMP MOV 33H,31H 32H,30H 31H,#00H 30H,#00H EXIT2 33H,32H MOV MOV MOV LJMP 32H,31H 31H,30H 30H,#00H EXIT2 EXIT2: RET NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR + Tính cộng: TÍNH CỘNG TINHCONG: CLR MOV MOV ADD DIV MOV A B,#10 A,43H A,33H AB 33H,B MOV ADD ADD DIV MOV B,#10 A,32H A,42H AB 32H,B MOV ADD ADD DIV MOV B,#10 A,31H A,41H AB 31H,B MOV ADD ADD DIV MOV MOV B,#10 A,30H A,40H AB 30H,B 29H,A MOV A,39H ADD MOV A,29H 29H,A CLR RET A A=(43H)+(33H) ;Luu vao the thi minh co ; the cong lien tuc cac so Chia A cho 10 Nạp phần dư vào (33H) ;Luu vao the thi minh co ; the cong lien tuc cac so A=A+(32H)+(42H) Chia A cho 10 ;Luu vao the thi minh co ; the cong lien tuc cac so Nạp phần dư vào (32H) A=A+(31H)+(41H) Chia A cho 10 ;trong TH tinh cong ma co so ; thu 5(tran) xuat hien thi ta phai ; thuc hien cac lenh de tri so thu tran ;So tran thu minh da luu ; vao 39h, nen gio lay de tinh ;Luu vao the thi minh co ; the cong lien tuc cac so Nạp phần dư vào (31H) A=A+(30H)+(40H) Chia A cho 10 Nạp phần dư vào (30H) A=A+(39H) Nạp A vào (29H) RET NHÓM LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CALCULATOR + Tính trừ: T TÍNH TRỪ N N ( 39H) = ( 32H)

Ngày đăng: 01/11/2022, 19:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w