TNVXL-ĐHBK TPHCM 2008 „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ Đọc liên tục trạng thái P1.0,P1.1,P1.2,P1.3 xuất P1.4,P1.5,P1.6,P1.7 „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000h LOOP: MOV C,P1.0 MOV P1.4, C MOV C,P1.1 MOV P1.5,C MOV C,P1.2 MOV P1.6, C MOV C,P1.3 MOV P1.7, C JMP LOOP END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H LAP : CPL P1.0 CALL DL SJMP LAP DL : PUSH 05H PUSH 06H PUSH 07H MOV R5,#10 L2 : MOV R6,#100 L1 : MOV R7,#250 DJNZ R7,$ DJNZ R6,L1 DJNZ R5,L2 POP 07H POP 06H POP 05H RET END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ 1Hz ) „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „ ORG 2000H LAP : CPL P1.0 CALL DL500 SJMP LAP DL500: MOV TMOD,#01H;TIMER PUSH 07H MOV R7,#10 LOOP: MOV TH0,HIGH(-50000) MOV TL0,HIGH(-50000) SETB TR0 JNB TF0,$ CLR TR0 DJNZ R7,LOOP POP 07H RET END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ TNVXL-ĐHBK TPHCM 2008 „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H LJMP MAIN ORG 200BH LJMP ISRT0 MAIN: MOV TMOD,#01H;TIMER PUSH 07H LOOP: MOV TH0,HIGH(-50000) MOV TL0,HIGH(-50000) SETB TR0 MOV IE,#82H SJMP $ ISRT0: DJNZ R7,THOAT MOV R7,#10 CPL P1.0 THOAT: CLR TR0 MOV TH0,HIGH(-50000) MOV TL0,HIGH(-50000) SETB TR0 RETI END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ Thí nghiệm thay đổi tần số P1.0 P1.1(tăng) P1.2(giảm) „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H MOV 31H,#100;TAO XUNG 0.1Hz MOV 32H,#20 ;TAO XUNG 0.5Hz MOV 33H,#10 ;TAO XUNG 1Hz MOV 34H,#5 ;TAO XUNG 2Hz MOV 35H,#4 ;TAO XUNG 2.5Hz MOV 36H,#2 ;TAO XUNG 5Hz MOV TMOD,#01H MOV R0,#33H LOOP: JNB P1.1,LOOP1 ;TANG TAN SO JNB P1.2,LOOP2 ;GIAM TAN SO CALL DELAY CPL P1.0 SJMP LOOP DELAY: MOV A,@R0 LAP: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 DJNZ ACC,LAP RET LOOP1: JNB P1.1,$ INC R0 CJNE R0,#37H,TANG MOV R0,#33H TANG: SJMP LOOP TNVXL-ĐHBK TPHCM 2008 LOOP2: JNB P1.2,$ DEC R0 CJNE R0,#30H,GIAM MOV R0,#33H GIAM: SJMP LOOP END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ 2s „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H LAP : MOV R0,#0 LOOP : MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR INC R0 CALL DL MOV DPTR,#0000H MOVX @DPTR,A CJNE R0,#0AH,LOOP SJMP LAP DL: MOV R5,#20 L2: MOV R6,#200 L1: MOV R7,#250 DJNZ R7,$ DJNZ R6,L1 DJNZ R5,L2 RET TABLE: DB 70H,71H,72H,73H,74H,75H,76H,77H,78H,79H END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H LAP: MOV R0,#0 LOOP: MOV DPTR,#TABLE MOV A,R0 MOVC A,@A+DPTR INC R0 CALL DL MOV DPTR,#0000H MOVX @DPTR,A CJNE R0,#04H,LOOP SJMP LAP DL: MOV R6,#100 L1: MOV R7,#15 DJNZ R7,$ DJNZ R6,L1 RET TNVXL-ĐHBK TPHCM 2008 TABLE: DB 071H, 0B2H, 0D3H, 0E4H END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ T „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ Chuong trinh 1: ORG 2000H MOV R7,#0A0H MOV A,R7 MOV B,#10 DIV AB MOV R2,A MOV A,B ORL A,#0D0H MOV R1,A MOV A,R2 MOV B,#10 DIV AB MOV R3,A MOV A,B ORL A,#0B0H MOV R2,A MOV A,R3 ORL A,#70H MOV R3,A MOV DPTR,#0000H LAP: MOV A,R1 MOVX @DPTR,A CALL DL MOV A,R2 MOVX @DPTR,A CALL DL MOV A,R3 MOVX @DPTR,A CALL DL SJMP LAP DL: MOV R4,#15 L11: MOV R5,#100 DJNZ R5,$ DJNZ R4,L11 RET END Chuong trinh 2: ORG 2000H LOOP:MOV R7,#0A0H MOV A,R7 MOV B,#10 DIV AB MOV R0,B MOV B,#10 DIV AB ORL A,#70H ACALL GHI MOV A,B ORL A,#0B0H ACALL GHI MOV A,R0 TNVXL-ĐHBK TPHCM 2008 ORL A,#0D0H ACALL GHI SJMP LOOP GHI:MOV DPTR,#0000H MOVX @DPTR,A RET END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ED P1.0:Tăng, P1.1:Giảm „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H DVI EQU 20H CHUC EQU 21H TRAM EQU 22H MOV R0,#0 MOV R1,#0 MOV DPTR,#0000 AGAIN: JB P1.0,GIAM JNB P1.0,$ INC R0 GIAM: JB P1.1 ,LOOP JNB P1.1,$ DEC R0 LOOP: MOV A,R0 MOV B,#10 DIV AB MOV DVI,B MOV B,#10 DIV AB MOV CHUC,B MOV TRAM,A MOV A,DVI ORL A,#0E0H MOVX @DPTR,A ACALL DELAY1 MOV A,CHUC ORL A,#0D0H MOVX @DPTR,A ACALL DELAY1 MOV A,TRAM ORL A,#0B0H MOVX @DPTR,A ACALL DELAY1 SJMP AGAIN DELAY1: LOP: MOV R6,#2 MOV R7,#250 DJNZ R7,$ DJNZ R6,LOP RET DELAY: LOOP2: LOOP1: MOV R5,#10 MOV R6,#200 MOV R7,#250 TNVXL-ĐHBK TPHCM 2008 DJNZ R7,$ DJNZ R6,LOOP1 DJNZ R5,LOOP2 RET END *********************************************************************** *********************************************************************** ORG 2000H EN BIT P3.4 RS BIT P3.5 MAIN: MOV DPTR, #8000H CALL LCD_INIT MOV A,#'H' CALL WRITE_TEXT MOV A,#'e' CALL WRITE_TEXT MOV A,#'l' CALL WRITE_TEXT MOV A,#'l' CALL WRITE_TEXT MOV A,#'o' CALL WRITE_TEXT MOV A,#' ' CALL WRITE_TEXT MOV A,#'W' CALL WRITE_TEXT MOV A,#'o' CALL WRITE_TEXT MOV A,#'r' CALL WRITE_TEXT MOV A,#'l' CALL WRITE_TEXT MOV A,#'d' CALL WRITE_TEXT SJMP $ LCD_INIT: MOV A,#38H CALL WRITE_COM ; LCD MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100D TNVXL-ĐHBK TPHCM 2008 DEL1: MOV R6, #250D DJNZ R6, $ DJNZ R7, DEL1 RET RET WRITE_TEXT: LCALL WAIT_LCD SETB RS MOVX @DPTR, A SETB EN CLR EN RET ; WRITE_COM: LCALL WAIT_LCD CLR RS MOVX @DPTR, A SETB EN CLR EN ; LCD LCD RET END *********************************************************************** ********************************************************************** ORG 2000H EN RS BIT BIT P3.4 P3.5 MAIN: MOV DPTR, #TEXT CALL LCD_INIT LAP: MOVX A,@A+DPTR CALL WRITE_TEXT INC DPTR JNZ LAP SJMP $ LCD_INIT: MOV A,#38H CALL WRITE_COM ; LCD MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100D DEL1: MOV R6, #250D DJNZ R6, $ TNVXL-ĐHBK TPHCM 2008 DJNZ R7, DEL1 RET RET WRITE_TEXT: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#8000H LCALL WAIT_LCD SETB RS MOVX @DPTR, A SETB EN CLR EN POP DPL POP DPH POP ACC RET ; WRITE_COM: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#8000H LCALL WAIT_LCD CLR RS MOVX @DPTR, A SETB EN CLR EN ; LCD LCD POP DPL POP DPH POP ACC RET TEXT: “Hello World” END *********************************************************************** ********************************************************************** ORG 2000H EN BIT CHO EQU RS BIT P3.4 P2 P3.5 MAIN: MOV DPTR, #8000H CALL LCD_INIT MOV A,#'T' CALL WRITE_TEXT MOV A,#'N' CALL WRITE_TEXT MOV A,#' ' CALL WRITE_TEXT MOV A,#'V' CALL WRITE_TEXT MOV A,#'X' TNVXL-ĐHBK TPHCM 2008 CALL WRITE_TEXT MOV A,#'L' CALL WRITE_TEXT MOV A,#' ' CALL WRITE_TEXT CALL GOTO MOV A,#'T' CALL WRITE_TEXT MOV A,#'O' CALL WRITE_TEXT MOV A,#' ' CALL WRITE_TEXT MOV A,#'8' CALL WRITE_TEXT SJMP $ ;* LCD_INIT: chuong trinh khoi dong LCD LCD_INIT: MOV A,#01H CALL WRITE_COM MOV A,#38H CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET ;* WAIT_LCD: chuong trinh cho LCD san sang nhan lenh ;* (gia su rang sau 50ms thi LCD da thuc hien xong lenh) WAIT_LCD: DELAY: MOV R7, #10 DEL1: MOV R6, #250 DJNZ R6, $ DJNZ R7, DEL1 RET RET ;* WRITE_TEXT: chuong trinh gui du lieu (text) LCD ;* tham so truyen : ghi ACC WRITE_TEXT: LCALL WAIT_LCD SETB EN SETB RS MOVX @DPTR, A TNVXL-ĐHBK TPHCM 2008 CLR EN RET ;* WRITE_COM: chuong trinh gui lenh (command) LCD ;* tham so truyen : ghi ACC GOTO: LCALL WAIT_LCD MOV A,#0C0H SETB EN CLR RS MOVX @DPTR, A CLR EN RET WRITE_COM: LCALL WAIT_LCD SETB EN CLR RS MOVX @DPTR, A CLR EN RET END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H MAIN: CALL UART_INIT MOV A,#'H' CALL OUT_CHAR MOV A,#'e' CALL OUT_CHAR MOV A,#'l' CALL OUT_CHAR MOV A,#'l' CALL OUT_CHAR MOV A,#'o' CALL OUT_CHAR MOV A,#' ' CALL OUT_CHAR MOV A,#'W' CALL OUT_CHAR MOV A,#'o' CALL OUT_CHAR MOV A,#'r' CALL OUT_CHAR MOV A,#'l' CALL OUT_CHAR MOV A,#'d' CALL OUT_CHAR MOV A,#'!' CALL OUT_CHAR 10 TNVXL-ĐHBK TPHCM 2008 SJMP $ UART_INIT: ; MOV SCON,#52H MOV TMOD,#20H MOV TH1,#-3 SETB TR1 RET OUT_CHAR: ; JNB TI, $ CLR TI MOV SBUF, A RET IN_CHAR: ; JNB RI, $ CLR RI MOV A, SBUF RET UART ; phat het, TI=1 ; nhan xong, RI=1 END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H EN BIT P3.4 RS BIT P3.5 MAIN: MOV DPTR, #8000H CALL LCD_INIT CALL UART_INIT LOOP: CALL IN_CHAR CALL WRITE_TEXT SJMP LOOP UART_INIT: ; MOV SCON,#52H MOV TMOD,#20H MOV TH1,#-3 SETB TR1 RET OUT_CHAR: ; JNB TI, $ CLR TI MOV SBUF, A RET UART ; phat het, TI=1 IN_CHAR: JNB RI, $ CLR RI MOV A, SBUF 11 TNVXL-ĐHBK TPHCM 2008 RET LCD_INIT: MOV A,#38H CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #100 DEL1: MOV R6, #250 DJNZ R6, $ DJNZ R7, DEL1 RET WRITE_TEXT: CALL WAIT_LCD SETB RS MOVX @DPTR, A SETB EN CLR EN RET ; LCD WRITE_COM: ; LCD CALL WAIT_LCD CLR RS MOVX @DPTR, A SETB EN CLR EN RET END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H EN RS LAP: BIT BIT P3.4 P3.5 MOV R0,#16 MOV DPTR, #8000H CALL LCD_INIT MOV TMOD,#20H MOV TH1,#-3 MOV SCON,#52H MOV A,87H SETB ACC.7 MOV 87H,A SETB TR1 CALL RECV CALL WRITE_TEXT DJNZ R0,LAP 12 TNVXL-ĐHBK TPHCM 2008 MOV A,#0C0H CALL WRITE_COM SJMP LAP SENDCOM: MOV SBUF,A JNB TI,$ CLR TI RET RECV: JNB RI,$ CLR RI MOV A,SBUF RET LCD_INIT: MOV A,#01H CALL WRITE_COM MOV A,#38H CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #10 DEL1: MOV R6, #250 DJNZ R6, $ DJNZ R7, DEL1 RET WRITE_TEXT: LCALL WAIT_LCD SETB EN SETB RS MOVX @DPTR, A CLR EN RET WRITE_COM: LCALL WAIT_LCD SETB EN CLR RS MOVX @DPTR, A CLR EN RET MSG: DB ' THONG MOI,HAHA!!!',0 KTHUC: SJMP $ END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ 13 TNVXL-ĐHBK TPHCM 2008 „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ ORG 2000H EN BIT RS BIT P3.4 P3.5 MOV DPTR, #8000H CALL LCD_INIT MOV TMOD,#20H MOV TH1,#-3 MOV SCON,#52H SETB TR1 CALL RECV CALL WRITE_TEXT CALL SENDCOM SJMP LAP LAP: SENDCOM: MOV SBUF,A JNB TI,$ CLR TI RET RECV: JNB RI,$ CLR RI MOV A,SBUF RET LCD_INIT: MOV A,#01H CALL WRITE_COM MOV A,#38H CALL WRITE_COM MOV A,#0EH CALL WRITE_COM MOV A,#06H CALL WRITE_COM RET WAIT_LCD: DELAY: MOV R7, #10 DEL1: MOV R6, #250 DJNZ R6, $ DJNZ R7, DEL1 RET WRITE_TEXT: LCALL WAIT_LCD SETB EN SETB RS MOVX @DPTR, A CLR EN 14 TNVXL-ĐHBK TPHCM 2008 RET WRITE_COM: LCALL WAIT_LCD SETB EN CLR RS MOVX @DPTR, A CLR EN RET MSG: DB ' THONG MOI,HAHA!!!',0 KTHUC: SJMP $ END 15 ... RETI END „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟ Thí nghiệm thay đổi tần số P1.0 P1.1(tăng) P1.2(giảm) „‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟‟... 2000H DVI EQU 20H CHUC EQU 21H TRAM EQU 22H MOV R0,#0 MOV R1,#0 MOV DPTR,#0000 AGAIN: JB P1.0,GIAM JNB P1.0,$ INC R0 GIAM: JB P1.1 ,LOOP JNB P1.1,$ DEC R0 LOOP: MOV A,R0 MOV B,#10 DIV AB MOV DVI,B... DEC R0 LOOP: MOV A,R0 MOV B,#10 DIV AB MOV DVI,B MOV B,#10 DIV AB MOV CHUC,B MOV TRAM,A MOV A,DVI ORL A,#0E0H MOVX @DPTR,A ACALL DELAY1 MOV A,CHUC ORL A,#0D0H MOVX @DPTR,A ACALL DELAY1 MOV A,TRAM