/*--------------------------------------------------------------------------
自定义REG52头文件
@auth lei
@date 2017-05
--------------------------------------------------------------------------*/ #ifndef __REG52_H__
#define __REG52_H__ /* 一个字节的寄存器 */
sfr P0 = 0x80;//双向IO,向外输出要接上拉电阻
sfr P1 = 0x90;//准双向IO,作为输入要先置1
sfr P2 = 0xA0;//准双向IO,作为输入要先置1
sfr P3 = 0xB0;//准双向IO,作为输入要先置1,有第二功能
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;//中断控制寄存器
sfr TMOD = 0x89;//定时器工作方式寄存器
sfr TL0 = 0x8A;//定时器/计数器0低8位
sfr TL1 = 0x8B;//定时器/计数器1低8位
sfr TH0 = 0x8C;//定时器/计数器0高8位
sfr TH1 = 0x8D;//定时器/计数器1高8位
sfr IE = 0xA8;//中断允许寄存器
sfr IP = 0xB8;//中断优先级寄存器
sfr SCON = 0x98;
sfr SBUF = 0x99; /* 8052单片机扩展的寄存器 */
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD; /* 一位长度的寄存器 */
/* PSW */
sbit CY = PSW^;
sbit AC = PSW^;
sbit F0 = PSW^;
sbit RS1 = PSW^;
sbit RS0 = PSW^;
sbit OV = PSW^;
sbit P = PSW^; //8052 专用 /*------------中断内容详解----------------------------
*相关的寄存器
* 1.IE中断允许寄存器
* 2.TCON定时控制寄存器
* 3.IP中断优先级寄存器(不常用)
* 4.TMOD定时器工作方式寄存器(定时器/计数器中断才用到)
*使用中断的步骤:
* 1.中断初始化函数(只需要调用一次,不要放到循环里重复调用)
* 2.编写中断处理函数
* 3.主函数中调用中断初始化函数
*------------中断内容详解----------------------------/ /* TCON定时控制寄存器 */
sbit TF1 = TCON^;//定时器/计数器中标志位:
sbit TR1 = TCON^;//定时器/计数器中1启动、停止:
sbit TF0 = TCON^;//定时器/计数器中0标志位:
sbit TR0 = TCON^;//定时器/计数器中断0启动、停止:
sbit IE1 = TCON^;//外部中断1中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0
sbit IT1 = TCON^;//外部中断1触发方式:0为电平、1为下降沿
sbit IE0 = TCON^;//外部中断0中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0
sbit IT0 = TCON^;//外部中断0触发方式:0为电平、1为下降沿 /* IE中断允许寄存器 */
sbit EA = IE^;//中断总开关
sbit ET2 = IE^; //8052 专用
sbit ES = IE^;
sbit ET1 = IE^;//定时器/计数器中断1开关
sbit EX1 = IE^;//外部中断1开关
sbit ET0 = IE^;//定时器/计数器中断0开关
sbit EX0 = IE^;//外部中断0开关 /* IP中断优先级寄存器 */
sbit PT2 = IP^;
sbit PS = IP^;
sbit PT1 = IP^;
sbit PX1 = IP^;
sbit PT0 = IP^;
sbit PX0 = IP^; /*------------------TMOD寄存器详解-----------------
8位从高到低依次为:GATE C/T M1 M0 GATE C/T M1 M0
{----配置定时器1----} {----配置定时器0----}
GATE:门控位,由外部引脚(T0、T1)作为定时器的启动总开关:GATE=0时,T0和T1无效;GATE=1时,需要T0或者T1开关打开(高电平)定时器才能启动
C/T:计数方式选择,C/T=0时用作定时器,C/T=1时用作计数器
M1、M0:工作方式选择位,00为工作方式0,13位定时器/计数器,TH存放高8位,TL存放低5位
01为工作方式1,16位定时器/计数器,TH存放高8位,TL存放低8位(常用)
10为工作方式2,初值自动装载的8位定时器/计数器(常用)
11为工作方式3,T0被分为两个8位独立计数器,T1停止工作
*------------------TMOD寄存器详解-----------------/ /* P3口的第二功能 */
sbit RD = P3^;//外部存储器读选通信号
sbit WR = P3^;//外部存储器写选通信号
sbit T1 = P3^;//外部控制定时器/计数器1的启动(TMOD寄存器第7位GATE = 1时才有效),1为启动,0位停止
sbit T0 = P3^;//外部控制定时器/计数器0的启动(TMOD寄存器第3位GATE = 1时才有效),1为启动,0位停止
sbit INT1 = P3^;//外部中断1输入
sbit INT0 = P3^;//外部中断0输入
sbit TXD = P3^;//串行输出
sbit RXD = P3^;//串行输入 /* SCON串口控制寄存器 */
sbit SM0 = SCON^;
sbit SM1 = SCON^;
sbit SM2 = SCON^;
sbit REN = SCON^;
sbit TB8 = SCON^;
sbit RB8 = SCON^;
sbit TI = SCON^;
sbit RI = SCON^; /* P1口第二功能 */
sbit T2EX = P1^; // 8052 专用
sbit T2 = P1^; // 8052 专用 /* T2CON */
sbit TF2 = T2CON^;
sbit EXF2 = T2CON^;
sbit RCLK = T2CON^;
sbit TCLK = T2CON^;
sbit EXEN2 = T2CON^;
sbit TR2 = T2CON^;
sbit C_T2 = T2CON^;
sbit CP_RL2 = T2CON^; #endif

自定义reg52.h头文件(单片机学习重难点核心知识点)的更多相关文章

  1. hpp头文件与h头文件的区别

    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...

  2. C/C++关于string.h头文件和string类

    学习C语言时,用字符串的函数例如stpcpy().strcat().strcmp()等,要包含头文件string.h 学习C++后,C++有字符串的标准类string,string类也有很多方法,用s ...

  3. linux内核中链表代码分析---list.h头文件分析(一)【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...

  4. 转载:C/C++关于string.h头文件和string类

    学习C语言时,用字符串的函数例如stpcpy().strcat().strcmp()等,要包含头文件string.h 学习C++后,C++有字符串的标准类string,string类也有很多方法,用s ...

  5. 【C】.h头文件的重复包含问题

    .h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...

  6. 【转】【Raspberry Pi】Unix NetWork Programming:配置unp.h头文件环境

    一.初衷 近期正在做网络计算编程的作业.要求平台为unix/linux,想着Raspberry Pi装的Debian系统也是Linux改的,也应该能够勉强用着,所以就用它来做作业了! 二.说明 先把环 ...

  7. 自定义C/C++头文件以及头文件重复定义解决

    今天再看二叉树的知识,看着看着就看到C/C++的头文件及头文件重复定义这一块去了.以前就看到过这个问题,但是自己一直没有用到这方面的东西,今天遇到就顺便总结一下,等以后忘了再回来看看. 首先明确一点C ...

  8. Android JNI开发生成.h头文件问题(转)

    在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...

  9. 基础知识复习(二)——stdafx.h 头文件及x&(x-1)运算

    今天好久没写过C++程序了,使用VS2013 新建空的控制台程序,结果自动生成了头文件和main 方法. 就了解了stdafx.h头文件的含义及用法. stdafx:standard Applicat ...

随机推荐

  1. HTML学习笔记07-头部

    HTML <head> 元素 <head> 元素包含了所有的头部标签元素.在 <head>元素中你可以插入脚本(scripts), 样式文件(CSS),及各种met ...

  2. jython获取was5.1的jvm监控参数

    perfName = AdminControl.completeObjectName ('type=Perf,process=server1,node=TSC,cell=TSC,*') perfONa ...

  3. python系统编码转换

    # coding:gbk import sys import locale def p(f): print '%s.%s(): %s' % (f.__module__, f.__name__, f() ...

  4. dell r720服务器raid5安装centos6.5系统

    服务器型号R720 已经配置好了raid,需要安装centos6.5系统 1.开机,按F10,进入系统引导界面,选择加载系统选项,并选择redhat 6.7选项 系统提示不支持,选择仍然继续,根据提示 ...

  5. 通达OA系统故障解决案例记录

    案例1: 现象:在人员访问量大的时候OA系统经卡死,并且经常宕机,需要启动apache服务 优化配置如下: D:\MYOA\conf\http.conf 修改参数如下: <IfModule mp ...

  6. curl, wget常用选项

    使用指定的http代理,配合md5sum 对于检查源站与cdn节点资源是否一致很有效 curl -o a.jpg -x http://pbcdn.xximg1.com/v6/global2015/im ...

  7. php中静态方法和静态属性的介绍

    静态分为两个部分:静态属性和静态方法 静态的东西都是给类用的(包括类常量),非静态的都是给对象用的 静态属性 在定义属性的时候,使用关键字static修饰的属性称之为静态属性. 静态方法 使用stat ...

  8. 20155309南皓芯 网络对抗《网络攻防》 Exp1 PC平台逆向破解(5)M

    实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可 ...

  9. 老方块Oracle--数值类型性能考虑

    我们在设计数据库表,或者在使用SQL,写程序时都会经常用到数值类型.比如常见的number.int.float. float是浮点类型,也属于数值类型,我们最常用的是number类型. 他的格式是nu ...

  10. 【APUE | 7】命令形参、函数

    命令形参 命令行参数是使用main()函数参数来处理的,其中,argc是指传入参数的个数,argv[]是一个指针数组,指向传递给程序的每个参数. 应当指出的是, argv[0]存储程序的名称,argv ...