?? main.#3
字號:
#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口初始化
//-----------------------------------------------------------------------------
//
// 配置數(shù)據(jù)交叉開關(guān)和通用IO口
//
/*void PORT_Init (void)
{
XBR0 = 0x04; // 使能UART0
XBR1 = 0x00;
XBR2 = 0x40; // 使能數(shù)據(jù)交叉開關(guān)和弱上拉
P0MDOUT |= 0x01; // 允許TX0為推挽輸出
P1MDOUT |= 0x40; // 允許P1.6(LED)為推挽輸出
}*/
//-----------------------------------------------------------------------------
// UART0初始化
//-----------------------------------------------------------------------------
//
// 配置UART0 使用定時器1為波特率發(fā)生器
//
/*void UART0_Init (void)
{
SCON0 = 0x50; // SCON0: 模式1, 8位UART, 使能RX
TMOD = 0x20; // TMOD: 定時器1, 模式2, 8位重裝
TH1 = -(SYSCLK_AD/BAUDRATE/16); // 根據(jù)波特率的值設(shè)定定時器1重裝值
TR1 = 1; // 啟動定時器1
CKCON |= 0x10; // 定時器1使用系統(tǒng)時鐘作為時基
PCON |= 0x80; // SMOD00 = 1
TI0 = 1; // 表示TX0就緒
} */
void main(void)
{
xdata unsigned int volatile samples[sampleNum]; // 存儲ADC0結(jié)果數(shù)組
//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 (); // 初始化數(shù)據(jù)交叉開關(guān)和通用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){}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -