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 tron
Trang 1C1 30p C2 30p
81%
RV1 10k
VCC
C3 10uF
R1 10k
A B C D
GROUP VI - TD06 - HCMUTRANS CALCULATOR
XTAL2 18 XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34P0.6/AD6 33P0.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 10P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WRP3.5/T1 1615 P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24 P2.4/A12 25 P2.5/A13 26P2.6/A14 27U1
AT89C51
DIGITAL TECHNOLOGY DIGITAL TECHNOLOGY
UNIVERSITY OF TRANSPORT IN HOCHIMINH CITY
Trang 2Let’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:
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Chữ ký:
NHÓM 6
Trang 3vi đ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:
NHÓM 6
Trang 4 Xử lý đường điều khiển E:
- Để 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 xungcạ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
NHÓM 6
Trang 5 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 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
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
Trang 63 GIAO TIẾP 8951 VỚI BÀN PHÍM 4x4:
Kết nối:
NHÓM 6
Trang 7Xá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
5 6 7
8 9 A B
C D E F
Trang 8- 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ự
hi = 1(ứng với H4), 2( ứng với H3), 3(ứng với H2), 4(ứng với H1)
ci = 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]
Trang 9NHÓM 6
2
Xác định hàng có phím nhấn (hàng) = 4 – (đếm hàng)
1
Trang 10Chương trình con quét bàn phím được viết như sau:
SCAN_KEY:
MOV R1,#0FEH MOV R6,#4 SCAN:
MOV P1,R1 MOV A,P1
Trang 11ANL A,#0F0H CJNE A,#0F0H,GET_CODE XCH A,R1
RL A XCH A,R1 DJNZ R6,SCAN CLR F0 LJMP EXIT GET_CODE:
PUSH ACC MOV A,#4 CLR C SUBB A,R6 MOV R5,A POP ACC SWAP A MOV R4,#4 LOOP2:
RRC A JNC SET_FLAG XCH A,R5 ADD A,#4 XCH A,R5 DJNZ R4,LOOP2 SET_FLAG:
SETB F0 MOV A,R5 EXIT: MOV R1,#00H
MOV R6,#00H RET
Mạch thực tế được kết nối với Port1 như sau:
NHÓM 6
2
5 6
8 9 4
Trang 12A B C D
XTAL2 18 XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.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 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
U1
AT89C51
SƠ ĐỒ MẠCH KẾT NỐI NHƯ SAU:
NHÓM 6
Trang 13Nạp (đếm chữ số) = 5
Các chữ số sau khi nhấn lưu vào các ô nhớ, bắt đầu là ô nhớ 30H, (R0) = 30H
Gán nội dụng các ô nhớ từ 30H tới 33H là 0FFH để dùng khi hiệu chỉnh các số trước
3
Khởi tạo LCD
2
START
Trang 14NHÓM 6
Tắt mở chương trình
Xóa màn LCD
(R4) = 07EH
1
4
Gán số tràn phép tính trước = 0
3
(R4) = 077H
(R4)=
0BBH
(R4) = 0B7H
(R4) = 07BH
(R4)=
07DH
Xóa màn LCD
Gán số tràn phép tính trước = 0
1
1
Điều chỉnh và lưu số thứ nhất Xóa màn LCD
Đánh dấu đây là phép tính cộng (60H)= 0FFh 1
Điều chỉnh và lưu số
thứ nhất
Xóa màn LCD
Đánh dấu đây là phép tính trừ (60H)= 0FFh
1
Kết quả
2
Trang 15Đoạn mã chương trình chính:
ORG 0000H
JMP MAIN ORG 0030H
START: MOV DATA_LCD,#0FFH MAIN: LCALL KHOITAO
LCALL WAIT_LCD MOV R0,#30H MOV R3,#5
Trang 16MOV 30H,#0FFH MOV 31H,#0FFH MOV 32H,#0FFH MOV 33H,#0FFH KK: LCALL SCAN_KEY ;Quet ban phim
MOV R4,P1 CJNE R4,#0F7H,NEXT ;Tiep tuc scan key khi tin hieu vao tu ban phim ko co JMP KK
NEXT: CJNE R4,#077H,XOATUNGKYTU
LCALL TATMO ;stop tat mo ct XOATUNGKYTU:
CJNE R4,#0BBH,NEXT3 MOV 29H,#0
MOV 39H,#0 LCALL CLR_LCD LJMP NHAPSO NEXT3:
CJNE R4,#0B7H,NEXTCONG ;Xoa man hinh MOV 29H,#0
MOV 39H,#0 LCALL CLR_LCD JMP NHAPSO
NEXTCONG:
CJNE R4,#07BH,NEXTTRU ;Nhấn phím + LCALL DIEUCHINHSOTHU1 ;Luu so vua nhap vao dung vi tri de tinh toan sau LCALL WAIT_LCD
LCALL CLR_LCD CLR A MOV 60H,#0FFH LJMP NHAPSO ;quay lai nhap lai so moi
NEXTTRU:
CJNE R4,#07DH,NEXTBANG ;Nhấn phím LCALL DIEUCHINHSOTHU1 ;Luu so vua nhap vao dung vi tri de tinh toan sau LCALL WAIT_LCD
-LCALL CLR_LCD CLR A MOV 60H,#00H LJMP NHAPSO ;quay lai nhap lai so moi NEXTBANG: ;Nhấn phím =
CJNE R4,#07EH,XUATSO LCALL KETQUA
LJMP KK
XUATSO:
LCALL WRITE1 ;Xuất số ra màn hình LCD MOV DATA_LCD,#07H ;Dich hien thi sang trai de xuat so ke tiep LCALL LENH
LCALL WAIT_LCD DJNZ R3,KK ;Số chữ số có quá 4 không, quá thì báo ngay! LCALL CLR_LCD
MOV DATA_LCD,#06H LCALL LENH
LCALL WAIT_LCD MOV R6,#0
NHÓM 6
Trang 17(Số ký tự xuất) =
16
DPTR chỉ tới bảng TEN2
WRITE_TEXT2
Lấy ký tự từ TEN2 vào A
Kiểm tra LCD còn bận không Tăng (số ký tự xuất)
RET
LCALL WRITE_TEXT3 ;Xuất báo nhập quá 4 chữ số LCALL CLR_LCD
LCALL XOA LJMP NHAPSO END
5 CÁC ĐOẠN CHƯƠNG TRÌNH CON:
+ Xuất chữ:
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
NHÓM 6
Trang 18INC A MOV R6,A CJNE A,#16,WW RET
NHÓM 6
Trang 19Lệnh xuất Kiệm tra LCD còn bận ko
Đưa Port1 vào R4
đề kiểm tra
(R4) = 077H
Gán lại dấu hiệu đã tắt (69H) = 22H
TATMO:
MOV R3,69H CJNE R3,#22H,TAT MOV 69H,#00H MOV 39H,#0 LCALL CLR_LCD JMP NHAPSO TAT: LCALL CLR_LCD
MOV DATA_LCD,#06H LCALL LENH
LCALL WAIT_LCD MOV R6,#0 LCALL WRITE_TEXT4 LCALL CLR_LCD MOV DATA_LCD,#08H LCALL LENH
LCALL WAIT_LCD MOV 69H,#22H TAT1: MOV R4,P1
CJNE R4,#077H,TAT1 LJMP TATMO RET
Trang 20+Điều chỉnh và lưu số thứ nhất:
NHÓM 6
(30H) = 0FFH
RE
(43H) = (33H)
(33H) = 0FFH
(32H) = 0FFH
(31H)=
0FFH
(42H) = (32H) (41H) = (31H) (40H) = (30H) (39H) = (29H)
RE
(43H) = (32H) (42H) = (31H) (41H) = (30H) (40H) = 0
RE
(43H) = (31H) (42H) = (30H) (41H) = 0 (40H) = 0
RE
(43H) = (30H) (42H) = 0 (41H) = 0 (40H) = 0
RET
RE
ĐIỀU CHỈNH SỐ THỨ 1
Trang 21MOV A,33H CJNE A,#0FFH,B1 MOV A,32H CJNE A,#0FFH,B2 MOV A,31H CJNE A,#0FFH,B3 MOV A,30H CJNE A,#0FFH,B4 B4: MOV 43H,30H
MOV 42H,#00H MOV 41H,#00H MOV 40H,#00H LJMP EXIT1 B3: MOV 43H,31H
MOV 42H,30H MOV 41H,#00H MOV 40H,#00H LJMP EXIT1 B2: MOV 43H,32H
MOV 42H,31H MOV 41H,30H MOV 40H,#00H LJMP EXIT1 B1: MOV 43H,33H
MOV 42H,32H MOV 41H,31H
MOV 40H,30H MOV 39H,29H EXIT1: RET
NHÓM 6
Trang 22+ Kết quả:
KETQUA: LCALL CLR_LCD
MOV DATA_LCD,#8FH LCALL LENH
LCALL WAIT_LCD LCALL DIEUCHINHSOTHU2 MOV A,60H
CJNE A,#00H,TINH LCALL TINHTRU JMP TIEPTUC TINH: LCALL TINHCONG
TIEPTUC: LCALL BANG
MOV R0,#30H MOV R3,#5 RET
Trang 23+ Điều chỉnh số thứ 2:
DIEUCHINHSOTHU2:
MOV A,33H CJNE A,#0FFH,EXIT2 MOV A,32H
CJNE A,#0FFH,BB2 MOV A,31H CJNE A,#0FFH,BB3 MOV 33H,30H MOV 32H,#00H MOV 31H,#00H MOV 30H,#00H LJMP EXIT2
BB3: MOV 33H,31H
MOV 32H,30H MOV 31H,#00H MOV 30H,#00H LJMP EXIT2 BB2: MOV 33H,32H
MOV 32H,31H MOV 31H,30H MOV 30H,#00H LJMP EXIT2 EXIT2: RET
NHÓM 6
(30H) = 0FFH
R
’E
(33H) = 0FFH
(32H) = 0FFH
(33H) = (31H) (32H) = (30H) (31H) = 0 (30H) = 0
R
’E
ĐIỀU CHỈNH SỐ THỨ 2
Trang 24Chia A cho 10
Chia A cho 10 Nạp phần dư vào (33H)
Chia A cho 10
Nạp phần dư vào (31H) A=A+(30H)+(40H)
Nạp A vào (29H)
Nạp phần dư vào (30H) A=A+(39H)
+ Tính cộng:
TINHCONG: CLR A
MOV B,#10 MOV A,43H ADD A,33H DIV AB MOV 33H,B ;Luu vao the nay thi minh co
; the cong lien tuc cac so MOV B,#10
ADD A,32H ADD A,42H DIV AB MOV 32H,B ;Luu vao the nay thi minh co
; the cong lien tuc cac so
MOV B,#10 ADD A,31H ADD A,41H DIV AB MOV 31H,B ;Luu vao the nay thi minh co
; the cong lien tuc cac so
MOV B,#10 ADD A,30H ADD A,40H DIV AB MOV 30H,B MOV 29H,A ;trong TH tinh cong ma co so
; thu 5(tran) xuat hien thi ta phai
; thuc hien cac lenh nay de duy tri so thu 5 tran do MOV A,39H ;So tran thu 5 nay minh da luu
; vao 39h, nen gio lay ra de tinh ADD A,29H
MOV 29H,A ;Luu vao the nay thi minh co
; the cong lien tuc cac so CLR A
RET
NHÓM 6
Trang 25NN
A[(40H)+10]– (30H) (30H) phần dư A/10 (29H) (39H)-1
N
T
(32H) (42H) – (32H)
(32H)<=(42H )
A[(42H)+10]– (32H) (32H) phần dư A/10 (31H) (31H)+1
N
Y
(31H) (41H) – (31H)
(31H)<=(41H )
A[(41H)+10]– (31H) (31H) phần dư A/10 (30H) (30H)+1
N
+ Tính trừ:
NHÓM 6
Trang 26MOV A,39H CJNE A,#0,OK MOV A,30H CJNE A,40H,BAOLOI1 MOV A,31H
L1: CJNE A,41H,BAOLOI2
MOV A,32H L2: CJNE A,42H,BAOLOI3
MOV A,33H L3: CJNE A,43H,BAOLOI4
JMP OK BAOLOI4: JNC LOI
JMP OK BAOLOI1: JNC LOI
JMP L1 BAOLOI2: JNC LOI
JMP L2 BAOLOI3: JNC LOI
JMP L3
LOI: LCALL WRITE_TEXT7
LCALL DELAY3 LCALL CLR_LCD LJMP NHAPSO
OK:
MOV A,43H CJNE A,33H,KBANG1 LJMP LONHON1 KBANG1:
JNC LONHON1 ADD A,#10 CLR C SUBB A,33H MOV B,#10 DIV AB MOV 33H,B MOV A,32H ADD A,#1 MOV 32H,A LJMP TIEP1 LONHON1:
SUBB A,33H MOV 33H,A
TIEP1: MOV A,42H
CJNE A,32H,KBANG2 LJMP LONHON2 KBANG2:
JNC LONHON2 ADD A,#10 CLR C SUBB A,32H MOV B,#10 DIV AB MOV 32H,B MOV A,31H ADD A,#1 MOV 31H,A LJMP TIEP2 LONHON2:
SUBB A,32H MOV 32H,A
TIEP2: MOV A,41H
; -CJNE A,31H,KBANG3 LJMP LONHON3 KBANG3: JNC LONHON3
ADD A,#10 CLR C SUBB A,31H MOV B,#10 DIV AB MOV 31H,B MOV A,30H ADD A,#1 MOV 30H,A LJMP TIEP3 LONHON3:
SUBB A,31H MOV 31H,A
TIEP3: MOV A,40H
; -CJNE A,30H,KBANG4 LJMP LONHON4 KBANG4: JNC LONHON4
ADD A,#10 CLR C SUBB A,30H MOV B,#10 DIV AB
NHÓM 6
Trang 27A B C D
XTAL2 18 XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.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 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25P2.5/A13 26P2.6/A14 27
U1
AT89C51
MOV 30H,B MOV A,39H SUBB A,#1 MOV 29H,A LJMP TIEP4
LONHON4:
SUBB A,30H MOV 30H,A TIEP4: RET
+ Xuất kết quả số ra màn LCD:
BANG: MOV R1,#30H
MOV A,29H ADD A,#30H SETB E SETB RS MOV DATA_LCD,A LCALL DELAY CLR E LCALL WAIT_LCD XUAT:
MOV A,@R1 ADD A,#30H SETB E SETB RS MOV DATA_LCD,A LCALL DELAY CLR E LCALL WAIT_LCD INC R1
CJNE R1,#34H,XUAT RET
6 KẾT QUẢ MÔ PHỎNG TRÊN PROTUES:
NHÓM 6
Trang 28 Kết quả chạy mô phỏng: Mạch chạy tốt và đúng, nhưng phải chỉnh lại chương trình kiểm tra trạng thái bận của LCD như sau mạch mới hoạt động:
;KIEM TRA TRANG THAI BAN LCD
Trang 303 THI CÔNG MẠCH:
+Thời gian thi công: khoảng 5 ngày
+ Chi phí: khoảng 300 000 vnđ
+ Hỏng hóc: 1 biến trở: do đấu sai nguồn vào biến trở, khi vặn biến trở gây ngắn mạch
1 LCD: do đấu sai biến trở và cấp nguồn 6 VDCMạch phải nạp đi nạp lại nhiều lần mới chạy
Lắp ngược chiều LCD, sau đó phải tháo ra lắp lại+ Sản phẩm hoàn thiện:
+ Đặ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 kinhnghiệm như nhóm tui, cần viết nhiều, tham khảo nhiều chương trình thì mới có kinh nghiệm tốt để viết
NHÓM 6
Trang 31- 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ươngtrì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 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ó, xuất ra một số dòng chữ khá đú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
THE END
NHÓM 6