Nghiên cứu Khoa học
LẬP TRÌNH ĐỒNG HỒ CƠ BẢN CHO LCD
Ngôn ngữ lập trình Assembly là một ngôn ngữ giúp người học có thể nắm rõ ràng phần cúng và thiết bị ngoại vi được kết nối vào mạch.
Đối với sinh viên Khoa Điện - Điện tử đây là một ngôn ngữ hỗ trợ cho sinh viên có thể tìm hiểu rõ hơn về cấu trúc bên trong chip giúp việc nghiên cứu và thiết kế chip, cũng như viết các ứng dụng tự động hóa được linh hoạt.
Ví dụ một bài thiết kế đồng hồ cơ bản hiển thị lên LCD. Thông qua ví dụ này sinh viên có thể hiểu rõ muốn lập trình LCD cần nhữn gì, mạch thiết kế đi kèm của nó như thế nào?
ORG 00H
;GIO 30H
;PHUT 31H
;GIAY 32H
jmp main
DELAY:
MOV R1,#100
LAP:
MOV R2,#250
DJNZ R2,$
DJNZ R1,LAP
RET
lenh:
CLR P3.0
SETB P3.1
NOP
CLR P3.1
NOP
CALL DELAY
RET
DULIEU:
SETB P3.0
SETB P3.1
NOP
CLR P3.1
NOP
CALL DELAY
RET
delay_1s:
MOV R5,#4
LAP3:
MOV R3,#250
LAP1:
MOV R4,#250
LAP2:
NOP
NOP
DJNZ R4,LAP2
DJNZ R3,LAP1
DJNZ R5,LAP3
RET
HT_LCD:
MOV P2,#0C4H
CALL LENH
MOV A,30H
CALL HT_SO ; GIO
MOV P2,#0C6H
CALL LENH
MOV P2,#3AH
CALL DULIEU
MOV P2,#0C7H
CALL LENH
MOV A,31H
CALL HT_SO; PHUT
MOV P2,#0C9H
CALL LENH
MOV P2,#3AH
CALL DULIEU
MOV P2,#0CAH
CALL LENH
MOV A,32H ; A=[[82H]
CALL HT_SO
RET
HT_SO:
MOV B,#10
DIV AB; A CHUA THUONG, B CHUA DU
;9=39H
;1=31H 2=32H
ADD A,#30H
MOV P2,A
CALL DULIEU
MOV A,B
ADD A,#30H
MOV P2,A
CALL DULIEU
RET
MAIN:
MOV 30H,#0
MOV 31H,#0
MOV 32H,#0
MOV P2,#38H ; LCD 16X2
CALL LENH
MOV P2,#0CH ; CHO PHEP HIEN THI DULIEU
CALL LENH
; DONG HO:
KHAC:
CALL HT_LCD
CALL DELAY_1S
INC 32H
MOV R6,32H
CJNE R6,#2,KHAC
INC 31H
MOV 32H,#0
MOV R6,31H
CJNE R6,#3,KHAC
INC 30H
MOV 31H,#0
MOV R6,32H
CJNE R6,#24,KHAC
SJMP MAIN
END