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. ...
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:
- giao_trinh_vi_dieu_khien_nghe_dien_tu_cong_nghiep_trinh_do_c.docx