📄 config.c
字号:
//#include "c8051f320.h"
#include "config.h"
/////////////////////////////////////
// Generated Initialization File //
/////////////////////////////////////
#include "C8051F320.h"
// Peripheral specific initialization functions,
// Called from the Init_Device() function
/*
void Reset_Sources_Init()
{
int i = 0;
VDM0CN = 0x80;
for (i = 0; i < 350; i++); // Wait 100us for initialization
RSTSRC = 0x02;
}
*/
void ADC_Init()
{
AMX0P = 0x0B;
AMX0N = 0x0B;
ADC0CF = 0x28;
ADC0CN = 0xC0;
}
void Voltage_Reference_Init()
{
REF0CN = 0x03;
}
void Voltage_Regulator_Init()
{
REG0CN = 0x20;
}
void Port_IO_Init()
{
// P0.0 - Unassigned, Open-Drain, Digital
// P0.1 - Unassigned, Push-Pull, Digital
// P0.2 - Unassigned, Open-Drain, Digital
// P0.3 - Unassigned, Open-Drain, Digital
// P0.4 - Unassigned, Push-Pull, Digital
// P0.5 - Unassigned, Push-Pull, Digital
// P0.6 - Unassigned, Open-Drain, Digital
// P0.7 - Skipped, Open-Drain, Analog
// P1.0 - Unassigned, Push-Pull, Digital
// P1.1 - Unassigned, Push-Pull, Digital
// P1.2 - Unassigned, Push-Pull, Digital
// P1.3 - Unassigned, Push-Pull, Digital
// P1.4 - Unassigned, Push-Pull, Digital
// P1.5 - Unassigned, Push-Pull, Digital
// P1.6 - Unassigned, Push-Pull, Digital
// P1.7 - Unassigned, Push-Pull, Digital
// P2.0 - Skipped, Open-Drain, Analog
// P2.1 - Skipped, Open-Drain, Analog
// P2.2 - Skipped, Open-Drain, Analog
// P2.3 - Skipped, Open-Drain, Analog
P0MDIN = 0x7F;
P2MDIN = 0xF0;
P0MDOUT = 0x32;
P1MDOUT = 0xFF;
P2MDOUT = 0xE0;
P0SKIP = 0x80;
P2SKIP = 0x0F;
XBR1 = 0x40;
}
void Oscillator_Init()
{
OSCICN = 0x03;
}
void Interrupts_Init()
{
IE = 0x85;//允许中断,外部中断1,0,使能。
IP = 0x05;//Int0,Int1设置为高优先级。
IT01CF = 0x32;//int0分配至P0.2,作为键盘输入响应,数据总线控制权交换;
//int1分配至P0.3,作为FPGA输入输出总线控制响应
// 均为低电平有效;
IT0 = 0;
IT1 = 0; //int0 and int1 are level flag.
// IE0 = 0;
// IE1 = 0;
// EIE1 = 0x08;
//IT01CF = 0x02;
//IE = 0x80;
}
// Initialization function for device,
// Call Init_Device() from your main program
void config(void)
{
PCA0MD = 0x80;//Disable watchdog
// PCA0MD &= 0x8F;//Disable watchdog
// Reset_Sources_Init();
ADC_Init();
Voltage_Reference_Init();
Voltage_Regulator_Init();
Port_IO_Init();
Oscillator_Init();
Interrupts_Init();
}
/*
void config (void)
{
EA = 0;//允许中断;
// SFRPAGE = 0x00; //
//IE init
IE = 0x85;//允许中断,外部中断1,0,使能。
IP = 0x05;//Int0,Int1设置为高优先级。
IT01CF = 0x02;//int0分配至P0.2,作为键盘输入响应,数据总线控制权交换;
//int1分配至P0.0,作为FPGA输入输出总线控制响应
// 均为低电平有效;
IT0 = 0;
IT1 = 0; //int0 and int1 are level flag.
//PCA init
PCA0MD &= 0x8F;//Disable watchdog
//PORT init
P0MDIN = 0x7F;
P2MDIN = 0xF0;
P0MDOUT = 0x32;
P1MDOUT = 0xFF;
P2MDOUT = 0xE0;
XBR1 = 0x40;
// P0MDIN = 0x7F;//配置P0.7口为模拟输入,其他为数字输入
// P0MDOUT = 0x00;//配置P0口为开漏输出
// P0SKIP = 0x81;//设置交叉端点P0.0为SYSCLK输出,P0.7为REF输入
// P1MDIN = 0xFF;//配置P1.0口为模拟输入,其他为数字输入
// P1MDOUT = 0x00;//配置P1口为开漏输出
// P1SKIP = 0x01;//设置交叉端点跳过
// P2MDIN = 0xFF;//配置P2口
// P2MDOUT = 0x00;
// P2SKIP = 0xFF;//设置交叉端点跳过
// XBR0 = 0x00;
// XBR1 = 0xC0;//使能交叉开关
REF0CN = 0X00;//使用外部VREF
AMX0P = 0X00;//选择P1.0位AD输入
AMX0N = 0X1F;//设置AD为单端工作方式
ADC0CF = 0X28;//设置AD转换时钟为2M,ADC转换结果右对齐
P0 = 0x00;//00000000b
P1 = 0x00;//00000000b
P2 = 0x00;//00000000b
REG0CN = 0xFF;//内部稳压器禁止
//OSC init
OSCICN = 0x03;//使用内部频率无分频的12M基准频率
// ADC_Init
ADC0CN = 0x00;//关闭ADC0
} //End of config
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -