51单片机教程第4讲_寄存器

发布者:JoyfulJourney最新更新时间:2016-12-10 来源: eefocus关键字:51单片机  寄存器 手机看文章 扫描二维码
随时随地手机看文章

任何单片机,内部都有寄存器,用来存储数据和控制器件。51单片机的寄存器是8位的,用二进制表示就是00000000到11111111之间的数据。我们在学习51单片机,本质上就是在学习它的寄存器。单片机的寄存器被放到内部特定的地址空间,并被命名,这个命名文件就叫做单片机的头文件,例如reg51.h文件内容如下所示:
#ifndef __REG51_H__
#define __REG51_H__

/* BYTE Register */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
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;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;

/* BIT Register */
/* PSW */
sbit CY = 0xD7;
sbit AC = 0xD6;
sbit F0 = 0xD5;
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;
sbit OV = 0xD2;
sbit P = 0xD0;

/* TCON */
sbit TF1 = 0x8F;
sbit TR1 = 0x8E;
sbit TF0 = 0x8D;
sbit TR0 = 0x8C;
sbit IE1 = 0x8B;
sbit IT1 = 0x8A;
sbit IE0 = 0x89;
sbit IT0 = 0x88;

/* IE */
sbit EA = 0xAF;
sbit ES = 0xAC;
sbit ET1 = 0xAB;
sbit EX1 = 0xAA;
sbit ET0 = 0xA9;
sbit EX0 = 0xA8;

/* IP */
sbit PS = 0xBC;
sbit PT1 = 0xBB;
sbit PX1 = 0xBA;
sbit PT0 = 0xB9;
sbit PX0 = 0xB8;

/* P3 */
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
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;

#endif

由上可知,普通的51单片机内部一共有63个寄存器。以上寄存器在写程序的时候,直接用名字即可。例如:P1=0XFF; //把P1口的8个引脚全部置高。具体的寄存器的作用,我们在以后写程序的时候继续学习。

在STC51单片机当中,除了这些基本的寄存器,还增加了一些功能寄存器,比如PWM、ADC相关的,基本的51一共有2个定时器,STC51有些单片机内部还增加了几个定时器,每个定时器都有对应的控制寄存器和数据寄存器。

如果想获取寄存器的值,只需要先定义一个变量,然后再把寄存器的值赋予给变量即可。例如:
unsigned char xxx;
xxx = P1;//获取P1引脚的电平


关键字:51单片机  寄存器 引用地址:51单片机教程第4讲_寄存器

上一篇:51单片机教程第5讲_C51程序
下一篇:51单片机教程第3讲-控制引脚

推荐阅读最新更新时间:2024-03-16 15:24

用单片机设计A/D、D/A转换器
1、PIC16C62×系列单片机的特点   PIC16C62×系列为RISC精简指令、哈佛结构总线、18个引脚的单片机。具有低功耗、高性能、全静态、35条指令极易编程的特点。OTP 片种的性价比极高。除了具备一般单片机的特点外,PIC16C62×系列内部集成了两个模拟比较器和一个4bit的可编程基准电压源(REF)。如果利用该单片机的这些特点,只需几个外围元件就具备A/D与D/A转换功能,且分辨率达到8bit~10bit。价格上的优势使其在工控行业、仪器仪表、家电产品的应用前景极为乐观。   本文以8bit分辨率论证A/D、D/A转换的实现方法,更高分辨率的方案完全相似,只是在编程上作小部分调整。 2、D/A转换器   P
[单片机]
51单片机复习:8*8led点阵
有两种,一种列为低电压通,行为高电压为通,我们可以依次将每一列接低电压,也就依次点亮 然后利用行的电压来控制点亮,如果有一行电压为低,那一行的Led灯都不会亮 第二种反之,列为高低压则通,行为低电压则通,两者同时符合,则对应的灯点亮 74H595芯片 在我使用的普中51单片机中,其控制行电压,而P0口则控制列电压 其有三个引脚,SER(串行数据输入),SCLK(移位储存器时钟输入),CLK(数据储存器时钟输入) 我是这样理解他们的,SER负责传送数据,每一次只能接受一位,而SCLK上升沿让移位有效,而CLK上升沿让整个数据的传输有效
[单片机]
51单片机学习笔记7 -- 超声波测距
1.超声波 蝙蝠和某些海洋动物都能够利用高频率的声音进行回声定位或信息交流。它们能通过口腔或鼻腔把从喉部产生的超声波发射出去,利用折回的声波来定向,并判定附近物体的位置、大小以及是否在移动。超声波是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz-20000Hz。因此,我们把频率高于20000赫兹的声波称为“超声波”。通常用于医学诊断的超声波频率为1
[单片机]
<font color='red'>51单片机</font>学习笔记7 -- 超声波测距
如何控制51单片机的引脚
控制单片机的引脚,分为两个知识点,一个是怎么让引脚单片机输出高低电平,一个是怎么检测接入到引脚上的电平是高还是低。我们有时候会听到这样的话:“此单片机有几个IO口?”这里说的IO口,就是输入(input)输出(output)接口。一般情况下,单片机的引脚当中,除了电源引脚和晶振引脚,其它的都是IO口。当我们控制单片机的引脚高低时,我们把引脚当做输出引脚;当我们需要检测连接到单片机引脚上的电平时,我们把引脚当做输入引脚使用。 使引脚P1.5输出高电平,可以这样写: P1=0x20; 或者: sbit XXX=P1^5; XXX=1; 第一种写法,在20前面加0x,表示这是一个十六进制数,把这个十六进制数0x20写成二进制数就是001
[单片机]
51单片机演示<世上只有妈妈好>音乐
//《世上只有妈妈好》51单片机C语言程序和音乐采灯程序 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592MHZ //此程序的流水灯随音乐的节拍的快慢而动 #include reg51.h sbit speaker=P2^0; //接音频放大电路, //sbit speaker=P3^2; sbit sw=P3^0; //电后位后,sw合上后就开始放音乐,灯开始闪动,sw断开,音乐停止,灯也同时停止闪动 unsigned char timer0h,timer0l,time,led=1,j=0; unsigned char flagd=0; //世上只有妈妈好数据表 code
[单片机]
<font color='red'>51单片机</font>演示<世上只有妈妈好>音乐
基于STM32配置1602程序
标 注:用到了 PD_0—7,给PO口(单片机板液晶数据口),PA0_2; 已在函数中将他们以寄存器形式配置,注踏出再次配置PD时 不应在配置这些口; 在主函数中需将PD,PA使能。 头函数:#include"1602.h" 函 数:在1602.h中有列举; 返回值:无; 用PD0_7给液晶数据,PA0_2位控制为依次rs,rw,en; #ifndef __1602_H #define __1602_H #include "stm32f10x.h" void write1602_com(u8 com); void write1602_dat(u8 dat); void lcd1602_init(void)
[单片机]
51单片机学习四 串口通信
单片机芯片型号 STC89C516 需求 需要的知识 关于串口通信与系统中断,请看 串口通信 系统中断 或者这个专辑 链接 这位大佬更专业 硬件设计 关于1,详见本篇的三 关于2,只需和电脑链接就可以 软件设计 pc 单片机 数码管显示 #include reg52.h #include intrins.h typedef unsigned int u16; typedef unsigned char u8; u8 code smgduan ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79
[单片机]
<font color='red'>51单片机</font>学习四 串口通信
模拟音频芯片在数据采集过程二次通讯中的应用
1音频模拟芯片TLC320AD50C TI公司的TLC320AD50C采用过采样ΣΔ技术,在DAC前有一个插值滤波器,在ADC后有一个抽样滤波器,这种结构使系统接收、发送可同时进行。而且TLC320AD50C可实现高分辨率,低速信号,高采样率(最高可达22.5kb/s)的AD/DA转换。它由一对16位的同步串行转换通道组成,可直接和DSP连接进行通信。    TLC320AD50C的特点如下:   (1)器件中的ADC为64倍过采样,DAC为256倍过采样(内部); (2)带有内建抗混叠滤波器和sinx/x补偿; (3)可配置成主机或从机方式,一个串行接口可支持3个从设备和DSP进行通讯。   TLC320AD50
[手机便携]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved