Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 71 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
71
Dung lượng
2,72 MB
Nội dung
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ ĐỒÁNI Đề tài: Thiết kế chương trình chọn tính tiền hàng hóa tự động sử dụng hệ vi xử lý 8086 Giảng viên hướng dẫn: Nhóm Sinh viên thực hiện: Mã sinh viên: HẢI PHÒNG 20 MỤC LỤC MỤC LỤC A Ý TƯỞNG Đặt vấn đề 2 Hướng thực 2.1 Mục tiêu 2.2 Sơ đồ khối 2.3 Hoạt động hệ thống 3 Cơ sở lý thuyết 3.1 Hệ vi xử lý 8086 3.2 IC 8255A 10 3.3 IC giải mã 74273 13 3.4 LCD 20x4 13 B HOÀN THIỆN Ý TƯỞNG 15 Xây dựng chương trình chọn tính tiền hàng hóa tự động phần mềm EMU 8086 - Microprocessor Emulator 15 1.1 Lưu đồ thuật toán 15 1.2 Lập trình 15 1.3 Kết 40 Mô chương trình phần mềm Proteus 42 2.1 Lưu đồ thuật toán 43 2.2 Xây dựng mạch nguyên lý 43 2.3 Lập trình 45 2.4 Kết 66 A Ý TƯỞNG Đặt vấn đề Ngày nay, phát triển khoa học công nghệ ngày trở lên mạnh mẽ máy bán hàng tự động hay máy giúp người mua hàng tự chọn hàng hóa tính tiền, in hóa đơn cách tự động khơng cịn xa lạ với người trở lên phổ biến Nhưng máy sử dụng hệ vi xử lý mạnh mẽ nhiều hệ vi xử lý 8086 Intel core i3, Intel core i5, Intel core i9,… Ngoài ra, nhiều hệ vi xử lý công ty sản xuất chip bán dẫn khác sử dụng phổ biến chip AMD, chip Qualcomm,… Và với kiến thức học hệ vi xử lý 8086, bọn em xin áp dụng vào đề tài “Thiết kế chương trình chọn tính tiền hàng hóa tự động sử dụng hệ vi xử lý 8086” Hướng thực 2.1 Mục tiêu - Xây dựng chương trình chọn tính tiền hàng hóa tự động phần mềm EMU 8086 - Microprocessor Emulator - Mơ chương trình phần mềm Proteus với: • Vi xử lý 8086: vi xử lý trung tâm • IC 74273 IC số tích hợp flip-flop loại D: dùng để tách đường địa vi xử lý 8086 • IC 8255A: mạch phối ghép vào/ra lập trình gồm 24 chân I/O • Màn hình: dùng để hiển thị menu sản phẩm ,hóa đơn • Bàn phím: dùng để lựa chọn sản phẩm 2.2 Sơ đồ khối - Từ mục tiêu trên, nhóm em xây dựng sơ đồ khối hệ thống mô sau: Hệ vi xử lý 8086 IC 8255A IC 74273 Màn hình Bàn phím 2.3 Hoạt động hệ thống Dựa vào ngôn ngữ lập trình hợp ngữ assembly học với tập lệnh cho vi xử lý 8086, chúng em viết chương trình cho vi xử lý 8086 thơng qua IC 8255A để giao tiếp với hình bàn phím Màn hình đóng vai trị hiển thị bàn phím nhận tương tác người mua hàng Khi khởi chạy, vi xử lý 8086 tách bit địa thông qua IC 74273 tùy theo thiết lập cho trước, 8255A lấy bit địa liệu để sử dụng đồng thời thiết lập tín hiệu địa cho ghi bên Khi đó, IC 8255A phối ghép với hình bàn phím để hiển thị menu, tương tác hiển thị kết hóa đơn Cơ sở lý thuyết 3.1 Hệ vi xử lý 8086 - Hệ vi xử lý 8086 thuộc họ Intel 80x86 với 16 bit liệu 20 bit địa 3.1.1 Sơ đồ khối 8086 - Bên vi xử lý 8086 bao gồm khối chính: + Khối thực lệnh (EU- Execution Unit) nơi giải mã thi hành lệnh + Khối giao tiếp bus (BIU- Bus Interface Unit) có nhiệm vụ đảm bảo việc trao đổi thông tin 8086 với thiết bị ngoại vi - Sau tìm hiều cấu tạo bên khối: Hình Sơ đồ khối vi xử lý 8086 Khối thực lệnh (EU) Khối thực lệnh (EU- Execution Unit) nơi giả mã thi hành lệnh EU bao gồm: - Bộ xử lý số học logic(ALU - Arithmatic Logiccal Unit) nơi thưc lệnh số học lệnh logic - Các ghi đa năng: Có chứa ghi đa 16 bit, ghi chứa loại liệu, nhiên số công việc, ghi lại có chức đặc biệt riêng mà ghi khác khơng thực + Thanh ghi AX: ghi chứa, kết thao tác thường chứa Nếu kết bit ghi AL sử dụng + Thanh ghi BX: ghi sở, thương chứa địa sở bảng sử dụng lệnh XLAT + Thanh ghi CX: ghi đếm, thường chứa số lần lặp lại trường hợp dùng lênh LƠP, cịn CL thường chứa số lần quay hay dịch bít ghi + Thanh ghi DX: ghi liệu, thường sử dụng với ghi AX để thực phép nhân hay chia số 16 bit DX sử dụng để chứa địa cổng lệnh vào/ra liệu trực tiếp - Trong 8086 cịn có ghi trỏ (IP, BP, SP) ghi số (SI, DI) 16 bit Các ghi (trừ IP) dùng ghi đa Nhưng ứng dụng ghi chúng ngầm định ghi lệch cho đoạn tương ứng + Bảng tóm tắt kết hợp ngầm định ghi đoạn ghi lệch: T - Thanh ghi cờ F ghi đặc biệt gọi ghi cờ hay ghi trạng thái Mỗi bit ghi dùng để phản ánh trạng thái định kết phép toán ALU thực trạng thái hoạt động CPU Thanh ghi cờ có 16 bit dùng hết bit làm bit cờ Ca cù cờcủa bộvi xửlý8086 x x x x O D I T S Z x A x P x C X : Không định nghóa - Các bit cờ chia thành hai loại: + Các cờ trạng thái: có cờ trạng thái C, P, A, Z, S O Các cờ trạng thái thiết lập xóa sau hầu hết lệnh toán học logic C (Carry): cờ nhớ; P (Parity): cờ chẵn lẻ; A (Auxiliary): cờ nhớ phụ; Z (Zero): cờ rỗng; S (Sign): cờ dấu; O (Overflow): cờ tràn; + Các cờ điều khiển: có cờ T, I, D Các cờ thiết lập xóa thơng qua lệnh để điều khiển chế độ làm việc vi xử lý T (Trap): cờ bẫy; I (Interrupt): cờ ngắt; D (Direction): cờ hướng; - Khối điều khiển (CU- Control unit): Có nhiệm vụ tạo tín hiệu điều khiển phận bên bên CPU Khối giao tiếp bus (BIU) Khối giao tiếp bus (BIU- Bus Interface Unit) có nhiệm vụ đẩm bảo việc trao đổi thông tin 8086 với linh kiện bên BIU gồm : - Một cộng để tạo địa vật lý 20 bit từ ghi 16 bit - Bốn ghi đoạn 16 bit gồm CS, DS, SS ES để giúp 8086 truy cập tới đoạn nhớ + Thanh ghi đoạn mã CS (Code Segment), + Thanh ghi đoạn liệu DS (Data Segment) + Thanh ghi đoạn liệu phụ ES (Extra Segment) + Thanh ghi đoạn ngăn xếp SS (Stack Segment) - Mạch logic điều khiển có nhiệm vụ đảm bảo giao tiếp 8086 với thiết bị bên ngồi - Hàng đợi lệnh có độ dài byte nơi chứa mã lệnh đọc nằm sẵn để chờ EU xử lý 3.1.2 Sơ đồ chân 8086 Vi xử lý 8086 thiết kế để hoạt động hai chế độ, tùy thuộc vào mức điện áp đặt chân số 33 (chân MN/MX): - Chế độ tối thiểu (chế độ MIN) đươc thiết lập điện áp chân số 33 mức 5V chế độ tong hệ thống có 8086 vi mạch nhớ , vi mạch ghép nối vào - Chế độ tối đa (chế độ MAX) thiết lập điện áp chân số 33 mức 0V, chế độ áp dụng cho hệ thống đa xử lý, đồng xử lý (8086 đồng xử lý toán học 8087) - Các chân mang thông tin địa chỉ: Vi xử lý 8086 có 20 đường địa từ A0 đến A19 16 đường dây địa thấp từ A0 đến A15 ghép kênh liệu từ D0 đến D15 chân từ AD0 đến AD15 ; đường dây địa cao từ A16 đến A19 ghép kênh với tín hiệu trạng thái từ S3 đến S6 chân A16/S3 đến A19/S6 - Các chân mang thông tin liệu: Vi xử ly 8086 có 16 đường dây liệu từ Do đến D15 ghép kênh với 16 đường địa thấp từ D0 đến D15 Khi hoạt động chu kỳ bus liệu đường dây mang thong tin liệu, liệu đọc hay vào nhớ - Các chân tín hiệu trang thái + Bốn đường dây địa cao từ A16 đến A19 8086 ghép kênh, trường hợp ghép kênh với tín hiệu trạng thái từ S3 đến S6 Các bit trang thái đưa thời điểm với liệu truyền chân AD0 đến AD15 + READY: Tín hiệu báo cho CPU biết tình trạng sẵn sàng thiết bị ngoại vi hay nhớ Khi READY = CPU thực đọc/ghi liệu mà chèn thêm chu kỳ đợi Khi thiết bị ngoại vi hay nhớ cótốc độ chậm, chúng đưa tin hiệu READY = để báo cho CPU biết mà chờ chúng Lúc CPU tự kéo dài thời gian thực đọc/ghi cách chèn thêm chu kỳ đợi - Các chân tín hiệu điều khiển + ALE: [I] Address Latch Enable Xung cho phép chốt địa Khi ALE = có nghĩa chân ghép kênh AD có địa thiết bị vào/ra ơnhớ Khi CPU chấp nhận treo chân không trạng thái trở kháng cao mà ALE = + DEN: [O] Data bus Enable Kích hoạt đệm bus liệu + M / IO: Chọn nhớ (= 0) thiếtbị vào/ra (= 1) làm việc với CPU Khi bus địa có địa chỉtương ứng thiết bị Chân trạng thái trở kháng cao CPU chấp nhận treo + DT / R: [O] Data Transmit/Receive Tín hiệu cho biết bus liệu vận chuyển liệu vào CPU hay khỏi CPU Tín hiệu dùng để điều khiển đệm chiều bus liệu + BHE: Dùng để báo truy cập cao hay băng thấp nhớ + RD: :[O] Read signal Xung cho phép đọc Khi RD = bus liệu nhận liệu từ nhớ thiết bị ngoại vi Chân trạng thái trở kháng caokhi CPU chấp nhận treo - Các chân tín hiệu ngắt: + INTR: [I] Interrupt request Tín hiệu u cầu ngắt che Khi có u cầu ngắt (INTR = 1) mà cờ cho phép ngắt IF = CPU kết thúc lệnh làm dở, sau vào chu kỳ chấp nhận ngắt đưa bên ngồi tín hiệu INTA = + TEST: [I] Tín hiệu chân kiểm tra lệnh WAIT Khi CPU thực lệnh WAIT mà lúc tín hiệu TEST = chờ tín hiệu TEST = thực lệnh + NMI: [I] None-Maskable Interrupt Tín hiệu u cầu ngắt khơng che Tín hiệu khơng bị khống chế cờ IF CPU nhận biết tác động sườn lên xung yêu cầu ngắt Nhận yêu cầu ngắt (NMI = 1) CPU kết thúc lệnh đạng làm dở,sau chuyển sang thực chương trình phục vụ ngắt kiểu INT2 + RESET: Dùng để thiết lập lại phần cứng cho CPU Chuyển RESET xuống mức logic dùng để khởi tạo ghi nội vi xử lý khởi tạo chương trình phục vụ thiết lập hệ thống - Các chân mang tín hiệu phục vụ DMA : Ở chế độ MIN 8086 gồm hai tín hiệu HOLD HLDA Khi thiết bị muốn giành quyền điều khiển bus hệ thống thực truy cập nhớ trực tiếp , báo yêu cầu cho CPU cách chuyển HOLD lên mức logic 1.Sau CPU chuyển sang trạng thái cô lập sau chu kỳ bus thực xong Khi trạng thái lập , đường dây tín hiệu AD0- AD15, A16/S3- A19/S6, BHE/S7, , , , INTR 3.1.3 Các hàm ngắt tập lệnh 8086 - Một số lệnh 8086 + Lệnh ADD/SUB: cộng/trừ toán hạng (ADD Đích, Gốc) + Lệnh DIV: thực phép chia khơng dấu, tốn hạng nguồn nhớ hay đoạn ghi Nếu toán hạng nguồn bit thương số nằm AL, số dư nằm AH; tốn hạng nguồn 16 bit, thương số nằm AX số dư nằm DX (DIV Gốc) + Lệnh INT : dùng để gọi hàm DOS BIOS (VD: int 21h) + Lệnh MOV: chuyển liệu từ toán hạng nguồn vào tốn hạng đích (MOV đích, gốc) + Lệnh OUT: xuất liệu từ đoạn chứa cổng (OUT cổng,thanh ghi) + Lệnh IN: đọc liệu từ cổng vào đoạn ghi (IN ghi, cổng) + Lệnh MUL(Multiply): thực phép nhân không dấu Nhân nội dung đoạn AL với tốn hạng nguồn Nếu nguồn kiểu byte tích chứa AX, nguồn kiểu từ tích chứa DX:AX (MUL nguồn) + Lệnh JNZ: KQ lệnh trước khác thi thực lệnh nhảy đến nhãn_đích, ngược lại thực lệnh sau (JNZ nhãn_đích) + Lệnh JA, JG: nhảy lớn + Lệnh JB, JL : nhảy nhỏ + Lệnh JNA, JNG: nhảy không lớn + Lệnh JE: nhảy + Lệnh JC : nhảy cờ CF=1 + Lệnh JMP: nhảy không điều kiện nhảy đến nhãn_nguồn gặp lệnh (JMP nhan_nguon) + Lệnh CMP (CoMPare) : so sánh toán hạng cách trừ toán hạng cho mà khơng lưu lại kết (CMP đích, gốc) + Lệnh lặp : lặp lại nhãn_nguồn gặp lệnh Số lần lặp định ghi CX (LOOP nhan_nguon) + Các lệnh AND, OR, XOR TEST: AND dich,nguon ;AND đích với nguồn, kết lưu đích MENU_3_1: mov bs1,1 mov ax, 29 jmp chung_2 MENU_3_2: mov bs2,1 mov ax, 29 jmp chung_2 MENU_3_3: mov bs3,1 mov ax, 29 jmp chung_2 chung_3: xor ah, ah add ax, c mov c, ax CALL LCD_CLEAR MOV DL,2 ;in dong MOV DH,1 CALL LCD_SET_CUR LEA SI,TB19 CALL LCD_PRINTSTR MOV DL,3 ; in dong MOV DH,1 CALL LCD_SET_CUR LEA SI,TB20 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY KT_YN_3: CALL KEYPORT MOV CX,50 CALL DELAY CMP BL,04H JE IN_MENU_2 CMP BL,05H JE tinh_tien JMP KT_YN_3 QUAY_LAI: JMP MENU_CHINH 55 ;HLT ; 8086 se dung lai ;ham tre PROC DELAY ;input: CX dung de dieu khien thoi gian tre CX=50 chinh la 1ms ;output: none JCXZ @DELAY_END ;nhay neu noi dung dem rong @DEL_LOOP: LOOP @DEL_LOOP @DELAY_END: RET ENDP DELAY ; Khoi tao LCD PROC LCD_INIT ;thiet lap RS=En=RW=0 > che ghi lenh MOV AL,0 CALL OUT_B ;tre 20ms MOV CX,1000 CALL DELAY ;Thiet lap lai trinh tu ;MOV AH,30H ;CALL LCD_CMD ;MOV CX,250 ;CALL DELAY ;MOV AH,30H ;CALL LCD_CMD ;MOV CX,50 ;CALL DELAY ;MOV AH,30H ;CALL LCD_CMD ;MOV CX,500 ;CALL DELAY ;Thiet lap chuc nang MOV AH,38H ;giao tiep bit, hien thi tren ca dong, kich thuoc font 5x7 CALL LCD_CMD MOV AH,0CH ;bat hien thi va tat tro CALL LCD_CMD MOV AH,01H ;xoa toan bo noi dung tren man hinh LCD 56 CALL LCD_CMD MOV AH,06H ;tu dong di chuyen tro den vi tri tiep theo moi xuat LCD ki tu CALL LCD_CMD RET ENDP LCD_INIT ;gui lenh toi LCD PROC LCD_CMD ;input: AH = ma lenh ;output: none ;luu lai thiet lap PUSH DX PUSH AX ;thiet lap rs=0 > ghi lenh MOV AL,PORTB_VAL AND AL,0FCH ;En-RS-RW CALL OUT_B ;thiet lap lenh tren chan MOV AL,AH ; theo AH ma LCD se xu ly theo lenh CALL OUT_A ;Sau cho En tu >0 de cho phep doc/ghi ;En=1 MOV AL,PORTB_VAL OR AL,100B ;En-RS-RW CALL OUT_B ;delay 1ms MOV CX,50 CALL DELAY ;En=0 MOV AL,PORTB_VAL AND AL,0FBH ;En-RS-RW CALL OUT_B ;delay 1ms MOV CX,50 CALL DELAY ;Lay lai ghi POP AX ; lay du lieu cac ghi POP DX RET ENDP LCD_CMD 57 ;ctc xoa toan bo noi dung tren man hinh LCD PROC LCD_CLEAR MOV AH,1 CALL LCD_CMD RET ENDP LCD_CLEAR ;Ghi tung ki tu PROC LCD_WRITE_CHAR ;input: AH ;output: none ;cat ghi PUSH AX ;set RS=1 > ghi du lieu MOV AL,PORTB_VAL OR AL,10B ;EN-RS-RW CALL OUT_B ;set du lieu dau MOV AL,AH ;tuy theo AH bang bao nhieu CALL OUT_A ;set En=1 MOV AL,PORTB_VAL OR AL,100B ;EN-RS-RW CALL OUT_B ;delay 1ms MOV CX,50 CALL DELAY ;set En=0 MOV AL,PORTB_VAL AND AL,0FBH ;EN-RS-RW CALL OUT_B ;return POP AX RET ENDP LCD_WRITE_CHAR ;in chuoi ki tu tai vi tri da dat tai LCD_set_cur 58 PROC LCD_PRINTSTR ;input: SI=dia chi cua chuoi, Si se tu ket thuc xuat hien ki tu '$' ;output: none ;cat cac ghi PUSH SI;cat ghi tro nguon PUSH AX ;doc va ghi du lieu @LCD_PRINTSTR_LT: LODSB ;Nap vao AL/AX phan tu cua chuoi CMP AL,'$' JE @LCD_PRINTSTR_EXIT MOV AH,AL CALL LCD_WRITE_CHAR JMP @LCD_PRINTSTR_LT ;return @LCD_PRINTSTR_EXIT: POP AX POP SI RET ENDP LCD_PRINTSTR ;thiet lap hang PROC LCD_SET_CUR ;input: DL=hang, DH=Cot ; DL = 1, in hang ; DL = 2, in hang ; DH = 1-8, cot tuong ung voi ;output: none ;cat ghi PUSH AX ;LCD se su dung dia chi cot bat dau tu DEC DH ;tang DH len ;Lua chon hang CMP DL,1 JE @ROW1 CMP DL,2 JE @ROW2 CMP DL,3 JE @ROW3 CMP DL,4 JE @ROW4 59 JMP @LCD_SET_CUR_END ;DL==1 @ROW1: MOV AH,80H ; di chuyen dong JMP @LCD_SET_CUR_ENDCASE ;DL==2 @ROW2: MOV AH,0C0H ;di chuyen xuong dong JMP @LCD_SET_CUR_ENDCASE ;DL==3 @ROW3: MOV AH,94H ; di chuyen dong JMP @LCD_SET_CUR_ENDCASE ;DL==4 @ROW4: MOV AH,0D4H ;di chuyen xuong dong JMP @LCD_SET_CUR_ENDCASE ; @LCD_SET_CUR_ENDCASE: ADD AH,DH CALL LCD_CMD ;exit from procedure @LCD_SET_CUR_END: POP AX RET ENDP LCD_SET_CUR ;set Output PROC OUT_A ;input: AL ;output: PORTA_VAL PUSH DX MOV DX,PORTA OUT DX,AL MOV PORTA_VAL,AL POP DX RET ENDP OUT_A PROC OUT_B ;input: AL 60 ;output: PORTB_VAL PUSH DX MOV DX,PORTB OUT DX,AL MOV PORTB_VAL,AL POP DX RET ENDP OUT_B ;Ban Phim 3x3 KEYPORT proc QUET_COT: mov al, 00000000b out PORTA, al in al,PORTC test al,00000001b je phim_1 test al,00000010b je phim_2 test al,00000100b je phim_3 test al,00001000b je phim_4 test al,00010000b je phim_5 test al,00100000b je phim_6 jmp QUET_COT phim_1: mov bl, 01H ;xor bh,bh ;PUSH bx RET phim_2: mov bl, 02H ;xor bh,bh ;PUSH bx RET ; phim_3: mov bl, 03H ;xor bh,bh ;PUSH bx RET 61 phim_4: mov bl, 04H ;xor bh,bh ;PUSH bx RET ; phim_5: mov bl, 05H ;xor bh,bh ;PUSH bx RET phim_6: mov bl, 06H ;xor bh,bh ;PUSH bx RET KEYPORT endp ;tinh tien tong tinh_tien_tong proc CALL LCD_CLEAR MOV DL,1 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB21 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;jmp menu_da_chon menu_da_chon: cmp cf1,1 je menu_11 cmp cf2,1 je menu_12 cmp cf3,1 je menu_13 cmp tm1,1 je menu_21 cmp tm2,1 je menu_22 cmp tm3,1 je menu_23 62 cmp bs1,1 je menu_31 cmp bs2,1 je menu_32 cmp bs3,1 je menu_33 jmp cam_on ; menu_11: mov cf1,0 MOV DL,2 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB22 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_12: mov cf2,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,2 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB23 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_13: mov cf3,0 ;CMP DONG_MAY ,1 ;JE IN_13_DONG_4 MOV DL,2 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB24 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon 63 ; menu_21: mov tm1,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,3 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB25 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_22: mov tm2,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,3 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB26 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_23: mov tm3,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,3 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB27 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon ; menu_31: mov bs1,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,4 64 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB28 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_32: mov bs2,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,4 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB29 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon menu_33: mov bs3,0 ;CMP DONG_MAY ,1 ;JE IN_12_DONG_4 MOV DL,4 MOV DH,1 CALL LCD_SET_CUR LEA SI,TB30 CALL LCD_PRINTSTR MOV CX,100 CALL DELAY ;MOV DONG_MAY, jmp menu_da_chon ; cam_on: CALL KEYPORT MOV CX,50 CALL DELAY CMP BL,06H JE tra_ve jmp cam_on tra_ve: RET 65 tinh_tien_tong endp CODE ENDS END START 2.4 Kết - Sau q trình viết, mơ kiểm tra, chương trình chúng em hoạt động tốt xác Tuy nhiên, giới hạn số dịng, số kí tự hiển thị LCD 20x4 nên chúng em không hiển thị nhiều hàng hóa in số lần lặp lại hàng hóa chương trình mơ EMU 8086 - Sau số hình ảnh mô phỏng: 66 67 68 69 ... lý 8086, bọn em xin áp dụng vào đề t? ?i ? ?Thiết kế chương trình chọn tính tiền hàng hóa tự động sử dụng hệ vi xử lý 8086? ?? Hướng thực 2.1 Mục tiêu - Xây dựng chương trình chọn tính tiền hàng hóa tự. .. bán hàng tự động hay máy giúp ngư? ?i mua hàng tự chọn hàng hóa tính tiền, in hóa đơn cách tự động khơng cịn xa lạ v? ?i ngư? ?i trở lên phổ biến Nhưng máy sử dụng hệ vi xử lý mạnh mẽ nhiều hệ vi xử. .. lý 8086 Intel core i3 , Intel core i5 , Intel core i9 ,… Ngo? ?i ra, nhiều hệ vi xử lý công ty sản xuất chip bán dẫn khác sử dụng phổ biến chip AMD, chip Qualcomm,… Và v? ?i kiến thức học hệ vi xử lý