reg51.h 详解
/* 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 详解的更多相关文章
- 51单片机头文件reg51.h详解
转自:http://www.51hei.com/mcu/2670.html 我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面 ...
- vs2017自动生成的#include“stdafx.h”详解及解决方案
vs2017自动生成的#include“stdafx.h”详解及解决方案 问题描述: 在高版本的Visual Studio的默认设置中,会出现这么一个现象,在新建项目之后,项目会自动生成#includ ...
- windows.h详解
参考 http://blog.csdn.net/fengningning/article/details/2306650?locationNum=1&fps=1 windows.h解构 刚开头 ...
- 时间函数 time.h 详解
C++对时间的操作也有许多值得大家注意的地方.最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作.获取和显示等等的问题.下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法 ...
- stdarg.h详解
读Linux内核中的vsprintf函数的时候遇到了C语言的可变参数调用,查了挺多资料还是这篇比较详细,而且自己验证了下,确实如此 (一)写一个简单的可变参数的C函数 下面我们来探讨如何写一个简单的 ...
- CGGeometry.h详解
本文转载至:http://blog.csdn.net/chengyingzhilian/article/details/7894195 这些是在CGGeometry.h里的 CGPoint.CGSi ...
- Android Bluetooth详解(Android英文文档相关译文)
一.Bluetooth Android平台包含了对Bluetooth协议栈的支持,允许机器通过Bluetooth设备进行无线数据交换.应用框架通过Android Bluetooth API访问Blue ...
- iOS学习——(转)NSObject详解
本文主要转载自:ios开发 之 NSObject详解 NSObject是大部分Objective-C类继承体系的根类.这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject ...
- ios开发之 NSObject详解
NSObject是大部分Objective-C类继承体系的根类.这个类遵循NSObject协议,提供了一些通用的方法,对象通过继承NSObject,可以从其中继承访问运行时的接口,并让对象具备Obje ...
随机推荐
- [置顶] 自己写代码生成器之生成Dal层代码(获取数据库所有表名称)
自己写代码生成器之生成Dal层代码(获取数据库所有表名称) --得到数据库birthday所有表名称 select name from sysobjects where [type]='U' --se ...
- 1st day
学习配置环境,听的一脸懵逼,不过还好装好了,哈哈哈... <?php /*写一个函数,该函数可以将给定的任意个数的参数以指定的字符串串接起来成为一个长的字符串.该函数带2个或2个以上参数,其中第 ...
- eclipse中新建maven项目
maven是个项目管理工具,集各种功能于一身,下面介绍maven web项目在eclipse种的配置,并于tomcat集成.配置成功后,可以跟一般的web项目一样调试. 一.准备条件 1.安装下载jd ...
- OpenRisc-41-or1200的cache模块分析
引言 为CPU提供足够的,稳定的指令流和数据流是计算机体系结构设计中两个永恒的话题.为了给CPU提供指令流,需要设计分支预测机构,为了给CPU提供数据流,就需要设计cache了.其实,无论是insn还 ...
- Apache Tomcat8必备知识
Apache Tomcat8必备知识 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 一.Apache Tomcat 8介绍 Apache Tomcat ...
- LeetCode——Valid Palindrome
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- 使用CCUserDefault 推断用户是否是第一次登陆系统及UserDefault全路径的获取
bool bfirst =CCUserDefault::sharedUserDefault()->getBoolForKey("first"); //假设不能获取该键值,创建 ...
- Android项目实战--手机卫士18--读取用户的短信内容以及短信备份
我们今天要说的就是我们手机卫士里面的高级工具里面的短信备份功能啦,其实这个软件备份的功能也很简单,就是把用户的短信读出来,然后写到一个xml或者数据库里面, 但我们这里的是读取到xml里面的. 首先我 ...
- hdu1387之queue应用
Team Queue Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- 改变eclipse工程中代码的层次结构
1. 代码的层次结构 一般之代码包(package)结构 有两种:扁平结构和继承两种. 扁平结构(flat)如下图所示: 继承结构(hierarchical) 2. 如何修改: 1. 选中packag ...