永发信息网

#include<reg52.h> //#include<intrins.h> /*有关51单片机的几条汇编语句的C语言调用接口,如-nop,在C语言

答案:7  悬赏:60  手机版
解决时间 2021-01-22 18:11
  • 提问者网友:星軌
  • 2021-01-21 21:38
#include<reg52.h> //#include<intrins.h> /*有关51单片机的几条汇编语句的C语言调用接口,如-nop,在C语言
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-01-21 22:58
是c51(用于单片机开发的一种c语言)的头文件。类似于头文件AT89X52.h。这两个头文件基本是一样的,只是在使用时对位的定义不一样,at89x52.h文件中对P1.1的操作是写成P1_1;reg52.h文件中的操作则写成P1^1。表示方法不一样而已。另外前者是特指ATMEL公司的52系列单片机,后者指所有52系列的单片机。



#ifndef __REG51_H__
#define __REG51_H__


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;



sbit CY = 0xD7;
sbit AC = 0xD6;
sbit F0 = 0xD5;
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;
sbit OV = 0xD2;
sbit P = 0xD0;


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


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


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


sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;


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
--------------------------------------------------------------


#ifndef __REG52_H__
#define __REG52_H__


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;


sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;



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 only


sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;


sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;


sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;


sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;


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;


sbit T2EX = P1^1; // 8052 only
sbit T2 = P1^0; // 8052 only


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

c51中的intrins.h库函数包含:_crol_ 字符循环左移、_cror_ 字符循环右移、_irol_ 整数循环左移、_iror_ 整数循环右移、_lrol_ 长整数循环左移、_lror_ 长整数循环右移、_nop_ 空操作8051 NOP 指令、_testbit_ 测试并清零位8051 JBC 指令。
全部回答
  • 1楼网友:怀裏藏嬌
  • 2021-01-22 02:49
reg52.h 就是你用单片机时就一定带上的 _nop_()是空操作 用于短暂延时
  • 2楼网友:忘川信使
  • 2021-01-22 01:33
题目叙述不清。
不知道楼主,究竟想要详细解释什么。
  • 3楼网友:撞了怀
  • 2021-01-22 00:47
这个非常简单,你打开intrins.h文件看看里面的C语言接口声明就知道了
  • 4楼网友:时间的尘埃
  • 2021-01-22 00:05
你想问什么?
_nop()_等待一个机器周期
一般是单片机编程里用到
  • 5楼网友:七十二街
  • 2021-01-21 23:48
_nop();
实际上就是汇编中的延时一个指令周期,在这一个指令周期中cpu不做任何事情。相当于汇编指令 NOP
  • 6楼网友:渡鹤影
  • 2021-01-21 23:40
include这个是80C52的头文件,里面有很多函数库 ,C52涵盖了C51,
include 这是C语言里面的头文件,
-nop是上升沿
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯