,最后存为c类型的文件,通常我们用keil软件将其编译为hex类型的文件,然后用单片机烧录软件将其烧录到单片机中,就可以达到我们预想的结果了。笔者个人觉得,想学好程序,要先懂得单片机的内部构造,主要是要懂得各大寄存器的名字和使用方式。这个通晓了,一切自在掌握之中。51单片机有如下一些寄存器。通用寄存器,就是R0,R1R2R3,R4,R5,R6,R7这些寄存器用着比较方便,只要直接向里面传送数据就可以。例如,我们向R0里面存一个数23H,那么就编写MOVR0,23H。算数寄存器,ACC和B,ACC累加寄存器用的较多,关于加减乘除很多都围绕ACC进行,使用中我们将ACC的名字简化为A,例如,我们向A中存一个数33H那么就编写MOVA33H。这里面的33H,为什么要加一个“”呢,因为单片机中,内存的地址也是两位十六进制,33H既可以表示内存中33H那个存储区域,又可以表示一个数字33H。为了区分,我们将数字写成33H。什么?你想在内存中33H那个区域存一个数72H?好吧,我们就和这个33H地
f址对应的区域较一较劲。单片机中,我们不能直接对一个明确的地址写入数据。但是我们可以间接的访问这个33H对应的地址,那就要借助,R0和R1。只有它们才能起到间接辅助寻址的功能。好,我们来实现它。首先要访问33H,我们就先把33H存入R0,编写MOVR033H现在R0里面有了个33H,然后编写MOVR072H很多朋友都会说这个不就是寻址方式中的寄存器寻址吗,对,寻址方式不是重点,有兴趣大家参照单片机教材资料,了解一下即可。重点是为什么这里用R0,其实和电子邮箱地址中的一样,这里的表示的就是“在R0里面的数字对应的地址”,R0存了33H,这里R0,就是指的33H这个地址,我们对这个地址写入一个72H,所以就要编写,MOVR072H。还有就是四个IO寄存器,P0,P1P2,P3它们直接关系到那32个管脚的高低电平,直接对其写入就可以了,MOVP133H当然也可以针对某一个管脚操作,就是布尔操作,用SETBP10就可以把P10置为高电平,CLRP10就是把P10置为低电平。其余的,有个位寄存器C,其实C就可以存1或者0,它是表示进位的标志,再没有进位情况下,我们可以用它来当做位操作的中间站。闲言少叙,我们开始谈谈汇编语言。51系列的汇编指令不是很多,而且规律性比较强。还有那些伪指令,大家可以参照教科书一一了解。汇编语言模块化不是很强,调用模块比较麻烦,属于底层语言,直接面向硬件,每个操作都可以落实到确切的寄存器上。大体上设计方法有四种:顺序法,查r