本篇文章给大家谈谈bitstemp,以及崔老师,这个怎么删除 BITSSpace对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
本文目录
C#如何获取电脑CPU温度,硬盘温度,主板温度,CPU转速输出2的1-100次方崔老师,这个怎么删除 BITSSpace3.编程:如果0<n<17,使之能正确的计算n!C#如何获取电脑CPU温度,硬盘温度,主板温度,CPU转速C语言CPU测试温度程序
//Target:M8
//Crystal:8.0000Mhz
/*******************************************************************************
*不可在RESET时做LCD显示,因为DS18B20的复位回应时间只有80us,显示一个字符的时间
远大于这个值
*
*******************************************************************************/
#include<iom8v.h>
#include<macros.h>
#include"1602Driver.h"
#defineSet_DQ1DDRC|=0x08;PORTC|=0x08;//总线拉高
#defineSet_DQ0DDRC|=0x08;PORTC&=0xf7;//总线置低
#defineRead_DQPINC&0x08//读总线
#defineMatchROM0xcc//匹配ROM
#defineWriteMode0x4e//写模式
#defineTH0x64//设置温度上限100
#defineTL0x8a//设置温度下限-10
#defineMatchTemp0x7f//写温度匹配寄存器,12bit
#defineConverTem0x44//DS18B20温度转换命令
#defineGet_Value0xbe//读取温度寄存器值
charDelayMs=0;
voidport_init(void)
{
DDRD=0xff;
PORTD=0xff;
DDRB=0xff;
PORTB=0xff;
DDRC=0xff;
PORTC=0xff;
}
//TIMER1initialize-prescale:1
//WGM:0)Normal,TOP=0xFFFF
//desiredvalue:15uSec
//actualvalue:14.875uSec(0.8%)
voidtimer1_init(void)
{
TCCR1B=0x00;//stop
TCNT1H=0xFF;//setup
TCNT1L=0x89;
OCR1AH=0x00;
OCR1AL=0x77;
OCR1BH=0x00;
OCR1BL=0x77;
ICR1H=0x00;
ICR1L=0x77;
TCCR1A=0x00;
TCCR1B=0x01;//startTimer
}
#pragmainterrupt_handlertimer1_ovf_isr:9
voidtimer1_ovf_isr(void)
{
//TIMER1hasoverflowed
TCNT1H=0xFF;//reloadcounterhighvalue
TCNT1L=0x89;//reloadcounterlowvalue
if(DelayMs>0)
{
DelayMs--;
}
}
voidDelay_15us(unsignedintn)
/*---Ms延时函数---*/
{
DelayMs=n;
while(DelayMs>0);
}
/***************************************************************
*功能:主机向总线写0*
***************************************************************/
voidWritr0(void)
{
Set_DQ1;
Set_DQ0;
Delay_15us(5);
Set_DQ1;
Delay_15us(1);
}
/***************************************************************
*功能:主机向总线写1*
***************************************************************/
voidWritr1(void)
{
Set_DQ1;
Set_DQ0;
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_DQ1;
Delay_15us(2);
}
/***************************************************************
*功能:向总线写一个字节*
*输入:需要写的字*
***************************************************************/
voidWriteBits(charByte)
{
chari=0;
for(i=0;i<8;i++)
{
if(Byte&0x01)
{
Writr1();
}
else
{
Writr0();
}
Byte>>=1;
}
}
/***************************************************************
*功能:DS18B20复位程序*
*返回:总线复位成功,返回1*
***************************************************************/
charReset1820(void)
{
staticcharCheckTimes=0;
staticcharCheckValue=1;
Delay_nms(1);
Set_DQ1;
Set_DQ0;//拉低总线480us
Delay_15us(34);
Set_DQ1;
DDRC&=0xf7;//设置端口为输入状态,读取数据
PORTC|=0x08;
while(PINC&0x08);//等待,直至确认复位成功
CheckValue=Read_DQ;
Delay_15us(32);
returnCheckValue;
}
voidInit1820(void)
{
if(Reset1820()==0x08)
{
LCD_Write_String(0,0,"1820NotDetect!");
LCD_Write_String(0,1,"");
}
else
{
LCD_Write_String(0,0,"InitDS18B20OK!");
LCD_Write_String(0,1,"");
}
WriteBits(MatchROM);
WriteBits(WriteMode);
WriteBits(TH);
WriteBits(TL);
WriteBits(MatchTemp);
}
/***************************************************************
*功能:从总线中读取数据位*
*返回:读取值*
***************************************************************/
charReadBit(void)
{
chari=0;
charRead_Value=0;
Set_DQ1;
Set_DQ0;
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_DQ1;
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&=0xf7;//设置端口为输入状态,读取数据
PORTC|=0x08;
asm("nop");
Read_Value=Read_DQ;
Delay_15us(3);
returnRead_Value;
}
/***************************************************************
*功能:从总线读取一个字节*
*返回:读取到的字符*
***************************************************************/
charReadBits(void)
{
chari=0;
charb=0;
charReadBits_Value=0;
for(i=8;i>0;i--)
{
ReadBits_Value=ReadBits_Value>>1;
b=ReadBit();
if(b)
{
ReadBits_Value=ReadBits_Value|0x80;
}
}
//DEC_Num_Disp(0,1,ReadBits_Value,5);
returnReadBits_Value;
}
/***************************************************************
*功能:获得温度值*
*返回:温度值--摄氏温度*
***************************************************************/
charGet_Temperature(void)
{
staticintTempLow=0;
staticintTempHi=0;
staticcharTemp2=0;
staticlongfinal=0;
staticSign=0;//温度的符号位
Reset1820();
WriteBits(MatchROM);
WriteBits(ConverTem);
//Delay_15us(6);
Reset1820();
WriteBits(MatchROM);
WriteBits(Get_Value);
Delay_15us(5);
TempLow=ReadBits();//温度低位
Delay_15us(5);
Temp2=ReadBits();
Sign=Temp2&0xf8;//符号位取高5位
TempHi=Temp2&0x07;//温度高位
if(Sign==0)//正温的数据处理
{
final=(((TempHi)<<8)|TempLow)*62.5;
LCD_Write_String(0,1,"");
}
else
{
final=(~(((TempHi)<<8)|TempLow)+1)*62.5;
LCD_Write_String(0,1,"-");
}
if(final>=37400)
{
LCD_Write_String(10,1,"Fever!");
}
if((final<37400)&(final>36000))
{
LCD_Write_String(10,1,"Normal");
}
if(final<=36000)
{
LCD_Write_String(10,1,"Low!");
}
Point_Disp(1,1,final,6,3);
returnfinal;
}
//callthisroutinetoinitializeallperipherals
voidinit_devices(void)
{
//stoperrantinterruptsuntilsetup
CLI();//disableallinterrupts
port_init();
timer1_init();
LCD_Init();
LCD_Write_Char(0x01,0);//清屏
MCUCR=0x00;
GICR=0x00;
TIMSK=0x04;//timerinterruptsources
SEI();//re-enableinterrupts
//allperipheralsarenowinitialized
}
voidmain(void)
{
init_devices();
Delay_nms(5);
LCD_Write_String(0,0,"1820NotDetect!");
LCD_Write_String(0,1,"Resetaftersure");
Init1820();
Delay_nms(100);
LCD_Write_String(0,0,"BodyTemp.Test:");
LCD_Write_String(0,1,"C");
while(1)
{
Get_Temperature();
}
}
输出2的1-100次方以前写过一个算10000的阶乘的一个算法,思路差不多,将每一次乘得到结果按位存放,然后将下一个要乘进来的数按位与这个数相乘,将十位作为进位与它的上一位相加
程序如下:
#include<stdio.h>
intmain()
{
intn=1;
//printf("请输入n的大小:");//计算2的N次方
//scanf("%d",&n);
//printf("2的1-100次方:\n");//输出2的1-100次方
inta[2000];
intcarry;
inti,k;
while(n<=100)
{
intdigit=1;
a[0]=1;
inttemp;
for(i=2,k=1;k<=n;++k)
{
carry=0;
for(intj=1;j<=digit;++j)
{
temp=a[j-1]*i+carry;
a[j-1]=temp;
carry=temp/10;
}
while(carry)
{
a[++digit-1]=carry;
carry/=10;
}
}
printf("结果是:\n2^%d=",n);
for(i=digit;i>=1;--i)
{
printf("%d",a[i-1]);
}
printf("\n");
n++;
}
return0;
}
崔老师,这个怎么删除 BITSSpace这个路径是在你的IE浏览器的临时文件夹里!按你提供的路径你的计算机应有一个名为Owener的用户!文件的具体路径应在C:\DocumentsandSettings\Owner\LocalSettings\Temp\tmp$$$.vbs。你说的删不掉的问题应该有两种可能一种是该病毒有两个相互关联的进程你结束一个进程或删掉病毒文件另一个进程就会自动生成;还有一种是病毒修改了注册表!第一种可以用结束进程树的方法解决。第二种可以从未中毒的计算机上导出一份注册表在你的计算机上导入!还有杀毒的时候最好切断网线及清空IE临时文件夹!还有什么不懂再补充!
PS:问个题外话哪个“崔老师”是什么意思?
3.编程:如果0<n<17,使之能正确的计算n!#include<stdio.h>
#definebits100000
intmain()
{
intn;
while(scanf("%d",&n)==1)
{
inta[10]={1,1};
for(inti=1;i<=n;i++)
{
inttemp=0;
for(intl=1;l<=*a;l++)
{
temp+=a[l]*i;
a[l]=temp%bits;
temp/=bits;
if(temp&&l==*a)++*a;
}
}
for(printf("%d",a[*a]);--*a;printf("d",a[*a]));
putchar(10);
}
return0;
}
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!