⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reg51x.h

📁 pll锁向环控制程序
💻 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.
--------------------------------------------------------------------------*/
/*hxc last change time 2006.x.x x:x*/
/*hxc last check time 2006.4.14 16:46*/
#ifndef __REG51X_H__
#define __REG51X_H__
#define debug 1
#define w78e65 0
/*  BYTE Registers  */
sfr B     = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
sfr TL0   = 0x8A;
sfr TL1   = 0x8B;
sfr TH0   = 0x8C;
sfr TH1   = 0x8D;
sfr SBUF  = 0x99;

/*  8052 Extensions  */

sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2    = 0xCC;
sfr TH2    = 0xCD;
sfr PSW   = 0xD0;/*  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 only
sfr ACC   = 0xE0;
	sbit a0=ACC^0;   //定义ACC的位,利用ACC操作速度最快
	sbit a1=ACC^1;
	sbit a2=ACC^2;
	sbit a3=ACC^3;
	sbit a4=ACC^4;
	sbit a5=ACC^5;
	sbit a6=ACC^6;
	sbit a7=ACC^7;

sfr T2CON  = 0xC8; /*  T2CON  */
	sbit TF2    = T2CON^7;  //TIME2 overflow flag
	sbit EXF2   = T2CON^6; //TIME2 external overflow flag,EXEN2=1 T2EX PIN 负跳变引起captur/auto reload ,EXF2=1;
	sbit RCLK   = T2CON^5; //tirme2 '1'/time1 '0' receive clock in serial port 
	sbit TCLK   = T2CON^4;//tirme2 '1'/time1 '0' Transmit clock in serial port 
	sbit EXEN2  = T2CON^3; //Timer 2 external enable.'0' ignore events atT2EX.'1'tirme2 work at capture/auto reload mode
	sbit TR2    = T2CON^2;   //TIME2 RUN CONNTROL
	sbit C_T2   = T2CON^1;  //timer '0' or count '1' mode 
	sbit CP_RL2 = T2CON^0; //'1':AND EXEN2=1 T2EX PIN 负跳变将计时值TH2->RCAP2H;TL2->RCAP2L,capture
						    //'0':AND EXEN2=1 T2EX PIN 负跳变or time2 overflow ,RCAP2H->TH2;RCAP2L->TL2  AUTO reload 
	#define TIME2TIMER 0X00 //TIME2 work at 16 bit auto reload mode,overflow ,RCAP2H->TH2;RCAP2L->TL2 ,only set TR2=1 RUN TIME2
	#define TIME2COUNT 0X02 //TIME2 work at 16 bit count mode 
	
sfr TCON  = 0x88;/*  TCON  */
	sbit TF1   = TCON^7;	//TIME0 overflow flag 
	sbit TR1   = TCON^6;	//TIME1 RUN CONNTROL
	sbit TF0   = TCON^5;	//TIME0 overflow flag 
	sbit TR0   = TCON^4;	//TIME1 RUN CONNTROL     
	sbit IE1   = TCON^3;	//EXT1 interput flag 
	sbit IT1   = TCON^2;	//interput1 下降缘1或low电平0 
	sbit IE0   = TCON^1;	//EXT0 interput flag 
	sbit IT0   = TCON^0;	//interput0 下降缘1或low电平0

sfr TMOD  = 0x89;
	#define	TIME0MODE0     0x00   //TMOD  time 
	#define	TIME0MODE1     0x01
	#define	TIME0MODE2     0x02
	#define	TIME0MODE3     0x03
	#define	TIME0COUNT     0x04   //计数方式
	#define	TIME0GATE      0x08	  //起动time0要int0 pin为1
	#define	TIME1MODE0     0x00
	#define	TIME1MODE1     0x10
	#define	TIME1MODE2     0x20
	#define	TIME1MODE3     0x30
	#define	TIME1COUNT     0x40
	#define	TIME1GATE      0x80   //起动time1要int1 pin为1

sfr SCON  = 0x98;	   //SCON  uart control
	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;
	#define UARTSM2		   0X20   //mode0 sm2=0;mode1 sm2=1 receiver 有效停止位时,才置RI;
								  //mode2.3 SM2=1 only receiver addr,sm2=0 receiver data		
	#define UARTMODE0      0X00   //UART work at mode0 同步移位  固定fosc/12 
	#define UARTMODE1      0X40   //UART work at mode1 10异步 (2^SMOD)/32 * [(fosc/12)*(256-TH1)]
	#define UARTMODE2      0X80	  //UART work at mode2 11异步 fosc/64 or fosc/32(PCON.SMOD=1) 
	#define UARTMODE3      0XC0   //UART work at mode3 11异步 (2^SMOD)/32 * [(fosc/12)*(256-TH1)]
	#define UARTREN 	   0X10   //REN=1 allow receiver REN=0 no allow receiver 
	#define UARTTB8		   0X08   //transmission addr(TB8=1) or data(TB8=0) bit  at mode2.3 or自定义位
	#define UARTRB8        0X04   //receiver addr(RB8=1) or data(RB8=0) OR 自定义位 SM2=0 reseiver sotp bit
	#define UARTTI         0X02   //transmission interrupt  标志
	#define UARTRI         0X01   //reseiver interrupt 标志

sfr PCON  = 0x87;
	#define	SMOD	       0x80   //PCON POWER CONTROL
	#define	PD	      	   0x02
	#define	IDL	           0x01

sfr IE    = 0xA8; /*  IE  */
	sbit EA    = IE^7;
	sbit ET2   = IE^5; //time2 int enble 8052 only 
	sbit ES    = IE^4;
	sbit ET1   = IE^3;
	sbit EX1   = IE^2;
	sbit ET0   = IE^1;
	sbit EX0   = IE^0;
	#define	INTERRUPT0     0x01   //IE interrpt  IP 优先级
	#define	TIME0	       0x02
	#define	INTERRUPT1     0x04
	#define	TIME1          0x08
	#define	SERIAL	       0x10	
	#define TIME2          0X20
	#define ENALL	    0X80	
sfr IP    = 0xB8;/*  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;

sfr P3    = 0xB0; /*  P3  */
	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 P37   = P3^7;
	sbit P36   = P3^6;
	sbit P35   = P3^5;
	sbit P34   = P3^4;
	sbit P33   = P3^3;
	sbit P32   = P3^2;
	sbit P31   = P3^1;
	sbit P30   = P3^0;

sfr P2    = 0xA0; //P2
	sbit P27   = P2^7;
	sbit P26   = P2^6;
	sbit P25   = P2^5;
	sbit P24   = P2^4;
	sbit P23   = P2^3;
	sbit P22   = P2^2;
	sbit P21   = P2^1;
	sbit P20   = P2^0;
	
sfr P1    = 0x90; //P1
	sbit P17   = P1^7;
	sbit P16   = P1^6;
	sbit P15   = P1^5;
	sbit P14   = P1^4;
	sbit P13   = P1^3;
	sbit P12   = P1^2;
	sbit P11   = P1^1;
	sbit P10   = P1^0;
	/*  P1  */
	sbit T2EX  = P1^1; // 8052 only
	sbit T2    = P1^0; // 8052 only
sfr P0    = 0x80; //P0
	sbit P07   = P0^7;
	sbit P06   = P0^6;
	sbit P05   = P0^5;
	sbit P04   = P0^4;
	sbit P03   = P0^3;
	sbit P02   = P0^2;
	sbit P01   = P0^1;
	sbit P00   = P0^0;
	#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -