51单片机的位地址和字节地址
/*----------------------------------------------------------*/
;program name: r8051xC2 -->Port0 Test Input or Output
;program versions: v1
;program date: 2013.7.15
;use : test
;compiler: eng-12
/*-----------------------------------------------------------*/
$NOMOD51 //取消使用51内部默认SFR
#include ""
Key1 equ P0.0
F_1SSet bit 20h.0
F_KeyOne bit 20h.1
F_KeyOpen bit 20h.2
dseg at 30h //通用RAM字节段从30H开始
TimerCnt: ds 1
TimerCnt1: ds 1
KeyBuf: ds 1
KeyValue: ds 1
P0_1: ds 1
P0_2: ds 1
P0_3: ds 1
P0_4: ds 1
P0_5: ds 1
P0_6: ds 1
P0_7: ds 1
P0_8: ds 1
IO_ModeCnt: ds 1
DelCnt: ds 1
iseg at 80h //0-ffh地址的RAM段 80h-ffh段RAM只能用间接寻址进行操作
cseg at 0
org 0000h
jmp Start
org 0030h
;------------------------------------------------------------
start:
mov ckcon,#01h
mov r0,#0x7f
ClrRam: //清内部256Byte RAM
mov @r0,#0
djnz r0,ClrRam
mov dptr,#0x00 //清外部768Byte RAM
// mov dph,#0x03
// mov dpl,#0x00
ClrOutRam:
mov a,#0x00 //给外部RAM全部写0x00
movx @dptr,a
inc dpl
mov a,dpl
cjne a,#0,ClrOutRam
inc dph
mov a,dph
cjne a,#3,ClrOutRam
mov P0_OE,#0ffh //设置P0位输出模式
mov P0,#00H //P0输出0
;-------------------------------------------------------------
main:
mov a,P0 //IO口状态快速翻转,翻转正常,在时钟25Mhz下
CPL a
mov P0,a
ljmp main
;-------------------------------------------------------------
end