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

📄 defs_c51_heima.h

📁 用51单片机的PWM实现DA
💻 H
字号:
//heima's 51 defs
#define TRUE 	1
#define FALSE	0

#define HIGH	1
#define LOW		0

#define ENABLE  1
#define DISABLE 0



#define uchar   unsigned char
#define uint    unsigned int
#define ulong   unsigned long
#define byte	unsigned char

sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
sbit P0_4 = P0^4;
sbit P0_5 = P0^5;
sbit P0_6 = P0^6;
sbit P0_7 = P0^7;

sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;
sbit P1_5 = P1^5;
sbit P1_6 = P1^6;
sbit P1_7 = P1^7;

sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit P2_4 = P2^4;
sbit P2_5 = P2^5;
sbit P2_6 = P2^6;
sbit P2_7 = P2^7;

sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
sbit P3_2 = P3^2;
sbit P3_3 = P3^3;
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7; 


sfr   IPH =0xB7	;
sbit  EPCA_LVD= IE^6 ;
sfr   CH = 0xF9		  ;//HIGHT 8 OF PCA COUNTER 
sfr   CL = 0xE9;		 	 

sfr   CCON = 0xD8 ;
sbit  CCF0 = CCON^0;
sbit  CCF1 = CCON^1;
sbit  CCF2 = CCON^2;
sbit  CCF3 = CCON^3;
sbit  CCF4 = CCON^4;
sbit  CCF5 = CCON^5;
sbit  CR =	 CCON^6;
sbit  CF =	 CCON^7;

sfr  CMOD= 	0xD9 ;
//CMOD.7    CIDL    0 COUNT WHEN THE CPU IS IDLE
//CMOD.2    CPS1
//CMOD.1	CPS0
//00-->  FOSC/12
//01-->  FOSC/2
//10-->  TIMER0 
//11-->	 ECI/P3.4
//CMOD.0	ECF

sfr  CCAP0H 	= 0xFA ;
sfr  CCAP1H 	= 0xFB ;
			
sfr  CCAP0L 	= 0xEA ;
sfr  CCAP1L 	= 0xEB ;

sfr  PCA_PWM0 	= 0xF2 ;
sfr  PCA_PWM1 	= 0xF3 ;

sfr  CCAPM0   	= 0xDA ;
sfr  CCAPM1   	= 0xDB ;


sfr	 ADC_CONTR	= 0xc5; 
sfr	 ADC_DATA	= 0xC6; 

sfr16  DPTR     =0x82;
sfr  P1M0		= 0x91;
sfr	 P1M1		= 0x92;

sfr	 AUXR		=0x8E;

sfr	 WDT_CONTR  =0xE1 ;


/*===================================编程察看==============================================================

;======================  系统存储器概况  ====================
;片内RAM
;00H---1FH: 4组通用寄存器区
;20H---2FH: 位寻址区   位地址:00H---7FH
;30H---7FH: 用户RAM区  堆栈指针一般设在30H--50H
;80H---FFH: SFR
;           80H---P0
;           81H---SP
;           82H---DPL
;           83H---DPH
;           87H---PCON
;           88H---TCON
;           89H---TMOD
;           8AH---TL0
;           8BH---TL1
;           8CH---TH0
;           8DH---TH1
;           90H---P1
;           98H---SCON
;           99H---SBUF
;           A0H---P2
;           A8H---IE
;           B0H---P3
;           B8H---IP
;           D0H---PSW
;           E0H---ACC
;           E1H---WDT_CONTER
;           F0H---B

;
;======================常用寄存器功能介绍====================


;---------------系统---------------------------
;PSW       |CY|AC|F0|RS1|RS0|OV|-|P
;          CY:进位标志
;          AC:辅助进位标志 ,低四位向高四位
;          RS0  RS1:寄存器组选择
;          OV:溢出标志  符号加减:-128~127  ;除数为0;乘积超过255
;          P:奇偶标志



;---------------定时器-------------------------

;87H
;PCON      
;          PCON.7 :SMOD  1-波特率加倍


;88H
;TCON       |TF1|TR1|TF0|TR0|IE1|IT1|IE0|IT0
;           TF1: T1溢出标志
;           TR1: 启动T1
;           TF0: T0溢出标志
;           TR0: 启动T0
;           IE1: 外部中断1请求标志,硬件清0
;           IT1: 外部中断1触发方式控制,0-低电平触发 ,1-边沿触发
;           IE0: 外部中断0请求标志,硬件清0
;           IT0: 外部中断0触发方式控制,0-低电平触发 ,1-边沿触发



;89H	             T1          T0
;TMOD      |GATE|C/T|M1|M0|GATE|C/T|M1|M0|
;           C/T: 0-T,1-C
;           M1   M0
;           0    0	   :13位  TH-8,TL-5
;           0    1	   :16位
;           1    0	   :8位  自动装载
;           1    1	   :T1:无效   T0 :TH-8位T   TL-8位C/T


;8EH
;AUXR    
;           ORL   AUXR, #01000000B ;T1在1T模式  波特率快12倍   
;           ANL   AUXR, #10111111B ;T1在12T模式 与普通8051一样


;**********作波特率发生器**********
;BAUD---波特率   FOSC---晶振   RELOAD----重装值
;12T(SMOD=0):RELOAD=256-INT(FOSC/BAUD/32/12+0.5)
;             BAUD=FOSC/(256-RELOAD)/32/12
; 1T(SMOD=0):RELOAD=256-INT(FOSC/BAUD/32+0.5)
;             BAUD=FOSC/(256-RELOAD)/32

;常用波特率     定时初值
;11.0592        FDH      (12T  SMOD=0)
;11.0592        FAH      (12T  SMOD=1)
;***********************************


;*********定时初值计算**************
;计数次数:X   晶振:FOSC  机器周期:TP	 定时时间:T	初值:TLOAD
;TP=12/FOSC  
;X=T/TP
;TLOAD=2的N次方-X  ( N=16时: 65536-X )
;*************************************

;---------------串口----------------------
;98H
;SCON	   |SM0/FE|SM1|SM2|REN|TB8|RB8|TI|RI|
;          SM0  SM1
;          0    0  ;模式0
;          0    1  ;模式1   ;8位可变波特率	由定时器控制
;          1    0  ;模式2	;9位 
;          1    1  ;模式3

;          REN 允许接收



;--------------中断------------------------
;IE		      |EA|-|-|ES|ET1|EX1|ET0|EX0
;             EA:CPU开中断
;             ES:串口中断允许
;             ET1:定时器1中断允许
;             EX1:外部中断1允许
;             ET0:定时器0中断允许
;             EX0:外部中断0允许	

;IP			  |-|-|-|PT1|PX1|PT0|PX0   ;设为1:高优先级 0:低优先级
;             PT1:定时器1优先级控制位
;             PX1:外部中断1优先级控制位
;             PT0:定时器0优先级控制位
;             PX0:外部中断0优先级控制位


;--------------看门狗----------------------
;WDT_CONTR	 |WDT_FLAG|-|EN_WDT|CLR_WDT|IDLE_WDT|PS2|PS1|PS0|
;             WDT_FLAG:	看门狗溢出标志,硬件置位,软件清0
;             EN_WDT:   看门狗允许
;             CLR_WDT:  设置为1时,重新计数,硬件自动将改位清0		 
;             IDLE_WDT: 设置为1时,在空闲模式下计数,否则在空闲模式下不计数
;             PS2  PS1  PS0	 PRE_SCALE   TIME1	        晶振1  	    TIME2	        晶振2   
;             0    0    0	  2			 71.1MS		  11.0592MHZ	65.5MS          12MHZ
;             0    0    1	  4			 142.2MS	  				131MS
;             0    1    0	  8			 284.4MS					262MS
;             0	   1    1	  16
;             1    0    0	  32
;             1    0    1	  64
;             1    1    0	  128
;             1    1    1	  256

; 看门狗定时时间的计算:	   (N* PRE_SCALE*32768)	/11059200	 ;N=12
; 一般用   MOV  WDT_CONTER, #3CH 

;

;========================================END=============================================================*/

⌨️ 快捷键说明

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