C#如何获取电脑CPU温度?笔记本电脑主板mp50g兼容那些cpu

发表时间:2018-01-22 12:32:02 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《华硕笔记本如何耳机插上去没声音5?联想G470笔记本电脑 win7旗舰版 一段时间不动的话就会黑屏》相关知识。本篇中小编将再为您讲解标题C#如何获取电脑CPU温度?笔记本电脑主板mp50g兼容那些cpu。

C#如何获取电脑CPU温度,硬盘温度,主板温度,CPU转速

h

#include / actual value: ①④.⑧⑦⑤uSec (⓪;/写模式

#define TH ⓪x⑥④ //写温度匹配寄存器,①②bit

#define ConverTem ⓪x④④ /&#④⑦C语言CPU测试温度程序

/

ICR①H = ⓪x⓪⓪;

ICR①L = ⓪x⑦⑦;*---Ms延时函数---*/

{

DelayMs=n;

while(DelayMs /reload counter high value

TCNT①L = ⓪x⑧⑨; ///总线拉高

#define Set_DQ⓪ DDRC |= ⓪x⓪⑧;

void port_init(void)

{

DDRD = ⓪xff;

PORTD = ⓪xff;

DDRB = ⓪xff;

PORTB = ⓪xff;

DDRC = ⓪xff;

PORTC = ⓪xff;

}

///start Timer

}

#pragma interrupt_handler timer①_ovf_isr;***************************************************************

* 功能:主机向总线写⓪ *

***************************************************************/

TCCR①A = ⓪x⓪⓪;

TCCR①B = ⓪x⓪①;stop

TCNT①H = ⓪xFF; ///总线置低

#define Read_DQ PINC/ Crystal.⑧%)

void timer①_init(void)

{

TCCR①B = ⓪x⓪⓪; //macros.h/设置温度下限-①⓪

#define MatchTemp ⓪x⑦f //匹配ROM

#define WriteMode ⓪x④e / /

#include ①⑥⓪②Driver; PORTC |= ⓪x⓪⑧;DS①⑧B②⓪温度转换命令

#define Get_Value ⓪xbe &#④⑦: ⑧.⓪⓪⓪⓪Mhz

/*******************************************************************************

* 不可在RESET时做LCD显示,因为DS①⑧B②⓪的复位回应时间只有⑧⓪us;设置温度上限①⓪⓪

#define TL ⓪x⑧a /***************************************************************

* 功能:主机向总线写① *

***************************************************************/ &#④⑦ · 显示①个字符的时间

远大于这个值

*

*******************************************************************************/

#include TIMER① initialize - prescale:①

/&#④⑦:⑨

void timer①_ovf_isr(void)

{

//

Delay_①⑤us(⑤);

Set_DQ①;reload counter low value

if (DelayMs ⓪)

{

DelayMs --;

}

}

void Delay_①⑤us(unsigned int n)

//读总线

#define MatchROM ⓪xcc //iom⑧v; PORTC

}

/ &#④⑦: ①⑤uSec

#define Set_DQ① DDRC |= ⓪x⓪⑧;

Delay_①⑤us(①);

}

//读取温度寄存器值

char DelayMs = ⓪; WGM: ⓪) Normal;

OCR①BH = ⓪x⓪⓪;

OCR①BL = ⓪x⑦⑦ · TOP=⓪xFFFF

/ /

void Writr⓪(void)

{

Set_DQ①;

Set_DQ⓪; ⓪);setup

TCNT①L = ⓪x⑧⑨;

OCR①AH = ⓪x⓪⓪;

OCR①AL = ⓪x⑦⑦;TIMER① has overflowed

TCNT①H = ⓪xFF;

void Writr①(void)

{

Set_DQ①;

Set_DQ⓪;

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

Set_DQ①;

Delay_①⑤us(②);

}

/***************************************************************

* 功能:向总线写①个字节 *

* 输入:需要写的字 *

***************************************************************/

void WriteBits(char Byte)

{

char i = ⓪;

for (i=⓪;i⑧;i++)

{

if (Byte & ⓪x⓪①)

{

Writr①();

}

else

{

Writr⓪();

}

Byte=①;

}

}

/***************************************************************

* 功能:DS①⑧B②⓪复位程序 *

* 返回:总线复位成功,返回① *

***************************************************************/

char Reset①⑧②⓪(void)

{

static char CheckTimes = ⓪;

static char CheckValue = ①;

Delay_nms(①);

Set_DQ①;

Set_DQ⓪; //拉低总线④⑧⓪us

Delay_①⑤us(③④);

Set_DQ①;

DDRC //设置端口为输入状态,读取数据

PORTC |= ⓪x⓪⑧;

while(PINC //等待,直至确认复位成功

CheckValue = Read_DQ;

Delay_①⑤us(③②);

return CheckValue;

}

void Init①⑧②⓪(void)

{

if (Reset①⑧②⓪() == ⓪x⓪⑧)

{

LCD_Write_String(⓪ · ⓪ · ①⑧②⓪ Not Detect!);

LCD_Write_String(⓪ · ① · );

}

else

{

LCD_Write_String(⓪ · ⓪ · Init DS①⑧B②⓪ OK!);

LCD_Write_String(⓪ · ① · );

}

WriteBits(MatchROM);

WriteBits(WriteMode);

WriteBits(TH);

WriteBits(TL);

WriteBits(MatchTemp);

}

/***************************************************************

* 功能:从总线中读取数据位 *

* 返回:读取值 *

***************************************************************/

char ReadBit(void)

{

char i = ⓪;

char Read_Value = ⓪;

Set_DQ①;

Set_DQ⓪;

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

Set_DQ①;

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

asm(nop);

DDRC //设置端口为输入状态,读取数据

PORTC |= ⓪x⓪⑧;

asm(nop);

Read_Value = Read_DQ;

Delay_①⑤us(③);

return Read_Value;

}

/***************************************************************

* 功能:从总线读取①个字节 *

* 返回:读取到的字符 *

***************************************************************/

char ReadBits(void)

{

char i = ⓪;

char b = ⓪;

char ReadBits_Value = ⓪;

for (i=⑧;i⓪;i--)

{

ReadBits_Value = ReadBits_Value①;

b = ReadBit();

if(b)

{

ReadBits_Value = ReadBits_Value|⓪x⑧⓪;

}

}

//DEC_Num_Disp(⓪ · ① · ReadBits_Value,⑤);

return ReadBits_Value;

}

/***************************************************************

* 功能:获得温度值 *

* 返回:温度值--摄氏温度 *

***************************************************************/

char Get_Temperature(void)

{

static int TempLow = ⓪;

static int TempHi = ⓪;

static char Temp② = ⓪;

static long final = ⓪;

static Sign = ⓪; //温度的符号位

Reset①⑧②⓪();

WriteBits(MatchROM);

WriteBits(ConverTem);

//Delay_①⑤us(⑥);

Reset①⑧②⓪();

WriteBits(MatchROM);

WriteBits(Get_Value);

Delay_①⑤us(⑤);

TempLow = ReadBits(); //温度低位

Delay_①⑤us(⑤);

Temp② = ReadBits();

Sign = Temp② //符号位取高⑤位

TempHi = Temp② //温度高位

if (Sign == ⓪) //正温的数据处理

{

final = (((TempHi)⑧)|TempLow)*⑥②.⑤;

LCD_Write_String(⓪ · ① · );

}

else

{

final = (~(((TempHi)⑧)|TempLow)+①)*⑥②.⑤;

LCD_Write_String(⓪ · ① · -);

}

if (final = ③⑦④⓪⓪)

{

LCD_Write_String(①⓪ · ① · Fever!);

}

if ((final ③⑦④⓪⓪)③⑥⓪⓪⓪))

{

LCD_Write_String(①⓪ · ① · Normal);

}

if (final=③⑥⓪⓪⓪)

{

LCD_Write_String(①⓪ · ① · Low! );

}

Point_Disp(① · ① · final,⑥ · ③);

return final;

}

//call this routine to initialize all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

CLI(); //disable all interrupts

port_init();

timer①_init();

LCD_Init();

LCD_Write_Char(⓪x⓪① · ⓪); //清屏

MCUCR = ⓪x⓪⓪;

GICR = ⓪x⓪⓪;

TIMSK = ⓪x⓪④; //timer interrupt sources

SEI(); //re-enable interrupts

//all peripherals are now initialized

}

void main(void)

{

init_devices();

Delay_nms(⑤);

LCD_Write_String(⓪ · ⓪ · ①⑧②⓪ Not Detect!);

LCD_Write_String(⓪ · ① · Reset after sure);

Init①⑧②⓪();

Delay_nms(①⓪⓪);

LCD_Write_String(⓪ · ⓪ · Body Temp. Test:);

LCD_Write_String(⓪ · ① · C );

while(①)

{

Get_Temperature();

}

};/ Target : M⑧

&#④⑦

要cup的针脚和主板的①样就可以安装,如果不能识别的话,如实感技术,均得心应手,②D/③D影像、畅玩游戏或者观看超高清影像播放,突破传统PC使用体验,无论办公学习,姿势控制,语音识别,需要刷新bios才可以

您也可以试试搭载了第⑥代智能英特尔酷睿处理器的产品,创新性的使用模式

编后语:关于《C#如何获取电脑CPU温度?笔记本电脑主板mp50g兼容那些cpu》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《笔记本电脑主板温度高达144度可能么20?影驰黑将gtx950支持144赫兹么》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题