.jpg)
一、keil4 如何加载头文件
/*
stc12c2052AD头文件。
/*------------------------------------------------
Byte Registers
------------------------------------------------*/
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 SCON=0x98;
sfr SBUF=0x99;
sfr IE=0xA8;
sfr IPH=0XB7;/*中断优先级扩展寄存器,用于定义扩展中断源的优先级*/
/*
IPH^7空
IPH^6(PPCA_LVDH)... PCA扩展定时器中断与低电压中断公用
IPH^5(PADC_SPIH)... ADC模数转换与SPI传送结束中断公用
IPH^4(PSH).........??
IPH^3(PT1H)........
IPH^2(PX1H)
IPH^1(PT0H)
IPH^0(PX0H)
*/
sfr IP=0xB8;/*通用中断源的优先级定义寄存器,与IPH合并使用*/
sfr PSW=0xD0;
sfr ACC=0xE0;
sfr B=0xF0;
/*----------------- P1口IO定义-------------------*/
/* P1M0[7~0] P1M1[7~0]方向作用*/
/* 0 0传统51准双向口模式*/
/* 0 1推挽输出,上拉20mA*/
/* 1 0高阻单向输入,AD必须。*/
/* 1 1开漏输出,AD也可以选择*/
sfr P1=0x90;/* P1口地址*/
sfr P1M0=0x91;/* P1口方向0*/
sfr P1M1=0x92;/* P1口方向1*/
/*----------------- P3口IO定义-------------------*/
/* P3M0[7~0] P3M1[7~0]方向作用*/
/* 0 0传统51准双向口模式*/
/* 0 1推挽输出,上拉20mA*/
/* 1 0高阻单向输入,AD必须。*/
/* 1 1开漏输出,AD也可以选择*/
sfr P3=0xB0;/* P3口地址*/
sfr P3M0=0xB1;/* P3口方向0*/
sfr P3M1=0xB2;/* P3口方向1*/
/*----------------- IAP/IAP功能寄存器------------*/
sfr ISP_DATA=0XE2;/*收发数据寄存器*/
sfr ISP_ADDRH=0XE3;/*目标操作地址高8位*/
sfr ISP_ADDRL=0XE4;/*目标操作地址低8位*/
sfr ISP_CMD=0XE5;/*操作指令寄存器*/
sfr ISP_TRIG=0XE6;/*触发寄存器*/
sfr ISP_CONTR=0XE7;/*控制寄存器*/
/*---------------新增功能控制寄存器-------------*/
sfr AUXR=0X8E;/*新增特殊功能寄存器*/
/*
其中:
AUXR^7(T0x12)..定时器ct0时钟源设定:0_atbit(传统1/12,1_atbit(1:1不分频;
AUXR^6(T1x12)..定时器ct1时钟源设定:0_atbit(传统1/12,1_atbit(1:1不分频;
AUXR^5(UARTx6).串口模式0时时钟设定:0_atbit(传统1/12^1_atbit(1/2 2分频;
AUXR^4(EADCI).. ADC中断允许位:0_atbit(禁止,1_atbit(允许
AUXR^3(ESPI)... SPI中断允许位:0_atbit(禁止,1_atbit(允许
AUXR^2(ELVDI)..低电压中断允许:0_atbit(禁止,1_atbit(允许
5V系统3.7V,3V系统2.4V以下发生中断
AUXR^1/AUXR^0..保留
*/
sfr CLOCK_DIV=0XC7;/*空闲模式下的时钟分频,可进一步降低功耗*/
sfr WDT_CONTR=0XE1;/*看门狗控制寄存器*/
/*其中:
WDT_CONTR^7(WDT_FLAG)..看门狗溢出标志_atbit(1,可软件清零
WDT_CONTR^6保留
WDT_CONTR^5(EN_WDT)....看门狗允许标志_atbit(1
WDT_CONTR^4(CLR_WDT)...看门狗清零_atbit(1,硬件自动回零
WDT_CONTR^3(IDLE_WDT)..=1空闲模式下继续工作,_atbit(0空闲模式下不工作
WDT_CONTR^2~0(PS2~0)...看门狗溢出时间设定:
0 0 0...... 2分频.....@20MHz下 39.3mS
0 0 1...... 4分频.....@20MHz下 78.6mS
0 1 0...... 8分频.....@20MHz下 157.3mS
0 1 1......16分频.....@20MHz下 314.6mS
1 0 0......32分频.....@20MHz下 629.1mS
1 0 1......64分频.....@20MHz下 1.25S
1 1 0.....128分频.....@20MHz下 2.5S
1 1 1.....256分频.....@20MHz下 5S
其他主频下的时间可以参照上表作相应换算。
*/
sfr SADDR= 0XA9;/*从地址,未启用*/
sfr SADEN= 0XB9;/*标识地址,未启用*/
sfr SPI_STATUS=0X84;/* SPSTAT SPI状态寄存器*/
/*其中:
SPSTAT^7(SPIF).... SPI传输完成标志。当一次串行传输完成时,SPIF置位,
并当ESPI和EA都置位时产生中断。当SPI处于主模式且
SSIG_atbit(0时,如果/SS为输入并被驱动为低电平,SPIF
也将置位。SPIF标志通过软件向其写入“1”清零。
SPSTAT^6(WCOL).... SPI写冲突标志。在数据传输的过程中如果对SPI数据寄
存器SPDAT执行写操作,WCOL将置位。WCOL标志通过软
件向其写入“1”清零。
SPSTAT^5~0保留
*/
sfr SPI_CONTR=0X85;/* SPI控制寄存器SPCTL*/
/*其中:
SPCTL^7(SSIG)....../SS忽略。
1:MSTR(位4)确定器件为主机还是从机。
0:/SS脚用于确定器件为主机还是从机。/SS脚可作为I/O
口使用(见SPI主从选择表)。
SPCTL^6(SPEN)...... SPI使能。1:SPI使能。0:SPI被禁止,所有SPI管脚都作
为I/O口使用。
SPCTL^5(DORD)...... SPI数据顺序:1:数据字的LSB(最低位)最先发送;
0:数据字的MSB(最高位)最先发送。
SPCTL^4(MSTR)......主/从模式选择(见SPI主从选择表)。
SPCTL^3(CPOL)...... SPI时钟极性:1:SPICLK空闲时为高电平。SPICLK的前时
钟沿为下降沿而后沿为上升沿。0:SPICLK空闲时为低电平。
SPICLK的前时钟沿为上升沿而后沿为下降沿。
SPCTL^2(CPHA)...... SPI时钟相位选择:
1:数据在SPICLK的前时钟沿驱动,并在后时钟沿采样。
0:数据在/SS为低(SSIG=00)时被驱动,在SPICLK的后时钟
沿被改变,并在前时钟沿被采样。
(注:SSIG_atbit(1时的操作未定义)
SPCTL^1~0(SPR1~0)...SPR0/SPR1是SPI时钟速率选择控制位。
SPR1^SPR0:
0 0-CPU_CLK/4
0 1-CPU_CLK/16
1 0-CPU_CLK/64
1 1-CPU_CLK/128
*/
sfr SPI_DATA=0X86;/* SPI数据收发寄存器SPDAT*/
sfr ADC_CONTR=0XC5;/* ADC控制寄存器*/
/*其中:
ADC_CONTR^7(ADC_POWER)..ADC电源控制位。0:关闭;1:打开.
启动AD转换前一定要确认AD电源已打开,AD转换结束
后关闭AD电源可降低功耗,也可不关闭。初次打开内部
A/D转换模拟电源,需适当延时,等内部模拟电源稳定
后,再启动A/D转换建议启动A/D转换后,在A/D转换
结束之前,不改变任何I/O口的状态,有利于高精度A/D
转换.
ADC_CONTR^6~5(SPEED1~0).模数转换器转换速度控制位
SPEED1 SPEED0 A/D转换所需时间
1 1 210个时钟周期转换一次,CPU工作频率20MHz时,A/D转
换速度约 100KHz
1 0 420个时钟周期转换一次
0 1 630个时钟周期转换一次
0 0 840个时钟周期转换一次
ADC_CONTR^4(ADC_FLAG)...模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG
_atbit( 1,要由软件清0。不管是A/D转换完成后由该位申请产
生中断,还是由软件查询该标志位A/D转换是否结束,当A/D
转换完成后,ADC_FLAG= 1,一定要软件清0。
ADC_CONTR^3(ADC_START)...模数转换器(ADC)转换启动控制位,设置为1时,开始转换
ADC_CONTR^2~0(CHS2~0)....CHS0:模拟输入通道选择
CHS2 CHS1 CHS0模拟输入通道选择
0 0 0选择 P1.0作为A/D输入来用
0 0 1选择 P1.1作为A/D输入来用
0 1 0选择 P1.2作为A/D输入来用
0 1 1选择 P1.3作为A/D输入来用
1 0 0选择 P1.4作为A/D输入来用
1 0 1选择 P1.5作为A/D输入来用
1 1 0选择 P1.6作为A/D输入来用
1 1 1选择 P1.7作为A/D输入来用
*/
sfr ADC_DATA=0XC6;/* A/D转换结果特殊功能寄存器*/
sfr CCON=0XD8;/* PCA控制寄存器,支持位寻址后面有定义*/
/*其中:
CCON^7(CF)......PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。
如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。
CF位可通过硬件或软件置位,但只可通过软件清零。
CCON^6(CR)......PCA计数器阵列运行控制位。该位通过软件置位,用来起
动PCA计数器阵列计数。该位通过软件清零,用来关闭
PCA计数器。
CCON^5~2保留
CCON^1(CCF1)....PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。
CCON^0(CCF0)....PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。
*/
sfr CMOD=0XD9;/* PCA模式寄存器*/
/*其中:
CMOD^7(CIDL)....计数器阵列空闲控制:CIDL_atbit(0时,空闲模式下PCA计数器继
续工作。CIDL=1时,空闲模式下PCA计数器停止工作。
CMOD^6~3保留
CMOD^2~1(CPS1,CPS0)PCA计数脉冲选择
CPS1 CPS0选择PCA时钟源输入
0 0 0,内部时钟,Fosc/12
0 1 1,内部时钟,Fosc/2
1 0 2,定时器0溢出,由于定时器0可以工作在1T方式,所以可以
达到计一个时钟就溢出,频率反而是最高的,可达
到Fosc
1 1 3,ECI/P3.4脚的外部时钟输入(最大速率_atbit(Fosc/2)
CMOD^0(ECF).....PCA计数溢出中断使能:ECF_atbit(1时,使能寄存器CCON CF位的
中断。ECF_atbit(0时,禁止该功能。
*/
sfr CH= 0XF9;/* PCA计数器初始值高8位*/
sfr CL= 0XE9;/* PCA计数器初始值低8位*/
sfr CCAPM0=0XDA;/* PCA比较/捕获模块寄存器0*/
/*
CCAPM0^7保留
CCAPM0^6(ECOM0)........使能比较器。ECOM0= 1时使能比较器功能。
CCAPM0^5(CAPP0)........正捕获。CAPP0= 1时使能上升沿捕获。
CCAPM0^4(CAPN0)........负捕获。CAPN0= 1时使能下降沿捕获。
CCAPM0^3(MAT0).........匹配。当MAT0= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将置位CCON寄存器的中断标志位CCF0。
CCAPM0^2(TOG0).........翻转。当TOG0= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将使CEXn脚翻转。(CEX0/P3.7)
CCAPM0^1(PWM0).........脉宽调节模式。当PWM0= 1时,使能CEXn脚用作脉宽调
节输出。
CCAPM0^0(ECCF0)........使能CCF0中断。使能寄存器CCON的比较/捕获标志CCF0,
用来产生中断。
使用的机种基本模式组合:
ECOM0 CAPP0 CAPN0 MAT0 TOG0 PWM0 ECCF0模块功能
0 0 0 0 0 0 0无此操作
X 1 0 0 0 0 X 16位捕获模式,由CEX0的上升沿触发
X 0 1 0 0 0 X 16位捕获模式,由CEX0的下降沿触发
X 1 1 0 0 0 X 16位捕获模式,由CEX0的跳变触发
1 0 0 1 0 0 X 16位软件定时器
1 0 0 1 1 0 X 16位高速输出
1 0 0 0 0 1 0 8位PWM
*/
sfr CCAP0H=0XFA;/*当出现捕获或比较时,它们用来保存16位的计数值。
当PCA模块用在PWM模式中时,它们用来控制输出的
占空比。CCAP0H.CCAP0L分别为高低8位,组合使用*/
sfr CCAP0L=0XEA;
sfr PCA_PWM0=0XF2;/* PWM下9位数的最高位
PCA_PWM0^1(EPC0H)....在PWM模式下,与CCAP0H组成9位数
PCA_PWM0^0(EPC0L)....在PWM模式下,与CCAP0L组成9位数
*/
sfr CCAPM1=0XDB;/* PCA比较/捕获模块寄存器1,支持位寻址定义在后面*/
/*
CCAPM1^7保留
CCAPM1^6(ECOM1)........使能比较器。ECOM1= 1时使能比较器功能。
CCAPM1^5(CAPP1)........正捕获。CAPP1= 1时使能上升沿捕获。
CCAPM1^4(CAPN1)........负捕获。CAPN1= 1时使能下降沿捕获。
CCAPM1^3(MAT1).........匹配。当MAT1= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将置位CCON寄存器的中断标志位CCF1。
CCAPM1^2(TOG1).........翻转。当TOG1= 1时, PCA计数值与模块的比较/捕获寄
存器的值的匹配将使CEXn脚翻转。(CEX1/P3.5)
CCAPM1^1(PWM1).........脉宽调节模式。当PWMn= 1时,使能CEXn脚用作脉宽调
节输出。
CCAPM1^0(ECCF1)........使能CCF1中断。使能寄存器CCON的比较/捕获标志CCF1,
用来产生中断。
使用的机种基本模式组合:
ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1模块功能
0 0 0 0 0 0 0无此操作
X 1 0 0 0 0 X 16位捕获模式,由CEX1的上升沿触发
X 0 1 0 0 0 X 16位捕获模式,由CEX1的下降沿触发
X 1 1 0 0 0 X 16位捕获模式,由CEX1的跳变触发
1 0 0 1 0 0 X 16位软件定时器
1 0 0 1 1 0 X 16位高速输出
1 0 0 0 0 1 0 8位PWM
*/
sfr CCAP1H=0XFB;/*当出现捕获或比较时,它们用来保存16位的计数值。
当PCA模块用在PWM模式中时,它们用来控制输出的
占空比。CCAP1H.CCAP1L分别为高低8位,组合使用*/
sfr CCAP1L=0XEB;
sfr PCA_PWM1=0XF3;/* PWM下9位数的最高位
PCA_PWM1^1(EPC1H)....在PWM模式下,与CCAP1H组成9位数
PCA_PWM1^0(EPC1L)....在PWM模式下,与CCAP1L组成9位数
*/
/*------------------------------------------------
PCON Bit Values
------------------------------------------------*/
#define IDL_ 0x01
#define STOP_ 0x02
#define EWT_ 0x04
#define EPFW_ 0x08
#define WTR_ 0x10
#define PFW_ 0x20
#define POR_ 0x40
#define SMOD_ 0x80
/*------------------------------------------------
TCON Bit Registers
------------------------------------------------*/
sbit IT0=TCON^0;
sbit IE0=TCON^1;
sbit IT1=TCON^2;
sbit IE1=TCON^3;
sbit TR0=TCON^4;
sbit TF0=TCON^5;
sbit TR1=TCON^6;
sbit TF1=TCON^7;
/*------------------------------------------------
TMOD Bit Values
------------------------------------------------*/
#define T0_M0_ 0x01
#define T0_M1_ 0x02
#define T0_CT_ 0x04
#define T0_GATE_ 0x08
#define T1_M0_ 0x10
#define T1_M1_ 0x20
#define T1_CT_ 0x40
#define T1_GATE_ 0x80
#define T1_MASK_ 0xF0
#define T0_MASK_ 0x0F
/*------------------------------------------------
P1 Bit Registers
------------------------------------------------*/
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 ADC0= P1^0;/*+ Analog input*/
sbit ADC1= P1^1;/*+ Analog input*/
sbit ADC2= P1^2;/*+ Analog input*/
sbit ADC3= P1^3;/*+ Analog input*/
sbit ADC4= P1^4;/*+ Analog input*/
sbit ADC5= P1^5;/*+ Analog input*/
sbit ADC6= P1^6;/*+ Analog input*/
sbit ADC7= P1^7;/*+ Analog input*/
/* SPI专用IO*/
sbit SS= P1^4;/*主从SPI选择,外部输入P1.4_atbit(0为从机*/
sbit MOSI= P1^5;/*主输出/从输入*/
sbit MISO= P1^6;/*主输入/从输出*/
sbit SCLK= P1^7;/* SPI时钟,主方输出,从方接收*/
/*------------------------------------------------
SCON Bit Registers
------------------------------------------------*/
sbit RI= SCON^0;
sbit TI= SCON^1;
sbit RB8= SCON^2;
sbit TB8= SCON^3;
sbit REN= SCON^4;
sbit SM2= SCON^5;
sbit SM1= SCON^6;
sbit SM0= SCON^7;
/*------------------------------------------------
IE Bit Registers
------------------------------------------------*/
sbit EX0= IE^0;/* 1_atbit(Enable External interrupt 0*/
sbit ET0= IE^1;/* 1_atbit(Enable Timer 0 interrupt*/
sbit EX1= IE^2;/* 1_atbit(Enable External interrupt 1*/
sbit ET1= IE^3;/* 1_atbit(Enable Timer 1 interrupt*/
sbit ES= IE^4;/* 1_atbit(Enable Serial port interrupt*/
sbit ET2= IE^5;/* 1_atbit(Enable Timer 2 interrupt*/
sbit EA= IE^7;/* 0_atbit(Disable all interrupts*/
/*------------------------------------------------
P3 Bit Registers(Mnemonics& Ports)
------------------------------------------------*/
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;
/* P3_6 Hardwired as AOUT*/
sbit P3_7= P3^7;
sbit RXD= P3^0;/* Serial data input*/
sbit TXD= P3^1;/* Serial data output*/
sbit INT0= P3^2;/* External interrupt 0*/
sbit INT1= P3^3;/* External interrupt 1*/
sbit T0= P3^4;/* Timer 0外部时钟输入口P3.4*/
sbit ECI= P3^4;/* PCA计数器阵列的可选外部时钟输入口P3.4*/
sbit T1= P3^5;/* Timer 1外部时钟输入口P3.5*/
sbit CEX1= P3^5;/* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
sbit PWM1= P3^5;/* PWM方式时PWM1的输出口P3.5/PCA1反相输出*/
sbit CEX0= P3^7;/* PCA计数器与模块的比较/捕获寄存器的值的匹配时的输出口*/
sbit PWM0= P3^7;/* PWM方式时PWM0的输出口P3.7/PCA0反相输出*/
/*------------------------------------------------
IP中断优先级寄存器低8位
------------------------------------------------*/
sbit PX0= IP^0;/*外部中断0 P3.2*/
sbit PT0= IP^1;/*定时计数器0中断*/
sbit PX1= IP^2;/*外部中断1 P3.3*/
sbit PT1= IP^3;/*定时计数器1中断*/
sbit PS= IP^4;/*通信中断RI或TI*/
/*------------------------------------------------
PSW Bit Registers
------------------------------------------------*/
sbit P= PSW^0;
sbit FL= PSW^1;
sbit OV= PSW^2;
sbit RS0= PSW^3;
sbit RS1= PSW^4;
sbit F0= PSW^5;
sbit AC= PSW^6;
sbit CY= PSW^7;
/*------------------------------------------------
PCA控制寄存器CCON Bit Registers
------------------------------------------------*/
sbit CCF0= CCON^0;/*PCA模块0中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
sbit CCF1= CCON^1;/*PCA模块1中断标志。当出现匹配或捕获时该位由硬件置位。
该位必须通过软件清零。*/
sbit CR= CCON^6;/*PCA计数器阵列运行控制位。该位通过软件置位,用来起
动PCA计数器阵列计数。该位通过软件清零,用来关闭
PCA计数器。*/
sbit CF= CCON^7;/*PCA计数器阵列溢出标志。计数值翻转时该位由硬件置位。
如果CMOD寄存器的ECF位置位, CF标志可用来产生中断。
CF位可通过硬件或软件置位,但只可通过软件清零。*/
二、cexio中文怎么设置
解答如下
游戏语言设置分步阅读
1
/4
运行【cemu模拟器】,点击【next】。
2
/4
下一步,再点击【Clos】。
3
/4
这里设置游戏语言为中文:
选择【Options】,找到【Consolelanguage】,选择【Chinese】。
4
/4
这里设置游戏地区为中国:
选择【Options】,找到【Consoleregion】,选择【China】。
cemu语言设置
1
/3
选择【Options】,找到【Generalsettings】。
2
/3
再【General】找到Language下拉选择【Chinese】,然后关闭窗口。
3
/3
弹窗提醒:cemuUI界面调整需要重启。
载入游戏设置
1
/2
重新进入Cemu模拟器,点击文件,选择载入游戏。
2
/2
找到存放游戏的根目录(根据各自电脑实际存放目录为准)
本文来自用户投稿,不代表币大大立场,如若转载,请注明出处:https://czxurui.com/jys/179599.html


发表回复
评论列表(0条)