TRƢỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN MÔN HỌC HỌC PHẦN KỸ THUẬT VI XỬ LÝ ĐỀ TÀI MÁY TÍNH CỘNG TRỪ NHÂN CHIA HIỂN THỊ TRÊN LCD Giảng viên hƣớng dẫn Th S[.]
TRƢỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN MÔN HỌC HỌC PHẦN: KỸ THUẬT VI XỬ LÝ ĐỀ TÀI: MÁY TÍNH CỘNG TRỪ NHÂN CHIA HIỂN THỊ TRÊN LCD Giảng viên hƣớng dẫn :Th.S Lê Cơng Danh Nhóm thực : Nhóm Lớp : DC20B Tp Hồ Chí Minh, tháng 01 năm 2023 Danh sách thành viên nhóm Họ tên Lớp MSSV Lê Hữu Thoại DC20B 2051060204 Liêu Thành Tâm DC20B 2051060174 Huỳnh Hiếu Nghĩa DC20B 2051060142 Nguyễn Phúc Thiện DC20B 2051060200 Huỳnh Thị Quỳnh DC20B 2051060164 MỤC LỤC Lời mở đầu CHƢƠNG 1: GIỚI THIỆU ĐỀ TÀI .2 1.1 Giới thiệu máy tính bỏ túi .2 1.2 Các giải pháp cách xác định toán .2 1.2.1 Yêu cầu hệ thống 1.2.2 Lựa chọn phương án CHƢƠNG GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN TRONG MẠCH .4 2.1 Vi điều khiển AT89C51 2.1.2 Hoạt động định thời, cổng nối tiếp ,ngắt xử lý ngắt họ 8051 11 2.1.3 Các ghi đặc biệt 89C51 (SFR – Special Function Registers) 12 2.2 LCD hiển thị 16 2.2.1 Hình dáng kích thước 16 2.2.2.Chức chân 16 2.3 Bàn phím 21 2.3.1 Số lượng chức phím nhấn 22 2.3.2 Xác định cách kết nối với VĐK 22 2.3.3 Sơ đồ nguyên lý 22 2.3.4.Nguyên tắc hoạt động 23 2.3.5 Ghép nối vi điều khiển với bàn phím 25 CHƢƠNG CÁC SỐ ĐỒ MẠCH 26 3.1 Sơ đồ khối LCD 26 3.2 Khối bàn phím 26 3.3 Khối trung tâm 27 3.4 Mô Proteus 27 CHƢƠNG 4.1 LẬP TRÌNH CHO VI XỬ LÝ 28 Lƣu đồ thực toán 28 4.2.Chƣơng trình hợp ngữ Assembly 51 CHƢƠNG Những kết thu đƣợc hƣớng phát triển 63 5.1 Những kết thu đƣợc 63 CHƢƠNG KẾT LUẬN 64 Tài liệu tham khảo 65 MỤC LỤC HÌNH Hình 1 Máy tính bỏ túi Hình Sơ đồ khối AC89C51……………………………………………………… Hình 2 Sơ đồ chân AC89C51 Hình Cổng vào/ra Hình Xuất mức .7 Hình Trở treo nội chân Hình Xuất mức .8 Hình Hình dạng LCD 16 Hình Sơ đồ chân LCD 16 Hình Kết nối bit: chân D0 đến D7 LCD kết nối với chân MCU 21 Hình 10 Cấu tạo phím 22 Hình 11 Bàn phím với mã phím 23 Hình 12 Cách ghép nối bàn phím mơ – dùng module bàn phím 25 Hình Sơ đồ khối LCD…………………………………………………………26 Hình Sơ đồ khối bàn phím 26 Hình 3 Khối trung tâm 27 Hình Mô Proteus 27 MỤC LỤC BẢNG Bảng Các chức đặc biệt port 10 Bảng 2 Chọn bank ghi: 13 Bảng chọn chế độ hoạt động port nối tiếp 15 Bảng Chức chân LCD 18 Bảng Bảng mã lệnh điều khiển 20 LỜI MỞ ĐẦU Máy tính bỏ túi cơng cụ học tập quen thuộc học sinh, sinh viên, đặt biệt sinh viên kỹ thuật Trong đời sống hàng ngày, vật cần thiết cho việc tính tiền vụ mua bán Trong sản xuất, dùng để tính tốn số sản phẩm làm Và nhiều ứng dụng khác máy tính bỏ túi, cho thấy phổ biến, cần thiết Nhận thấy vai trị máy tính bỏ túi học tập, lao động đời sống nên nhóm em định chọn đề tài “ Máy tính cộng trừ nhân chia, lên hình LCD” Em xin chân thành cảm ơn giảng viên Lê Công Danh giúp đỡ nhóm em suốt q trình làm đồ án Một lần nhóm em xin chân thành cảm ơn Thầy Thành phố Hồ Chí Minh, tháng 01 năm 2023 CHƢƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu máy tính bỏ túi Với gia đình, quan, xí nghiệp, trường học hay nơi đâu ta bắt gặp máy tính bỏ túi Hiện thị trường có nhiều nhà sản xuất máy tính bỏ túi khác nhau, với nhiều chức năng, kiểu dáng đa dang Máy tính bỏ túi nói chung thiết bị dùng để tính tốn cơng thức tốn học mà người lập trình lập trình sẵn cho Hình 1 Máy tính bỏ túi Nhìn chung máy tính đước sản xuất từ nhà sản xuất lớn TOSHIBA, VNC,CASIO 1.2 Các giải pháp cách xác định toán 1.2.1 Yêu cầu hệ thống Qua tham khảo sản phẩm máy tính bỏ túi thị trường yêu cầu sản phẩm máy tính bỏ túi thông thường: Dao diện người dung dễ sử dụng Thực số phép tính đơn giản cộng trừ nhân chia Yêu cầu kết luôn Điện áp hoạt động hệ thống không gây nguy hiểm đến người sử dụng 1.2.2 Lựa chọn phương án Với yêu cầu tính trên, chúng em chọn thiết bị chính: Vi điều khiển AT89C51 Màn hình LCD 16x2 với mục đích hiển thị thơng tin, giao tiếp vi điều khiển với người dùng Bàn phím 16 phím có phím số phím chức đưa đầu vào số phép tính CHƢƠNG GIỚI THIỆU VI ĐIỀU KHIỂN 8051 VÀ CÁC LINH KIỆN TRONG MẠCH 2.1 Vi điều khiển AT89C51 2.1.1 Giới thiệu tổng quan họ vi điều khiển 8051 AT89C51 vi điều khiển bit, chế tạo theo công nghệ CMOS chất lượng cao, công suất thấp với KB PEROM ( Flash Programeable and erasable read only memory) Các đặc điểm 8951 tóm tắt sau: KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả tới 1000 chu kỳ ghi xoá Tần số hoạt động từ: 0Hz đến 24 MHz mức khóa nhớ lập trình 128 Byte RAM nội Port xuất /nhập I/O bit Timer/counter 16 Bit nguồn ngắt Giao tiếp nối tiếp điều khiển phần cứng 64 KB vùng nhớ mã 64 KB vùng nhớ liệu Cho phép xử lý bit 210 vị trí nhớ định vị bit chu kỳ máy (4 µs thạch anh 12MHz) cho hoạt động nhân chia Có chế độ nghỉ (Low-power Idle) chế độ nguồn giảm (Power-down) Ngoài ra, số IC khác họ MCS-51 có thêm định thời thứ 256 byte RAM nội Lƣu đồ chƣơng trình xuất kí tự CLR RS SETB RW Gửi kí tự cần hiển thị lên P2 SETB E CALL delay 250 s CLR E RET 51 4.2.Chƣơng trình hợp ngữ Assembly ORG 30H MOV R2,#0 JMP MAIN MOV R3,#0 MOV 31H,#0 KQ EQU MOV 32H,#0 HANG1 EQU P1.0 MOV 33H,#0 HANG2 EQU P1.1 MOV 34H,#0 HANG3 EQU P1.2 MOV 35H,#0 HANG4 EQU P1.3 MOV 36H,#0 COT1 EQU P1.4 MOV 37H,#0 COT2 EQU P1.5 MOV 38H,#0 COT3 EQU P1.6 MOV 39H,#0 COT4 EQU P1.7 MOV 40H,#0 RS BIT P3.0 MOV 50H,#0 RW BIT P3.1 RET E BIT P3.2 DULIEU EQU P2 DAUVAO: CALL QUETSOVAHIENTHI MAIN: MOV 31H,R2 CALL XOAGHINHO CALL DAUVAO CALL DAURA CALL QUETSOVAHIENTHI CALL QUETSOVAHIENTHI CJNE A,#15,KTRA JMP MAIN JMP GOIQUET KTRA: CJNE A,#12,KTRA1 XOAGHINHO: JMP GOIQUET CLR A MOV B,A KTRA1: CLR KQ CJNE A,#10,KTRA2 CLR C JMP GOIQUET 52 KTRA2: CHAY2: CJNE A,#11,CHAY0 MOV 34H,R2 JMP GOIQUET CALL KETHOP2SOLAN2 CHAY0: CALL QUETSOVAHIENTHI MOV 32H,R2 CALL KETHOP2SOLAN1 RET KETHOP2SOLAN1: GOIQUET: MOV A,31H CALL QUETSOVAHIENTHI MOV B,#10 CJNE A,#15,KTRA5 MUL AB CALL QUETSOVAHIENTHI ADD A,32H JMP CHAY1 MOV 31H,A KTRA5: CLR A CJNE A,#12,KTRA6 RET CALL QUETSOVAHIENTHI KTRA6: CJNE A,#10,KTRA7 KETHOP2SOLAN2: CALL QUETSOVAHIENTHI MOV A,33H JMP CHAY1 MOV B,#10 MUL AB KTRA7: CJNE A,#11,CHAY1 ADD A,34H CALL QUETSOVAHIENTHI MOV 33H,A JMP CHAY1 CLR A RET CHAY1: MOV 33H,R2 CALL QUETSOVAHIENTHI CJNE A,#14,CHAY2 DAURA: MOV A,50H RET CJNE A,#15,KTRADAU0 53 JMP DAUCONG NHOHON1: KTRADAU0: MOV B,#10 CJNE A,#12,KTRADAU1 DIV AB JMP DAUTRU MOV KQ,A KTRADAU1: CALL HIENKQ CJNE A,#10,KTRADAU2 JMP DAUCHIA MOV KQ,B CALL HIENKQ KTRADAU2: RET CJNE A,#11,DAURA JMP DAUNHAN LONHON1: MOV B,#100 DIV AB DAUCONG: MOV 36H,A MOV A,31H MOV A,B ADD A,33H MOV B,#10 CJNE A,#10,SOSANH0 DIV AB JMP LONHON0 MOV 37H,A SOSANH0: MOV 38H,B JC NHOHON0 MOV KQ,36H JNC LONHON0 CALL HIENKQ NHOHON0: MOV KQ,37H MOV KQ,A CALL HIENKQ CALL HIENKQ MOV KQ,38H RET CALL HIENKQ LONHON0: RET CJNE A,#100,SOSANH1 JMP LONHON1 SOSANH1: DAUTRU: SOSANHSUBB1: JC NHOHON1 MOV A,31H JNC LONHON1 CJNE A,33H,SOSANH2 54 JMP LONHON2 MOV KQ,B SOSANH2: CALL HIENKQ JC NHOHON2 JNC LONHON2 RET LONHON2: NHOHON2: CLR C XCH A,33H SUBB A,33H CLR C MOV 35H,A SUBB A,33H CJNE A,#10,SOSANH4 MOV 35H,A JMP LONHON4 CJNE A,#10,SOSANH3 JMP LONHON3 SOSANH4: JC NHOHON4 SOSANH3: JNC LONHON4 JC NHOHON3 JNC LONHON3 NHOHON4: NHOHON3: MOV KQ,35H MOV KQ,#12 CALL HIENKQ CALL HIENKQ RET MOV KQ,35H LONHON4: CALL HIENKQ MOV B,#10 RET DIV AB LONHON3: MOV KQ,A MOV B,#10 CALL HIENKQ DIV AB MOV KQ,B MOV 35H,A CALL HIENKQ MOV KQ,#12 RET CALL HIENKQ MOV KQ,35H DAUNHAN: CALL HIENKQ MOV A,31H 55 MOV B,33H MOV 35H,B MUL AB MOV B,#10 MOV 35H,A DIV AB MOV 36H,B MOV 36H,B MOV A,B MOV 37H,A MOV KQ,37H JZ KOCOBYTECAO CALL HIENKQ JNZ COBYTECAO MOV KQ,36H CALL HIENKQ MOV KQ,35H KOCOBYTECAO: CALL HIENKQ MOV A,35H RET CJNE A,#100,SOSANH5 SOSANH5: JC NHOHON5 COBYTECAO: JNC LONHON5 MOV A,35H MOV B,#10 NHOHON5: DIV AB MOV B,#10 DIV AB MOV 37H,B MOV KQ,A CALL HIENKQ MOV B,#10 MOV KQ,B CALL HIENKQ DIV AB RET MOV 38H,B LONHON5: MOV B,#10 MOV 39H,A DIV AB 56 MOV A,36H HANGNGHIN: MOV A,40H MOV KQ,40H CALL HIENKQ LAPLAI: MOV KQ,39H MOV A,#6 CALL HIENKQ MOV KQ,38H ADD A,37H CALL HIENKQ MOV KQ,37H MOV B,#10 CALL HIENKQ DIV AB RET MOV 37H,B ADD A,#5 DAUCHIA: ADD A,38H MOV B,#10 MOV A,31H DIV AB MOV B,33H MOV 38H,B DIV AB MOV 35H,A ADD A,#2 MOV 36H,B ADD A,39H MOV A,36H MOV B,#10 CJNE A,#25,SOSANH6 DIV AB JMP NHOHON6 MOV 39H,B SOSANH6: JC NHOHON6 ADD A,40H JNC LONHON6 MOV 40H,A NHOHON6: MOV B,#10 DJNZ 36H,LAPLAI MOV 57 Mov A,35H MOV A,31H DIV AB MOV B,#25 MOV 37H,A DIV AB MOV 38H,B MOV R3,A MOV B,#10 MOV 35H,B MOV A,36H LAPLAI2: MUL AB MOV A,#25 MOV B,33H MOV B,33H DIV AB DIV AB MOV 39H,A MOV 36H,A MOV A,B MOV A,B MOV B,#10 MOV B,#10 MUL AB MUL AB MOV B,33H MOV B,33H DIV AB DIV AB MOV 40H,A MOV B,#10 MOV KQ,37H MUL AB CALL HIENKQ ADD A,36H MOV KQ,38H ADD A,R5 CALL HIENKQ MOV R5,A MOV KQ,#16 DJNZ R3,LAPLAI2 CALL HIENKQ MOV A,35H MOV KQ,39H MOV B,33H CALL HIENKQ DIV AB MOV KQ,40H MOV 37H,A CALL HIENKQ MOV A,B RET MOV B,#10 MUL AB LONHON6: MOV B,33H MOV R5,#0 DIV AB 58 MOV B,#10 MOV R2,#7 MUL AB CALL HIENKQ ADD A,37H JNB COT1,$ MOV 38H,A MOV A,#7 MOV A,R5 ADD A,38H RET MOV B,#100 NHAN1: DIV AB JB COT2, NHAN2 MOV 35H,A MOV KQ,#8 MOV A,B MOV R2,#8 MOV B,#10 CALL HIENKQ DIV AB JNB COT2,$ MOV 36H,A MOV A,#8 MOV 37H,B RET MOV KQ,35H NHAN2: CALL HIENKQ JB COT3, NHAN3 MOV KQ,#16 MOV KQ,#9 CALL HIENKQ MOV R2,#9 MOV KQ,36H CALL HIENKQ CALL HIENKQ JNB COT3,$ MOV KQ,37H MOV A,#9 CALL HIENKQ RET RET NHAN3: JB COT4, XET2 MOV KQ,#10 QUETSOVAHIENTHI: CALL HIENKQ MOV P1,#0FFH JNB COT4,$ CLR HANG1 MOV A,#10 JB COT1, NHAN1 MOV 50H,#10 MOV KQ,#7 RET 59 MOV KQ,#11 XET2: CALL HIENKQ SETB HANG1 JNB COT4,$ MOV 50H,#11 CLR HANG2 MOV A,#11 JB COT1, NHAN4 RET MOV KQ,#4 MOV R2,#4 XET3: CALL HIENKQ SETB HANG2 JNB COT1,$ MOV A,#4 CLR HANG3 RET JB COT1, NHAN7 NHAN4: MOV KQ,#1 JB COT2, NHAN5 MOV R2,#1 MOV KQ,#5 CALL HIENKQ MOV R2,#5 JNB COT1,$ CALL HIENKQ MOV A,#1 JNB COT2,$ RET MOV A,#5 NHAN7: RET JB COT2, NHAN8 NHAN5: MOV KQ,#2 JB COT3, NHAN6 MOV R2,#2 MOV KQ,#6 CALL HIENKQ MOV R2,#6 JNB COT2,$ CALL HIENKQ MOV A,#2 JNB COT3,$ RET MOV A,#6 NHAN8: RET JB COT3, NHAN9 NHAN6: MOV KQ,#3 JB COT4, XET3 MOV R2,#3 60 CALL HIENKQ NHAN11: JNB COT3,$ JB COT3, NHAN12 MOV A,#3 MOV KQ,#14 RET CALL HIENKQ NHAN9: JNB COT3,$ JB COT4, XET4 MOV A,#14 MOV KQ,#12 RET CALL HIENKQ JNB COT4,$ NHAN12: MOV 50H,#12 JB COT4, XET5 MOV A,#12 MOV KQ,#15 RET CALL HIENKQ JNB COT4,$ XET4: MOV 50H,#15 SETB HANG3 MOV A,#15 RET CLR HANG4 JB COT1, NHAN10 CALL XOADULIEU XET5: JNB COT1,$ SETB HANG4 RET JMP QUETSOVAHIENTHI NHAN10: JB COT2, NHAN11 MOV KQ,#0 HIENKQ: MOV R2,#0 CALL KHOIDONGLCD CALL HIENKQ MOV DPTR,#THONGTIN JNB COT2,$ CLR A MOV A,#0 MOV A,KQ RET MOVC A,@A+DPTR CALL XUATKITU 61 CALL DELAY RET CLR E XUATKITU: RET SETB RS DELAY: CLR RW MOV R5,#250 MOV DULIEU,A DJNZ R5, $ SETB E RET CALL DELAY CLR E XOADULIEU: CLR RS RET CLR A MOV A, #01H KHOIDONGLCD: CALL NAPLENH CLR RS RET MOV A, #38H CALL NAPLENH CLR RS THONGTIN: MOV A, #0EH DB '0','1','2','3','4','5','6','7','8','9',':','*','','?','=','+','.' CALL NAPLENH CLR RS MOV A,#06H END CALL NAPLENH RET NAPLENH: CLR RS CLR RW MOV DULIEU, A SETB E 62 CHƢƠNG NHỮNG KẾT QUẢ THU ĐƢỢC VÀ HƢỚNG PHÁT TRIỂN 5.1 Những kết thu đƣợc - Về ưu điểm Hoàn thành đồ án mà nhóm phân cơng Hiểu biết chương trình hợp ngữ assembly Hiểu biết thêm Vi điều khiển AT89C51 Hiểu biết kết nối bàn phím, LCD với AT89C51 - Về nhược điểm Tuy tính phép tính bản, cịn số lỗi sau: Phép chia chữ số chưa cho kết xác Vẫn chưa có chương trình chống lỗi nhấn sai phím Chương trình hợp ngữ lập đồ án chưa tối ưu 5.2.Hƣớng phát triển Trong trình làm nhóm em làm thành tựu định làm mơ hình máy tính bỏ túi với việc thực phép tính với số có chữ số Cũng thời gian trình độ hiểu biết nhóm em cịn hạn chế nên nhóm tụi em làm ứng dụng tính tốn hạn chế máy tính thực phép tính cộng,trừ, nhân, chia với chữ số Nhưng tương lai nhóm em cố gắng học hỏi giảng dạy Thầy tài liệu tài liệu ngồi để tạo mơ hình máy tính bỏ túi để thực phép tính phức tạp nhiều chữ số ví dụ chẳng hạn cộng, trừ, nhân, chia số thập phân phép tính có chữ số, chữ số,…để thuận tiện việc học tập làm việc sống ngày trở nên thuận lợi 63 CHƢƠNG KẾT LUẬN Sau trải qua thời gian học tập làm việc hướng dẫn giảng viên Lê Cơng Danh, nhóm em thực mơ hình máy tính bỏ túi mà có lẽ quen thuộc với lứa tuổi học sinh sinh viên ngày Và tương lại nhóm em cố gắng hồn thiện cải tiến lại máy tính cách thơng minh hiệu Nhóm em tin giúp ích cho lứa tuổi học sinh cho người tồn xã hội Vì thời gian làm đồ án có hạn nên chúng em hồn thành máy tính bỏ túi đơn giản thực phép tính đơn giản cộng, trừ, nhân, chia sử dụng vi điều khiển 8051 trình làm đồ án khơng tránh sai sót mong Thầy thơng cảm góp ý cho nhóm chúng em hồn thiện Em xin chân thành cảm ơn Thầy ! 64 TÀI LIỆU THAM KHẢO [1] Họ vi điều khiển 8051 – Tống Văn On – NXB Lao động – Xã hội [2] Bài giảng vi điều khiển – vi xử lý- vi điều khiển ( Trường ĐH Kỹ Thuật Công Nghiệp) [3] Lê Văn Danh - Kỹ thuật vi điều khiển, NXB KH & KT 1998 [4] Website: www.dientuvienthong.net [5] Website: www.vntelecom.org [6] https://www.youtube.com/watch?v=DP9xMvkLqpk&t=148s 65 ... 4.1 Lƣu đồ thực toán Với đồ án “Máy Tính Cộng Trừ Nhân Chia Hiển Thị Trên Lcd” gồm có lưu đồ sau: Lưu đồ chương trình Lưu đồ chương trình đầu vào Lưu đồ chương trình đầu Lưu đồ chương... MCS-51 có thêm định thời thứ 256 byte RAM nội 2.1.1.1 Sơ đồ khối sơ đồ chân AT89C51 Hình Sơ đồ khối AC89C51 Hình 2 Sơ đồ chân AC89C51 Chip AT89C51 có tín hiệu điều khiển cần phải lưu ý sau: Tín hiệu... khôi phục giá trị cần thiết Đối với AT89C51, stack chứa RAM nội (1 28 byte 80 31 /80 51 hay 256 byte 80 32 /80 52) Mặc định khởi động, giá trị SP 07H, nghĩa stack địa 08H (do hoạt động lưu giá trị vào stack