我是靠谱客的博主 羞涩小海豚,最近开发中收集的这篇文章主要介绍单片机头文件reg52.h中文注释详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*--------------------------------------------------------------------------
REG52.H

Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/


#ifndef __REG52_H__
#define __REG52_H__


/*  特殊字节(8位)寄存器 */
sfr	P0	=	0x80;	// P0口特殊寄存器寻址位
sfr	P1	=	0x90;	// P1口特殊寄存器寻址位
sfr	P2	=	0xA0;	// P2口特殊寄存器寻址位
sfr	P3	=	0xB0;	// P3口特殊寄存器寻址位
sfr	PSW	=	0xD0;	//程序状态字寄存器
sfr	ACC	=	0xE0;	//累加器
sfr	B	=	0xF0;	//B 特殊寄存器
sfr	SP	=	0x81;	//堆栈指针寄存器
sfr	DPL	=	0x82;	//数字指针(低位)
sfr	DPH	=	0x83;	//数字指针(高位)
sfr	PCON	=	0x87;	//电源控制寄存器
sfr	TCON	=	0x88;	//定时器/计数器 0 和 1 控制
sfr	TMOD	=	0x89;	//定时器/计数器 0 和 1 模式
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;	//定时器/计数器2 控制
sfr	RCAP2L	=	0xCA;	//定时器/计数器2 重载/捕捉低位
sfr	RCAP2H	=	0xCB;	//定时器/计数器2 重载/捕捉高位
sfr	TL2	=	0xCC;	//定时器/计数器2 低位
sfr	TH2	=	0xCD;	//定时器/计数器2 高位



/*  位寄存器  */


/*  PSW (程序状态字寄存器) */
sbit	CY	=	PSW^7;	//进位、借位标志。进位、借位CY=1;否则CY=0
sbit	AC	=	PSW^6;	//辅助进位、借位标志。当D3向D4有借位或进位时,AC=1;否则AC=0
sbit	F0	=	PSW^5;	//用户标志位
sbit	RS1	=	PSW^4;	//寄存器组选择控制位1
sbit	RS0	=	PSW^3;	//寄存器组选择控制位0
sbit	OV	=	PSW^2;	//溢出标志。有溢出OV=1,否则OV=0
sbit	F1	=	PSW^1;	//保留位,无定义
sbit	P	=	PSW^0;	//8052 only 奇偶校验标志位,由硬件置位或清0;
				//存在ACC中的运算结果有奇数个1时P=1,否则P=0


/*  TCON (定时器/计数器 0 和 1 控制) */
sbit	TF1	=	TCON^7;	//定时器1溢出标志位。当字时器1计满溢出时, 
				//由硬件使TF1置“1”,并且申请中断。
				//进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清 “0”
sbit	TR1	=	TCON^6;	//定时器1运行控制位。由软件清“0”关闭定时器1。
				//当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;
				//当GATE=0,TR1置“1” 启动定时器1
sbit	TF0	=	TCON^5;	//定时器0溢出标志。其功能及操作情况同TF1。
sbit	TR0	=	TCON^4;	//定时器0运行控制位。其功能及操作情况同TR1。
sbit	IE1	=	TCON^3;	//外部中断1请求标志。
sbit	IT1	=	TCON^2;	//外部中断1触发方式选择位。
sbit	IE0	=	TCON^1;	//外部中断0请求标志。
sbit	IT0	=	TCON^0;	//外部中断0触发方式选择位。


/* IE (中断允许寄存器) */
sbit	EA	=	IE^7;	//允许/禁止总中断
sbit	ET2	=	IE^5;	//8052 only 允许/禁止定时器2(T2)中断
sbit	ES	=	IE^4;	//允许/禁止串口中断
sbit	ET1	=	IE^3;	//允许/禁止T1溢出中断
sbit	EX1	=	IE^2;	//允许/禁止外部中断1(INT1)
sbit	ET0	=	IE^1;	//允许/禁止T0溢出中断
sbit	EX0	=	IE^0;	//允许/禁止外部中断0(INT0)


/* IP (中断优先寄存器低) */
sbit	PT2	=	IP^5;	//定时/计数器T2优先级设定位。
sbit	PS	=	IP^4;	//串行口优先级设定位;
sbit	PT1	=	IP^3;	//定时/计数器T1优先级设定位;
sbit	PX1	=	IP^2;	//外部中断0优先级设定位;
sbit	PT0	=	IP^1;	//定时/计数器T0优先级设定位;
sbit	PX0	=	IP^0;	//外部中断0优先级设定位;

/* P3 (第二功能) */
sbit	RD	=	P3^7;	//外部数据存储器读脉冲
sbit	WR	=	P3^6;	//外部数据存储器写脉冲
sbit	T1	=	P3^5;	//定时器/计数器1外部输入
sbit	T0	=	P3^4;	//定时器/计数器0外部输入
sbit	INT1	=	P3^3;	//外部中断0。
sbit	INT0	=	P3^2;	//外部中断1。
sbit	TXD	=	P3^1;	//串行数据输出口
sbit	RXD	=	P3^0;	//串行数据输入口


/* SCON(控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制) */	
sbit	SM0	=	SCON^7;	//串行口工作方式控制位0。
sbit	SM1	=	SCON^6;	//串行口工作方式控制位1。
sbit	SM2	=	SCON^5;	//多机通信控制位。 
sbit	REN	=	SCON^4;	//允许接收位。用于控制数据接收的允许和禁止,
				// ren=1时,允许接收,ren=0时,禁止接收。
sbit	TB8	=	SCON^3;	//发送接收数据位8。
sbit	RB8	=	SCON^2;	//接收数据位8。
sbit	TI	=	SCON^1;	//发送中断标志位。
sbit	RI	=	SCON^0;	//接收中断标志位。 


/*  P1(第二功能) */
sbit	T2EX	=	P1^1;	// 8052 only	定时/计数器2捕捉/重装入触发
sbit	T2	=	P1^0;	// 8052 only	定时/计数器2外部输入


/*  T2CON  (定时器/计数器2 控制) */
sbit	TF2	=	T2CON^7;	//定时器2 溢出标记
sbit	EXF2	=	T2CON^6;	//定时器2 外部标记
sbit	RCLK	=	T2CON^5;	//0=串口时钟应用定时器1 溢出,  1=定时器 2
sbit	TCLK	=	T2CON^4;	//0=串口时钟应用定时器1 溢出,  1=定时器 2
sbit	EXEN2	=	T2CON^3;	//定时器 2 外部允许
sbit	TR2	=	T2CON^2;	//0=停止定时器, 1=开始定时器
sbit	C_T2	=	T2CON^1;	//0=定时器, 1=计数器
sbit	CP_RL2	=	T2CON^0;	//0=重载, 1=捕捉选择。


#endif

最后

以上就是羞涩小海豚为你收集整理的单片机头文件reg52.h中文注释详解的全部内容,希望文章能够帮你解决单片机头文件reg52.h中文注释详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部