. 89S51 1. 2.p1 3.8 3 4.8 3. 1. 0-F 2. 0000 0255. 1. : BB 2. : ( --- ) : :. 1. 2..232.I 2 C 1. X24C02 MCS-51 2. : 22H 24C02 50H 3. : ; 8 4. :I2C. / 1. 1 2. 2. 1. 1. 2. 2.. 1. 1: 2. 2: 3. 3 1
LED 1 89S51 8 8 LED 2 ORG 0000H START:MOV P1,#01111111B LCALL DELAY MOV P1,#10111111B LCALL DELAY MOV P1,#11011111B LED 1 LED 1 LED LCALL DELAY MOV P1,#11101111B LCALL DELAY 2
MOV P1,#11110111B LCALL DELAY MOV P1,#11111011B LCALL DELAY MOV P1,#11111101B LCALL DELAY MOV P1,#11111110B LCALL DELAY MOV P1,#11111111B AJMP START DELAY: MOV R4,#2, 0.25 12M 250 L3: MOV R2,#250 L1: MOV R3,#250 L2: DJNZ R3,L2 DJNZ R2,L1 DJNZ R4,L3 RET END 3 1 1 1 DP1 OFF DP1 ON 2 EPro 2 3 WAVE bin hex ISP 3
WAVE bin hex DP1 P1.7 P1.6 P1.5 OFF P1.7 P1.6 P1.5 1-2 DP1 P1.7 P1.6 P1.5 OFF DP1 P1.7 P1.6 P1.5 OFF DP1 P1.7 P1.6 P1.5 OFF 3 2 51 3 4
f=12mhz 1 DS01 MOV R4 #20 1 D1 MOV R5 #249 1 D2 DJNZ R5 D2 2 DJNZ R4 D1 2 1+1*249=250 1+20*250=5001 RET 2 ---------------------------2+5001=5003 =5003*1=5003 5 1 200 DS01 MOV R1 #200 LP MOV D1 MOV R4 #20 R5 #249 D2 DJNZ R5 D2 DJNZ R4 D1 DJNZ R1 LP RET 1 1 1 3 5 2 4 8 2 1 P1 7FH BFH DFH EFH F7H FBH FDH FEH P1 00H P1 FFH 1 3 5 7 P1 55H 5
2 2 6 8 P1 AAH ORG 0000H START MOV DPTR #0200H LP1 MOV A #00 MOVC A @A+DPTR CJNE A #0F0H LP2 OF 0F LJMP START LP2 MOV P1 A LCALL DS01 INC LJMP DPTR LP1 DS01 MOV R1 #200 LP MOV D1 MOV R4 #20 R5 #249 D2 DJNZ R5 D2 DJNZ R4 D1 DJNZ R1 LP RET DB DB 7FH BFH DFH EFH F7H FBH FDH FEH 00H FFH 55H AAH F0H END 1 p1 org 0000h ajmp start org 0030h start mov a,#0ffh clr c mov r2,#08h ; 6
loop: rlc a ; mov p1,a ; P1 call delay ; djnz r2,loop ; mov r2,#07h ; loop1: rrc a ; mov p1,a ; P1 call delay ; djnz r2,loop1 ; jmp start ; delay: mov r3,#20 ; d1: mov r4,#20 d2: mov r5,#248 djnz r5,$ djnz r4,d2 2 p1 8 org 0000h ajmp main org 0030h main mov p1,#00h ; lcall delay ; lcall delay ; lcall delay ; mov a,#0feh ; loop: mov p1,a ; lcall delay ; lcall delay ; lcall delay ; rl a ; ajmp loop ; 7
delay mov r7,#00h ; tt: mov r6,#00h djnz r6,$ djnz r7,tt ret end 3 8 3 ORG 0000H LJMP MAIN ORG 030H MAIN:MOV P1,#0DBH ACALL DELay MOV P1,#06DH ACALL DELay MOV P1,#0B6H ACALL DELay AJMP MAIN delay:mov r7,#255 d1:mov r6,#255 d2:djnz r6,d2 djnz r7,d1 ret end 8
1 1 LED LED g f GND a b a b c d e f g h f a g b e d c h a b c d e f g h 1 LED e d GND c dp LED 8 7 8 LED 300-750 2 2 P2.6 P2.7 2 +5V IN4148 9
P0 1 1 1/50 1 0-F ORG 0000H START MOV DPTR,#TAB MOV A #00H LP MOVC A,@A+DPTR CJNE A,#0FH,START A=F MOV P1 A CLR P2.4 LCALL DS1MS SETB P2.4 INC A LJMP LP DS1MS: MOV R7,#80 DJNZ R7,$ RET TAB: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H END 2 0000 0255 00 99 ORG 0000H a_bit equ 20h b_bit equ 21h c_bit equ 22h d-bit equ 23 temp equ 24h 10
star: mov temp,#0 ;, 0 stlop: acall display; inc temp; 1 mov a,temp cjne a,#255,next ; 100? mov temp,#0; 100 next: ljmp stlop; display:mov d-bit,#00h mov a,temp ; temp 10 mov b,#100 div ab mov c_bit,a mov a,b mov b,#10 ;10 /10=10 div ab mov b_bit,a ; a mov a_bit,b ; b mov dptr,#numtab ; mov r0,#4 dpl1: mov r1,#250 ; dplop: mov a,a_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.4 ; acall d1ms ; 162 setb p2.4;, mov a,b_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.5 ; acall d1ms ; 162 11
setb p2.5;, mov a,c_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.6 ; acall d1ms ; 162 setb p2.5;, mov a,d_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.7 ; acall d1ms ; 162 setb p2.5;, djnz r1,dplop ; 250 djnz r0,dpl1 ; 250X4=1000 ret D1MS: MOV R7,#80 DJNZ R7,$ RET numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H END 3 0000 0255 0 9999 p3.2, 000000 org 0000h a_bit equ 20h b_bit equ 21h 10 c_bit equ 22h d_bit equ 23h star: mov a,#00h mov a_bit,a mov b_bit,a 12
mov c_bit,a mov d_bit,a stlop: acall display jb p3.2,stlop p3.2=1 p3.2 we: acall display; acall d1ms ; 1ms jnb p3.2,we ; p3.2=0 count:inc a_bit 1 mov a,a_bit cjne a,#10,stlop ; a 10 stlop mov a_bit,#00h ; a=0 inc b_bit ;10 1 mov a,b_bit cjne a,#10,stlop ; 10 mov b_bit,#00h ; 10 inc c_bit ; 1 mov a,c_bit cjne a,#10,stlop mov c_bit,#00h inc d_bit mov a,d_bit cjne a,#10,stlop mov d_bit,#00h ajmp stlop display:mov dptr,#numtab ; mov r0,#4 dpl1: mov r1,#250 ; dplop: mov a,a_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.4 ; 13
acall d1ms ; 162 setb p2.4;, mov a,b_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.5 ; acall d1ms ; 162 setb p2.5;, mov a,c_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.6 ; acall d1ms ; 162 setb p2.5;, mov a,d_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.7 ; acall d1ms ; 162 setb p2.5;, djnz r1,dplop ; 250 djnz r0,dpl1 ; 250X4=1000 ret D1MS: MOV R7,#80 DJNZ R7,$ RET numtab: DB 30H,0FCH,0A2H,0A4H,06CH,25H,21H,0BCH,20H,24H END 14
. 200HZ 200HZ 1/200 5ms P2.5 2.5ms 200HZ. ( 12MHZ) 1 2 3 4 5 6 7 1 : BB org 0000h bb bit p3.6 star: clr bb acall d1ms setb bb acall d1ms sjmp star d1ms: mov r0,#2 dloop: mov r1,#250 djnz r1,$ 15
djnz r0,dloop ret end ORG 0000H LOOP: SETB P3.6 LCALL DELAY CLR P3.6 LCALL DELAY AJMP LOOP DELAY: MOV R7,#25 D1:MOV R6,#25 D2:DJNZ R6,D2 DJNZ R7,D1 RET END DO,RUI,MI,FA SO, LA, XI,DO. ORG 0000H dlv: mov r2,#08h 1kz dlv1:mov r3,#0fah dlv2:cpl p3.6 1khz lcall d5ms 1 djnz r3,dlv2 1 djnz r2,dlv1 mov r2,#10h 2khz dlv3:mov r3,#0fah dlv4:cpl p3.6 2khz lcall d25ms 2 djnz r3,dlv4 16
djnz r2,dlv3 sjmp dlv d5ms:mov r7,#0ffh 1 loop:nop nop djnz r7,loop ret d25ms:mov r6,#0ffh 2 lin:djnz r6,lin ret end 2005. ORG 0000H LJMP START ORG 000BH LJMP FREDEC ORG 0100H START DIRECT BIT 00H LOWFRE EQU 50H HIGFRE EQU 51H MOV A #25H MOV R1 A MOV TMOD #01H MOV TH0 #49H TH0 TH0 T0 1 MOV TL0 #0AFH T0 T0 MOV LOWFRE #0AFH MOV HIGFRE #49H SETB DIRECT SETB EA SETB ET0 SETB TR0 LCALL SOUND SJMP WEND TH0 TH0 00H CPU T0 T0 -------------------------------------- ------------------------------------------------------ SOUND CLR P1.0 ACALL DELAY SETB P1.0 ACALL DELAY SJMP SOUND P1.0 P1.0 17
RET --------------------------------------------- ------------------------------------------------------- DELAY MOV R0,#04H DE0 MOV R1 A DE1 DJNZ R1 DE1 DJNZ R0 DE0 RET ---------------------------------- ----------------------------------------------------------- FREDEC JNB DIRECT FREADD INC A MOV R1 A INC HIGFRE MOV TH0 HIGFRE MOV TL0 #0B8H 00H =0 CJNE R1 #100H BACK MOV HIGFRE #49H CPL DIRECT SJMP BACK FREADD DEC A BACK RETI MOV R1 A DEC LOWFRE MOV TH0 LOWFRE MOV TL0 #0B8H CJNE R1 #25H BACK TH0 MOV LOWFRE #0AFH TH0 CPL DIRECT SWEND END 2 : ( --- ) org 0000h ajmp main org 000bh jmp tim0 org 0030h main: mov tmod,#01h ; mov ie,#82h ; start0: mov 30h,#00h ; 18
next: mov a,30h mov dptr,#table movc a,@a+dptr ; mov r2,a jz end0 ;,. anl a,#0fh mov r5,a ; R5 mov a,r2 swap a anl a,#0fh jnz sing ;. clr tr0 jmp d1 sing: dec a mov 22h,a ; 22H. rl a mov dptr,#table1 movc a,@a+dptr ;. mov th0,a ; TH0 mov 21h,a mov a,22h rl a inc a movc a,@a+dptr mov tl0,a ; TL0 mov 20h,a setb tr0 ; d1: call delay inc 30h jmp next 19
end0: clr tr0 jmp start0 tim0: push acc push psw mov tl0,20h ;. mov th0,21h cpl p3.6 pop psw pop acc reti delay: mov r7,#02h ; d2: mov r4,#187 d3: mov r3,#248 djnz r3,$ djnz r4,d3 djnz r7,d2 djnz r5,delay ret table1: dw 64260,64400,64524,64580 dw 64684,64777,64820,64898 dw 64968,65030,65058,65110 dw 65157,65178,65217 table: db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h db 82h,01h,81h,94h,84h,0b4h,0a4h,04h,82h,01h,81h,94h,84h,0c4h,0b4h,04h db 82h,01h,81h,0f4h,0d4h,0b4h,0a4h,94h,0e2h,01h,0e1h,0d4h,0b4h,0c4h,0b4h,04h,00 end : ORG 0000H LJMP START 20
ORG 000BH ; INC 20H ;, 1 MOV TH0,#0D8H MOV TL0,#0EFH ;12M 10 RETI START: MOV SP,#50H MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MUSIC0: MOV DPTR,#DAT ; DPTR MOV 20H,#00H ; 0 MOV B,#00H ; 0 MUSIC1: CLR A MOVC A,@A+DPTR ; JZ END0 ; 00H, CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MUSIC5: MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR ; R7 MOV R7,A SETB TR0 ; 21
MUSIC2: CPL P3.6 MOV A,R6 MOV R3,A CPL A MOV P1,A ; ( ) CPL A MUSIC3: MUSIC4: END0: LCALL DEL MOV A,R7 CJNE A,20H,MUSIC2 ; (20H)=R7? MOV 20H,#00H ;, INC DPTR LJMP MUSIC1 CLR TR0 ; 100 MOV R2,#0DH MOV R3,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 MOV R2,#64H ;, 1 MUSIC6:MOV R3,#00H DEL: LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0 DEL3: 22
MOV R4,#05H DEL4: DJNZ R4,DEL4 DJNZ R3,DEL3 RET DAT: DB 18H, 30H, 1CH, 10H DB 20H, 40H, 1CH, 10H DB 18H, 10H, 20H, 10H DB 1CH, 10H, 18H, 40H DB 1CH, 20H, 20H, 20H DB 1CH, 20H, 18H, 20H DB 20H, 80H, 0FFH,20H DB 30H, 1CH, 10H, 18H DB 20H, 15H, 20H, 1CH DB 20H, 20H, 20H, 26H DB 40H, 20H, 20H, 2BH DB 20H, 26H, 20H, 20H DB 20H, 30H, 80H, 0FFH DB 20H, 20H, 1CH, 10H DB 18H, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 20H, 1CH, 10H DB 18H, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H DB 18H, 20H, 15H, 20H DB 1CH, 20H, 20H, 20H 23
DB 26H, 40H, 20H, 20H DB 2BH, 20H, 26H, 20H DB 20H, 20H, 30H, 80H DB 20H, 30H, 1CH, 10H DB 20H, 10H, 1CH, 10H DB 20H, 20H, 26H, 20H DB 2BH, 20H, 30H, 20H DB 2BH, 40H, 20H, 15H DB 1FH, 05H, 20H, 10H DB 1CH, 10H, 20H, 20H DB 26H, 20H, 2BH, 20H DB 30H, 20H, 2BH, 40H DB 20H, 30H, 1CH, 10H DB 18H, 20H, 15H, 20H DB 1CH, 20H, 20H, 20H DB 26H, 40H, 20H, 20H DB 2BH, 20H, 26H, 20H DB 20H, 20H, 30H, 30H DB 20H, 30H, 1CH, 10H DB 18H, 40H, 1CH, 20H DB 20H, 20H, 26H, 40H DB 13H, 60H, 18H, 20H DB 15H, 40H, 13H, 40H DB 18H, 80H, 00H end : ORG 0000H LJMP START ORG 000BH INC 20H ;, 1 24
MOV TH0,#0D8H MOV TL0,#0EFH ;12M 10 RETI START: MOV SP,#50H MUSIC0: MUSIC1: MOV TH0,#0D8H MOV TL0,#0EFH MOV TMOD,#01H MOV IE,#82H MOV DPTR,#DAT ; DPTR MOV 20H,#00H ; 0MOV B,#00H ; 0 CLR A MUSIC5: MUSIC2: MOVC A,@A+DPTR ; JZ END0 ; 00H, CJNE A,#0FFH,MUSIC5 LJMP MUSIC3 MOV R6,A INC DPTR MOV A,B MOVC A,@A+DPTR ; R7 MOV R7,A SETB TR0 ; CPL P3.6 MOV A,R6 MOV R3,A LCALL DEL MOV A,R7 25
CJNE A,20H,MUSIC2 ; (20H)=R7? MOV 20H,#00H ;, INC DPTR INC B MUSIC3: MUSIC4: END0: LJMP MUSIC1 CLR TR0 ; 100 MOV R2,#0DH MOV R3,#0FFH LCALL DEL DJNZ R2,MUSIC4 INC DPTR LJMP MUSIC1 MOV R2,#64H ;, 1 MUSIC6:MOV R3,#00H LCALL DEL DJNZ R2,MUSIC6 LJMP MUSIC0 DEL: DEL3: MOV R4,#02H DEL4: DJNZ R4,DEL4 DJNZ R3,DEL3 RET DAT:db 26h,20h,20h,20h,20h,20h,26h,10h,20h,10h,20h,80h,26h,20h,30h,20h db 30h,20h,39h,10h,30h,10h,30h,80h,26h,20h,20h,20h,20h,20h,1ch,20h 26
db 20h,80h,2bh,20h,26h,20h,20h,20h,2bh,10h,26h,10h,2bh,80h,26h,20h db 30h,20h,30h,20h,39h,10h,26h,10h,26h,60h,40h,10h,39h,10h,26h,20h db 30h,20h,30h,20h,39h,10h,26h,10h,26h,80h,26h,20h,2bh,10h,2bh,10h db 2bh,20h,30h,10h,39h,10h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,20h db 20h,10h,20h,10h,2bh,10h,26h,30h,30h,80h,18h,20h,18h,20h,26h,20h db 20h,20h,20h,40h,26h,20h,2bh,20h,30h,20h,30h,20h,1ch,20h,20h,20h db 20h,80h,1ch,20h,1ch,20h,1ch,20h,30h,20h,30h,60h,39h,10h,30h,10h db 20h,20h,2bh,10h,26h,10h,2bh,10h,26h,10h,26h,10h,2bh,10h,2bh,80h db 18h,20h,18h,20h,26h,20h,20h,20h,20h,60h,26h,10h,2bh,20h,30h,20h db 30h,20h,1ch,20h,20h,20h,20h,80h,26h,20h,30h,10h,30h,10h,30h,20h db 39h,20h,26h,10h,2bh,10h,2bh,20h,2bh,40h,40h,10h,40h,10h,20h,10h db 20h,10h,2bh,10h,26h,30h,30h,80h,00H END 27
. 1 51 RS232 TTL MAX232 9 3 5 GND 2 RXD 3 TXD MAX232 10 11 9 10 15 20 51 2 WINDOWS 1 I/O 0 I/O 1 0 A 28
4014 P S 1 P/S=0 ORG 2000H START CLR P S SETB P S MOV LOOP JNB RI LOOP 8051 SCON 10H 0 RXD TXD 14 P/S CLR RI P1 0 MOV A SBUF END 2 0 CD4094 CD4094 STB 1 8 STB 0 8 DATAL ORG 2000H START MOV SCON 00H CLR P1.0 MOV A,#80H ; ; LOOP: MOV SBUF, #A LOOP1:JNB TI,LOOP1 CLR TI RR A LJMP DS01 8051 RXD TXD LJMP DS01:------------- LOOP P1 0 (3) I/O =f/12. SCON 29
SCON=00H SCON=10H IE=90H IE=00H RI=1 TI=1 RI TI 2 1 T1 T0 GATE C T M1 M0 GATE C T M1 M0 T0 0 =f/12 M1M0 00 01 10 11 0 1 0 1 0 1 2 3 INT0 INT0 1 = 2 SMOD /32 * T1 2 = 2 SMOD /64 *f 3 = 2 SMOD /32 * T1 PCON= 80 30
TCON TCON 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 O 0 1 1 T0 T0 T1 T1 IE IE A8H 1 0 T 1 T1 2 PC AF 4800KBPS, K1 P3.2 16 AF ORG 0000H MOV SCON,#50H MOV TMOD,#20H MOV PCON,#80H MOV TH1,#0F3H MOV TL1,#0F3H SETB TR1 ; 1 ; T1 2 ; 2400x2=4800BPS ; ( 2400BPS ) ; ( 2400BPS ) ; T1 ; WRIT:JB P3.2 $ ACALL DELAY10 JB P3.2,WRIT ; K1, ; 10 ; 31
JNB P3.2,$ MOV A,#0AFH MOV SBUF,A ; ; 16 AF ; AF AJMP WRIT ;10 DELAY10:MOV R4,#20 D2:MOV R5,#248 DJNZ R5,$ DJNZ R4,D2 RET END WINDOWS G 4800 COM K1 AF AF 32
89S51 51 rs232 89c51test ic.... ORG 0000H AJMP main0 ORG 0030H main0: MOV 20H,#00H MOV TMOD,#22H MOV SCON,#40H MOV TH1,#0FAH ; MOV PCON,#80H SETB TR1 SETB REN ajmp start 33
start: mov dptr,#ok senda: clr a ; movc a,@a+dptr cjne a,#'$',senda_0 ret senda_0:mov sbuf,a JNB TI,$; CLR TI ; inc dptr Ljmp senda ok: db 0dh,0ah,0dh,0ah,".... ",0dh,0ah,'$' end HEX TXT :020000000130CD :10003000752000758922759840758DFA758780D274 :100040008ED29C0145900059E493B4240122F59985 :100050003099FDC299A30200480D0A0D0AC8E7B9FC :10006000FBCED2BBB9D3D0D2BBCCECCAD9C3FCA394 :10007000ACC4C7CCECCED2D2AAD7F6C4E3C5AED3BB :10008000D1A1A3CED2BBB9D3D0D2BBCCECB5C4C323 :10009000FCC2F0A3BF2E2EC3BBD3D0A1A3CBF9D2F9 :1000A000D4A3ACBADCBFC9CFA7A1A3CED2BDF1C93E :1000B000FAC8D4C8BBB2BBCAC7C4E3B5C4C5AED3C3 :1000C000D1A1A3C8E7B9FBCED2D3D0B3E1B0F2A39C :1000D000ACCED2D2AAB4D3CCECCCC3B7C9CFC2C0B9 :1000E000B4BFB4C4E3A1A3CED2D3D0B3E1B0F2C2C3 :1000F000F0A3BF2E2EC3BBD3D0A1A3CBF9D2D4A3E0 :10010000ACBADCD2C5BAB6A1A3CED2B4D3B4CBCEEE 34
:10011000DEB7A8D4D9BFB4B5BDC4E3A1A30D0A24EA :00000001FF.232 ORG 0000H ; AJMP main0 ORG 0030H main0: MOV SP,#5FH ; MOV TMOD,#22H MOV SCON,#40H MOV TH1,#0F3H ; 4800,(12M MOV PCON,#80H SETB TR1 clr p2.7 ; SETB REN ; loop:jbc ri,rec mov p0,#0ffh rec: mov a,sbuf; a mov p1,a CJNE A,#00110001b,T00 MOV P0,#07eH ; 2 mov p0,#0ffh t00: CJNE A,#00110010b,T2 MOV P0,#0A2H ; 2 mov p0,#0ffh T2: CJNE A,#00110011b,T3 MOV P0,#62H T3: CJNE A,#00110100b,T4 MOV P0,#74H 35
T4: CJNE A,#00110101b,T5 MOV P0,#61H T5: CJNE A,#00110110b,T6 MOV P0,#21H T6: CJNE A,#00110111b,T7 MOV P0,#7AH T7: CJNE A,#00111000b,T8 MOV P0,#20H T8: CJNE A,#00111001b,t9 MOV P0,#60H T9: CJNE A,#00110000b,t10 MOV P0,#28H t10:ljmp loop delay: mov r7,#00h ; tt: mov r6,#00h djnz r6,$ djnz r7,tt ret end 36
I 2 C I 2 C 1 I2C I 2 C CPU I 2 I 2 C I 2 C 80C552 83C752 I 2 C I2C 2 I 2 C I 2 C SDA SCL SRAM E 2 PROM ADC/DAC RTC I/O DTMF LED E 2 PROM I 2 C 100Kb/S 400PF I 2 C CMOS I 2 C 5 10K +5V LED LCD I/O I/0 SDA SCL SDA SCL SDA SCL SDA SCL SDA SCL SDA SCL SDA SCL SDA SCL SDA SCL DTMF ADC/DAC MCU EEPROM 37
I2C 1 E 2 PROM 1010 2 / / I 2 C 3 E 2 PROM E2PROM 1010 E2PROM E2PROM A2A1A0 R/W 1 0 4 I 2 C 38
5 1 8 16 8 24WC01/02/04/08/16 16 24WC32/64/128/256 2 8 16 8 24WC01/02/04/08/16 8 16 24WC32/64/128/256 39
24WC02 20H 2Kb-21X8b /8 3 8 24WC01/02/04/08/16 16 24WC32/64/128/256 4 I2C 40
X24C02 MCS-51 AT24C02 ATMEL CMOS EEPROM 256 8 2.5 5.5V 10000 10ms P2.1 P2.0 AT24C02 1 2 3 8 4 5 SDA / I2C P2.0 6 SCL P2.1 SDA SCL 5.1K 7 24C02 1 8, 0600H 8 24C02 01H ORG 0000H SCL BIT P1.1; 24C02 SDA BIT P2.0; 24C02 LJMP START START:LCALL STAR; MOV R2,#08H; 8 MOV DPTR,#0600H; LOOP: MOV A,#00H MOVC A,@A+DPTR LCALL SDATA LCALL ACK JC LOOP 41
INC DPTR DJNZ R2,LOOP LCALL STOP; STAR: SETB SDA SETB SCL CLR SDA CLR SCL RET SDATA:MOV R0,#08H LOOP0:RLC A MOV SDA,C SETB SCL CLR SCL DJNZ R0,LOOP0 RET ACK:SETB SDA 42
SETB SCL MOV C,SDA CLR SCL RET STOP:CLR SDA SETB SCL SETB SDA RET ORG 0600H DB 0A0H,10H,01H,02H,03H,04H,05H,06H END 43
: 22H 24C02 50H ORG 0000H ; 22H 24C02 50H SCL BIT P2.1 SDA BIT P2.0 LJMP START START:SETB SDA SETB SCL CLR SDA CLR SCL MOV R0,#08H MOV A,#0A0H LOOP0:RLC A MOV SDA,C SETB SCL CLR DJNZ SCL R0,LOOP0 44
SETB SDA SETB SCL MOV CLR C,SDA SCL JC START MOV A,#50H MOV R0,#08H LOOP1:RLC MOV A SDA,C SETB SCL CLR DJNZ SCL R0,LOOP1 SETB SDA 45
SETB SCL MOV C,SDA CLR SCL JC START MOV A,#22H MOV R0,#08H LOOP2:RLC A MOV SDA,C SETB SCL CLR SCL DJNZ R0, LOOP2 SETB SDA SETB SCL MOV C,SDA CLR SCL JC START 46
CLR SDA SETB SCL SETB SDA END : ; 8 ORG 0000H SCL BIT SDA BIT P2.1 P2.0 LJMP START START:MOV R3,#0DH MOV DPTR,#0600H LCALL STA WRDA:MOV A,#00H MOVC A,@A+DPTR LCALL WRBYT LCALL CACK JB F0,START INC DPTR 47
DJNZ R3,WRDA LCALL STOP LJMP START STA:SETB SDA ; SETB SCL CLR SDA CLR SCL RET WRBYT:MOV WLP:RLC R0,#08H A ; SDA ACC JC WR1 SJMP WR0 WLP1:DJNZ R0,WLP RET WR1:SETB SDA SETB SCL CLR SCL CLR SDA SJMP WLP1 WR0:CLR SDA SETB SCL CLR SCL 48
SJMP WLP1 CACK:SETB SDA ; SETB SCL CLR F0 JNB SDA,CEND SETB F0 CEND:CLR SCL RET STOP:CLR SDA ; SETB SCL SETB SDA CLR SCL RET ORG 0600H DB 0A0H,00H,01H,02H,03H,04H,05H,06H,07H,08H DB 09H,0AH, 0BH,0DH,55H,56H,57H END :I2C P2.1 BIT VSCL P1.0 BIT VSDA ;---- I2C ----- START:SETB VSDA SETB VSCL 49
CLR VSDA CLR VSCL RET ---- I2C------- STOP CLR VSDA SETB VSCL SETB VSDA CLR VSDA CLR VSCL RET ------ ------- MACK CLR VSDA SETB VSCL CLR VSCL SETB VSDA RET ------ MNACK SETB VSDA SETB VSCL CLR VSCL 50
CLR VSDA RET ---- RMACK SETB VSDA SETB CLR F0 VSCL MOV C VSDA JNC CEND SETB F0 CEND CLR VSCL RET ------ ------- WRBYT MOV R0 #08H CLR VSCL CLR VSDA LOOP1: RLC A MOV VSDA, C SETB VSCL CLR VSCL CLR VSDA DJNZ R0, LOOP1 RET ----- RDBYT:MOV R0,#08H CLR VSCL RLP SETB VSDA SETB VSCL MOV C VSDA 51
RLC A CLR VSCL DJNZ R0 RLP RET 52
/. / 1. 2. 0 1 INT0 INT0 88H TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 T0 T0 1 O 1 0 T0 T1 GATE C T M1 M0 GATE C T M1 M0 M1M0 00 11 01 0 1 1 2 3 0 T0 10 T1 3. T1 1 T T1 1 0 IE A8H 53
4. / 2 n -X * 0 :N=13 1 N=16 2 N=8 G /. / 1 P1.0, 0.2 P1.1, 7 P1.7, P1.6, 7 P1.0. ORG 0030H MOV TMOD,#00H START:CLR C MOV A,#0FFH MOV R2,#08 LOOP: RLC A MOV P1,A MOV R3,#100 CALL DELAY DJNZ R2,LOOP MOV R2,#07 LOOP1:RRC A MOV P1,A MOV R3,#100 CALL DELAY DJNZ R2,LOOP1 ; ; TIMER0 MODE0 ;C=0 ;ACC=FFH, ;R2=08, 8 ; ; P1 ;0.2 ;2000 ; 8 ;R2=07, 7 ; ; P1 ;0.2 ;2000 ; 7 54
JMP START DELAY:SETB TR0 AGAIN:MOV TL0,#(8192-2000) MOV TH0,#(8192-2000) LOOP2:JBC TF0,LOOP3 JMP LOOP2 ; TEMER0 ; TL0 ; TH0 ;TF0 1, LOOP3, TF0 ; LOOP2 LOOP3: DJNZ R3,AGAIN CLR TR0 ;R3 0? AGAIN ; TIMR0 RET END 2 0000 P3.4 1 ORG 0000H a_bit equ 20h b_ bit equ 21h c_bit equ 22h d-bit equ 23 LJMP START ORG 000BH LJMP ZDFU ORG 0100H START MOV 20H #00 0 MOV 21H #00 MOV 22H #00 MOV 23H #00 MOV A #00 MOV TCOM #05H T0 1 55
SETB TR0 LP CJNE A #255 DAPY 255 LJMP START DAPY: mov b,#100 div ab mov c_bit,a mov a,b mov b,#10 ;10 /10=10 div ab mov b_bit,a ; a mov a_bit,b ; b mov dptr,#numtab ; mov r0,#4 dpl1: mov r1,#250 ; dplop: mov a,a_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.4 ; acall d1ms ; 162 setb p2.4;, mov a,b_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.5 ; acall d1ms ; 162 setb p2.5;, mov a,c_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.6 ; acall d1ms ; 162 56
setb p2.5;, mov a,d_bit ; MOVC A,@A+DPTR ; 7 mov p0,a ; 7 clr p2.7 ; acall d1ms ; 162 setb p2.5;, djnz r1,dplop ; 250 djnz r0,dpl1 ; 250X4=1000 LJMP LP D1MS: MOV R7,#80 DJNZ R7,$ RET numtab: DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H,88H ZDFU INC A RETI END 57
. 1. TI RI IT0=0 IT0=1 IT0=0 1 IT0=1 TCON IE0 TF0 IE1 TF1 TI RI IT0=0 EX0 ET0 EX1 ET1 ES EA IP 1 2. 3. 0 0003H T 1 001BH T 0 000BH 0023H 1 0013H 0023H 3. IE A8H 1 0 T 1 T1 4. 1). IP IP * * * PS PT1 PX1 PT0 PX0 PX0------------ 0 PT0----------- / T0 58
PX1---------- 1 PT1---------- / T1 PS----------- 2). SCON 9F 9E 9D 9C 9B 9A 99 98 SM0 SM1 SM2 REN TB8 3). RB8 TI RI TCON 88H TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 O 0 1 1 T0 T0 T1 T1.. 1 : P1 8 LED INT0 P1 8 LED 5 ORG 0000H JMP START ORG 0003H JMP EXT0 ; ; START ;INT0 ; START: MOV IE,#10000001B ;INT0 MOV IP,#00000001B MOV TCON,#00000000B MOV SP,# 70H ; ;INT0 ;INT0 ; LOOP: MOV A,#0FFH ; CLR C MOV R2,#08 ;C=0 ; 8 LOOP1: RLC A ; C MOV P1,A ; P1 59
CALL DELAY ; 0.2 DJNZ R2,LOOP1 MOV R2,#07 ; 8 ; 7 LOOP2: RRC A ; C EXT0: LOOP3: MOV P1,A CALL DELAY DJNZ R2,LOOP2 JMP LOOP PUSH ACC PUSH PSW SETB RS0 CLR RS1 MOV A,#00 MOV R2,#10 MOV P1,A CALL DELAY CPL A DJNZ R2,LOOP3 POP PSW POP ACC RETI ; P1 ; 0.2 ; 7 ; ; ; PSW ; 1 ; P1 ; 5 (, 10 ) ; A P1 ; 0.2 DELAY: MOV R5,#20 ;0.2 ; A ; 5 ( 10 )? ; PSW ; A ; D1: MOV R6,#20 ;10 D2: MOV R7,#248 ;0.5 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 2. : 8 p32 org 00h; jmp start; org 03h;int0 p32 60
jmp ext0; start: mov ie,#10000001b; mov ip,# 00000001b; mov tcon,#0000000b; mov sp,#70h; main:; mov p1,#00h ; lcall delay ; mov a,#0feh ; loop: mov p1,a ; p1 lcall delay ; rl a ; ajmp loop ; main ext0: push acc ; A A push psw ; MOV R1,#10 LP: cpl p3.6; call del ; SETB p3.6 DJNZ R1,LP pop psw ; pop acc reti delay:mov r5,#20; 1 d1: mov r6,#20 d2: mov r7,#250 djnz r7,$ djnz r6,d2 djnz r5,d1 ret del: ; 2 61
mov r4,#250 djnz r4,$ ret end 62
1: : 0 1 2 3 4 5 6 7 8, 0 1 2 3 4 5 6 7 8. P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, ORG 0000H START:CLR P2.4 SETB P2.5 SETB P2.6 SETB P2.7 MOV P0,#0C0H 0C0h p0 0 LCALL DELAY MOV P0,#0FFH CLR P1.0 0ffh p0 p1.0 MOV P0,#0F9H 0F9h p0 1 LCALL DELAY MOV P0,#0FFH CLR P1.1 MOV P0,#0A4H ; p1.0 ; 2 LCALL DELAY MOV P0,#0FFH CLR P1.2 MOV P0,#0B0H ; 3 LCALL DELAY MOV P0,#0FFH CLR P1.3 MOV P0,#99H ; ; 4 63
LCALL DELAY MOV P0,#0FFH CLR P1.4 MOV P0,#92H ; 5; LCALL DELAY MOV P0,#0FFH CLR P1.5 MOV P0,#82H ; 6 LCALL DELAY MOV P0,#0FFH CLR P1.6 MOV P0,#0F8H ; 7 LCALL DELAY MOV P0,#0FFH CLR P1.7 MOV P0,#80H ; 8 LCALL DELAY MOV P0,#0FFH LCALL DELAY MOV P1,#0FFH 0 1 2 3 4 5 6 7 8 p1.0------------p1.7,. SETB P2.4 8 CLR P2.5 MOV P0,#0C0H LCALL DELAY MOV P0,#0FFH CLR P1.0 MOV P0,#0F9H LCALL DELAY 64
MOV P0,#0FFH SETB P1.0 CLR P1.1 MOV P0,#0A4H LCALL DELAY MOV P0,#0FFH SETB P1.1 CLR P1.2 MOV P0,#0B0H LCALL DELAY MOV P0,#0FFH SETB P1.2 CLR P1.3 MOV P0,#99H LCALL DELAY MOV P0,#0FFH SETB P1.3 CLR P1.4 MOV P0,#92H LCALL DELAY MOV P0,#0FFH SETB P1.4 CLR P1.5 MOV P0,#82H LCALL DELAY MOV P0,#0FFH SETB P1.5 CLR P1.6 MOV P0,#0F8H LCALL DELAY 65
MOV P0,#0FFH SETB P1.6 CLR P1.7 MOV P0,#80H LCALL DELAY MOV P0,#0FFH SETB P1.7 MOV P0,#0FFH MOV P1,#0FFH 012345678 p1 AJMP START DELAY: CLR P3.6 3.3 MOV R7,#255 D1: MOV R6,#255 setb p3.6 D2: DJNZ R6,D2 clr p3.6 DJNZ R7,D1 SETB P3.6 RET END 2: : p3. 2 0 p3.3 1 66
p3.4 2 p3.5 3, JB bit, rel bit 1 JNB bit, el bit 0 org 0000h ljmp start org 30h start: mov sp,#5fh mov p1,#0ffh CLR P2.4 SETB P2.5 SETB P2.6 SETB P2.7 mov p3,#0ffh mov p0,#0ffh l1: jnb p3.2,l2 p3.2 l2 jnb p3.3,l3 p3.3 l3 jnb p3.4,l4 jnb p3.5,l5 p3.4 l4 p3.5 l5 ljmp l1 l2: mov p0,#0c0h; 0 ljmp l1 l3:mov p0,#0f9h; 1 ljmp l1 l4:mov p0,#0a4h; 2 ljmp l1 l5: mov p0,#0b0h; 3 ljmp l1 end 67
3 p3.2. P3.2 p1.0---1.7 P3. 4 p1.0-1.7 P3.5 p0.o P0. 2 P0.4 P0.6 p0.1 P0.3 P0.5 P0.7 ORG 0000H LJMP START ORG 0003H LJMP STOP ORG 000BH LJMP LP1 ORG 0013H LJMP LP2 ORG 001BH LJMP LP3 ORG 0023H ORG 0100H START:MOV TL0 #0FEH MOV TH0 #0FEH MOV TL1 #0FEH MOV TH1 #0FEH MOV TMOD #01100110B T0 T1 2 SETB IT0 SETB 1T1 SETB TR0 SETB TR1 MOV IE #10001111B LJMP $ 68
LP1 MOV R0 #02H 2 MOV P1 #0FFH LCALL DL05S MOV P1 #0FEH LCALL DL05S MOV P1 #0FCH LCALL DL05S MOV P1 #0F8H LCALL DL05S MOV P1 #0F0H LCALL DL05S MOV P1 #0E0H LCALL DL05S MOV P1 #80H LCALL DL05S MOV P1 #00H LCALL DL05S MOV P1 #FFH RETI LP2:MOV R0 #08H MOV A,#0FEH LPP:MOV P1,A LCALL DL05S RL A DJNZ R0 LPP RETI LP3 MOV R0 #04H 4 MOV A #10101010B LPPP MOV P1 A 69
LCALL DL05S CPL A DJNZ R0 LPPP RTEI DL05S:MOV R4,#0AH LOOP3: LCALL DL10MS DJNZ R4,LOOP3 RET End 70