/* BYTE Register */
sfr P0   = 0x80;    //P0口
sfr P1   = 0x90;    //P1口
sfr P2   = 0xA0;    //P2口
sfr P3   = 0xB0;    //P3口
sfr PSW  = 0xD0;     //程序状态字,具体位意义见位定义
sfr ACC  = 0xE0;    //累加器,程序员最常用的
sfr B    = 0xF0;    //寄存器,主要用于乘除
sfr SP   = 0x81;    //堆栈指针,初始化为07;先加1后压栈,先出栈再减1,
sfr DPL  = 0x82;
sfr DPH  = 0x83;    //数据指针,用途大
sfr PCON = 0x87;    //电源控制
sfr TCON = 0x88;    //Timer/Counter控制
sfr TMOD = 0x89;    //Timer/Counter方式控制
sfr TL0  = 0x8A;
sfr TL1  = 0x8B;    //
sfr TH0  = 0x8C;    //存着当前的计数值
sfr TH1  = 0x8D;    //我就想不明白,当时设计的时候,为什么不把TH0,TL0放在连续的地址!
sfr IE   = 0xA8;    //好东西,中断控制
sfr IP   = 0xB8;    //中断优先级控制,没有设计过要求时间严格的系统,所以至今没有用过
sfr SCON = 0x98;    //哇,熟悉,串口控制寄存器
sfr SBUF = 0x99;    //哇,更熟悉,串口缓冲寄存器

/* BIT Register */
/* PSW */
sbit CY  = 0xD7;    //进位或借位,有就是1,没有就是0
sbit AC  = 0xD6;    //辅助进借位,(麻烦b)
sbit F0  = 0xD5;    //没有具体用途,可以由用户决定他的意义,所以它就没有意义
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;    //工作寄存器选择,这个在下面解释
sbit OV  = 0xD2;    //over!溢出,有是1,没有是0
sbit P   = 0xD0;    //奇偶校验,奇数个1是1

/* TCON */
sbit TF1 = 0x8F;    //T1的中断请求标志
sbit TR1 = 0x8E;    //Timer 1 running,好记吧~
sbit TF0 = 0x8D;    //
sbit TR0 = 0x8C;    //把上面两个1换成0
sbit IE1 = 0x8B;    //interrupt external 1 外中断请求标志
sbit IT1 = 0x8A;    //interrupt triggle 1 外中断触发方式
sbit IE0 = 0x89;
sbit IT0 = 0x88;    //同样,把上面的两个1换成0

/* IE */
sbit EA  = 0xAF;    //Enable all哇,重要,全局中断控制,光着他,哈哈,什么都不用作了,就像放假一样
sbit ES  = 0xAC;    //Enable Serial,开串口中断
sbit ET1 = 0xAB;    //Enable Timer/Counter 1
sbit EX1 = 0xAA;    //Enable External 1
sbit ET0 = 0xA9;    //Enable Timer/counter 0
sbit EX0 = 0xA8;    //Enable External 0

/* IP */
sbit PS  = 0xBC;    //串行中断优先级
sbit PT1 = 0xBB;    //T1优先级
sbit PX1 = 0xBA;    //外部中断1优先级
sbit PT0 = 0xB9;    //
sbit PX0 = 0xB8;    //上面两个1换成0

/* P3 */             //控制寄存器
sbit RD   = 0xB7;    //读
sbit WR   = 0xB6;    //写
sbit T1   = 0xB5;    //T/C1
sbit T0   = 0xB4;    //T/C0
sbit INT1 = 0xB3;    //外中断1
sbit INT0 = 0xB2;    //外中断0
sbit TXD  = 0xB1;    //串行发送
sbit RXD  = 0xB0;    //串行接收

/* SCON */
sbit SM0 = 0x9F;    //
sbit SM1 = 0x9E;    //串口工作方式
sbit SM2 = 0x9D;    //什么鬼特征位,要用查书,或者等我以后解释,啊哈
sbit REN = 0x9C;    //串行接收允许
sbit TB8 = 0x9B;    //收到的第九位
sbit RB8 = 0x9A;    //要发的第九位
sbit TI  = 0x99;    //哇,熟悉吧,发送完成中断标志
sbit RI  = 0x98;    //接收完成中断标志

reg51.h 详解的更多相关文章

  1. 51单片机头文件reg51.h详解

    转自:http://www.51hei.com/mcu/2670.html 我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面 ...

  2. vs2017自动生成的#include“stdafx.h”详解及解决方案

    vs2017自动生成的#include“stdafx.h”详解及解决方案 问题描述: 在高版本的Visual Studio的默认设置中,会出现这么一个现象,在新建项目之后,项目会自动生成#includ ...

  3. windows.h详解

    参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...

  4. 时间函数 time.h 详解

    C++对时间的操作也有许多值得大家注意的地方.最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作.获取和显示等等的问题.下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法 ...

  5. stdarg.h详解

    读Linux内核中的vsprintf函数的时候遇到了C语言的可变参数调用,查了挺多资料还是这篇比较详细,而且自己验证了下,确实如此 (一)写一个简单的可变参数的C函数  下面我们来探讨如何写一个简单的 ...

  6. CGGeometry.h详解

     本文转载至:http://blog.csdn.net/chengyingzhilian/article/details/7894195 这些是在CGGeometry.h里的 CGPoint.CGSi ...

  7. A​n​d​r​o​i​d​ ​B​l​u​e​t​o​o​t​h​详​解(Android英文文档相关译文)

    一.Bluetooth Android平台包含了对Bluetooth协议栈的支持,允许机器通过Bluetooth设备进行无线数据交换.应用框架通过Android Bluetooth API访问Blue ...

  8. iOS学习——(转)NSObject详解

    本文主要转载自:ios开发 之 NSObject详解 NSObject是大部分Objective-C类继承体系的根类.这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject ...

  9. ios开发之 NSObject详解

    NSObject是大部分Objective-C类继承体系的根类.这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject,可以从其中继承访问运行时的接口,并让对象具备Obje ...

随机推荐

  1. MVC中各类文件

    sln:解决方案文件,为解决方案资源管理器提供显示管理文件的图形接口所需的信息. .csproj:项目文件,创建应用程序所需的引用.数据连接.文件夹和文件的信息. .aspx:Web 窗体页由两部分组 ...

  2. linux printk函数学习

    printk与printf的区别在于: printk运行在kernel space,而printf运行在user space. 所以kernel打印log使用printk,而应用程序打印log使用pr ...

  3. python Eve RESTFul 尝试笔记

    0.前言 最近重点研究了yeelink平台的原理和使用,yeelink平台和多数云平台设计一样应用了RESTFul框架.嵌入式侧(或者是客服端侧)的相关技术研究的比较充分(个人这么认为),是不是该弄弄 ...

  4. 混血儿爹妈要混的远,数据库与WEB分离,得混的近

    最近搞了个漫画网站,放在香港VPS,由于内存不够,把数据库移到了阿里云,混的远了点,没缓存的时候网站打开速度慢了1秒左右.笨狗漫画:http://www.bengou8.com 底部有sql时间cop ...

  5. Injecting and Binding Objects to Spring MVC Controllers--转

    I have written two previous posts on how to inject custom, non Spring specific objects into the requ ...

  6. LSI SAS 3108 配置操作

    配置LSISAS3108 介绍LSISAS3108的配置操作. 5.1 登录CU界面 介绍登录LSISAS3108的CU配置界面的方法,以及CU界面的主要功能. 5.2 创建RAID 介绍在LSISA ...

  7. LA 6448 Credit Card Payment

      [题目] 你的信用卡目前欠M元,每月的汇率是R,每月的利息要四舍五入为小数点后两位,你每月还B元,问多少月能还清. 输入 先是T代表测试数据组数 接下来T行,每行有三个实数,R,M,B每个实数小数 ...

  8. memcache和activemq使用连接,然后close

    memcache和activemq使用连接,然后close

  9. TreeView控件之,后台构建TreeView(WinForm小程序)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAX0AAAIdCAIAAABeBzrBAAAgAElEQVR4nOzdd5Qc130n+tl/nr3e5+

  10. linux下zip命令使用

    linux zip命令 zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o ...