×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-08-21 发布时间:
|
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            0h
        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
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会