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

📄 tc1.c

📁 利用C8051F310单片机的两个电压比较器,用热敏电阻和电阻器构成的温度控制电路,实现了低于某一温度后控制一路I/O输出,高于某一温度时控制一路I/O口输出.程序中有详细注释
💻 C
字号:
/////////////////////////////////////
// Config2 Code Configuration File //
/////////////////////////////////////

#include "c8051f310.h"

// Peripheral specific initialization functions,
// Called from the Init_Device() function
sbit JR1 = P1^4; //定义控制端口
sbit JR2 = P1^5;
sbit FAN = P1^6; 

void Port_IO_Init()
{
    // P0.0  -  Unassigned,  Open-Drain, Digital
    // P0.1  -  Unassigned,  Open-Drain, Digital
    // P0.2  -  Unassigned,  Open-Drain, Digital
    // P0.3  -  Unassigned,  Open-Drain, Digital
    // P0.4  -  Unassigned,  Open-Drain, Digital
    // P0.5  -  Unassigned,  Open-Drain, Digital
    // P0.6  -  Unassigned,  Open-Drain, Digital
    // P0.7  -  Unassigned,  Open-Drain, Digital

    // P1.0  -  Skipped,     Open-Drain, Analog
    // P1.1  -  Skipped,     Open-Drain, Analog
    // P1.2  -  Skipped,     Open-Drain, Analog
    // P1.3  -  Skipped,     Open-Drain, Analog
    // P1.4  -  Unassigned,  Open-Drain, Digital
    // P1.5  -  Unassigned,  Open-Drain, Digital
    // P1.6  -  Unassigned,  Open-Drain, Digital
    // P1.7  -  Unassigned,  Open-Drain, Digital
    // P2.0  -  Unassigned,  Open-Drain, Digital
    // P2.1  -  Unassigned,  Open-Drain, Digital
    // P2.2  -  Unassigned,  Open-Drain, Digital
    // P2.3  -  Unassigned,  Open-Drain, Digital

    P1MDIN    = 0xF0;
	//P1MDOUT   = 0x0F;
    P1SKIP    = 0x0F;
    XBR1      = 0x40;
}

void Comparator_Init()
{
    int i;
	CPT0CN    = 0x80;
    for (i = 0; i < 35; i++);  // Wait 10us for initialization
    CPT0CN    &= ~0x30;
    CPT1CN    = 0x80;
    for (i = 0; i < 35; i++);  // Wait 10us for initialization
    CPT1CN    &= ~0x30;
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
    Port_IO_Init();
    Comparator_Init();
}

void main()
{
    Init_Device();//初始化C8051F310
	JR1=0;//初始化控制端口
	JR2=0;//初始化控制端口
    FAN=0;//初始化控制端口
	while(1)
	{
	   if(CPT0CN/0xc0<=0)//如果温度小于0度
	   {
           JR1=1;
		   JR2=1;//给加热膜通电加热
	   }
	   else
	   {
	       JR1=0;
		   JR2=0;//给加热膜断电

	   }
	   //---------------------------------------
       if(CPT1CN/0xc0>=1)//如果温度大于30度
	   {
           FAN=1;//散热风扇转动
	   }
       else
	   {
	       FAN=0;//散热风扇停转
	   }
	}
}

⌨️ 快捷键说明

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