Ngày nay, khi sự phát triển của khoa học và công nghệ ngày càng trở lên mạnh mẽ thì những chiếc máy bán hàng tự động hay những chiếc máy giúp người mua hàng có thể tự chọn hàng hóa và tính tiền, in ra hóa đơn một cách tự động đã không còn xa lạ với mọi người và trở lên rất phổ biến. Nhưng những chiếc máy này đều được sử dụng trên những hệ vi xử lý mạnh mẽ hơn rất nhiều hệ vi xử lý 8086 như Intel core i3, Intel core i5, Intel core i9,… Ngoài ra, còn rất nhiều hệ vi xử lý của các công ty sản xuất chip bán dẫn khác được sử dụng phổ biến như chip AMD, chip Qualcomm,… Và với những kiến thức đã được học về hệ vi xử lý 8086, bọn em xin được áp dụng vào đề tài “Thiết kế chương trình chọn và tính tiền hàng hóa tự động sử dụng hệ vi xử lý 8086”.
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
KHOA ĐIỆN – ĐIỆN TỬ
Trang 2MỤC LỤC
MỤC LỤC 1
A. Ý TƯỞNG 2
1.Đặt vấn đề 2
2.Hướng thực hiện 2
2.1 Mục tiêu 2
2.2 Sơ đồ khối 2
2.3 Hoạt động của hệ thống 3
3.Cơ sở lý thuyết 3
3.1 Hệ vi xử lý 8086 3
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
1.Xây dựng 1 chương trình chọn và tính tiền hàng hóa tự động trên 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 quả 40
2.Mô phỏng chương trình trên 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 quả 66
Trang 3A Ý TƯỞNG
1 Đặt vấn đề
Ngày nay, khi sự phát triển của khoa học và công nghệ ngày càng trở lên mạnh mẽ thì những chiếc máy bán hàng tự động hay những chiếc máy giúp người mua hàng có thể tự chọn hàng hóa và tính tiền, in ra hóa đơn một cách tự động đã không còn xa lạ với mọi người và trở lên rất phổ biến Nhưng những chiếc máy này đều được sử dụng trên những hệ vi xử lý mạnh mẽ hơn rất nhiều
hệ vi xử lý 8086 như Intel core i3, Intel core i5, Intel core i9,… Ngoài ra, còn rất nhiều hệ vi xử lý của các công ty sản xuất chip bán dẫn khác được sử dụng phổ biến như chip AMD, chip Qualcomm,…
Và với những kiến thức đã được học về hệ vi xử lý 8086, bọn em xin được áp dụng vào đề tài “Thiết kế chương trình chọn và tính tiền hàng hóa tự động sử dụng hệ vi xử lý 8086”.
• IC 8255A: mạch phối ghép vào/ra lập trình được gồm 24 chân I/O.
• Màn hình: dùng để hiển thị menu sản phẩm ,hóa đơn.
Trang 42.3 Hoạt động của hệ thống
Dựa vào ngôn ngữ lập trình hợp ngữ assembly đã được học với những tập lệnh cho vi xử lý 8086, chúng em sẽ viết 1 chương trình cho vi xử lý 8086 thông qua IC 8255A để giao tiếp với màn hình và bàn phím Màn hình sẽ đóng vai trò hiển thị và bàn phím sẽ nhận tương tác của người mua hàng.
Khi khởi chạy, vi xử lý 8086 sẽ được tách các bit địa chỉ thông qua IC
74273 và tùy theo thiết lập cho trước, 8255A sẽ lấy 8 bit địa chỉ và dữ liệu để sử dụng đồng thời thiết lập tín hiệu địa chỉ cho 4 thanh ghi bên trong Khi đó, IC 8255A sẽ phối ghép với màn hình và bàn phím để hiển thị menu, tương tác và hiển thị kết quả hóa đơn.
3 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 dữ liệu và 20 bit địa chỉ 3.1.1 Sơ đồ khối của 8086
- Bên trong bộ vi xử lý 8086 bao gồm 2 khối chính:
+ Khối thực hiện lệnh (EU- Execution Unit) là nơi giải mã và thi hành các 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 giữa 8086 với các thiết bị ngoại vi.
- Sau đây chúng ta sẽ tìm hiều cấu tạo bên trong của từng khối:
Hình 1 Sơ đồ khối của bộ vi xử lý 8086
Khối thực hiện lệnh (EU)
Khối thực hiện lệnh (EU- Execution Unit) là nơi giả mã và thi hành các lệnh
EU bao gồm:
Trang 5- Bộ xử lý số học và logic(ALU - Arithmatic Logiccal Unit) là nơi thưc hiện các lệnh số học và lệnh logic.
- Các thanh ghi đa năng: Cĩ chứa 4 thanh ghi đa năng 16 bit, mỗi thanh ghi cĩ thể chứa bất kì các loại dữ liệu, tuy nhiên một số cơng việc, các thanh ghi này lại cĩ chức năng đặc biệt của riêng nĩ mà các thanh ghi khác khơng thực hiện được.
+ Thanh ghi AX: đây là thanh ghi chứa, kết quả của các thao tác thường được chứa ở đây Nếu kết quả là 8 bit thì thanh ghi AL sẽ được sử dụng
+ Thanh ghi BX: đây là thanh ghi cơ sở, thương được chứa địa chỉ cơ sở của một bảng khi sử dụng lệnh XLAT
+ Thanh ghi CX: đây là thanh ghi đếm, nĩ thường được chứa số lần lặp lại trong trường hợp dùng lênh LƠP, cịn CL thì thường được chứa số lần quay hay dịch bít của các thanh ghi
+ Thanh ghi DX: đây là thanh ghi dữ liệu, nĩ thường được sử dụng cùng với thanh ghi AX để thực hiện các phép nhân hay chia của các số 16 bit DX cịn được sử dụng để chứa địa chỉ các cổng trong các lệnh vào/ra dữ liệu trực tiếp
- Trong 8086 cịn cĩ 3 thanh ghi con trỏ (IP, BP, SP) và 2 thanh ghi chỉ số (SI, DI) 16 bit Các thanh ghi này (trừ IP) đều cĩ thể được dùng như các thanh ghi
đa năng Nhưng ứng dụng chính của mỗi thanh ghi là chúng được ngầm định như là thanh ghi lệch cho các đoạn tương ứng.
+ Bảng tĩm tắt sự kết hợp ngầm định giữa thanh ghi đoạn và thanh ghi lệch:
Thanh ghi đoạn Thanh ghi lệch Địa chỉ
CS IP Địa chỉ lệnh sắp thực hiện
DS BX, DI, SI Địa chỉ trong đoạn dữ liệu
SS SP hoặc BP Địa chỉ trong đoạn ngăn xếp
- Thanh ghi cờ F là một thanh ghi đặc biệt gọi là thanh ghi cờ hay thanh ghi trạng thái Mỗi bit của thanh ghi này được dùng để phản ánh một trạng thái nhất định của kết quả phép tốn do ALU thực hiện hoặc một trạng thái hoạt động của CPU Thanh ghi cờ cĩ 16 bit nhưng chỉ dùng hết 9 bit làm bit cờ.
x
Các cờ của bộ vi xử lý 8086
X : Không được định nghĩa
Trang 6- Các bit cờ chia thành hai loại:
+ Các cờ trạng thái: có 6 cờ trạng thái là C, P, A, Z, S và O Các cờ trạng thái này được thiết lập bằng 1 hoặc xóa bằng 0 sau hầu hết các lệnh toán học và logic.
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 giữa 8086 với các linh kiện bên ngoài BIU gồm :
- Một bộ cộng để tạo địa chỉ vật lý 20 bit từ các thanh ghi 16 bit.
- Bốn thanh ghi đoạn 16 bit gồm CS, DS, SS và ES để giúp 8086 truy cập tới các đoạn trên bộ nhớ.
+ Thanh ghi đoạn mã CS (Code Segment),.
+ Thanh ghi đoạn dữ liệu DS (Data Segment).
+ Thanh ghi đoạn dữ 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 giữa 8086 với thiết bị bên ngoài.
Trang 7- Hàng đợi lệnh có độ dài 6 byte là nơi chứa các mã lệnh đọc được nằm sẵn để chờ EU xử lý.
3.1.2 Sơ đồ chân của 8086
Vi xử lý 8086 được thiết kế để hoạt động một trong 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 nếu điện áp ở chân số 33 ở mức 5V là chế độ tong hệ thống chỉ có 8086 và các vi mạch nhớ , các vi mạch ghép nối vào ra.
- Chế độ tối đa (chế độ MAX) được thiết lập nếu điện áp ở chân số 33 ở mức 0V, là chế độ áp dụng cho hệ thống đa xử lý, đồng xử lý (8086 và bộ đồng xử
- Các chân mang thông tin dữ liệu: Vi xử ly 8086 có 16 đường dây dữ liệu từ
Do đến D15 được ghép kênh với 16 đường địa chỉ thấp từ D0 đến D15 Khi hoạt động ở chu kỳ bus dữ liệu thì các đường dây này mang thong tin về dữ liệu, là dữ liệu đọc ra hay vào bộ nhớ.
- Các chân tín hiệu trang thái.
+ Bốn đường dây địa chỉ cao nhất từ A16 đến A19 của 8086 cũng được ghép kênh, nhưng trong trường hợp này nó được ghép kênh với các tín hiệu trạng thái từ S3 đến S6 Các bit trang thái này được đưa ra cùng thời điểm với các
dữ liệu được truyền trên các chân AD0 đến AD15.
Trang 8+ READY: Tín hiệu báo cho CPU biết tình trạng sẵn sàng của thiết bị ngoại
vi hay bộ nhớ Khi READY = 1 thì CPU thực hiện đọc/ghi dữ liệu mà không phải chèn thêm các chu kỳ đợi Khi các thiết bị ngoại vi hay bộ nhớ cótốc độ chậm, chúng có thể đưa tin hiệu READY = 0 để báo cho CPU biết mà chờ chúng Lúc này CPU tự kéo dài thời gian thực hiện đọc/ghi bằng cách chèn thêm các 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 chỉ Khi ALE = 1
có nghĩa là trên các chân ghép kênh AD có địa chỉ của thiết bị vào/ra hoặc ônhớ Khi CPU chấp nhận treo chân này không ở trạng thái trở kháng cao mà ALE = 0.
+ DEN´ : [O] Data bus Enable Kích hoạt các bộ đệm bus dữ liệu.
+ M / ´ IO: Chọn bộ nhớ (= 0) hoặc thiếtbị vào/ra (= 1) làm việc với CPU Khi
đó trên bus địa chỉ sẽ có địa chỉtương ứng của các thiết bị đó Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo.
+ DT / ´R: [O] Data Transmit/Receive Tín hiệu này cho biết bus dữ liệu đang vận chuyển dữ liệu vào CPU hay ra khỏi CPU Tín hiệu này cũng dùng để điều khiển các bộ đệm 2 chiều của bus dữ liệu.
+ BHE´ : Dùng để báo răng đang truy cập năng cao hay băng thấp của bộ nhớ + RD´ : :[O] Read signal Xung cho phép đọc Khi RD = 0 thì bus dữ liệu nhận
dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi Chân này ở trạng thái trở kháng caokhi CPU chấp nhận treo
+ NMI: [I] None-Maskable Interrupt Tín hiệu yêu cầu ngắt không che được Tín hiệu này không bị khống chế bởi cờ IF và nó sẽ được CPU nhận biết bằng tác động của sườn lên của xung yêu cầu ngắt Nhận được yêu cầu ngắt này (NMI = 1) CPU kết thúc lệnh đạng làm dở,sau đó chuyển sang thực hiện 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 0 dùng để khởi tạo các thanh ghi nội của vi xử lý và khởi tạo chương trình con phục vụ thiết lập hệ thống
Trang 9- Các chân mang tín hiệu phục vụ DMA : Ở chế độ MIN của 8086 gồm hai tín hiệu HOLD và HLDA Khi một thiết bị ngoài muốn giành quyền điều khiển bus hệ thống thực hiện truy cập bộ nhớ trực tiếp , nó báo yêu cầu này cho CPU bằng cách chuyển HOLD lên mức logic 1.Sau đó CPU chuyển sang trạng thái cô lập sau khi chu kỳ bus hiện tại thực hiện xong Khi ở trạng thái
cô lập , các đường dây tín hiệu AD0- AD15, A16/S3- A19/S6, BHE/S7, , , ,
và INTR.
3.1.3 Các hàm ngắt và tập lệnh của 8086.
- Một số lệnh của 8086
+ Lệnh ADD/SUB: cộng/trừ 2 toán hạng (ADD Đích, Gốc).
+ Lệnh DIV: thực hiện phép chia không dấu, toán hạng nguồn có thể là một ô nhớ hay đoạn ghi Nếu toán hạng nguồn là 8 bit thì thương số nằm trong AL,
số dư nằm trong AH; nếu toán hạng nguồn là 16 bit, thì thương số nằm trong
AX còn số dư nằm
trong DX (DIV Gốc).
+ Lệnh INT : dùng để gọi các hàm của DOS và BIOS (VD: int 21h).
+ Lệnh MOV: chuyển dữ liệu từ toán hạng nguồn vào toán hạng đích (MOV đích, gốc).
+ Lệnh OUT: xuất dữ liệu từ đoạn chứa ra cổng (OUT cổng,thanh ghi).
+ Lệnh IN: đọc dữ liệu từ cổng vào đoạn ghi (IN thanh ghi, cổng).
+ Lệnh MUL(Multiply): thực hiện phép nhân không dấu Nhân nội dung của đoạn AL với toán hạng nguồn Nếu nguồn kiểu byte thì tích chứa trong AX, nếu nguồn là kiểu từ thì tích chứa trong DX:AX (MUL nguồn).
+ Lệnh JNZ: nếu KQ của lệnh trước đó khác 0 thi thực hiện lệnh nhảy đến nhãn_đích, ngược lại thì thực hiện lệnh kế tiếp sau đó (JNZ nhãn_đích) + Lệnh JA, JG: nhảy nếu lớn hơn
+ Lệnh JB, JL : nhảy nếu nhỏ hơn
+ Lệnh JNA, JNG: nhảy nếu không lớn hơn
+ Lệnh JE: nhảy nếu bằng
+ Các lệnh AND, OR, XOR và TEST:
AND dich,nguon ;AND đích với nguồn, kết quả lưu ở đích
OR dich,nguon ;OR đích với nguồn, kết quả lưu ở đích
XOR dich,nguon ;XOR đích với nguồn, kết quả lưu ở đích
TEST dich,nguon ;AND đích với nguồn, kết quả không lưu lại
Trang 10+ Lệnh dịch:
SHL/SAL dich,1 ;dịch sang trái 1 bit
SHL/SAL dich,CL ; dịch sang trái nhiều bit
SHR dich,1 ; dịch sang phải 1 bit
SHR dich,CLL ; dịch sang phải nhiều bit
+ Lệnh quay:
ROL/ROR dich,1 ; quay đích sang trái/phải 1 bit
ROL/ROR dich,CL ; quay đích sang trái/phải n bit, với CL=n
RCL/RCR dich,1 ; quay đích sang trái/phải 1 bit
RCL/RCR dich,CL ; quay đích sang trái/phải n bit, với CL=n
+ Lệnh HLT (HaLT): đưa bộ vi xử lý vào trạng thai dừng để chờ ngắt ngoài + Lệnh LOCK: khóa bus trong môi trường có nhiều bộ vi xử lý.
+ Lệnh NOP: không thực hiện một thao tác nào.
+ Lệnh PUSH: cất dữ liệu vào ngăn xếp, giảm SP đi 2 (PUSH nguon).
+ Lệnh POP: lấy dữ liệu ra khỏi ngăn xếp và đưa vào toán hạng đích (POP dich).
+ Lệnh CALL: gọi thủ tục (CALL nhan)
+ Lệnh RET: trả lại điều khiển khi thủ tục được thực hiện xong.
Cú pháp : MOV AH,2
MOV DL,’A’
INT 21H + Hàm 4CH : là hàm kết thúc chương trình hiện tại và trả điều khiển về cho chương trình gọi nó.
Cú pháp : MOV AH,4CH
INT 21H + Hàm 9 : Là hàm hiển thị ra màn hình một chuỗi kí tự
Trang 11- Cấu trúc chương trình lập trình cho 8086:
.model small ;khai bao kieu bo nho la small
.stack 100h ;khai bao kich thuoc ngan xep la 100h
.data ;khai bao doan du lieu
;khai báo các biến, các hằng ở đây
.code ;khai bao doan ma
3.2.1 Sơ đồ chân và chức năng của các chân
- Các chân 4, 3, 2, 1, 40, 39, 38, 37: tương ứng với cổng PA từ PA0 đến PA7 Đây là cổng giao tiếp dữ liệu 8 bit vào/ ra PA tùy theo thanh ghi điều khiển được cài đặt mà cổng này có thể xuất dữ liệu ra hoặc nhận dữ liệu vào Cổng này khác với cổng PC, nó không thể tách làm 2 độc lập với nhau được.
Trang 12- Các chân từ 18 đến 25: tương ứng với cổng PB từ PB0 đến PB7 Tương tự như cổng PA, cổng PB cũng có thể đưa dữ lieu 8 bít ra hoặc vào bằng cách thiết lập giá trị của thanh ghi điều khiển.
- Các chân 14, 15, 16, 17, 13, 12, 11, 10: tương ứng theo thứ tự từ PC0 đến PC7 Đây là cổng giao tiếp dữ liệu 8 bít PC, khi cần thiết, nó có thể tách thành
2 phần PC cao từ bít PC7 đến PC4 và PC thấp từ bít PC0 đến PC3.đặc biệt, hai phần này có thể hoạt động độc lập với nhau nếu cần tùy thuộc vào thanh ghi điều khiển được cài đặt mà các cổng này có thể vào/ ra dữ liệu.
- Các chân từ 27 đến 34 : tương ứng theo thứ tự từ D7 đến D0 - Bus dữ liêu(2 chiều) Bus dữ liệu 2 chiều này được nối tới các tín hiệu tương ứng của Vi xử
lý để trao đổi dữ liệu vào/ra do chip 8086 xử lý.
- Chân 35: là chân Reset - khởi tạo trạng thái ban đầu của IC 8255 Nếu đặt mức này lên mức 1 thì IC bị RESET lại từ đầu để mạch có thể chạy được, chúng ta phải đặt chân này về mức 0V – GND.
- Chân 6: chân /CS - Tín hiệu chọn vi mạch Đây là tín hiệu tích cực ở mức thấp 0v, vì vây chúng ta phải đặt chân này ở mức thấp để chọn IC 8255 hoạt động nhơ vậy, chân này được sử dụng để kết hợp với mạch giải mã địa chỉ để
Vi xử lý điều khiển nó hoạt động đúng yêu cầu.
- Chân 5: chân /RD (Read)- là chân tín hiệu cho phép đọc.
- Chân 36: chân /WR(Write) – là chân tín hiệu cho phép ghi.
- Chân 9 và 8: tương ứng với chân tín hiệu địa chỉ A0 – A1, 2 chân này được nối với 2 bít được tách ra từ bộ tách địa chỉ của 8086, 2 chân này dùng để giải
mã cho các cổng của 8255 với quy luật sau:
+ A1A0 là 00: mã hóa cho cổng PA
+ A1A0 là 01: mã hóa cho cổng PB + A1A0 là 10: mã hóa cho cổng PC
+ A1A0 là 11: mã hóa cho thanh ghi điều khiển
Chính vì vậy, để chọn đúng vị trí cổng chúng ta phải đưa 2 bít bất kì được tách ra từ bộ tách tín hiệu địa chỉ sao cho 2 chân này cũng được mã hóa đúng như quy luật của A1, A0 trên 8255.
3.2.2 Chế độ hoạt động
Tuy thuộc vào đoạn ghi điều khiển khi khởi tạo mà vi mạch có thể hoạt động
ở các chế độ 0, 1, 2 khác nhau, chiều của các cổng A, B, C có thể ra hoặc vào Thanh ghi điều khiển gồm có 8 bit, mỗi bít có các chức năng khác nhau :
- Bit D6 và D5 dùng để chọn chế độ nhóm A
+ Nếu D6D5 là 00 thì chọn chế độ 0
Trang 13+ Nếu D6D5 là 01 thì chọn chế độ 1
+ Các trường hợp khác sẽ không xác định
- Bit PA: chọn chiều cho cổng PA
+ Nếu PA=0: cổng PA sẽ xuất dữ liệu ra
+ Nếu PA=1: cổng PA sẽ nhận dự liệu bên ngoài vào
- Bit PC cao: chọn chiều ra/vào cho 4 bit cao của cổng PC
+ Nếu PC=0 thì cho phép cổng PC cao xuất dữ liệu ra
+ Nếu PC=1 thì cho phép cổng PC ca0 nhận dữ liệu
- Bit D2: chọn chế độ nhóm B
+ Nếu D2=0 thì chọn chế độ 0
+ Nếu D2=1 thì chọn chế độ 1
- Bit PB: chọn chiều ra/vào cho cổng PB
+ Nếu PB=0 thì cho phép cổng PB xuất dữ liệu ra
+ Nếu PB=1 thì cho phép cổng PB nhận dữ liệu
- Bit PC thấp: chọn chiều ra/vào cho 4 bit thấp của cổng PC
+ Nếu PC=0 thì cho phép cổng PC thấp xuất dữ liệu ra
+ Nếu PC=1 thì cho phép cổng PC thấp nhận dữ liệu
VD: để chọn chọn chế độ nhóm A là chế độ 0, nhóm B là chế độ 0, cổng PA, PB xuất dữ liệu, cổng PC nhận dữ liệu , ta cài đặt thanh ghi điều khiển như sau:
Mov al, 100010001B
Out DK, al
- Chế độ 0:
+ các cổng A, B, C được sử dụng đọc lập với nhau.
+ Cổng A, B, C có thể vào hoặc ra tùy vào đoạn ghi điều khiển
Trang 14- Chế độ 1: chế độ này được gọi là chế độ vào/ra đột cửa hay ddooid thoại với các bit của cổng C Các cổng A, B, C được chia thành 2 nhóm:
+ Nhóm A gồm cổng A để trao đổi dữ liệu với cổng C cao để giao tiếp với vi
xử lý và thiết bị ngoài.
+ Nhóm B gồm cổng B để trao đổi dữ liệu với cổng C thấp để giao tiếp với vi
xử lý và thiết bị ngoài.
Trang 153.3 IC giải mã 74273
- Sơ đồ chân của IC giải mã 74273:
- IC 74273 là IC số được tích hợp bỏi 8 con flip-flop loại D lắp theo kiểu đồng bộxung đồng hồ và chân clear IC gồm có 20 chân trong đó:
+ Chân 20 nối với Vcc nằm ở dải 4,75 đến 5,25 Volt
+ Chân 10 nối với Mass
+ Chân 1 là chân Clear (MR)
+ Chân 11 là chân xung đồng hồ (CP)
+ Các chân 3, 4, 7, 8, 13, 14, 17, 18 là chân tín hiệu vào nối với các dây tín hiệu đahợp của vi xử lý
+ Các chân 2, 5, 6, 9, 12, 15, 16, 19 là các chân tín hiệu địa chỉ được tách ra
Do IC 74273 được tích hợp bởi 8 FlipFlop D nên mỗi IC chỉ có thể tách được 8đường địa chỉ đa hợp của 8086 Vì vậy mạch cần 3 con IC 74273 để tách hết 20 đườngđịa chỉ của 8086 Tùy theo đề bài yêu cầu mà các đầu ra này được sử dụng với mụcđích khác nhau, các chân này được nối với mạch giải mã địa chỉ đưa vào chân CS của
8255 và dành ra 2 bit để mã hóa cho các cổng của 8255, 2 chân này được nối vào chânA1, A0 của 8255
3.4 LCD 20x4
- Sơ đồ chân của LCD 20x4:
Trang 16- LCD 20x4 là là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các
kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí tự Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện LCD bao gồm 14 chân trong đó:
+ Chân 1: (Vss) Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển.
+ Chân 2: VDD Là chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC = 5V của mạch điều khiển.
+ Chân 3: V0 là chân điều chỉnh độ tương phản của LCD.
+ Chân 4: RS Là chân chọn thanh ghi (Register select) Nối chân RS với logic
“0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
Logic “0”: Bus D0-D7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ ghi) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ đọc).
Logic “1”: Bus D0-D7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD + Chân 5: R/W là chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
+ Chân 6: E Là chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus D0-D7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E.
Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (chuyển từ trạng thái thấp lên cao hoặc cao xuống thấp) của tín hiệu chân E.
Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra D0-D7 khi phát hiện cạnh lên (chuyển từ trạng thái thấp lên cao hoặc cao xuống thấp) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
+ Chân 7 - 14: D0 - D7 - Tám đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ sử dụng 8 đường bus này:
Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường từ D0 tới D7, với bit MSB là bit D7.
Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ D4 tới D7, với bit MSB là D7.
+ Chân 15: Nguồn dương cho đèn nền.
+ Chân 16: GND cho đèn nền.
Trang 17B HOÀN THIỆN Ý TƯỞNG
1 Xây dựng 1 chương trình chọn và tính tiền hàng hóa tự động trên phần mềm EMU 8086 - Microprocessor Emulator
1.1 Lưu đồ thuật toán
Bắt Đầu
Hiển thị menu chính
Yêu cầu chọn menu
Nhập sai
Menu 1 được chọn?
Menu 5 được chọn?
Bạn có mua thêm?
In ra menu 1
N
Chọn món
Cộng giá tiền vào biến a
Tăng biến đếm
cf lên 1
N
Bạn có mua thêm?
In ra menu 5Chọn món
Cộng giá tiền vào biến e
Tăng biến đếm
bs lên 1
Cộng các biến tổng a, ,e
Tăng CX lên 1
Thương = 0?
Lấy giá trị tổng từ ngăn xếp
Kết thúc
1.2 Lập trình
Trang 18# Chương trình lựa chọn và tính tiền, in ra hóa đơn hàng hóa tự động
.model small
.stack 100h
.data
tb1 db " -CHAO MUNG BAN DEN VOI THE COFFEE HOUSE -$"
tb2 db 10,13,"******************* MENU THUC DON ******************$" tb3 db 10,13,"** **$"
tb4 db 10,13,"** 1 CA PHE **$"
tb5 db 10,13,"** 2 TRA & MACCHIATO **$"
tb6 db 10,13,"** 3 THUC UONG DA XAY **$"
tb7 db 10,13,"** 4 THUC UONG TRAI CAY **$"
tb8 db 10,13,"** 5 BANH & SNACK **$"
tb9 db 10,13,"******************************************************$" tb10 db 10,13,"Vui long chon (1-5): $" tb11 db 10,13,"******************** MENU CA PHE *******************$" tb12 db 10,13,"** **$"
tb13 db 10,13,"** 1 BAC SUU (29K) 2 AMERICANO (39K) **$"
tb14 db 10,13,"** 3 CA PHE DEN (29K) 4 ESPRESSO (35K) **$"
tb15 db 10,13,"** 5 CA PHE SUA (29K) 6 CAPPUCINNO (45K) **$" tb16 db 10,13,"** 7 SO-CO-LA DA (55K) 8 QUAY VE MENU CHINH **$" tb17 db 10,13,"******************************************************$" tb18 db 10,13,"Vui long chon (1-8): $" tb19 db 10,13,"Ban co muon dung them gi khong? (Y/N): $" tb20 db 10,13,"******************** MENU TRA & MACCHIATO *********************$" tb21 db 10,13,"** **$"
tb22 db 10,13,"** 1 TRA DAO CAM SA (45K) 2 TRA DEN MACCHIATO (42K) **$"
tb23 db 10,13,"** 3 TRA MATCHA LATTE (59K) 4 TRA XOAI MACCHIATO (55K) **$" tb24 db 10,13,"** 5 TRA CHERRY MACCHIATO (55K) 6 TRA OOLONG VAI NHU Y (45K) **$" tb25 db 10,13,"** 7 QUAY VE MENU CHINH **$"
tb26 db 10,13,"*************************************************************** **$" tb27 db 10,13,"Vui long chon (1-7): $" tb28 db 10,13,"********************** MENU THUC UONG DA XAY **********************$" tb29 db 10,13,"** **$"
tb30 db 10,13,"** 1 CHANH SA DA XAY (49K) 2 DAO VIET QUAT DA XAY (59K) **$"
Trang 19tb31 db 10,13,"** 3 CHOCOLATE DA XAY (59K) 4 COOKIES DA XAY(59K) **$"
tb32 db 10,13,"** 5 QUAY VE MENU CHINH **$"
10,13,"***************************************************************
******$"
tb34 db 10,13,"Vui long chon (1-5): $"
tb35 db 10,13,"****************** MENU THUC UONG TRAI CAY
tb41 db 10,13,"************************* MENU BANH & SNACK
tb47 db 10,13,"Vui long chon (1-5): $"
tb48 db 10,13,"So tien thanh toan (Nghin Dong): $"
tb49 db 10,13,"Cam on ban rat nhieu!$"
tb50 db 10,13,"Ban da nhap sai, Vui long nhap lai: $"
tb51 db 10,13,"Thuc don ban da chon: $"
tb59 db 10,13,"TRA DAO CAM SA (45K) x$"
tb60 db 10,13,"TRA DEN MACCHIATO (42K) x$"
Trang 20tb61 db 10,13,"TRA MATCHA LATTE (59K) x$"
tb62 db 10,13,"TRA XOAI MACCHIATO (55K) x$"
tb63 db 10,13,"TRA CHERRY MACCHIATO (55K) x$"tb64 db 10,13,"TRA OOLONG VAI NHU Y (45K) x$"
tb65 db 10,13,"CHANH SA DA XAY (49K) x$"
tb66 db 10,13,"DAO VIET QUAT DA XAY (59K) x$"
tb67 db 10,13,"CHOCOLATE DA XAY (59K) x$"
tb68 db 10,13,"COOKIES DA XAY (59K) x$"
tb69 db 10,13,"SINH TO CAM XOAI (59K) x$"
tb70 db 10,13,"SINH TO VIET QUAT (59K) x$"