自定义reg52.h头文件(单片机学习重难点核心知识点)

发布者:Qingliu2022最新更新时间:2024-08-14 来源: cnblogs关键字:自定义  头文件  单片机 手机看文章 扫描二维码
随时随地手机看文章

/*--------------------------------------------------------------------------

自定义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^7;

sbit AC    = PSW^6;

sbit F0    = PSW^5;

sbit RS1   = PSW^4;

sbit RS0   = PSW^3;

sbit OV    = PSW^2;

sbit P     = PSW^0; //8052 专用


/*------------中断内容详解----------------------------

*相关的寄存器

*            1.IE中断允许寄存器

*            2.TCON定时控制寄存器

*            3.IP中断优先级寄存器(不常用)

*            4.TMOD定时器工作方式寄存器(定时器/计数器中断才用到)

*使用中断的步骤:

*            1.中断初始化函数(只需要调用一次,不要放到循环里重复调用)

*            2.编写中断处理函数

*            3.主函数中调用中断初始化函数

*------------中断内容详解----------------------------/


/*  TCON定时控制寄存器  */

sbit TF1   = TCON^7;//定时器/计数器中标志位:

sbit TR1   = TCON^6;//定时器/计数器中1启动、停止:

sbit TF0   = TCON^5;//定时器/计数器中0标志位:

sbit TR0   = TCON^4;//定时器/计数器中断0启动、停止:

sbit IE1   = TCON^3;//外部中断1中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0

sbit IT1   = TCON^2;//外部中断1触发方式:0为电平、1为下降沿

sbit IE0   = TCON^1;//外部中断0中断标志位:中断产生时硬件置1,中断函数处理完后硬件置0

sbit IT0   = TCON^0;//外部中断0触发方式:0为电平、1为下降沿


/*  IE中断允许寄存器  */

sbit EA    = IE^7;//中断总开关

sbit ET2   = IE^5; //8052 专用

sbit ES    = IE^4;

sbit ET1   = IE^3;//定时器/计数器中断1开关

sbit EX1   = IE^2;//外部中断1开关

sbit ET0   = IE^1;//定时器/计数器中断0开关

sbit EX0   = IE^0;//外部中断0开关


/*  IP中断优先级寄存器  */

sbit PT2   = IP^5;

sbit PS    = IP^4;

sbit PT1   = IP^3;

sbit PX1   = IP^2;

sbit PT0   = IP^1;

sbit PX0   = IP^0;


/*------------------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^7;//外部存储器读选通信号

sbit WR    = P3^6;//外部存储器写选通信号

sbit T1    = P3^5;//外部控制定时器/计数器1的启动(TMOD寄存器第7位GATE = 1时才有效),1为启动,0位停止

sbit T0    = P3^4;//外部控制定时器/计数器0的启动(TMOD寄存器第3位GATE = 1时才有效),1为启动,0位停止

sbit INT1  = P3^3;//外部中断1输入

sbit INT0  = P3^2;//外部中断0输入

sbit TXD   = P3^1;//串行输出

sbit RXD   = P3^0;//串行输入


/*  SCON串口控制寄存器  */

sbit SM0   = SCON^7;

sbit SM1   = SCON^6;

sbit SM2   = SCON^5;

sbit REN   = SCON^4;

sbit TB8   = SCON^3;

sbit RB8   = SCON^2;

sbit TI    = SCON^1;

sbit RI    = SCON^0;


/*  P1口第二功能  */

sbit T2EX  = P1^1; // 8052 专用

sbit T2    = P1^0; // 8052 专用

             

/*  T2CON  */

sbit TF2    = T2CON^7;

sbit EXF2   = T2CON^6;

sbit RCLK   = T2CON^5;

sbit TCLK   = T2CON^4;

sbit EXEN2  = T2CON^3;

sbit TR2    = T2CON^2;

sbit C_T2   = T2CON^1;

sbit CP_RL2 = T2CON^0;




#endif


关键字:自定义  头文件  单片机 引用地址:自定义reg52.h头文件(单片机学习重难点核心知识点)

上一篇:自制编写51单片机封装库
下一篇:数模转换ADC08009应用

推荐阅读最新更新时间:2026-03-25 11:52

Delay.h头文件下载-AVR系列单片机的通用软件延时头文件
/***************************************************************************** 文件名称:Delay.h 文件标识:_DELAY_H_ 摘 要:AVR系列单片机的通用软件延时头文件 当前版本:V1.0 *****************************************************************************/ #ifndef _DELAY_H_ #define _DELAY_H_ #include BaiYuAvrKuDataType.h #include BaiYuAvrK
[单片机]
Lcd.h头文件下载-字符型液晶LCD的AVR单片机驱动程序头文件
/***************************************************************************** 单 位:广西民族大学物理与电子工程学院07物本班 文件名称:Lcd.h 文件标识:_LCD_H_ 摘 要:字符型液晶LCD的AVR单片机驱动程序头文件 当前版本:V2.0 *****************************************************************************/ #ifndef _LCD_H_ #define _LCD_H_ #include BaiYuAvrKuD
[单片机]
51单片机keilC中头文件absacc.h作用
当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h。 在程序中,用 #include absacc.h 即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 例如: rval=CBYTE ;指向程序存贮器的0002h地址 rval=XWORD ;指向外RAM的0004h地址 KEIL 中ABSACC.H 定义如下: #ifndef __ABSACC_H__ #define __ABSACC_H__ #define CBYTE ((unsigned char volatile code *) 0) #de
[单片机]
430添加自定义头文件的方法
先说说添加自定义头文件的方法和注意事项 方法的话,随便一本MSP430单片机C程序设计书中都有详细详解,我就不多说了。 最要注意的是添加头文件了,也许你们也知道 #include 和 #include 都可以添加头文件,挡在添加自己个人头文件时, 它们又有神马区别呢,你们就不知道了吧。呵呵,现在说明一下:放在自己工程目录下的头文件要用#include xxxxx.h ,系统目录下的头文件才用#include ioavr.h ,当然你自定义的头文件可以在系统头文件库里面的,我是喜欢直接放在系统目录中,再做下备份。 怎么判断头文件的数值(如0x0001)是表示十六进制数还是表示地址? 1、#define B
[单片机]
.h头文件那些注意事项
好的编程习惯,会直接影响代码的质量,在嵌入式C/C++中,头文件的引用方式和方法有多种,同时一些细节也会影响你代码质量和编译效率。 下面就来说说与头文件有关的知识; 引号“”和尖括号 #include使用引号“” 还是 尖括号 这个是有规定的。 通常来说:系统自带的头文件用尖括号括起来,这样编译器会在系统文件目录下查找。 #include xxx.h 用户自定义的文件用双引号括起来,编译器首先会在用户目录下查找。 #include xxx.h 这里可以参看我之前分享的一篇文章:#include使用引号“”和尖括号 的区别? 引用头文件路径问题 一个项目通常
[单片机]
TimerCommand.h头文件下载-AVR定时器命令通用头文件
/***************************************************************************** 文件名称:TimerCommand.h 文件标识:_TIMERCOMMAND_H_ 摘 要:AVR定时器命令通用头文件 当前版本:V1.0 *****************************************************************************/ #ifndef _TIMERCOMMAND_H_ #define _TIMERCOMMAND_H_ #define Timer0Config(MODE,
[单片机]
c51头文件INTRINS.H使用
INTRINS.H 函数使用起来,就会让你像在用汇编时一样简便. 内部函数 描述 _crol_ 字符循环左移 _cror_ 字符循环右移 _irol_ 整数循环左移 _iror_ 整数循环右移 _lrol_ 长整数循环左移 _lror_ 长整数循环右移 _nop_ 空操作8051 NOP 指令 _testbit_ 测试并清零位8051 JBC 指令 函数名: _crol_,_irol_,_lrol_ 原 型: unsigned char _crol_(unsigned char val,unsigned char n); unsigned int _irol_(unsigned int val,unsigned
[单片机]
IAR For AVR 关于 comp_a90.h 头文件的使用
使用comp_a90.h头文件时最好包括intrinsics.h头文件,intrinsics.h内在函数提供最简单的操作处理器底层特征。休眠,看门狗,FLASH函数。 /************************************************************** ** - INAVR.H - ** ** Backwards compatibility macros for iccAVR ** ** Used with iccAVR. ** ** Copyright IAR Systems 1999. All rights reserved. ** ** File versi
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved