📄 main.c
字号:
/************************************************************************************
* Copyright (c) 2004,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* 文件名称: MAIN.C
* 文件标识: none
* 适用器件: C8051F120
*
* 摘 要:
*
* 当前版本:1.0
* 作 者:张宁强
* 完成日期:2006年1月12日
*
* 历史版本:0.9
* 原作者 : 张宁强
* 完成日期:2005年x月xx日
*************************************************************************************/
#include "MAIN.H"
#define LED_PORT P5 //P5.4--P5.7
void DelayMs(unsigned int n)//延时(n)MS,SYSCLK = 22118400
{
unsigned int i;
for(; n > 0; n--)
{
for(i = 2211; i > 0; i--);
}
}
void SysClkInit(unsigned char s)//配置系统时钟 s=0时使用外部时钟,否则使用PLL
{
int i = 0;
char SFRPAGE_SAVE = SFRPAGE; // 保存当前SFRPAGE
SFRPAGE = CONFIG_PAGE; // 改变页
if(s == 0) // 使用外部时钟
{
OSCXCN = 0x67;
for (i = 0; i < 3000; i++);
while ((OSCXCN & 0x80) == 0);
CLKSEL = 0x01;
}
else
{ // 选择PLL
OSCXCN = 0x67;
for (i = 0; i < 3000; i++);
while ((OSCXCN & 0x80) == 0);
PLL0CN = 0x04;
SFRPAGE = LEGACY_PAGE;
FLSCL = 0x30;
SFRPAGE = CONFIG_PAGE;
PLL0CN |= 0x01;
PLL0DIV = 0x02; //配置PLL频率为99532800
PLL0FLT = 0x07;
PLL0MUL = 0x09;
for (i = 0; i < 15; i++);
PLL0CN |= 0x02;
while ((PLL0CN & 0x10) == 0);
CLKSEL = 0x02;
}
SFRPAGE = SFRPAGE_SAVE; // 恢复SFRPAGE
}
void SystemInit(void)//系统配置
{
char SFRPAGE_SAVE = SFRPAGE; // 保存当前SFRPAGE
SFRPAGE = CONFIG_PAGE; // 改变页
WDTCN = 0xDE; // 关闭 WDT
WDTCN = 0xAD;
LED_PORT = 0x0f;
SFRPAGE = SFRPAGE_SAVE; // 恢复SFRPAGE
}
void PortInit(void)//端口配置
{
char SFRPAGE_SAVE = SFRPAGE; // 保存当前SFRPAGE
SFRPAGE = CONFIG_PAGE; // 改变页
//交叉开关配置
XBR0 = 0x04;
XBR1 = 0x00;
XBR2 = 0x40;
// P0 口分配状况
// P0.0 = UART0 TX
// P0.1 = UART0 RX
//输出方式
P5MDOUT = 0xf0;
SFRPAGE = SFRPAGE_SAVE; // 恢复SFRPAGE
}
void main(void)
{
unsigned char KeyBuff;
SFRPAGE = CONFIG_PAGE; // 改变页
SystemInit();//系统配置
SysClkInit(1);//配置系统时钟
PortInit();//端口配置
DAC_Init();
while(1)
{
KeyBuff=KeyScan();
if(KeyBuff==1)
{
DAC0_Out_mV(500);
DAC1_Out_mV(500);
LED_PORT |= 0x10;
DelayMs(50);
LED_PORT &= ~0x10;
}
if(KeyBuff==2)
{
DAC0_Out_mV(1000);
DAC1_Out_mV(1000);
LED_PORT |= 0x20;
DelayMs(50);
LED_PORT &= ~0x20;
}
if(KeyBuff==3)
{
DAC0_Out_mV(1500);
DAC1_Out_mV(1500);
LED_PORT |= 0x40;
DelayMs(50);
LED_PORT &= ~0x40;
}
if(KeyBuff==4)
{
DAC0_Out_mV(2000);
DAC1_Out_mV(2000);
LED_PORT |= 0x80;
DelayMs(50);
LED_PORT &= ~0x80;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -