📄 defs_c51_heima.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 + -