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

51单片机的20H-2FH为位地址区,共16个字节,每字节有8位共128位,每位有个编号称为位地址,位地址的范围为00H-7FH。

该区既可位寻址又可字节寻址。例如:MOV C,20H 这里C是进位标志位,该指令将位地址为20H的单元内容送至C;而MOV A,20H 将字节地址为20H的内容送至累加器A。

可见20H是位地址还是字节地址要看另一个操作数的类型。

/*----------------------------------------------------------*/
;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 "REG8F301.INC"

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

转载于:https://www.cnblogs.com/yuqilihualuo/p/3326428.html

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值