⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 本文件是C8051F040AD采样及串口测试程序;AD输入端子可输入4路AD(AIN0--AIN3)
💻 C
字号:
/************************************************************************************
*  Copyright (c) 2004,西安铭朗电子科技有限责任公司
*            All rights reserved.
*
* 文件名称: MAIN.C
* 文件标识: none
* 适用器件: C8051F040
* 
* 摘 要:
* 
* 当前版本:1.0
* 作 者:张宁强
* 完成日期:2006年1月20日
*
* 历史版本: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(void)//配置系统时钟
{
   int i = 0;
   char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
   SFRPAGE = CONFIG_PAGE;              // 改变页
   OSCXCN = 0x67;                      // 使用外部时钟
   for (i = 0; i < 3000; i++);
   while ((OSCXCN & 0x80) == 0);
   CLKSEL = 0x01;
   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 int i;
   float voltage;
   unsigned int tp;
   char SFRPAGE_SAVE = SFRPAGE;        // 保存当前SFRPAGE
   SFRPAGE = CONFIG_PAGE;              // 改变页

	SystemInit();//系统配置
	SysClkInit();//配置系统时钟
	PortInit();//端口配置
   UartInit();//UART初始化
   ADC0_Init();
	while(1)
	{
      DelayMs(2000);
      ADC0_Conver();

      SFRPAGE = UART0_PAGE;            // 改变页
      printf("\n");

		for (i=0;i<6;i++)
	  	{
        	voltage = result[i] * 2430.0 / 4095;
         tp = voltage;
			switch(i)
			{
				case 3:
               tp = voltage;
      			printf ("'VR1'adjustable voltage(or AIN%d) is %dmV\n",i,tp);
					break;

				case 4:
					tp=(voltage-776)/2.86;
        			printf ("Chip TEMP is %d degree\n",tp);
					break;

				case 5:
               tp = voltage;
      			printf ("HVDA voltage is %dmV\n\n\n",tp);
					break;

				default:
               tp = voltage;
     			   printf ("AIN%d voltage is %dmV\n", i, tp);
					break;
		 	}
   	}
	}
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -