📄 main.#2
字号:
#include <main.H>
//#include <lcd.H>
#define sampleNum 1024
void SYSCLK_Init_AD (void)
{
int i; // ?????
SFRPAGE=0x0F;
OSCXCN = 0x67; // ???????22.1184MHz??
for (i=0; i < 256; i++) ; // ???????
while (!(OSCXCN & 0x80)) ; // ?????????
CLKSEL =0x01;
OSCICN = 0x00; // ???????????????????????
}
//AD子程序
//-----------------------------------------------------------------------------
// IO口初始化
//-----------------------------------------------------------------------------
//
// 配置数据交叉开关和通用IO口
//
/*void PORT_Init (void)
{
XBR0 = 0x04; // 使能UART0
XBR1 = 0x00;
XBR2 = 0x40; // 使能数据交叉开关和弱上拉
P0MDOUT |= 0x01; // 允许TX0为推挽输出
P1MDOUT |= 0x40; // 允许P1.6(LED)为推挽输出
}*/
//-----------------------------------------------------------------------------
// UART0初始化
//-----------------------------------------------------------------------------
//
// 配置UART0 使用定时器1为波特率发生器
//
/*void UART0_Init (void)
{
SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX
TMOD = 0x20; // TMOD: 定时器1, 模式2, 8位重装
TH1 = -(SYSCLK_AD/BAUDRATE/16); // 根据波特率的值设定定时器1重装值
TR1 = 1; // 启动定时器1
CKCON |= 0x10; // 定时器1使用系统时钟作为时基
PCON |= 0x80; // SMOD00 = 1
TI0 = 1; // 表示TX0就绪
} */
void main(void)
{
xdata unsigned int volatile samples[sampleNum]; // 存储ADC0结果数组
//xdata unsigned int samples_0[sampleNum], samples_1[sampleNum], samples_2[sampleNum],samples_3[sampleNum], samples_4[sampleNum];
xdata float minnub[sampleNum];
int i=0;
int j=0;
int k=0;
// SFRPAGE=0x0F;
WDTCN = 0xde; // 禁止看门狗定时器
WDTCN = 0xad;
SYSCLK_Init_AD (); // 初始化振荡器
PORT_Init (); // 初始化数据交叉开关和通用IO口
cunchu_Init();
//UART0_Init (); // 初始化UART0
//SYSCLK_Init_LCD();
//LCD_Prepare();
//for(k=0;k<10;k++)
//{
LED=1;
SampFunc(SYSCLK_AD,3 , 50000, 1, samples ,sampleNum);
SFRPAGE=0x0F;
RESET
// flash_write(0,samples,1024);
for(i=0;i<1000;i++)
{
minnub[i]=samples[i]*2.44/4096;
}
// while(1){}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -