Giáo trình Vi điều khiển - Nghề: Điện tử công nghiệp (Trình độ cao đẳng)

Tóm tắt Giáo trình Vi điều khiển - Nghề: Điện tử công nghiệp (Trình độ cao đẳng): ... = #7Fh , B = #0B2h 3.1.23.Lệnh chia thanh ghi A với thanh ghi B. Cú pháp: Div AB Lệnh này chiếm dung lượng bộ nhớ ROM là 1 Byte. Thời gian thực hiện: 4 chu kì máy. Công dụng: Chia hai dữ liệu là số nguyên không dấu ở thanh ghi A với thanh ghi B, dữ liệu ở thanh ghi A là số chia còn ở thanh g... mềm 256 Bộ định thời 8 bit tự động nạp lại 65536 Bộ định thời 16 bit Không giới hạn Bộ định thời 16 bit + các vòng lặp Ví dụ: Tạo dạng xung trên chân P1.0 Viết một chương trình tạo ra dạng sóng có chu kỳ trên P1.0 với tần số cao nhất có thể được. Tần sô...rị được nạp cho bộ đếm chương trình PC được gọi là vector ngắt. Vector ngắt là địa chỉ bắt đầu của trình phục vụ ngắt của nguyên nhân ngắt tương ứng. Vector reset hệ thống bắt đầu tại địa chỉ 0000H: khi reset vi điều khiển thì thanh ghi PC = 0000H và chương trình chính luôn bắt đầu tại địa chỉ này. ...

docx241 trang | Chia sẻ: havih72 | Lượt xem: 131 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Vi điều khiển - Nghề: Điện tử công nghiệp (Trình độ cao đẳng), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
ORG	0000H
	RS	EQU	P3.0
	RW	EQU	P3.1
	EN	EQU	P3.2
	PASS	EQU	40H
	DATABUS 	EQU	P1
	LCALL CHAY_CHU
MAIN1:
	MOV	R0,#70H
	MOV	70H,#0 ;PASS MAC DINH DUOC LUU TRU TU O NHO 70H->75H
	MOV	71H,#0
	MOV	72H,#0	
	MOV	73H,#0
	MOV	74H,#0
	MOV	75H,#0
;WAITING ME
	MOV	R3,#00H
	MOV	R2,#30
	MOV	R6,#0
	;BYTE CO DINH R0,R2,R3,R6,R5,R1
MAIN:
	SETB	P3.3
	MOV	R5,#0
	MOV	R1,#60H
;***********************INNITIAL LCD***************************************
;***********************STRING_LCD_FIRST LINE*******************************
NHAP_PASS:
	CLR RS	;SEND COMMAND
	CLR RW	;RW=0-WRITE LCD MODE
	SETB EN	;E=1
	MOV DATABUS,#38H	;CODE=38H-8BIT,16CHAR/LINE,MATRIX 5X8
	LCALL GUI_LENH	;SEND COMMAND TO LCD
	MOV TH0,#HIGH(-4100)
	MOV TL0,#LOW(-4100)
	LCALL DELAY_2
	MOV DATABUS,#38H
	LCALL GUI_LENH
	MOV TH0,#HIGH(-100)
	MOV TL0,#LOW(-100)
	LCALL DELAY_2
	MOV DATABUS,#38H 
	LCALL GUI_LENH
	MOV DATABUS,#0CH	;CODE=0CH-ENABLE DISPLAY LCD
	LCALL GUI_LENH
	MOV DATABUS,#01H	;CODE=01H-CLEAR LCD
	LCALL GUI_LENH
	MOV	DATABUS,#81H	; XUAT HIEN DONG DAU TIEN 
	ACALL	GUI_LENH
	PUSH	04H
	PUSH	ACC
	MOV	R4,#00H
	MOV	DPTR,#STRINGCODE
LOOP1:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#14,LOOP1	; HIEN DONG THONG BAO THU NHAT 15 KI TU
	POP	ACC
	POP	4H
	MOV	DATABUS,#0C0H	;DISPALY DATA AT THE SECOND LINE
	ACALL	GUI_LENH
	MOV A,#11111110B
	LCALL GUI_DATA	; 2 KHOANG TRANG
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#00110110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01010011B
	LCALL GUI_DATA
	MOV A,#01101111B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01111110B
	LCALL GUI_DATA	; DAU	->
	MOV	R1,#60H
	MOV 50H,#00H
QUET_PHIM_FUNC:	
	LCALL	QUET_PHIM	; GOI CHUONG TRINH QUET PHIM
	CJNE	A,#10,PHIM_CLOSE
	LJMP	OPEN
PHIM_CLOSE:
	CJNE	A,#11,PHIM_NO
	LJMP	QUET_PHIM_FUNC
PHIM_NO:
	CJNE	A,#12,START
	LJMP	QUET_PHIM_FUNC
START:
	CJNE	A,#13,PHIM_CHANGE_PASS
	LJMP	MAIN
PHIM_CHANGE_PASS:
	CJNE	A,#14,PHIM_OOK
	LJMP	CHANGE_PASS
PHIM_OOK:
	CJNE	A,#15,PHIMDATA
	LJMP	QUET_PHIM_FUNC
PHIMDATA:
	PUSH ACC
	MOV A,50H
	CJNE A,#6,HIENTHI
	LJMP QUET_PHIM_FUNC
HIENTHI:
	INC 50H
	POP ACC 
	MOV	@R1,A
	ORL A,#30H
	LCALL DELAY
	LCALL	GUI_DATA
	INC R1
	LJMP QUET_PHIM_FUNC
	;==============================SENDING PROGRAM==================
GUI_LENH:
	CLR RS	;RS=0-SEND COMMAND
	SJMP PULSE_EN
GUI_DATA:	
	MOV DATABUS,A
	SETB RS	;RS = 1-SEND DATA
	NOP
PULSE_EN:
	CLR RW	;RW = 0-WRITING MODE
	CLR EN	;MAKE AN ENABLE PULSE
	NOP
	SETB EN
	NOP
	MOV TH0,#HIGH(-1000)
	MOV TL0,#LOW(-1000)
	LCALL DELAY_2
	RET
; = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 
DELAY_2:
	MOV TMOD,#01H
	SETB TR0
	JNB TF0,$
	CLR TR0
	CLR TF0
	RET	
;_______________________________
OPEN:
MOV	A,@R0	; PASS TRONG 0 70H DUOC DEM RA SO SANH VOI THANG PASS DUOC NHAP VAO THU BAN PHIM
	CJNE	A,60H,PASS_SAI
	INC	R0
	MOV	A,@R0
	CJNE	A,61H,PASS_SAI
	INC	R0
	MOV	A,@R0
	CJNE	A,62H,PASS_SAI
	INC	R0
	MOV	A,@R0
	CJNE	A,63H,PASS_SAI
	INC	R0
	MOV	A,@R0
	CJNE	A,64H,PASS_SAI
	INC	R0
	MOV	A,@R0
	CJNE	A,65H,PASS_SAI
;------DUNG--------
THONGBAO:	;HIEN THI RA MAN HINH NHAP DUNG PASS WORD
	MOV	DATABUS,#0CH	;CHO PHEP LCD HIEN THI
	LCALL	GUI_LENH
	MOV	DATABUS,#01H	;XOA MANG HINH LCD
	LCALL	GUI_LENH
	MOV	DATABUS,#84H	;DU LIEU HIEN THI O DONG DAU 
	LCALL	GUI_LENH
	MOV A,#11111110B	;HIEN THI DAU CACH
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV R4,#62
	MOV DPTR,#STRINGCODE
LOVE1:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#70,LOVE1	; CORRECT
	LCALL	DELAY
	LCALL	DELAY
	CLR	P3.3
	MOV	DATABUS,#01H
	LCALL	GUI_LENH
	PUSH ACC
	PUSH 04H
	LCALL DELAY
	MOV R4,#46
	MOV DPTR,#STRINGCODE
LOVE2:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#62,LOVE2	 	;XUAT HIEN CAU "CUA DUOC MO RUI"
	LCALL AAAA
EXIT_OPEN:
	LCALL	 QUET_PHIM
	CJNE	A,#11,EXIT_OPEN ; TRO VE LAN NHAP GIA TRI BAN DAU
	POP 	04H
	POP	ACC
	LJMP	MAIN
;------SAI------
PASS_SAI:
	INC	R6	;R3 CHO PHEP SO LAN NHAP PASS SAI
	CJNE	R6,#3,HOME
	LCALL	ALARM
	MOV R3,#00H
	LCALL DELAY50MS
	LJMP MAIN1
HOME:
	MOV	DATABUS,#02H
	ACALL	GUI_LENH
	MOV	DATABUS,#01H
	ACALL	GUI_LENH
	MOV	DATABUS,#0CH	;CHO PHEP LCD HIEN THI
	ACALL	GUI_LENH
	PUSH	4H
	PUSH	ACC
	MOV	R4,#15
	MOV	DPTR,#STRINGCODE
STING:	
	MOV	A,R4	;HIEN THI PASS SAI ROI
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#30,STING
	POP	ACC
	POP	04H
	LCALL	DELAY
	LCALL	DELAY
	LCALL	DELAY
	LJMP	MAIN
; DEN SANG CHOP NHAY KHI R3 >= 3 LAN NHAP
ALARM:	
	MOV	DATABUS,#2
	LCALL	GUI_LENH
	MOV	DATABUS,#1
	LCALL	GUI_LENH
	MOV	DATABUS,#0CH	;lcd on
	LCALL	GUI_LENH
	MOV	DATABUS,#80H
	LCALL	GUI_LENH
	PUSH	04H
	PUSH 	01H
	PUSH	ACC
	MOV	R4,#31
	MOV	DPTR,#STRINGCODE
LOOP4:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA	;DISPALY LINE:KEYPAD LOCKED
	INC	R4
	CJNE	R4,#46,LOOP4
; ONE MINUTE
	MOV	DATABUS,#0C0H	; XUAT HIEN DONG DAU TIEN 
	ACALL	GUI_LENH
	MOV A,#11111110B	;HIEN THI DAU CACH
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01001111B	
	LCALL GUI_DATA
	MOV A,#01101110B
	LCALL GUI_DATA
	MOV A,#01100101B
	LCALL GUI_DATA
	MOV A,#11111110B	;HIEN THI DAU CACH
	LCALL GUI_DATA
	MOV A,#01101101B
	LCALL GUI_DATA
	MOV A,#01101001B	
	LCALL GUI_DATA
	MOV A,#01101110B
	LCALL GUI_DATA
	MOV A,#01110101B
	LCALL GUI_DATA
	MOV A,#01110100B
	LCALL GUI_DATA
	MOV A,#01100101B
	LCALL GUI_DATA
; DEN CHOP NHAY
	MOV R1,#0
ANH:
	MOV 	P2,#00H
	LCALL DELAY50MS
	MOV P2,#0FFH
	LCALL DELAY50MS
	INC 	R1
	CJNE 	R1,#20,ANH
	LCALL THONG_BAO
	MOV	P2,#0FFH
	POP ACC
	POP 01H
	POP 04H
	RET
; = = = = = = = = = = = = = = = = SET PASS = = = = = = = = = = = = = = = = = 
CHANGE_PASS:
	;HIEN THI NHAP PASSWORD CU
	MOV	DATABUS,#01H	;clear lcd
	ACALL	GUI_LENH
	MOV	DATABUS,#81H	; First following character will appear on first 
	LCALL	GUI_LENH
	PUSH	ACC
	PUSH	04H
	MOV	R4,#0
	MOV	DPTR,#DATACODE1
PING:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#14,PING
	POP	04H
	POP	ACC
	MOV	DATABUS,#0C0H	; First following character will appear on second 
	ACALL	GUI_LENH
	MOV A,#11111110B
	LCALL GUI_DATA	; 2 KHOANG TRANG
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#00110110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01010011B
	LCALL GUI_DATA
	MOV A,#01101111B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01111110B
	LCALL GUI_DATA	; DAU	- > 
	MOV 60H,00H
	MOV 61H,00H
	MOV 62H,00H
	MOV 63H,00H
	MOV 64H,00H
	MOV 65H,00H
DOI_PASS:	; CHI CO TAC DUNG KHI DOI PASSWORD PHIM START
	MOV	R1,#60H
	MOV 51H,#00H
	MOV R0,#70H
KT_OPEN:	
	LCALL	QUET_PHIM
	CJNE	A,#10,KT_CLOSE	
	SJMP	KT_OPEN
KT_CLOSE:
	CJNE	A,#11,KT_NO
	SJMP	KT_OPEN
KT_NO:	; BUTTON NO CO TAC DUNG TRO VE MAN HINH BAN DAU KHI KO MUON THAY DOI PASSWORD
	CJNE	A,#12,KT_START 
	SJMP	CHANGE_PASS
KT_START:	
	CJNE	A,#13,KT_CHANGE_PASS
	JMP	MAIN
KT_CHANGE_PASS:	
	CJNE	A,#14,KT_OOK
	JMP	KT_OPEN
	KT_OOK:	
	CJNE	A,#15,PHIMDATA_1
	SJMP START_CHANGE
PHIMDATA_1:
	PUSH ACC
	MOV A,51H
	CJNE A,#6,HIENTHI_1
	LJMP KT_OPEN
HIENTHI_1:
	INC 51H
	POP ACC 
	MOV	@R1,A
	ORL A,#30H
	LCALL DELAY
	LCALL	GUI_DATA
	INC R1
	LJMP KT_OPEN
START_CHANGE:
	MOV	A,R5
	CJNE	A,#1,NHAP_LAI_PASS_CU
	MOV 	R5,#00H
	MOV	70H,60H
	MOV	71H,61H
	MOV	72H,62H
	MOV	73H,63H
	MOV	74H,64H
	MOV	75H,65H
	LJMP	MAIN
NHAP_LAI_PASS_CU:
	MOV	A,@R0
	CJNE	A,60H,LOI_DOI_PASS
	INC	R0
	MOV	A,@R0
	CJNE	A,61H,LOI_DOI_PASS
	INC	R0
	MOV	A,@R0
	CJNE	A,62H,LOI_DOI_PASS
	INC	R0
	MOV	A,@R0
	CJNE	A,63H,LOI_DOI_PASS
	INC	R0
	MOV	A,@R0
	CJNE	A,64H,LOI_DOI_PASS
	INC	R0
	MOV	A,@R0
	CJNE	A,65H,LOI_DOI_PASS
; HIEN THI NHAP PASS MOI
;********************
	MOV	DATABUS,#01H	;clear lcd
	ACALL	GUI_LENH
	MOV	DATABUS,#81H	; First following character will appear on first 
	LCALL	GUI_LENH
	PUSH	04H
	PUSH 	ACC
	MOV	R4,#0
	MOV	DPTR,#DATACODE2
PINGMOI:
	MOV	A,R4
	MOVC	A,@A+DPTR
	LCALL	GUI_DATA
	INC	R4
	CJNE	R4,#15,PINGMOI
	POP	ACC
	POP	04H
	MOV	DATABUS,#0C0H	; First following character will appear on second 
	ACALL	GUI_LENH
	MOV A,#11111110B
	LCALL GUI_DATA	; 2 KHOANG TRANG
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#00110110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01010011B
	LCALL GUI_DATA
	MOV A,#01101111B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01111110B
	LCALL GUI_DATA	; DAU	- > 
EXIT_DUNG:
	INC	R5
	LJMP	DOI_PASS
LOI_DOI_PASS:
	INC	R3
	CJNE	R3,#3,HOMESET_1	 ; HIEN CAU NHAP PASS CU
	LCALL	ALARM
	MOV R3,#00H
	LJMP CHANGE_PASS
HOMESET_1:
	MOV	DATABUS,#2
	ACALL	GUI_LENH
	MOV	DATABUS,#1
	ACALL	GUI_LENH
	MOV	DATABUS,#0CH	;CHO PHEP LCD HIEN THI
	ACALL	GUI_LENH
	PUSH	04H
	PUSH	ACC
	MOV	R4,#15
	MOV	DPTR,#STRINGCODE	;HIEN THI PASS SAI ROI
STINGSET:	
	MOV	A,R4
	MOVC	A,@A+DPTR
	ACALL	GUI_DATA
	INC	R4
	CJNE	R4,#30,STINGSET
	POP	ACC
	POP	4H
	LCALL	DELAY
	LCALL	DELAY
	LCALL	DELAY
	LCALL	DELAY
	LJMP	CHANGE_PASS
;*******************
; LAP TRINH QUET BAN PHIM NAY QUA HAY KHONG CHE VAO DAU DUOC
QUET_PHIM:
	PUSH	07H	; R7 DUOC DUNG DE LUU TRU CAC GIA TRI COT
SCAN:
	MOV	A,#0EFH	;QUET COLUMN0
	MOV	R7,#0	;R7 = i
CONT:
	MOV	P0,A	;PORT2 NOI VOI BAN PHIM
	MOV	A,P0	;read row
	JNB	ACC.0,ROW_0
	JNB	ACC.1,ROW_1
	JNB	ACC.2,ROW_2
	JNB	ACC.3,ROW_3
	RL	A	;prepare to conect next col to ground
	INC	R7
	CJNE	R7,#4,CONT	;4 col is conected to ground one after another 
	SJMP	SCAN
ROW_0:	;row = 0,col = 7
	MOV	A,R7
	ADD	A,#0	;A = 0+R7
	SJMP	EXIT
ROW_1:	;row = 1,col = R7
	MOV	A,R7
	ADD	A,#4	;A = 4+R7
	SJMP	EXIT
ROW_2:
	MOV	A,R7	;row = 2,col = R7
	ADD	A,#8	;A = 8+R7
	SJMP	EXIT	
ROW_3:
	MOV	A,R7	;row = 3,col = R7
	ADD	A,#12	;A = 12+R7
	SJMP 	EXIT
EXIT:
	MOV PASS,A
LOVE3:
	MOV	A,P0
	ANL	A,#0FH
	CJNE	A,#0FH,LOVE3
	MOV	A,PASS
	;MOV A,#00101010B
	POP	07H
	RET
;*****************************DELAY****************************************
DELAY:
	PUSH	4H
	PUSH	2H
	MOV	R2,#0FFH
LOOPDE1:
	MOV	R4,#0FFH
	DJNZ	R4,$
	DJNZ	R2,LOOPDE1
	POP	2H
	POP	4H
	RET
DELAY50MS:
	PUSH	00H
	MOV	R0,#50
	MOV	TMOD,#01H
STINGA:
	MOV	TH0,#0ECH
	MOV	TL0,#78H
	SETB	TR0
	JNB	TF0,$
	CLR	TR0
	CLR	TF0
	DJNZ	R0,STINGA
	POP	00H
	RET
CHAY_CHU:
	ACALL	LCDINIT	;KHOI TAO LCD
	ACALL	DISP_SLINE	;HIEN THI DONG 2
MP1:	;XU LY DICH CHUYEN DU LIEU HIEN THI CHO DONG 1
	MOV	DPTR,#FLINE_DATA	;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD
SHIFT:	
	ACALL	DISP_FLINE	;HIEN THI DONG 1
	MOV	R1,#10	;DELAY 500MS
DEL500:
	MOV	TH0,#HIGH(-10000)
	MOV	TL0,#LOW(-10000)	
	ACALL	DELAYA	
	DJNZ	R1,DEL500	;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD
	INC	DPTR	;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU
	MOV	A,DPL	;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD
	CJNE	A,#LOW(FLINE_DATA+80),SHIFT
	MOV	A,DPH
	CJNE	A,#HIGH(FLINE_DATA+80),SHIFT
	LJMP MAIN1
;***************************************************
LCDINIT:	;CTC KHOI TAO LCD
	CLR	RS	;RS = 0 - GUI LENH
	CLR	RW	;RW = 0 - WRITE LCD MODE
	SETB	EN	;E = 1 - ENABLE
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	TH0,#HIGH(-4100)
	MOV	TL0,#LOW(-4100)
	ACALL	DELAYA	;DELAY 4.1MS
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	TH0,#HIGH(-100)
	MOV	TL0,#LOW(-100)	
	ACALL	DELAYA	;DELAY 100US
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	DATABUS,#0CH	;CODE = 0CH - CHO PHEP LCD HIEN THI
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	DATABUS,#01H	;CODE = 01H - XOA LCD
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	DATABUS,#06H	;CODE = 06H - TU TANG DIA CHI HIEN THI, TAT DICH CHUYEN HIEN THI
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	RET
;***************************************************
SENDCOMMAND:	;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD
	CLR	RS	;RS = 0 - GUI LENH
	SJMP	PULSE_ENA
SENDDATA:
	SETB	RS	;RS = 1 - GUI DU LIEU
	NOP
PULSE_ENA:	;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD
	CLR	RW	;RW = 0 - WRITE LCD MODE
	CLR	EN	;EN = 0
	NOP
	SETB	EN	;EN = 1 - XUNG ENABLE
	NOP
;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN
	;*************************************************************
	MOV	TH0,#HIGH(-1000)	;LENH NAY DUOC THAY THE CHO DOAN MA KIEM TRA DUOI DAY KHI
	MOV	TL0,#LOW(-1000)	;CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW
	ACALL DELAYA	
	RET
;***************************************************
DISP_FLINE:	;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM
	MOV	DATABUS,#80H	;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	ACALL	WRITE	;GUI VUNG DU LIEU SANG LCD
	RET
;***************************************************
DISP_SLINE:	;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM
	MOV	DATABUS,#0C0H	;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H
	ACALL	SENDCOMMAND	;GUI LENH RA LCD
	MOV	DPTR,#SLINE_DATA	;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD
	ACALL	WRITE	;GUI VUNG DU LIEU SANG LCD
	RET
;***************************************************
WRITE:	;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H
	MOV	R0,#0	;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR
WR1:
	MOV	A,R0	;NAP OFFSET
	MOVC	A,@A+DPTR	;LAY DU LIEU TU VUNG DU LIEU
	MOV	DATABUS,A	;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD
	ACALL	SENDDATA	;GUI DU LIEU RA LCD
	INC	R0	;CHUYEN SANG DU LIEU KE TIEP
	CJNE	R0,#16,WR1	;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU
	RET
;***************************************************
DELAYA:
	MOV	TMOD,#01H
 SETB 	TR0
	JNB TF0,$
 CLR	TR0
 CLR 	TF0
	RET
FLINE_DATA:	;DU LIEU HIEN THI DONG 1
	DB	' '
	DB	'CHAO MUNG BAN DEN VOI HE THONG KHOA SO BANG PASSWORD CUA NHOM 3 '
	DB	' '
SLINE_DATA:	;DU LIEU HIEN THI DONG 2
	DB	' Welcome '
THONG_BAO:
	ACALL	LCDINIT1	;KHOI TAO LCD
	ACALL	DISP_SLINE1	;HIEN THI DONG 2
MP11:	;XU LY DICH CHUYEN DU LIEU HIEN THI CHO DONG 1
	MOV	DPTR,#FLINE_DATA1	;NAP DIA CHI VUNG DU LIEU DONG 1 CUA LCD
SHIFT1:	
	ACALL	DISP_FLINE1	;HIEN THI DONG 1
	MOV	R1,#5	;DELAY 500MS
DEL5001:
	MOV	TH0,#HIGH(-10000)
	MOV	TL0,#LOW(-10000)	
	ACALL	DELAY1	
	DJNZ	R1,DEL5001	;THOI GIAN DUNG YEN CUA MOT TRANG THAI MAN HINH LCD
	INC	DPTR	;TANG GIA TRI DPTR DE DICH CHUYEN DONG CHU
	MOV	A,DPL	;KIEM TRA DA DICH XONG DONG CHU RA MAN HINH LCD
	CJNE	A,#LOW(FLINE_DATA1+102),SHIFT1
	MOV	A,DPH
	CJNE	A,#HIGH(FLINE_DATA1+102),SHIFT1
	RET
;***************************************************
LCDINIT1:	;CTC KHOI TAO LCD
	CLR	RS	;RS = 0 - GUI LENH
	CLR	RW	;RW = 0 - WRITE LCD MODE
	SETB	EN	;E = 1 - ENABLE
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	TH0,#HIGH(-4100)
	MOV	TL0,#LOW(-4100)
	ACALL	DELAY1	;DELAY 4.1MS
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	TH0,#HIGH(-100)
	MOV	TL0,#LOW(-100)	
	ACALL	DELAY1	;DELAY 100US
	MOV	DATABUS,#38H	;CODE = 38H - 8 BIT, 16 CHAR/LINE, MATRIX 5x7
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	DATABUS,#0CH	;CODE = 0CH - CHO PHEP LCD HIEN THI
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	DATABUS,#01H	;CODE = 01H - XOA LCD
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	DATABUS,#06H	;CODE = 06H - TU TANG DIA CHI HIEN THI, TAT DICH CHUYEN HIEN THI
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	RET
;***************************************************
SENDCOMMAND1:	;CTC GUI LENH (SENDCOMMAND) VA GUI DU LIEU (SENDDATA) RA LCD
	CLR	RS	;RS = 0 - GUI LENH
	SJMP	PULSE_EN1
SENDDATA1:
	SETB	RS	;RS = 1 - GUI DU LIEU
	NOP
PULSE_EN1:	;TAO XUNG ENABLE DE CHUYEN THONG TIN (COMMAND/DATA) VAO LCD
	CLR	RW	;RW = 0 - WRITE LCD MODE
	CLR	EN	;EN = 0
	NOP
	SETB	EN	;EN = 1 - XUNG ENABLE
	NOP
;KIEM TRA CO BAO BAN (BUSY FLAG) DE DAM BAO HOAN TAT VIEC LCD GHI NHAN THONG TIN GUI DEN
	;*************************************************************
	MOV	TH0,#HIGH(-1000)	;LENH NAY DUOC THAY THE CHO DOAN MA KIEM TRA DUOI DAY KHI
	MOV	TL0,#LOW(-1000)	;CHAY CHUONG TRINH NAY TRONG PHAN MEM MO PHONG TOPVIEW
	ACALL DELAY1	
	RET
;***************************************************
DISP_FLINE1:	;CTC DAT DIA CHI BAT DAU DONG 1 VA NAP DU LIEU DONG 1 VAO DDRAM
	MOV	DATABUS,#80H	;CODE = 80H - DAT DDRAM DIA CHI BAT DAU CUA DONG 1 - 00H
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	ACALL	WRITE1	;GUI VUNG DU LIEU SANG LCD
	RET
;***************************************************
DISP_SLINE1:	;CTC DAT DIA CHI BAT DAU DONG 2 VA NAP DU LIEU DONG 2 VAO DDRAM
	MOV	DATABUS,#0C0H	;CODE = C0H - DAT DDRAM DIA CHI BAT DAU CUA DONG 2 - 40H
	ACALL	SENDCOMMAND1	;GUI LENH RA LCD
	MOV	DPTR,#SLINE_DATA1	;NAP DIA CHI VUNG DU LIEU DONG 2 CUA LCD
	ACALL	WRITE1	;GUI VUNG DU LIEU SANG LCD
	RET
;***************************************************
WRITE1:	;CTC GUI DU LIEU SANG LCD, KET THUC GUI DU LIEU KHI DU LIEU GUI DI LA 99H
	MOV	R0,#0	;OFFSET DAU TIEN TRONG VUNG DU LIEU CUA DPTR
WR11:
	MOV	A,R0	;NAP OFFSET
	MOVC	A,@A+DPTR	;LAY DU LIEU TU VUNG DU LIEU
	MOV	DATABUS,A	;CHUYEN DU LIEU CAN GUI RA PORT DEN LCD
	ACALL	SENDDATA1	;GUI DU LIEU RA LCD
	INC	R0	;CHUYEN SANG DU LIEU KE TIEP
	CJNE	R0,#16,WR11	;KIEM TRA NAP DAY DU DU LIEU CHO MOT DONG MAN HINH - 16 CHU
	RET
;***************************************************
DELAY1:
	MOV	TMOD,#01H
 SETB 	TR0
 JNB 	TF0,$
 CLR	TR0
 CLR 	TF0
	RET
;***************************************************
FLINE_DATA1:	;DU LIEU HIEN THI DONG 1
	DB	' '
	DB	' Ban Da Quen Pass . Vui Long Dung Ngoai Cho . Neu La Trom Thi Vui Long Pha Khoa . Hi'
	DB	' '
SLINE_DATA1:	;DU LIEU HIEN THI DONG 2
	DB	' Keypad Locked '
AAAA:
	MOV DATABUS,#0C0H
	LCALL GUI_LENH
	MOV A,#11111110B	;HIEN THI DAU CACH
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#11111110B
	LCALL GUI_DATA
	MOV A,#01010111B	
	LCALL GUI_DATA
	MOV A,#01100101B
	LCALL GUI_DATA
	MOV A,#01101100B
	LCALL GUI_DATA
	MOV A,#01100011B
	LCALL GUI_DATA
	MOV A,#01101111B	
	LCALL GUI_DATA
	MOV A,#01101101B
	LCALL GUI_DATA
	MOV A,#01100101B
	LCALL GUI_DATA
RET
STRINGCODE:
	DB	' Nhap Password '
	DB	' Pass Sai Rui '
	DB	' Keypad Locked '
	DB 'Open The Door '
	DB	' Correct '
DATACODE1:
	DB	' Nhap Pass Cu '
DATACODE2:
	DB	' Nhap Pass Moi '
END
Yêu cầu về đánh giá kết quả học tập:
Nội dung:
+ Về kiến thức: 
Trình bày cấu tạo, đặc điểm,ứng dụng của các loại Vi điều khiển được học
Trình bày được sự cần thiết và cơ chế hoạt động của trình dịch hợp ngữ theo nội dung đã học.
Trình bày được cấu trúc chung của chương trình hợp ngữ theo nội dung đã học.
+ Về kỹ năng: 
Lắp ráp các mạch ứng dụng từng phần do giáo viên đề ra.
Thực hiện viết các chương trình theo yêu cầu cho trứoc 
+ Thái độ: Đánh giá phong cách, thái độ học tập 
Phương pháp:
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm 
+ Về kỹ năng: Đánh giá kỹ năng thực hành Mỗi sinh viên, hoặc mỗi nhóm học viên thực hiện công việc theo yêu cầu của giáo viên.Tiêu chí đánh giá theo các nội dung:
 - Độ chính xác của công việc
 - Tính thẩm mỹ của mạch điện 
 - Độ an toàn trên mạch điện
 - Thời gian thực hiện công việc
 - Độ chính xác theo yêu cầu kỹ thuật
+ Thái độ: Tỉ mỉ, cẩn thận, chính xác.
TÀI LIỆU THAM KHẢO:
[1] Đề cương môđun/môn học nghề Sửa chữa thiết bị điện tử công nghiệp”, Dự án Giáo dục kỹ thuật và Dạy nghề (VTEP), Tổng cục Dạy Nghề, Hà Nội, 2003
[2] Microprocessor and IC families - Walter H. Buchbaum. Sc.D
[3] Mikrocompute Lehrbuch - HPI Fachbuchreihen Pflaum Verlag Munchen
[4] 8051 Development Boad, Rev 5 - Paul Stoffregen
[5] Họ vi điều khiển - Tống văn On - Đại học Bách khoa TP.HCM - 2005

File đính kèm:

  • docxgiao_trinh_vi_dieu_khien_nghe_dien_tu_cong_nghiep_trinh_do_c.docx