Yêu cầu chức năng
Xây dựng một máy tính bỏ túi sử dụng ma trận phím để nhập dữ liệu và màn hình LCD để hiển thị kết quả Máy tính này chỉ cần thực hiện các phép toán cộng, trừ, nhân, chia thông qua các linh kiện 8086, 8255, ma trận phím, LCD và 74LS373.
Khối điều khiển và ngôn ngữ lập trình
Vi xử lý 8086
Vi xử lý 8086 là bộ vi xử lý 16 bit đầu tiên của Intel và là vi xử lý đầu tiên hỗ trợ tập lệnh x86 Intel cũng giới thiệu vi xử lý 8088, tương thích với 8086 nhưng có bề rộng bus dữ liệu chỉ 8 bit Vi xử lý này được ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong các máy IBM PC/XT.
+) Có một hàng đợi lệnh, có khả năng lưu trữ 6 byte lệnh từ bộ nhớ, giúp xử lý nhanh hơn
+) là bộ xử lý 16bit đầu tiên có ALU 16 bit, thanh ghi 16bit, bus dữ liệu bên trong và bus dữ liệu ngoài 16bit giúp xử lý nhanh hơn.
+) Nó sử dụng hai giai đoạn pipelining, tức là giai đoạn tìm nạp và giai đoạn thực thi, giúp cải thiện hiệu suất.
+) Gồm 256 ngắt vector, 29000 bóng bán dẫn
3 download by : skknchat@gmail.com
Hình 2 Sơ đồ mô tả cấu trúc của bộ vi xử lý 8086 Đơn vị thực thi EU
Hướng dẫn cho BIU bao gồm việc ghi chú nguồn dữ liệu và thực hiện giải mã Chức năng chính của BIU là điều khiển các hoạt động trên dữ liệu thông qua bộ giải mã lệnh ALU và EU, mà không cần kết nối trực tiếp với các bus hệ thống Thay vào đó, BIU thực hiện các hoạt động thông qua dữ liệu từ Đơn vị giao diện BUS (BIU).
BIU quản lý toàn bộ dữ liệu và địa chỉ trên các xe buýt cho EU, thực hiện việc gửi địa chỉ, nạp lệnh từ bộ nhớ, cũng như đọc dữ liệu từ các cổng và bộ nhớ.
EU không có kết nối trực tiếp với hệ thống bus, điều này có thể ảnh hưởng đến BIU Cả EU và BIU đều được kết nối với bus nội bộ, tạo điều kiện cho việc truyền tải dữ liệu hiệu quả hơn.
Hình 3 Sơ đồ chân của bộ vi xử lý 8086
Nguồn cung và tín hiệu số : Nó sử dụng nguồn điện 5V DC ở chân V và sử dụng nối đất ở chân V SS - 1 và 20 cho hoạt động của nó.
Tín hiệu xung clock là yếu tố quan trọng cung cấp thời gian cho bộ xử lý thực hiện các hoạt động Tần số của tín hiệu này có sự khác biệt giữa các phiên bản, cụ thể là 5MHz, 8MHz và 10MHz.
5 download by : skknchat@gmail.com
CC -40 có địa chỉ trạng thái bus và bus dữ liệu từ AD0 đến AD15, bao gồm 16 bus địa chỉ và dữ liệu Trong đó, AD0-AD7 truyền dữ liệu byte bậc thấp, còn AD8-AD15 truyền dữ liệu byte bậc cao Trong chu kỳ xung nhịp đầu tiên, bus này mang địa chỉ 16 bit, sau đó chuyển sang mang dữ liệu 16 bit.
Xe buýt A16/S3-A19/S6 là bốn xe buýt có địa chỉ và trạng thái cụ thể Trong chu kỳ xung nhịp đầu tiên, nó sử dụng địa chỉ 4 bit, sau đó chuyển sang mang các tín hiệu trạng thái.
BHE/S7, viết tắt của Bus High Enable, xuất hiện ở chân 34 và có vai trò quan trọng trong việc chỉ định quá trình truyền dữ liệu qua bus dữ liệu D8-D15 Tín hiệu này được kích hoạt ở mức thấp trong chu kỳ đồng hồ đầu tiên, sau đó tiếp tục hoạt động.
RD Nó có sẵn ở chân 32 và được sử dụng để đọc tín hiệu cho hoạt động đọc.
READY là tín hiệu báo nhận từ các thiết bị I/O, cho biết rằng dữ liệu đang được truyền Tín hiệu này ở mức cao cho thấy thiết bị đã sẵn sàng để truyền dữ liệu.
RESET là một tín hiệu quan trọng dùng để khởi động lại quá trình thực thi, giúp bộ xử lý ngừng ngay hoạt động hiện tại Tín hiệu này hoạt động ở mức cao trong hệ thống.
4 chu kỳ xung nhịp đầu tiên để ĐẶT LẠI bộ vi xử lý ( Chân 21)
INTR là tín hiệu yêu cầu ngắt, được lấy mẫu trong chu kỳ xung nhịp cuối cùng của mỗi lệnh, nhằm xác định xem bộ xử lý có nhận diện đây là một ngắt hay không Tín hiệu này được cung cấp tại chân 18.
6 download by : skknchat@gmail.com
TEST Khi tín hiệu này ở mức cao, thì bộ xử lý phải đợi trạng thái IDLE, nếu không thì quá trình thực thi sẽ tiếp tục.(Chân 23)
NMI Nó là một đầu vào được kích hoạt cạnh, gây ra một yêu cầu ngắt tới bộ vi xử lý.( Chân 17)
INTA Nó là một tín hiệu báo nhận ngắt và id Khi bộ vi xử lý nhận được tín hiệu này, nó sẽ báo nhận ngắt (Chân 24)
ALE, hay còn gọi là chốt kích hoạt địa chỉ, là một tín hiệu quan trọng được tạo ra mỗi khi bộ xử lý bắt đầu thực hiện một hoạt động Tín hiệu này cho biết sự sẵn có của một địa chỉ hợp lệ trên các đường địa chỉ và dữ liệu.
Nó là viết tắt của Data Enable Nó được sử dụng để kích hoạt Bộ thu phát
8286 Bộ thu phát là một thiết bị dùng để tách dữ liệu khỏi bus địa chỉ / dữ liệu.(Chân 26)
Tín hiệu Truyền / Nhận dữ liệu (TTRD) xác định hướng luồng dữ liệu qua bộ thu phát Khi tín hiệu ở mức cao, dữ liệu được truyền ra ngoài, và khi ở mức thấp, dữ liệu sẽ không được truyền.
Tín hiệu này phân biệt giữa bộ nhớ và các hoạt động I/O Khi tín hiệu ở mức cao, nó chỉ ra hoạt động I/O, trong khi mức thấp cho biết hoạt động của bộ nhớ Tín hiệu này có sẵn tại pin 28.
7 download by : skknchat@gmail.com
Nó là viết tắt của tín hiệu ghi, được sử dụng để lưu trữ dữ liệu vào bộ nhớ hoặc thiết bị đầu ra, tùy thuộc vào trạng thái của tín hiệu M/IO (Chân 29).
Nó là viết tắt của tín hiệu Hold Acknowledgement và có sẵn ở chân 30 Tín hiệu này ghi nhận tín hiệu HOLD.
Vi mạch 8255A
• Vi mạch 8255A là vi mạch cỡ lớn LSI, là mạch phối ghép vào ra song song lập trình được.
Mạch phối ghép 40 chân được sử dụng phổ biến cho các hệ vi xử lý 8, 16 và 32 bit nhờ khả năng mềm dẻo trong ứng dụng thực tế.
• 24 đường dẫn lối vào ra xếp thành 3 cổng song song (port A,port B, port C) Một nửa cổng (PC4…PC&) thuộc nhóm A, còn lại nửa thuộc nhóm B.
• Chân reset phải đuộc nối với tín hiệu reset chung toàn hệ thống
• Tín hiệu CS được nối với mạch tạo xung chọn thiết bị để đặt mạch
8255 được sử dụng để kết nối với một địa chỉ cụ thể, nơi mà các tín hiệu địa chỉ A0 và A1 sẽ chọn 4 thanh ghi bên trong Trong số này, có một thanh ghi điều khiển cho hoạt động của 8255 và ba thanh ghi còn lại tương ứng với các cổng PA, PB, và PC, giúp thực hiện việc đọc dữ liệu hiệu quả.
10 download by : skknchat@gmail.com
11 download by : skknchat@gmail.com
Cấu tạo và nguyên lý hoạt động :
24 chân cho 3 cổng vào / ra
PAO - PAT : 8 chân cho Công A.
PB0 - PB7 : 8 chân cho Cổng B.
PC0 PC7 : B chân cho Cổng C.
Nhóm A Gồm Cổng A và 4 bit cao của Cổng C
Nhóm B : Gồm cổng B và 4 bit thấp của Cổng
C B255 Có thể hoạt động ở chế độ ( 0 , 12 )
Dùng để chốt địa chỉ và trạng thái
Chân OC (Output Control) điều khiển cho phép/ cấm dữ liệu ra
12 download by : skknchat@gmail.com
Chức năng của từng chân LCD 1602:
13 download by : skknchat@gmail.com
-Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển
-Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển
-Chân số 3 - VE : điều chỉnh độ tương phản của LCD
-Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":
+ Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi”
- write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD
- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0” để ghi hoặc nối với logic “1” đọc
Chân số 6 - E, hay còn gọi là chân cho phép (Enable), đóng vai trò quan trọng trong việc xử lý tín hiệu trên bus DB0-DB7 Các lệnh chỉ được chấp nhận khi có xung cho phép từ chân này Cụ thể, trong chế độ ghi, dữ liệu trên bus sẽ được LCD chuyển vào thanh ghi nội bộ khi phát hiện xung chuyển từ cao xuống thấp (high-to-low transition) của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu sẽ được LCD xuất ra các chân DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) tại chân E, và LCD sẽ giữ dữ liệu trên bus cho đến khi chân E giảm xuống mức thấp.
Chân số 7 đến 14 (D0 đến D7) là 8 đường bus dữ liệu dùng để trao đổi thông tin với MPU Có hai chế độ sử dụng cho 8 đường bus này: chế độ 8 bit, trong đó dữ liệu được truyền trên cả 8 đường với bit MSB là bit DB7, và chế độ 4 bit, nơi dữ liệu được truyền trên 4 đường từ DB4 đến DB7, với bit MSB là DB7.
-Chân số 15 - A : nguồn dương cho đèn nền
-Chân số 16 - K : nguồn âm cho đèn nền
14 download by : skknchat@gmail.com
Sơ đồ khối phối lắp mạch
Lý do chọn 8086 và ASM
Trong môn học, 8086 là thiết bị cơ bản cho các chip cao cấp như i5 và i7 Nhóm chúng tôi có thể hiểu rõ hơn về 8086 bằng cách thực hiện một mạch thực tế Ngôn ngữ ASM, được sử dụng trong lập trình 8086, là ngôn ngữ bậc thấp và không hỗ trợ các cấu trúc điều khiển như if hay for như trong C/C++.
15 download by : skknchat@gmail.com
THIẾT KẾ MẠCH
Kết quả mô phỏng
16 download by : skknchat@gmail.com
+ Thiết kế thành công được mạch
Mã nguồn và các vi xử lý hoạt động ổn định, cho phép thực hiện các phép tính cộng, trừ, nhân, chia một cách chính xác Chi tiết về mã nguồn được trình bày ở mục III.
Lập trình vi xử lý
Sử dụng dạng ngôn ngữ lập trình bậc thấp Assembly
; GIA TRI CUA CAC CONG PA PB PC
PORTA_VAL DB 0 PORTB_VAL DB 0
CWR equ 10001000B ; C UPPER INPUT CON LAI OUTPUT
17 download by : skknchat@gmail.com
PA EQU 00H ;PORTA KET NOI VOI D0-D7 CUA LED
PB EQU 02H ;PORTB0 LA RW (READ/WRITE), PORTB1 LA RS(RESET SELECT), PORTB2 LA EN(ENABLE)
PC EQU 04H ;PORT KET NOI KEYPAD
PCWR EQU 06H ;PORT DE DIEU KHIEN IO
NHAP DW 0 ; LUU SO NHAP VAO TU BAN PHIM
SO_10 DW 10 ; DE NHA, CHIA 10
PHEP_TOAN DW 0 ; PHAN BIET +-x/
KET_QUA DW 0 ; LUU VA HIEN THI KET QUA
SO_PHEP_TINH DW 0 ; DE PHAN BIET LAN BAM DAU TIEN
HIEN_THI DW 0 ; DUNG DE HIEN THI TUNG CHU SO KHI CO KET QUA
XOA_MH DW 0 ; XOA MAN HINH SAU KHI RA KET QUA
BIEN_CX DW 0 ; TRANH TH CX BI THAY DOI VA KO CAN
CAC_CHU_SO DW 1 ; XOA MAY DAU 0 O KET QUA
DAU_TRU DW 0 ; CHECK DAU
18 download by : skknchat@gmail.com
MOV DX,PCWR ; SETUP CHE DO CUA 8255
; DAY LA PHAN SETUP TRUOC KHI BAT DAU CALL
LEA SI,MSSV1 ; CHO DIA CHI CUA NAME1 VAO SI, DE HIEN TRONG HAM IN CHUOI
19 download by : skknchat@gmail.com
LEA SI,MSSV2 ; CHO DIA CHI CUA MSSV1 VAO SI, DE HIEN TRONG HAM IN CHUOI
20 download by : skknchat@gmail.com
; PHAN TREN NAY TUONG TU PHAN SETUP TRONG
LAP: ; CHUONG TRINH SE LAP TU DAY
; CHO HANG 1 XUONG LOW MOV AX, 11111110B
21 download by : skknchat@gmail.com
; CHO HANG 3 XUONG LOW MOV AX, 11111011B
22 download by : skknchat@gmail.com
; CHO HANG 4 XUONG LOW MOV AX, 11110111B
23 download by : skknchat@gmail.com
NUT_7: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
24 download by : skknchat@gmail.com
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
NUT_8: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
25 download by : skknchat@gmail.com
NUT_9: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
26 download by : skknchat@gmail.com
CMP NHAP, 0 ; TRANH TH AN DAU TRUOC CA KHI NHAP SO
CMP SO_PHEP_TINH, 0 ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
MOV AX, NHAP ; CHIA 10 DI VI SO BI NHAP GAP 10 LAN
CMP SO_PHEP_TINH, 0 ; KIEM TRA XEM CO PHAI LAN DAU BAM KO
NUT_4: ; NHAP SO VAO ROI NHAN 10
27 download by : skknchat@gmail.com
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
NUT_5: ; NHAP SO VAO ROI NHAN 10
28 download by : skknchat@gmail.com
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
NUT_6: ; NHAP SO VAO ROI NHAN 10
29 download by : skknchat@gmail.com
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
CMP NHAP, 0 ; TRANH TH AN DAU TRUOC CA KHI NHAP SO JE DOI
CMP SO_PHEP_TINH, 0 ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
30 download by : skknchat@gmail.com
MOV AX, NHAP ; CHIA 10 DI VI SO BI NHAP GAP 10 LAN
CMP SO_PHEP_TINH, 0 ; KIEM TRA XEM CO PHAI LAN DAU BAM KO
NUT_1: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
31 download by : skknchat@gmail.com
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
NUT_2: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
32 download by : skknchat@gmail.com
NUT_3: ; NHAP SO VAO ROI NHAN 10
ADD NHAP, AX ; CONG VAO SO_NHAP
MOV NHAP, AX ; CHO LAI VAO SO_NHAP
33 download by : skknchat@gmail.com
CMP NHAP, 0 ; TRANH TH AN DAU TRUOC CA KHI NHAP SO
CMP SO_PHEP_TINH, 0 ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
MOV AX, NHAP ; CHIA 10 DI VI SO BI NHAP GAP 10 LAN
MOV PHEP_TOAN, 2 ; DANH DAU PHEP TOAN LA PHEP TRU
CMP SO_PHEP_TINH, 0 ; KIEM TRA XEM CO PHAI LAN DAU BAM KO
JMP DOI ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
34 download by : skknchat@gmail.com
MOV SO_PHEP_TINH, 0 ; RESET HET TAT CA CAC BIEN
35 download by : skknchat@gmail.com
CMP NHAP, 0 ; TRANH TH AN DAU TRUOC CA KHI NHAP SO JE DOI
MOV AX, NHAP ; CHIA 10 DI VI SO BI NHAP GAP 10 LAN
CMP SO_PHEP_TINH, 0 ; NEU CHUA AN +-x/ THI HIEN LUON
36 download by : skknchat@gmail.com
CMP PHEP_TOAN, 2 ; THUC HIEN PHEP TOAN +-x/ NEU LA 1 2 3 4
CMP NHAP, 0 ; TRANH TH AN DAU TRUOC CA KHI NHAP SO
CMP SO_PHEP_TINH, 0 ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
37 download by : skknchat@gmail.com
MOV AX, NHAP ; CHIA 10 DI VI SO BI NHAP GAP 10 LAN
CMP SO_PHEP_TINH, 0 ; KIEM TRA XEM CO PHAI LAN DAU BAM KO
JMP DOI ; DO LUC TRUOC DA CO PHEP TINH ROI NEN PHAI DOI DAU = HOAC LA GHI TIEP SO
ADD KET_QUA, BX ; THUC HIEN PHEP CONG
38 download by : skknchat@gmail.com
SUB KET_QUA, BX ; PHEP TRU
MOV AX, KET_QUA ; MUL = NHAN
MOV AX, KET_QUA ; DIV = CHIA
39 download by : skknchat@gmail.com
JAE KETQUA4 ; CHUC NANG BO SO 0
40 download by : skknchat@gmail.com
JE KHONG_DOI_DAU ; GHI DAU NEU NHU DOI DAU
MOV CX, CAC_CHU_SO ; LUU LAI SO CHUSO
MOV BIEN_CX, CX ; TRANH MAT BIEN TRONG THANH GHI CX
MOV CX, BIEN_CX ; BAT BUOC PHAI CO
MOV CX, CAC_CHU_SO ; KET QUA SE HIEN THI SO CHU SO
41 download by : skknchat@gmail.com
MOV HIEN_THI, 0 ; DEM_PHEP_TINH VAN KHAC 0
42 download by : skknchat@gmail.com
MOV BX, NHAP ; KHI AN DAU = MA KO AN +-x/
MOV KET_QUA, BX ; CHO SO NHAP = KET QUA
TINH_LAN_DAU: ; DUNG KHI AN +-x/ LAN DAU
MOV NHAP, 0 ; RESET BIEN SO_NHAP
KETQUA5: ; DUNG DE DEM XEM CO BAO NHIEU CHU SO O
43 download by : skknchat@gmail.com
44 download by : skknchat@gmail.com
PROC CHECK_DAU ; KIEM TRA DAU TRUOC KHI TINH TRU
PUSH AX ; LUU LAI GIA TRI THANH GHI TRANH MAT GIA TRI
JAE DUONG ; NHAY NEU LON HON HOAC BANG
MOV NHAP, AX ;KET_QUA = SO_NHAP;SO_NHAP KET_QUA
POP BX ; TRA LAI DUNG GIA TRI THANH GHI
45 download by : skknchat@gmail.com
PROC LCD_INIT ; KHOI TAO LCD
CALL OUT_B ; SET CAC GIA TRI CUA RS=En=RW=0
; CAI DAT LAI TRINH TU MOV AH,30H ; 30H = 00110000B
MOV AH,30H ; 30H LA MA SETUP CUA LED
CALL LCD_CMD ; MAY CAI KHAC CUNG LA MA SETUP CUA CAI LED NAY, THEO NHA SAN XUAT
46 download by : skknchat@gmail.com
;CODE CHUNG DUNG MOI KHI THAY DOI SETUP CUA
47 download by : skknchat@gmail.com
;DAU VAO: AH = MA LENH
; RS = 0 = CHO LENH CHI DAN VAO
PUSH DX ; LUU LAI GIA TRI CAC THANH GHI DE KHI
CALL LENH KO THAY DOI GIA TRI CUA CHUNG
MOV AL,PORTB_VAL ; LAM CHAN RS CUA LED
AND AL,0FDH ; DUNG LENH OUT_B NEN
MOV AL,AH ; cho Al = AH VI OUT_A DUNG THANH GHI AL
MOV AL,PORTB_VAL ; BAT CHAN EN CUA LED LEN 1
48 download by : skknchat@gmail.com
AND AL,0FBH ; LAM CHO EN CUA LED 0
POP AX ; LAY LAI GIA TRI CAC THANH GHI POP DX
CALL LCD_CMD ; TAC DUNG LA XOA MAN
49 download by : skknchat@gmail.com
PROC LCD_WRITE_CHAR ; VIET 1 KY TU VAO VI TRI CON TRO
OR AL,10B ; BAT RS LEN 1( CHE DO
CALL OUT_A ; DOI QUA THANH GHI AL DE
OR AL,100B ; BAT CHAN EN LEN 1
50 download by : skknchat@gmail.com
AND AL,0FBH ; DOI GIA TRI CHAN EN VE 0 CALL OUT_B
PROC LCD_PRINTSTR ; IN CHUOI KY TU VAO VI TRI CON TRO CHUOT
PUSH SI ; MOI LAN NAP LAI THAY DOI GIA TRI SI NEN PHAI PUSH SI DE LUU LAI
;DOC VA VIET KY TU
@LCD_PRINTSTR_LT: ; CO DF = 0 THI DOC THUAN,
LODSB ; load String byte: NAP DAN GIA TRI CAC KY TU VAO THANH GHI AL
MOV AH,AL ; CHO VAO AH DE DUNG HAM VIET KY TU
CALL LCD_WRITE_CHAR JMP @LCD_PRINTSTR_LT
51 download by : skknchat@gmail.com
; DIEU KHIEN VI TRI CON TRO
;LCD DUNG COT 0 LAM COT CO BAN
DEC DH ; VI COT CO BAN LA 0 NEN - 1 DI
CMP DL,2 ; KIEM TRA XEM LA HANG 1 HAY 2
JMP @LCD_SET_CUR_END
52 download by : skknchat@gmail.com
MOV AH,80H ; 80H = 10000000B JMP @LCD_SET_CUR_ENDCASE
MOV AH,0C0H ; C0H = 1100000B JMP @LCD_SET_CUR_ENDCASE
@LCD_SET_CUR_ENDCASE: ; DH = COT
ADD AH,DH ; GIASU T GOI COT 1 THI GIA TRI
POP AX RET ENDP LCD_SET_CUR
PROC LCD_SHOW_CUR ; HIEN CON TRO
53 download by : skknchat@gmail.com
PROC LCD_HIDE_CUR ; TAT HIEN CON TRO
;GUI DU LIEU TOI CAC CONG PA, PB, PC VA LUU GIA TRI
MOV DX,PA ; TUONG TU PB
54 download by : skknchat@gmail.com
OUT DX,AL ; CHO GIA TRI AL VAO O NHO CO DIA CHI CUA PB
MOV PORTB_VAL,AL ; LUU LAI GIA TRI Al VAO GIA TRI CUA PB
55 download by : skknchat@gmail.com
56 download by : skknchat@gmail.com