51单片机头文件reg51h详解.docx

上传人:b****3 文档编号:11612726 上传时间:2023-06-01 格式:DOCX 页数:15 大小:192.15KB
下载 相关 举报
51单片机头文件reg51h详解.docx_第1页
第1页 / 共15页
51单片机头文件reg51h详解.docx_第2页
第2页 / 共15页
51单片机头文件reg51h详解.docx_第3页
第3页 / 共15页
51单片机头文件reg51h详解.docx_第4页
第4页 / 共15页
51单片机头文件reg51h详解.docx_第5页
第5页 / 共15页
51单片机头文件reg51h详解.docx_第6页
第6页 / 共15页
51单片机头文件reg51h详解.docx_第7页
第7页 / 共15页
51单片机头文件reg51h详解.docx_第8页
第8页 / 共15页
51单片机头文件reg51h详解.docx_第9页
第9页 / 共15页
51单片机头文件reg51h详解.docx_第10页
第10页 / 共15页
51单片机头文件reg51h详解.docx_第11页
第11页 / 共15页
51单片机头文件reg51h详解.docx_第12页
第12页 / 共15页
51单片机头文件reg51h详解.docx_第13页
第13页 / 共15页
51单片机头文件reg51h详解.docx_第14页
第14页 / 共15页
51单片机头文件reg51h详解.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机头文件reg51h详解.docx

《51单片机头文件reg51h详解.docx》由会员分享,可在线阅读,更多相关《51单片机头文件reg51h详解.docx(15页珍藏版)》请在冰点文库上搜索。

51单片机头文件reg51h详解.docx

51单片机头文件reg51h详解

51单片机头文件reg51.h详解

D

些位赋的变量和数值才能正确保存,然后才能供CPU正确的调用,完成相应的功能。

    上段文字出现了寄存器(SFR)、位,地址、内存等,单片机学习过程中还会出现ROM、RAM等名词,可能大家觉得不是很好理解,这里可以通俗的解释一下,如下面三个图所示。

    我们把内存比作宾馆,ROM、RAM、SFR相当于宾馆里具体的有三种不同功能楼层(具体这个宾馆多少层即多少ROM、RAM、SFR,视各个宾馆或者每种单片机而不同),每层8个房间相当于8位,每个房间要么住男人要么住女人相当于每位要么放入数字1要么放入数字0,keil编译器就相当于宾馆的工作人员,旅客去住旅馆相当写程序的过程,住宾馆的人必须事先要给工作人员说你是哪一层哪一个房间(即声明寄存器地址和位地址,)宾馆工作人员才能把你带到你的房间里去(这里假设这个宾馆可以由旅客自己决定住哪个房间)。

即:

只有对寄存器及相关位进行声明地址后,我们才能对其进行赋相关的值,keil软件才能编译通过。

 

 

 

 

 

4)REG51.H头文件原文及解释

   打开reg51.h 可以看到这样的一些内容(此文件一般在C:

\KEIL\C51\INC下 ,INC文件夹根目录里有不少头文件,并且里面还有很多以公司分类的文件夹,里面也都是相关产品的头文件。

如果我们要使用自己写的头文件,使用的时候只需把对应头文件拷贝到INC文件夹里就可以了。

    下面附出头文件的原文,并把注释文件一并附后。

 

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

 

REG51.H

 

Headerfileforgeneric80C51and80C31microcontroller.

Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.

Allrightsreserved. 

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

 

#ifndef__REG51_H__

#define__REG51_H__

 

/*  BYTERegister  */

        

 sfrP0   =0x80;   //三态双向     IO口      P0口 此句话的意思是:

特殊功能寄存器 P0 地址为0x80,可位寻址,下同

                          //低8位地址总线/数据总线(一般不用而只作普通I/O口,注意作I/O口用时,硬件上需接上接电阻)

sfrP1   =0x90;   //准双向       IO口      P1口

 

sfrP2   =0xA0;   //准双向  IO口      P2口

                          //高8位地址总线,一般也作普通I/O用

sfrP3   =0xB0;   //双功能

                          //1.准双向      IO口      P3口

                        //2.  P30              RXD串行数据接受

                       //    P31              TXD串行数据发送

                          //     P32              外部中断0     信号申请

                         //     P33              外部中断1     信号申请

                            //     P34              定时/计数器T0     外部计数脉冲输入

                            //     P35              定时/计数器T1     外部计数脉冲输入

                            //     P36              WR  片外RAM写脉冲信号输入

                            //     P37          RD  片外ram读脉冲信号输入

sfrPSW  =0xD0; // 可以位寻址(C语言编程时可不考虑此寄存器)

                            //程序状态寄存器ProgramStatusWORD  (程序状态信息)

                            //psw.7(CY)    进位标志

                            //psw.6(AC)辅助进位标志位低四位向高四位进位或借位时   AC=1

                            //主要用于十进制调整

                            //psw.5(F0)用户可自定义的程序标志位

                           //psw.4(RS1)

                            //psw.3(RS0)

                            //工作寄存器选择位

                            //任一时刻只有一组寄存器在工作

                            //00  0区     00H~07H

                            //01   1区     08H~0fH

                            //10   2区     10H~17H

                            //11   3区     18H~1FH

                            //psw.2(OV)    溢出标志位

                            //psw.1(   )      保留为 ,不可使用

                            //psw.0(P)              奇偶校验位

 

sfrACC  =0xE0;     //累加器A     特殊功能寄存器    可位寻址

sfrB    =0xF0;        //寄存器B      主要用于乘除运算

sfrSP   =0x81;       //堆栈指针寄存器SP    存放站定栈顶地址、

sfrDPL  =0x82;      //

sfrDPH  =0x83;     //数据指针寄存器DPTR、//对片外RAM及扩展IO进行存取用的地址指针

 

sfrPCON=0x87; //电源控制寄存器  、不能位寻址             

                           //管理单片机的电源部分包括上电复位、掉电模式、空闲模式等

                           //单片机复位时PCON被全部清0,编程时一般是用到SMOD位,其它的一般不用

                          //D7 SMOD该位与串口通信波特率有关

                          //SMOD=0     串口方式123 波特率正常

                          //SMOD=1     串口方式123 波特率加倍

              

 

 

 

sfrTCON=0x88;  //定时器/计数器    控制寄存器   可以位寻址                                                           

         //D7  TF1        定时器1溢出标志位

                            //D6       TR1      定时器1运行控制位

                            //D5       TF0        定时器0溢出标志位

                            //D4     TR0        定时器0运行控制位

                            //D3       IE1         外部中断1请求标志

                            //D2       IT1         外部中断1 触发方式选择位

                            //D1       IE0       外部中断0请求标志

                            //D0     IT0         外部中断0 触发方式选择位

 

 

sfrTMOD=0x89; //定时器/计数器    工作方式寄存器    不能位寻址

                            //确定工作方式和功能                                                  

                            //D7 GATE     门控制位

                            //GATE=0;定时器/计数器由TRX(x=0,1)来控制

                            //GATE=1;定时器/计数器由TRX(x=0,1)

                            //和外部中断引脚(init0,1)来共同控制

                            //D6  C/T      定时器、计数器选择位

                            //     0    选择定时器模式

                            //     1     选择计数器模式

                            //D5       M1        

                            //D4       M0

                            //M1       M0         工作方式

                            //0   0            方式0     13位定时器/计数器

                            //0   1          方式1     16位定时器/计数器

                            //1   0          方式2     8位自动重装定时器/计数器

                            //1   1          方式3     仅适用T0      分成两个8位计数器,T1停止计数

                            //D3 GATE     门控制位

                            //GATE=0;定时器/计数器由TRX(x=0,1)来控制

                            //GATE=1;定时器/计数器由TRX(x=0,1)

                            //和外部中断引脚(init0,1)来共同控制

                            //D2  C/T             定时器、计数器选择位

                            //0  选择定时器模式

                            //1   选择计数器模式

                            //D1       M1        

                            //D0       M0

                            //     M1 M0         工作方式

                            //     0     0     方式0     13位定时器/计数器

                            //     0     1     方式1   16位定时器/计数器

                            //     1     0     方式2   8位自动重装定时器/计数器

                            //     1     1     方式3   仅适用T0      分成两个8位计数器,T1停止计数

 

sfrTL0  =0x8A;    //定时器/计数器0高8位     容器   加1 计数器

sfrTL1  =0x8B;    //定时器/计数器1高8位     容器

sfrTH0  =0x8C;    //定时器/计数器0低8位     容器

sfrTH1  =0x8D;    //定时器/计数器1低8位     容器

 

 

 

sfrIE   =0xA8;                 //中断允许寄存器          可以位寻址

                                          //D7  EA         全局中断允许位

                                          //D6       NULL

                                          //D5       ET2        定时器/计数器2中断允许位     interrupt5

 

                                          //D4  ES          串行口中断允许位        interrupt4

 

                                          //D3  ET1        定时器/计数器1中断允许位     interrupt3

 

                                          //D2  EX1        外部中断1中断允许位      interrupt2

 

                                           //D1  ET0        定时器/计数器0中断允许位  interrupt1

 

                                           //D0  EX0        外部中断0中断允许位     interrupt0

  

sfrIP   =0xB8;        //中断优先级寄存器   可进行位寻址

                             //D7 NULL

                                //D6 NULL

                                 //D5       NULL

                                                 //D4       PS          串行口中断定义优先级控制位

                                                 //            1            串行口中断定义为高优先级中断

                                                 //            0            串行口中断定义为低优先级中断

                                                 //         

                                                 //D3       PT1       

                                                 //            1     定时器/计数器1中断定义为高优先级中断

                                                 //            0     定时器/计数器1中断定义为低优先级中断

                                                 //D2 PX1

                                                 //            1            外部中断1定义为高优先级中断

                                                 //            0          外部中断1定义为低优先级中断

                                                 //D1       PT0       

                                                 //            1     定时器/计数器0中断定义为高优先级中断

                                                 //            0     定时器/计数器0中断定义为低优先级中断

                                                 //D0 PX0

                                                 //            1            外部中断0定义为高优先级中断

                                                 //            0          外部中断0定义为低优先级中断

 

 

 

sfrSCON=0x98;   //串行口控制寄存器     可以进行位寻址          

                              //D7   SM0             

                               //D6       SM1

                               //     SM0      SM1              串行口工作方式

                               //     0           0            同步移位寄存器方式

                             //     0         1            10位异步收发(8位数据),波特率可变(定时器1溢出率控制)

                               //   1         0            11位异步收发(9位数据),波特率固定

                               //     1         1            11异步收发(9位数据)  ,波特率可变(定时器1溢出率控制)

                               //D5       SM2            多机通信控制位    主要用于方式2和方式3

                               //D4       REN            允许串行接收位

 

                               //D3       TB8        方式2,3中发送数据的第9位

                               //D2       RB8      方式2,3中接受数据的第9位

 

                               //D1       TI           发送中断标志位

                              //D0       RI         接受中断标志位

 

 

sfrSBUF=0x99;    //串行数据缓冲区

 

/*****************************************************************************

                                                        下面是位寻址区

                                          上面做过解释的就不在下面一一解释了

******************************************************************************/

/*  BITRegister  */    

/*  PSW   */

sbitCY   =0xD7;

sbitAC   =0xD6;

sbitF0   =0xD5;

sbitRS1  =0xD4;

sbitRS0  =0xD3;

sbitOV   =0xD2;

sbitP    =0xD0;

 

/*  TCON  */

sbitTF1  =0x8F;

sbitTR1  =0x8E;

sbitTF0  =0x8D;

sbitTR0  =0x8C;

sbitIE1  =0x8B;

sbitIT1  =0x8A;

sbitIE0  =0x89;

sbitIT0  =0x88;

 

/*  IE   */

sbitEA   =0xAF;

sbitES   =0xAC;

sbitET1  =0xAB;

sbitEX1  =0xAA;

sbitET0  =0xA9;

sbitEX0  =0xA8;

 

/*  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2