Giáo trình môn học Vi điều khiển

Nguyên lý hoạt động của Vi điều khiển

Mặc dù đã có rất nhiều họ vi điều khiển được phát triển cũng như nhiều chương trình điều khiển tạo ra cho chúng, nhưng tất cả chúng vẫn có một số điểm chung cơ bản. Do đó nếu ta hiểu cặn kẽ một họ thì việc tìm hiểu thêm một họ vi điều khiển mới là hoàn toàn đơn giản. Một kịch bản chung cho hoạt động của một vi điều khiển như sau:

- Khi không có nguồn điện cung cấp, vi điều khiển chỉ là một con chip có chương trình nạp sẵn vào trong đó và không có hoạt động gì xảy ra.

- Khi có nguồn điện, mọi hoạt động bắt đầu được xảy ra với tốc độ cao. Đơn vị điều khiển logic có nhiệm vụ điều khiển tất cả mọi hoạt động. Nó khóa tất cả các mạch khác, trừ mạch giao động thạch anh. Sau vài mili giây đầu tiên tất cả đã sẵn sàng hoạt động.

- Điện áp nguồn nuôi đạt đến giá trị tối đa của nó và tần số giao động trở nên ổn định. Các bit của các thanh ghi SFR cho biết trạng thái của tất cả các mạch trong vi điều khiển. Toàn bộ vi điều khiển hoạt động theo chu kỳ của chuỗi xung chính.

- Thanh ghi bộ đếm chương trình (Program Counter) được xóa về 0. Câu lệnh từ địa chỉ này được gửi tới bộ giải mã lệnh sau đó được thực thi ngay lập tức.

- Giá trị trong thanh ghi PC được tăng lên 1 và toàn bộ quá trình được lặp lại vài triệu lần trong một giây.

 Các kiểu cấu trúc bộ nhớ (Hình 1.1)

Hình 1.1. Cấu trúc bên trong của vi điều khiển.

- Memory (bộ nhớ): là ROM/RAM lưu trữ chương trình hay các kết quả trung gian.

 Read Only Memory (ROM): Read Only Memory (ROM) là một loại bộ nhớ được sử dụng để lưu vĩnh viễn các chương trình được thực thi. Kích cỡ của chương trình có thể được viết phụ thuộc vào kích cỡ của bộ nhớ này. ROM có thể được tích hợp trong vi điều khiển hay thêm vào như là một chip gắn bên ngoài, tùy thuộc vào loại vi điều khiển. Cả hai tùy chọn có một số nhược điểm. Nếu ROM được thêm vào như là một chip bên ngoài, các vi điều khiển là rẻ hơn và các chương trình có thể tồn tại lâu hơn đáng kể. Đồng thời, làm giảm số lượng các chân vào/ra để vi điều khiển sử dụng với mục đích khác. ROM nội thường là nhỏ hơn và đắt tiền hơn, nhưng có thêm lá ghim sẵn để kết nối với môi trường ngoại vi. Kích thước của dãy ROM từ 512B đến 64KB.

 Random Access Memory (RAM): Random Access Memory (RAM) là một loại bộ nhớ sử dụng cho các dữ liệu lưu trữ tạm thời và kết quả trung gian được tạo ra và được sử dụng trong quá trình hoạt động của bộ vi điều khiển. Nội dung của bộ nhớ này bị xóa một khi nguồn cung cấp bị tắt.

- Electrically Erasable Programmable ROM (EEPROM) (hình 1.2)

EEPROM là một kiểu đặc biệt của bộ nhớ chỉ có ở một số loại vi điều khiển. Nội dung của nó có thể được thay đổi trong quá trình thực hiện chương trình (tương tự như RAM), nhưng vẫn còn lưu giữ vĩnh viễn, ngay cả sau khi mất điện (tương tự như ROM). Nó thường được dùng để lưu trữ các giá trị được tạo ra và được sử dụng trong quá trình hoạt động (như các giá trị hiệu chuẩn, mã, các giá trị để đếm, v.v.), mà cần phải được lưu sau khi nguồn cung cấp ngắt. Một bất lợi của bộ nhớ này là quá trình ghi vào

tương đối chậm.

 

Giáo trình môn học Vi điều khiển trang 1

Trang 1

Giáo trình môn học Vi điều khiển trang 2

Trang 2

Giáo trình môn học Vi điều khiển trang 3

Trang 3

Giáo trình môn học Vi điều khiển trang 4

Trang 4

Giáo trình môn học Vi điều khiển trang 5

Trang 5

Giáo trình môn học Vi điều khiển trang 6

Trang 6

Giáo trình môn học Vi điều khiển trang 7

Trang 7

Giáo trình môn học Vi điều khiển trang 8

Trang 8

Giáo trình môn học Vi điều khiển trang 9

Trang 9

Giáo trình môn học Vi điều khiển trang 10

Trang 10

Tải về để xem bản đầy đủ

docx 228 trang duykhanh 5160
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình môn học Vi điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình môn học Vi điều khiển

Giáo trình môn học Vi điều khiển
C	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_mon_hoc_vi_dieu_khien.docx