51单片机的位地址和字节地址

时间:2025-04-23 07:50:55
/*----------------------------------------------------------*/ ;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