📄 www8051.asm
字号:
.nolist.include "../../include/param.inc".include "../../include/8019.inc".list.if (MAGIC ^ VERSION) .print "Invalid ACTIVESTACK/DUALSTACK/SERIAL setings" .err.endif.include "ether.inc".include "ip.inc"; "http" .global STACK1MODE .equ STACK1MODE, NORESENDMODE .global ETHRETRY1 .equ ETHRETRY1, 5*2 ; timeout = 2 s .global PORT1 ; local port .equ PORT1, 80 .text .global open_stack1 .global process_stack1 .global close_stack1open_stack1: ljmp open_httpprocess_stack1: ljmp httpclose_stack1: ret .rdata.global data_addr.global data_len.global unwrited.global mac_gateway.global state80data_addr: .ds 1 ;start of data in TCP packetdata_len: .ds 1 ;length of data in TCP packetunwrited: .ds 1 ;unwrited data lengthmac_gateway: .ds 3state80: .ds.b 1;;PCODE DATA.global chkacc, chklen, chkaddr.global pcodeMSB, pcodeLSBchkacc: .ds 1chklen: .ds 1chkaddr: .ds 1pcodeMSB: .ds.b 1pcodeLSB: .ds.b 1.global LEDmodeLEDmode: .ds.b 1flashtimer: .ds.b 1;;#########################################################; Main Loop;#########################################################; .section fast, #alloc;************************************************************* mov a,LEDmode jb Acc.1,nosetL0 ;Flash LED0 mov C,Acc.0 cpl C mov LED0,CnosetL0: jb Acc.3,nosetL1 ;Flash LED1 mov C,Acc.2 cpl C mov LED1,CnosetL1: .section slow, #alloc;*************************************************************;~50 ms loop dec flashtimer setb LED0 ;enable readout keyboard setb LED1;unpack packed bit array mov a,LEDmode anl a,#0b00000011 ;LED0 mov R4,a mov a,LEDmode anl a,#0b00001100 ;LED1 mov R5,a mov a,LEDmode anl a,#0b00110000 ;KBD0 mov R6,a mov a,LEDmode anl a,#0b11000000 ;KBD1 mov R7,a mov C,LED1 mov Acc.5,C cjne a,#0b10000000,NCH1 ;test KBD1 change 1->0 mov R7,#0b00000000 mov a,R5 add a,#0b00000100 jb P,no11L1 ;jmp if 00000100 or 00001000 clr a ;00001100 -> 00000000no11L1: mov R5,a sjmp tstL0NCH1: rl a anl a,#0b11000000 mov R7,atstL0: mov a,R6 mov C,LED0 mov Acc.3,C cjne a,#0b00100000,NCH0 ;test KBD1 change 1->0 mov R6,#0b00000000 mov a,R4 add a,#0b00000001 jb P,no11L0 ;jmp if 00000001 or 00000010 clr a ;00000011 -> 00000000no11L0: mov R4,a sjmp packarrNCH0: rl a anl a,#0b00110000 mov R6,apackarr:mov a,R4 orl a,R5 orl a,R6 orl a,R7 mov LEDmode,a jnb Acc.1,noFl0 ;Flash LED0 mov a,flashtimer mov C,Acc.4 mov LED0,C mov a,LEDmodenoFl0: jnb Acc.3,noFl1 ;Flash LED1 mov a,flashtimer mov C,Acc.4 mov LED1,CnoFl1: .section reset_device, #alloc;************************************************************* ;; END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -