I BỘ NHỚ CHỈ ĐỌC(ROM:Read Only Memory)
2. INTERRUPT
MOV TMOD,#01H SETB TR
SETB TR0
SETB EA
SETB ET0 ; cho phep ngat Timer0 SETB EX1 ; cho phep ngat ngoai 1 SETB IT1 ; INT1 tac dong canh MOV DPTR,#2003H
MOV A,#89H ; PA: XUAT, PB:XUAT, PC: NHAPMOVX @DPTR,A MOVX @DPTR,A
MOV R3,#0LOOP: MOV A,30H LOOP: MOV A,30H
CALL BIN2BCDCALL DISPLAY CALL DISPLAY LJMP LOOP T0_ISR: CLR TR0 MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 CJNE R3,#20,EXIT MOV R3,#0
;phat xung START CLR P3.4 NOP SETB P3.4 EXIT: INC R3 RETI EX1_ISR: ;doc AD CLR P3.2 NOP NOP MOV DATA1,P1 SETB P3.2 RETI DISPLAY: PUSH ACC Trang 106
MOVC A,@A+DPTR
MOV DPTR,#2000H ; xuat ma LED ra LED6 MOVX @DPTR,A
MOV A,#00100000BMOV DPTR,#2001H MOV DPTR,#2001H
MOVX @DPTR,A ; nối cathode cua LED6 xuong GND CALL DELAY
MOV A,#0
MOVX @DPTR,A ; ngắt cathode LED6 xuong GND MOV DPTR,#T7SEG ; tra bang ma LED
MOV A,BCD7MOVC A,@A+DPTR MOVC A,@A+DPTR
MOV DPTR,#2000H ; xuat ma LED ra LED7 MOVX @DPTR,A
MOV A,#01000000BMOV DPTR,#2001H MOV DPTR,#2001H
MOVX @DPTR,A ; nối cathode cua LED7 xuong GND CALL DELAY
MOV A,#0
MOVX @DPTR,A ; ngắt cathode LED7 xuong GND MOV DPTR,#T7SEG ; tra bang ma LED
MOV A,BCD8MOVC A,@A+DPTR MOVC A,@A+DPTR
MOV DPTR,#2000H ; xuat ma LED ra LED8 MOVX @DPTR,A
MOV A,#10000000BMOV DPTR,#2001H MOV DPTR,#2001H
MOVX @DPTR,A ; nối cathode cua LED8 xuong GND CALL DELAY
MOV A,#0
MOVX @DPTR,A ; ngắt cathode LED8 xuong GND POP ACC
RET
;****************************************************************; chuyen so bin 8 bit trong A sang BCD, ; chuyen so bin 8 bit trong A sang BCD,
; ket qua luu trong BCD6 (tram), BCD7 (chuc), BCD8(don vi)
;****************************************************************BIN2BCD: MOV B,#10 BIN2BCD: MOV B,#10 DIV AB MOV BCD8,B MOV B,#10 DIV AB Trang 107
RETDELAY: DELAY: PUSH 7 MOV R7,#200 DJNZ R7,$ POP 7 RET T7SEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
; 1 sec phát dữ liệu (8 bit) ra DAC 1 lần 0-50-100-150-200-250-0-50-... (tuần tự) ; Quan sát độ sáng của LED đầu ra DAC: sáng dần...
; Dữ liệu phát ra PB (8255) chỉ để kiểm tra giá trị xuất ra DAC ;
; DATA_CPU(P0) <-> DATA_8255 ; DECODER_8255 <-> CTRL_8255 ; PA_8255 <-> DATA_DAC
; PB_8255 <-> DATA_LED (de kiem tra du lieu xuat ra AD) ; $INCLUDE(REG51.INC) ORG 8000H LJMP MAIN ORG 800BH LJMP T0ISR ORG 8030H
;KHOI DONG TIMERMAIN: MOV TMOD,#01H MAIN: MOV TMOD,#01H