/* 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. E - Just a Hook - hdu 1698(区间覆盖)

    某个英雄有这样一个金属长棍,这个金属棍有很多相同长度的短棍组成,大概最多有10w节,现在这个人有一种魔法,他可以把一段区间的金属棍改变成别的物质,例如金银或者铜, 现在他会有一些操作在这个金属棍上,他 ...

  2. UVA1588(Kickdown)。

    只需要固定长串,拿着短串移动就好了. 我是从右往左移动,需要注意的是要判断两头重叠部分(左端重叠和右端重叠)的大小关系. #include <iostream> #include < ...

  3. android中画文字的换行 办法(对于遇到canvas.drawText(String s )无法实现换行问题的解决)

    在使用canvas.drawText()绘制文字的时候,发现,如果需要绘制的文字较长,需要换行,通过在文字中加上“\n"或者”\r\n"都无法实现换行,如果非要使用canvas.d ...

  4. 纯CSS3实现超立体的3D图片侧翻倾斜效果

    看到网友分享的一款CSS3 3D图片侧翻倾斜特效,觉得效果非常棒,其实话说回来,这玩意儿的实现真的非常简单,主要是创意不错.先来看看效果图.那么接下来我们分析一下源码吧,显示html代码,非常简单: ...

  5. .NET简单的语句

    获取当前时间的代码: Response.Write(DateTime.Now); 第一次加载页面的语句: if (!IsPostBack) { Response.Write("这是第一次加载 ...

  6. 05-XML遍历递归显示到TreeView上(XDocument类)

    1.XML文件(x1.xml): <?xml version="1.0" encoding="utf-8" ?> <itcast> &l ...

  7. C#总结项目《影院售票系统》编写总结完结篇

    回顾:昨天总结了影院售票系统核心部分-售票,整个项目也就完成了2/3了,需求中也要求了对销售信息的保存,今天就继续总结销售信息的保存以及加载销售信息. 分析:退出程序时将已售出票集合中的对象循环写入到 ...

  8. MVC验证码的编写

    主要是相互学习一下mvc,希望各位大神指导 /// <summary> /// 生成随机数字 /// </summary> /// <returns>随机数字< ...

  9. XFire构建服务端Service的两种方式

    1.原声构建: 2.集成spring构建 http://blog.csdn.net/carefree31441/article/details/4000436XFire构建服务端Service的两种方 ...

  10. IP V4地址分类

    IP V4地址 共分为五类: A类地址范围:1.0.0.1---126.255.255.254 B类地址范围:128.0.0.1---191.255.255.254 C类地址范围:192.0.0.1- ...