1. /*--------------------------------------------------------------------------
  2. 自定义REG52头文件
  3. @auth lei
  4. @date 2017-05
  5. --------------------------------------------------------------------------*/
  6.  
  7. #ifndef __REG52_H__
  8. #define __REG52_H__
  9.  
  10. /* 一个字节的寄存器 */
  11. sfr P0 = 0x80;//双向IO,向外输出要接上拉电阻
  12. sfr P1 = 0x90;//准双向IO,作为输入要先置1
  13. sfr P2 = 0xA0;//准双向IO,作为输入要先置1
  14. sfr P3 = 0xB0;//准双向IO,作为输入要先置1,有第二功能
  15. sfr PSW = 0xD0;
  16. sfr ACC = 0xE0;
  17. sfr B = 0xF0;
  18. sfr SP = 0x81;
  19. sfr DPL = 0x82;
  20. sfr DPH = 0x83;
  21. sfr PCON = 0x87;
  22. sfr TCON = 0x88;//中断控制寄存器
  23. sfr TMOD = 0x89;//定时器工作方式寄存器
  24. sfr TL0 = 0x8A;//定时器/计数器0低8位
  25. sfr TL1 = 0x8B;//定时器/计数器1低8位
  26. sfr TH0 = 0x8C;//定时器/计数器0高8位
  27. sfr TH1 = 0x8D;//定时器/计数器1高8位
  28. sfr IE = 0xA8;//中断允许寄存器
  29. sfr IP = 0xB8;//中断优先级寄存器
  30. sfr SCON = 0x98;
  31. sfr SBUF = 0x99;
  32.  
  33. /* 8052单片机扩展的寄存器 */
  34. sfr T2CON = 0xC8;
  35. sfr RCAP2L = 0xCA;
  36. sfr RCAP2H = 0xCB;
  37. sfr TL2 = 0xCC;
  38. sfr TH2 = 0xCD;
  39.  
  40. /* 一位长度的寄存器 */
  41. /* PSW */
  42. sbit CY = PSW^;
  43. sbit AC = PSW^;
  44. sbit F0 = PSW^;
  45. sbit RS1 = PSW^;
  46. sbit RS0 = PSW^;
  47. sbit OV = PSW^;
  48. sbit P = PSW^; //8052 专用
  49.  
  50. /*------------中断内容详解----------------------------
  51. *相关的寄存器
  52. * 1.IE中断允许寄存器
  53. * 2.TCON定时控制寄存器
  54. * 3.IP中断优先级寄存器(不常用)
  55. * 4.TMOD定时器工作方式寄存器(定时器/计数器中断才用到)
  56. *使用中断的步骤:
  57. * 1.中断初始化函数(只需要调用一次,不要放到循环里重复调用)
  58. * 2.编写中断处理函数
  59. * 3.主函数中调用中断初始化函数
  60. *------------中断内容详解----------------------------/
  61.  
  62. /* TCON定时控制寄存器 */
  63. sbit TF1 = TCON^;//定时器/计数器中标志位:
  64. sbit TR1 = TCON^;//定时器/计数器中1启动、停止:
  65. sbit TF0 = TCON^;//定时器/计数器中0标志位:
  66. sbit TR0 = TCON^;//定时器/计数器中断0启动、停止:
  67. sbit IE1 = TCON^;//外部中断1中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0
  68. sbit IT1 = TCON^;//外部中断1触发方式:0为电平、1为下降沿
  69. sbit IE0 = TCON^;//外部中断0中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0
  70. sbit IT0 = TCON^;//外部中断0触发方式:0为电平、1为下降沿
  71.  
  72. /* IE中断允许寄存器 */
  73. sbit EA = IE^;//中断总开关
  74. sbit ET2 = IE^; //8052 专用
  75. sbit ES = IE^;
  76. sbit ET1 = IE^;//定时器/计数器中断1开关
  77. sbit EX1 = IE^;//外部中断1开关
  78. sbit ET0 = IE^;//定时器/计数器中断0开关
  79. sbit EX0 = IE^;//外部中断0开关
  80.  
  81. /* IP中断优先级寄存器 */
  82. sbit PT2 = IP^;
  83. sbit PS = IP^;
  84. sbit PT1 = IP^;
  85. sbit PX1 = IP^;
  86. sbit PT0 = IP^;
  87. sbit PX0 = IP^;
  88.  
  89. /*------------------TMOD寄存器详解-----------------
  90. 8位从高到低依次为:GATE C/T M1 M0 GATE C/T M1 M0
  91. {----配置定时器1----} {----配置定时器0----}
  92. GATE:门控位,由外部引脚(T0、T1)作为定时器的启动总开关:GATE=0时,T0和T1无效;GATE=1时,需要T0或者T1开关打开(高电平)定时器才能启动
  93. C/T:计数方式选择,C/T=0时用作定时器,C/T=1时用作计数器
  94. M1、M0:工作方式选择位,00为工作方式0,13位定时器/计数器,TH存放高8位,TL存放低5位
  95. 01为工作方式1,16位定时器/计数器,TH存放高8位,TL存放低8位(常用)
  96. 10为工作方式2,初值自动装载的8位定时器/计数器(常用)
  97. 11为工作方式3,T0被分为两个8位独立计数器,T1停止工作
  98. *------------------TMOD寄存器详解-----------------/
  99.  
  100. /* P3口的第二功能 */
  101. sbit RD = P3^;//外部存储器读选通信号
  102. sbit WR = P3^;//外部存储器写选通信号
  103. sbit T1 = P3^;//外部控制定时器/计数器1的启动(TMOD寄存器第7位GATE = 1时才有效),1为启动,0位停止
  104. sbit T0 = P3^;//外部控制定时器/计数器0的启动(TMOD寄存器第3位GATE = 1时才有效),1为启动,0位停止
  105. sbit INT1 = P3^;//外部中断1输入
  106. sbit INT0 = P3^;//外部中断0输入
  107. sbit TXD = P3^;//串行输出
  108. sbit RXD = P3^;//串行输入
  109.  
  110. /* SCON串口控制寄存器 */
  111. sbit SM0 = SCON^;
  112. sbit SM1 = SCON^;
  113. sbit SM2 = SCON^;
  114. sbit REN = SCON^;
  115. sbit TB8 = SCON^;
  116. sbit RB8 = SCON^;
  117. sbit TI = SCON^;
  118. sbit RI = SCON^;
  119.  
  120. /* P1口第二功能 */
  121. sbit T2EX = P1^; // 8052 专用
  122. sbit T2 = P1^; // 8052 专用
  123.  
  124. /* T2CON */
  125. sbit TF2 = T2CON^;
  126. sbit EXF2 = T2CON^;
  127. sbit RCLK = T2CON^;
  128. sbit TCLK = T2CON^;
  129. sbit EXEN2 = T2CON^;
  130. sbit TR2 = T2CON^;
  131. sbit C_T2 = T2CON^;
  132. sbit CP_RL2 = T2CON^;
  133.  
  134. #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. 【vim】实时加密文本 ggVGg?

    如果你不想让别人看懂你的屏幕上的内容,你可以使用一个内置的选项,通过下面的命令使用 ROT13 来对文本进行编码: ggVGg? gg 把光标移动到 Vim 缓冲区的第一行, V 进入可视模式, G ...

  2. C++:__stdcall详解

    原文地址:http://www.cnblogs.com/songfeixiang/p/3733661.html 对_stdcall 的理解(上)在C语言中,假设我们有这样的一个函数:int funct ...

  3. centos7使用haproxy1.7.5实现反向代理负载均衡实战

    使用haproxy实现反向代理负载均衡实战环境准备:两台虚拟机 # yum install -y gcc glibc gcc-c++ make screen tree lrzsz node1源码编译安 ...

  4. centos 6.5环境利用iscsi搭建SAN网络存储服务及服务端target和客户端initiator配置详解

    一.简介 iSCSI(internet SCSI)技术由IBM公司研究开发,是一个供硬件设备使用的.可以在IP协议的上层运行的SCSI指令集,这种指令集合可以实现在IP网络上运行SCSI协议,使其能够 ...

  5. Python-GIL 进程池 线程池

    5.GIL vs 互斥锁(*****) 1.什么是GIL(Global Interpreter Lock) GIL是全局解释器锁,是加到解释器身上的,保护的就是解释器级别的数据 (比如垃圾回收的数据) ...

  6. PS设计漂亮网站主页图片的实例教程

    制作一个好的网页,需要花费大量的时间,包含的内容也是非常多的,其中有按钮.横幅.图标及其它素材等.制作的时候先规划好大致的框架,然后由上至下慢慢细化各部分的内容,注意好整体搭配.最终效果 一.在我们打 ...

  7. All about the “paper”

    博采众长吧,看到有用的就记下来,提醒自己,方便他人. 1.good idea. 写论文,good idea很重要 2.看论文. 网友经验:看论文学知识的效率远比看书要快的多,很多人在刚开始看论文的时候 ...

  8. hdu4638 莫队算法

    莫队算法基础题,题目看懂就能做出来 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

  9. Python 索引迭代

    1.使用enumerate函数 L = ['Adam', 'Lisa', 'Bart', 'Paul'] for index, name in enumerate(L):     print inde ...

  10. python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)

    一.元组转换 数字 tu = (1) tu1 = (1,) print(tu,type(tu)) print(tu1,type(tu1)) 执行输出: 1 <class 'int'>(1, ...