barriers / 阅读 / 详情

为什么我写的DS18B02程序,不能测出温度呢?C语言写的,用的是51单片机

2023-07-14 15:27:33
共4条回复
coco
//DS18B20温度计C语言程序
#include<reg52.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int

sbit ds=P1^7; //温度传感器信号线

sbit A1=P1^0; //千
sbit A2=P1^1; //百
sbit A3=P1^2; //十
sbit A4=P1^3; //个
sbit A5=P1^4; //段选控制
sbit D =P0^2; //小数点
sbit sound=P3^3; //定义控制蜂鸣器的单片机引脚。

uint temp,t,i,b,xs;

unsigned char yima[]={0xeb,0x88,0xb3,0xba,0xd8,0x7a,0x7b,0xa8,0xfb,0xfa};

void delayms(unsigned int i);/*延时函数*/

//**********************************************************************************
//延时函数, 对于12MHz时钟, 例z=10,则大概延时10ms.

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--);
for(y=124;y>0;y--);
}

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

//**********************************************************************************
//初始化DS18B20
//让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动
void dsreset(void)
{ //对于11.0592MHz时钟, unsigned int型的i, 作一个i++操作的时间大于?us
uint i;
ds=0;
i=103; //拉低约800us, 符合协议要求的480us以上
while(i>0)i--;
ds=1; //产生一个上升沿, 进入等待应答状态
i=4;
while(i>0)i--;
}
//**********************************************************************************

//**********************************************************************************
//向DS18B20读取一位数据
//读一位, 让DS18B20一小周期低电平, 然后两小周期高电平,
//之后DS18B20则会输出持续一段时间的一位数据
bit tempreadbit(void)
{
uint i;
bit dat;
ds=0;
i++; //i++起延迟作用 延时约8us, 符合协议要求至少保持1us
ds=1;
i++;i++; //延时约16us, 符合协议要求的至少延时15us以上
dat=ds;
i=8;
while(i>0)i--; //延时约64us, 符合读时隙不低于60us要求
return(dat);
}
//**********************************************************************************

//**********************************************************************************
//读取一字节数据, 通过调用tempreadbit()来实现
uchar tempread(void)
{
uchar i,j,dat;
dat=0;
for(i=1;i<=8;i++)
{
j=tempreadbit();
dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在dat里
}
return(dat);
}
//**********************************************************************************

//**********************************************************************************
//向DS18B20写入一字节数据
void tempwritebyte(uchar dat)
{
uint i;
uchar j;
bit testb;
for(j=1;j<=8;j++)
{
testb=dat&0x01;
dat=dat>>1;
if(testb) //写"1", 将ds拉低15us后, 在15us~60us内将ds拉高, 即完成写1
{
ds=0;
i++;i++; //拉低约16us, 符号要求15~60us内
ds=1;
i=8;while(i>0)i--; //延时约64us, 符合写时隙不低于60us要求
}
else //写"0", 将ds拉低60us~120us
{
ds=0;
i=8;while(i>0)i--; //拉低约64us, 符号要求
ds=1;
i++;i++; //整个写0时隙过程已经超过60us, 这里就不用像写1那样, 再延时64us了
}
}
}
//**********************************************************************************

//**********************************************************************************
//向DS18B20发送温度转换命令
void tempchange(void)
{
dsreset(); //初始化DS18B20, 无论什么命令, 首先都要发起初始化
delay(1); //延时1ms, 因为DS18B20会拉低ds 60~240us作为应答信号
tempwritebyte(0xcc); //写跳过读ROM指令
tempwritebyte(0x44); //写温度转换指令
}
//**********************************************************************************

//**********************************************************************************
//向DS18B20发送读取数据命令 获取当前温度值
uint tmp()
{
float tt;
// int tt;
uchar low,high;
dsreset();
delay(1);
tempwritebyte(0xcc); //写入跳过序列号命令字 Skip Rom
tempwritebyte(0xbe); //写入读取数据令字 Read Scratchpad
//连续读取两个字节数据
low =tempread(); //读低8位
high=tempread(); //读高8位
temp=high; //高8位赋予temp
temp<<=8; //将高低两个字节合成一个整形变量 temp为16位 高8位左移8位 低8位补0
temp=temp|low; //高低8位相或=temp为16位=高8位+低8位

xs=low&0x0f; //低4位为小数部分
tt=temp>>4; //整数部分
// temp=tt*100+xs*100/16;

temp=tt*10+((((xs*5)>>2)+1)>>1);
// **************************************
//y=(((x*5)>>2)+1)>>1;
//等效y=((x*5)/4+1)/2;
//再等效y=((x*20)/16+1)/2;
//y=2*(x*10/16+0.5)/2;
//实际上y=x*10/16+0.5; //+0.5为 四舍五入
// **********************************************
// tt=temp*0.0625; //DS18B20的默认分辨率12位, 精确度为0.0625度, 即读回数据的最低位代表0.0625度
// temp = tt * 100 + (temp > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5
// temp=tt*100; //将它放大100倍, 使显示时可显示小数点后两位(t=11.0625,计算得temp = 1106, 即11.06 度)
return temp; //temp是整型
}
//**********************************************************************************

//**********************************************************************************
//显示函数
void display(uint t)
{
unsigned char a1=0,a2=0,a3=0,a4=0; //临时变量
static int k=0;

a1=t/1000; //取t的千位//
a2=t%1000/100;//取t的百位//
a3=t%100/10; //取t的十位//
a4=t%10; //取t的个位//

if (k==0){A1=1;A2=0;A3=0;A4=0;P0=yima[a1];}
else if(k==1){A1=0;A2=1;A3=0;A4=0;P0=yima[a2];}
else if(k==2){A1=0;A2=0;A3=1;A4=0;P0=yima[a3];}
else if(k==3){A1=0;A2=0;A3=0;A4=1;P0=yima[a4];}

k++;
if(k>3) k=0;
}

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

main()
{
/* TMOD=0X01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
EA =1;
TR0=1;
ET0=1; */

while(1)
{
tempchange(); //启动温度转换
//启动温度转换以后需要延时,大概在750ms
for(i=0;i<40;i++) //显示5次(不加for 前面3位数码管很暗)或者显示函数改用中断写
{
display(t);
delay(1);
}
t=tmp();

}

}

/*

void t0()interrupt 1 using 1 //中断程序负责显示t的值
{
unsigned char a1=0,a2=0,a3=0,a4=0; //临时变量
static int k=0;

TH0=(65536-2000)/256;
TL0=(65536-2000)%256;

a1=t/1000; //取t的千位//
a2=t%1000/100;//取t的百位//
a3=t%100/10; //取t的十位//
a4=t%10; //取t的个位//

if (k==0){A1=1;A2=0;A3=0;A4=0;P0=yima[a4];}
else if(k==1){A1=0;A2=1;A3=0;A4=0;P0=yima[a3];}
else if(k==2){A1=0;A2=0;A3=1;A4=0;P0=yima[a2];}
else if(k==3){A1=0;A2=0;A3=0;A4=1;P0=yima[a1];}
k++;
if(k>3) k=0;

// TH0=240;//扫描速度
} */
meira

我给你发一个我写的吧,11.0592的晶振,

void delay_ds(uchar g)

{

while(--g);

}

uchar rdata_ds()

{

uchar a,i;

for (i=0;i<8;i++)

{

ds=0;

_nop_();

a>>=1;

ds=1;

delay_ds(1);

if (ds)

{

a|=0x80;

}

delay_ds(10);

}

return a;

}

void cmd_ds(uchar a)

{

uchar i;

for (i=0;i<8;i++)

{

ds=0;

_nop_();

ds=a&0x01;

delay_ds(10);

ds=1;

a>>=1;

delay_ds(1);

}

}

void init_ds()

{

ds=1;

delay_ds(1);

ds=0;

delay_ds(250);

ds=1;

delay_ds(100);

}

uint ds18()

{

uchar a,b;

uint c;

float t;

init_ds();

cmd_ds(0xcc);

cmd_ds(0x44);

init_ds();

cmd_ds(0xcc);

cmd_ds(0xbe);

a=rdata_ds();

b=rdata_ds();

c=b;

c<<=8;

c|=a;

t=c*0.0625;

c=t+0.5;

return c;

}

ds18();就是温度值,

看不懂的地方可以问我。

clou

肯定是程序问题,你先保证硬件没问题,再用别人的程序试试...

CarieVinne

DS1820是个娇气的东东,对时序操作很严格,如果一点不对,都可能测不出温度,你的晶振到底是多少?这个要确定,不能大概,还有那些延时程序,必须要精确延时,按DATASHEET上的标准来,不然都不行。

相关推荐

便笺的单词便笺的单词是什么

便笺的单词有:scratchpad,scratch pad。 便笺的单词有:scratch pad,scratchpad。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。 结构是:便(左右结构)笺(上下结构)。 词性是:名词。 拼音是:biàn jiān。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的成语听其自便公私两便鱼笺雁书便辞巧说边老便便空腹便便蛮笺象管关于便笺的词语听其自便便辞巧说方便门一举两便雁素鱼笺公私两便蛮笺象管鱼笺雁书关于便笺的造句1、萨缪尔森的工作效率也奇高。作为学生的我们,当时常常在信箱里收到他放的粉红色便笺,上面记录了他的一些想法。2、电子纸可以是传统便笺本或便条贴那么大,上面带有小点,这样可以使笔“看到”上面都写了什么。3、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。4、德赖尔说,很多象牙板上记载的都是上贡给蝎子王的亚麻布和油的书面记录,还有一些便笺、数字,及国王名字和机构名称的目录。5、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。点此查看更多关于便笺的详细信息
2023-07-14 08:45:541

scratch怎么读?

scratch1、英[skr_t_]美[skr_t_]短语:1、scratchpad即开式奖券;草稿栏;便笺本;暂存式。2、ScratchResistance不易刮花;[涂料]耐擦伤性;刮不花;抗划伤。scratch近义词:abrasion。短语:1、abrasionvalue[机]磨耗值;磨耗量;磨损值;磨耗值。2、abrasionmachine磨损试验机;磨耗试验机;磨耗机;耐磨试验机。3、abrasiondrill回旋钻;磨钻;[机]回转钻;旋钻。一站式出国留学攻略 http://www.offercoming.com
2023-07-14 08:46:021

英语便签怎么写

label
2023-07-14 08:46:214

现代计算机属于单纯的冯诺依曼或哈佛结构吗?

现代计算机不会只用某种结构,总是混合的。CPU核内部的L1Cache是分成指令ICache和数据DCache,但是L2Cache是共享的。按定义CPU核内部是哈佛结构,外部是冯诺依曼结构。个人电脑当中,除了冯诺依曼和哈佛以外的架构多了去了,比如你看视频就是依靠视频解码器,它不是CPU而是DSP。所以只有通用CPU大致上是可以分为冯诺依曼和哈佛结构。介绍冯诺依曼架构组成部分之间的结合方式可以有很大差别,比如存储与控制结合如SPM(ScratchPadMemory);存储与计算结合如Near-Memory Computation和忆阻器等存算一体化硬件。这些新型硬件某种层面是突破了冯诺依曼结构,但它是在通用性上有一定欠缺,所以不能算完全颠覆。
2023-07-14 08:46:281

用什么软件后缀名是bxn文件

这是illusion公司动画文件阿,就是用一张一张的图做成的动画,我只找到作动画的软件,还没找到拆它(就是再拆成一张一张的画)的软件
2023-07-14 08:46:432

怎么测试hql语句(就像在数据库客户端调试sql一样) Eclipse

我知道怎么调试了,不过还是谢谢你!右键选中工程---》myeclipse--->open hql editor:可你建一个app工程,加入 hibernate配置,建立sessionFactory下一步应该不用说了吧!就是建立一个main方法去测试就行了!
2023-07-14 08:46:522

关于python代码运行助手,请问如何在网页输入代码?

第一步:将这个网站(网页链接)中的代码复制到文本编辑器中,并将文件保存为.py格式。第二步:在自己的电脑运行界面运行第一步中的文件第三步:在支持html5的浏览器打开这个网站:https://localhost:39093/,再输入你想测试的代码;鼠标往下滑,左下角有run按钮,点击即可。
2023-07-14 08:47:024

PC机与单片机温度检测系统的设计

怎么回答呢?
2023-07-14 08:47:092

第一次ACCA机考注意事项

第一次ACCA机考注意事项包括:1、考生需要提前30分钟到达考场,签到。2、开考1小时以后到达的考生不能入场;3、考生不可以提前结束考试离场;4、考生需要准备准考证、身份证件、计算器;5、考场会发放草稿纸,不可在草稿纸以外的区域书写。ACCA机考具体注意事项1、考生需要提前30分钟到达考场,进行签到;2、在开考后1小时内到达的迟到考生可以入场,但不能补偿考试时间,开考1小时以后到达的考生不能入场;3、未到考试结束时间,考生不可以提前结束考试离场;4、进入考场时,考生需要准备准考证、身份证件、计算器,计算器为不具备编程功能、无线通讯功能和文字存储功能的科学计算器,不得携带带电子产品,食品、饮料,与考试有关的书籍、笔记等资料,手机等通讯设备需关闭。按照监考老师要求,放在指定位置。5、考试开始时,考场内会发放草稿纸,考生不可在草稿纸以外的区域(如准考证)书写。ACCA机考文字部分可以复制粘贴吗考生在ACCA机考中可以使用剪切,复制和粘贴功能,在同一个文字处理和电子表格答题区域中或者在草稿纸(ScratchPad)中使用剪切,复制和黏贴功能。选中后使用快捷键,就可以实现该功能。不过考生需要根据考场情况使用快捷键,因为部分考场的监考官会提醒考生一些快捷键会导致电脑死机之类的问题。ACCA机考文字复制后可以清除格式吗ACCA机考文字复制后可以清除格式,考生复制粘贴文字后可能会出现格式改变的问题,可以通过workingpaper的右上角点击清除格式即可。考生也可以highlight文字,选取需要highlight的文字,将小手图标于试题页面左上角改为箭头图标,就能实现highlight。
2023-07-14 08:47:271

如何判断单片机是否正常工作

供电正常,RST能正常复位,晶振脚有正弦波,EA接5V(一般情况下),ALE脚有高频方波输出。DS18B20就是个温度传感器,具体用法之类的,网上太多,灰一样. DS18B20原理与分析 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。 1.DS18B20简介 (1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任何外围元件。 (3)可用数据线供电,电压范围:+3.0~ +5.5 V。 (4)测温范围:-55 ~+125 ℃。固有测温分辨率为0.5 ℃。 (5)通过编程可实现9~12位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。DS18B20的测温原理 DS18B20的测温原理如图2所示,图中低温度系数晶振的振荡频率受温度的影响很小〔1〕,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在 -55 ℃ 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理。 另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。各种操作的时序图与DS1820相同,可参看文献〔2〕。 DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±1/2LSB,即0.25℃。温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。DS18B20工作过程一般遵循以下协议:初始化——ROM操作命令——存储器操作命令——处理数据① 初始化单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。② ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令列表如下:Read ROM(读ROM)[33h]此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。Match ROM( 符合ROM)[55h]此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM( 跳过ROM )[CCh]在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)[F0h]当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)[ECh]此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。③ 存储器操作命令Write Scratchpad(写暂存存储器)[4Eh]这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。Read Scratchpad(读暂存存储器)[BEh]这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Copy Scratchpad(复制暂存存储器)[48h]这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。Convert T(温度变换)[44h]这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。Recall E2(重新调整E2)[B8h]这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。Read Power Supply(读电源)[B4h]对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源供电,“1”=外部电源供电。④ 处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如图3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。
2023-07-14 08:47:351

:DSP程序运行时如何得到程序占用的程序空间大小和数据空间

硬盘空间丢失原因及解决办法大容量硬盘以其较好的性价比越来越受到用户的欢迎,很多用户装机或是升级电脑硬盘时纷纷将目光投向了大容量的硬盘。一些用户在购买硬盘后发现与硬盘实际标称的容量不符,或是有些用户在使用一段时间会发现自己的硬盘容量变小,那么针对这些问题,我们就来谈谈硬盘容量的问题。首先我们要正确认识硬盘容量大小的有关问题。经常关注硬盘报道,稍微有些硬盘常识的用户都会知道,硬盘的实际容量一般都小于其标称容量。造成这种情况的主要原因是,我们大部分情况下是以1G=1024M来定义硬盘容量的,而大部分主板的BIOS设计及测试软件也是以1024K字节来计算硬盘容量的,而厂家为了方便计算与生产,往往是以每兆1000K字节计算容量,这样一来二者间便出现了大约5%的差异。而硬盘容量又有纯粹由磁头数、柱面数等物理参数计算得到的物理盘容量以及在经过分区、格式化 等操作后实际可用空间的逻辑盘容量之分。此外在CMOS中选择不同的工作模式(NORMA、LBA、 LARGE),也会造成容量的不一致。由于有这些因素的影响,一般而言硬盘测试容量与标称容量存在5%-10%左右的差距是基本正常的。和硬盘容量有关的是主板CMOS中NORMAL、LBA、LARGE的三种硬盘模式,简单说由于最早的BIOS只支持不大于528M容量的硬盘, BIOS中的 C/H/S参数与硬盘实际的完全一样,这时硬盘的模式就是NORMAL,后来为解决528M的限制出现了LARGE模式,它通过增加逻辑柱面的数目,使 BIOS支持的容量扩大了一倍,但这是个过度的模式,很快就没有使用了。随着大容量硬盘的流行,现在CMOS的硬盘模式中,实际上只有LBA 一项有实用意义,而设为NORMAL、LARGE都不能正常识别及使用大容量硬盘。明白了以上道理后,我们似乎就不需要再关注硬盘空间丢失的问题了。其实不然,在很多情况下,硬盘也会不同程序的丢失空间。如硬盘坏道、隐藏的垃圾文件等等。造成硬盘空间丢失的原因有很多,如误操作、程序非正常退出、非正常关机、病毒感染、程序运行中的错误或者对硬件分区的不合理等情况都会造成硬盘空间的丢失。那么下面我们就几种情况下容易靠成硬盘空间丢失浪费进行一下简单的分析。1、硬盘坏道硬盘坏道是造成硬盘空间丢失最为严重的,硬盘出现坏道会要及时的利用各种方法进行修复或是屏蔽,因为严重的硬盘坏道是硬盘的物理损坏,并伴有传染性,如果不及时的修复与处理,坏道便会赿来越大,直至殃及整个硬盘。硬盘一旦出现坏道,一定要记得及时备份重要的文件数据,并不是在本硬盘上备份,要及时的更换其它硬盘进行备份或是刻录成盘。因为硬盘一旦出现坏道后,但意味着此款硬盘寿命已经不会太长,即便是用软件修复,也存在着严重的危险,相信硬盘上的重要数据要比硬盘本身更值钱。2、分区过大对硬盘的逻辑分区是否合理,这不仅关系到硬盘文件的分类管理,而且也直接关系到硬盘空间的充分利用。我们知道文件的存储是以簇为单位的,也就是说一个文件要占用一个或多个簇,而簇是由一个或多个扇区构成。如果一个簇只有一个字节被一个文件占用,那么该簇的其他部分即使是空闲的,也不能被别的文件所利用,这样空间就被浪费了。由此可见对硬盘分区在大小划分上是否合理,直接关系到硬盘空间的使用情况。拿现在80GB容量的硬盘来讲,我们尽量要多划分几个逻辑盘,像以20GB、30GB为单位进行划分,建议不要超过40GB。但也并不是划分的越小越好,如80GB的就不再建议以10GB为单位进行分区,因为太多的分区不但会影响整个系统的运行速度,而且我们管理使用起来也极不方便。像对160GB大容量的硬盘,我们可以根据自己的实际需要情况,合理的进行分区,一般以40GB为单位就可以了,最好别超过60GB。3、临时文件临时文件造成的硬盘空间的浪费也是一个容易忽视的问题。我们在使用电脑当中,有些时候在运行应用程序时出现错误而非正常退出,或是电脑突然断关机等,都会使很多.TMP类型的文件继续存放在硬盘中,在 Windows窗口环境中运行应用程序时,会自动产生以~GRB开头的用于存放有关屏幕信息的文件,另外,还有一个用于Windows本身临时交换文件的 win386.swp。当程序正常退出运行之前,应用程序会将这些文件删除,而非正常退出时,应用程序无法删除它们。可以定期清理这些文件。清理的方法很简单,简单介绍一下。选择要清理的盘符,如“C”盘,在盘符上单击鼠标右键,选择“属性”,然后选择“常规”下我们可以看到“磁盘清整” 的选项,点击进行“磁盘清理”窗口,同样选择“磁盘清理”,尔后我们可以看到有几个选项让我们选择,点击前面的空格选定后点击确定点可,如果要进行其它的操作可以点击“其他选项”来完成。4、簇的丢失文件分配表(FAT)是软盘或硬盘上的一个隐含表。FAT记录如何将文件存储在特定的(不一定是连续的)簇上。文件分配表采用一种简单的方法不停地跟踪数据。在FAT中,第一簇的入口是用于存储文件的第二簇的地址。在第二个簇入口处则是第三个簇的地址,等等,直到包含文件结束码的最终簇入口。很明显,如果FAT表数据因为某种原因遭到破坏,就会导致硬盘数据的逻辑连续性发生紊乱,从而发生硬盘空间丢失的问题。这种空间丢失的故障用一般的磁盘修复工具都可以解决,但数据往往无法修复。由于传统FAT格式的缺陷,若某个簇没有在任何文件分配链中出现,而且该簇在相应的文件分配表中又被标记为非零时,这时该簇既没有被任何文件使用,又不可以再为其他文件所用,这样就发生了"簇丢失"现象。簇的丢失必然导致硬盘空间的丢失。这种"丢失"空间的现象通常是由于程序在运行中非正常终止、在 Win98环境中非正常关机等原因造成的。因此,从以上我们认为,在大部分硬盘的分区时要坚决采用NTFS格式,当然那些老式硬盘的还是建议采用FAT32,这是解决以上问题最有效的方式。5、合理使用硬盘空间的设置回收站空间设置直接影响到硬盘上可用空间的大小,最好你的回收站大小设置为硬盘空间的5%,并且你要定期清空你的回收站。再有一点就是,IE中的Internet文件临时存放空间的设置,如果你将它设置得太大,它存储的Internet文件就会占用你的硬盘空间。我想这两项的设置过程大家一定非常熟悉了吧,在这里就不再多罗嗦了。
2023-07-14 08:47:433

急求基于单片机AT89C51的数字温度报警器,具有上下限的在-20度到70度之间的汇编程序或C语言程序!拜托

;单片机DS18B20温度计C语言程序 #include<reg51.h> #include<intrins.h> #include <math.H> //要用到取绝对值函数abs()//通过DS18B20测试当前环境温度, 并通过数码管显示当前温度值, 目前显示范围: -55~ +125度 sbit wela = P2^7; //数码管位选 sbit dula = P2^6; //数码管段选 sbit ds = P2^2; int tempValue; //0-F数码管的编码(共阳极) unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //0-9数码管的编码(共阳极), 带小数点 unsigned char code tableWidthDot[]={0x40, 0x79, 0x24, 0x30,0x19, 0x12, 0x02,0x78, 0x00, 0x10}; //延时函数, 对于11.0592MHz时钟, 例i=10,则大概延时10ms. void delay(unsigned int i) { unsigned int j; while(i--) { for(j = 0; j < 125; j++); } }//初始化DS18B20 //让DS18B20一段相对长时间低电平, 然后一段相对非常短时间高电平, 即可启动 void dsInit() { //对于11.0592MHz时钟, unsigned int型的i, 作一个i++操作的时间大于?us unsigned int i; ds = 0; i = 100; //拉低约800us, 符合协议要求的480us以上 while(i>0) i--; ds = 1; //产生一个上升沿, 进入等待应答状态 i = 4; while(i>0) i--; } void dsWait() { unsigned int i; while(ds); while(~ds); //检测到应答脉冲 i = 4; while(i > 0) i--;}//向DS18B20读取一位数据//读一位, 让DS18B20一小周期低电平, 然后两小周期高电平,//之后DS18B20则会输出持续一段时间的一位数据bit readBit(){ unsigned int i; bit b; ds = 0; i++; //延时约8us, 符合协议要求至少保持1us ds = 1; i++; i++; //延时约16us, 符合协议要求的至少延时15us以上 b = ds; i = 8; while(i>0) i--; //延时约64us, 符合读时隙不低于60us要求 return b;}//读取一字节数据, 通过调用readBit()来实现unsigned char readByte(){ unsigned int i; unsigned char j, dat; dat = 0; for(i=0; i<8; i++) { j = readBit(); //最先读出的是最低位数据 dat = (j << 7) | (dat >> 1); } return dat;}//向DS18B20写入一字节数据void writeByte(unsigned char dat){ unsigned int i; unsigned char j; bit b; for(j = 0; j < 8; j++) { b = dat & 0x01; dat >>= 1; //写"1", 将DQ拉低15us后, 在15us~60us内将DQ拉高, 即完成写1 if(b) { ds = 0; i++; i++; //拉低约16us, 符号要求15~60us内 ds = 1; i = 8; while(i>0) i--; //延时约64us, 符合写时隙不低于60us要求 } else //写"0", 将DQ拉低60us~120us ds = 0; i = 8; while(i>0) i--; //拉低约64us, 符号要求 ds = 1; i++; i++; //整个写0时隙过程已经超过60us, 这里就不用像写1那样, 再延时64us了 }}//向DS18B20发送温度转换命令void sendChangeCmd(){ dsInit(); //初始化DS18B20, 无论什么命令, 首先都要发起初始化 dsWait(); //等待DS18B20应答 delay(1); //延时1ms, 因为DS18B20会拉低DQ 60~240us作为应答信号 writeByte(0xcc); //写入跳过序列号命令字 Skip Rom writeByte(0x44); //写入温度转换命令字 Convert T}//向DS18B20发送读取数据命令void sendReadCmd(){ dsInit(); dsWait(); delay(1); writeByte(0xcc); //写入跳过序列号命令字 Skip Rom writeByte(0xbe); //写入读取数据令字 Read Scratchpad}//获取当前温度值int getTmpValue(){ unsigned int tmpvalue; int value; //存放温度数值 float t; unsigned char low, high; sendReadCmd(); //连续读取两个字节数据 low = readByte(); high = readByte(); //将高低两个字节合成一个整形变量 //计算机中对于负数是利用补码来表示的 //若是负值, 读取出来的数值是用补码表示的, 可直接赋值给int型的value tmpvalue = high; tmpvalue <<= 8; tmpvalue |= low; value = tmpvalue; //使用DS18B20的默认分辨率12位, 精确度为0.0625度, 即读回数据的最低位代表0.0625度 t = value * 0.0625; //将它放大100倍, 使显示时可显示小数点后两位, 并对小数点后第三进行4舍5入 //如t=11.0625, 进行计数后, 得到value = 1106, 即11.06 度 //如t=-11.0625, 进行计数后, 得到value = -1106, 即-11.06 度 value = t * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5 return value;}unsigned char const timeCount = 3; //动态扫描的时间间隔//显示当前温度值, 精确到小数点后一位//若先位选再段选, 由于IO口默认输出高电平, 所以当先位选会使数码管出现乱码void display(int v){ unsigned char count; unsigned char datas[] = {0, 0, 0, 0, 0}; unsigned int tmp = abs(v); datas[0] = tmp / 10000; datas[1] = tmp % 10000 / 1000; datas[2] = tmp % 1000 / 100; datas[3] = tmp % 100 / 10; datas[4] = tmp % 10; if(v < 0) { //关位选, 去除对上一位的影响 P0 = 0xff; wela = 1; //打开锁存, 给它一个下降沿量 wela = 0; //段选 P0 = 0x40; //显示"-"号 dula = 1; //打开锁存, 给它一个下降沿量 dula = 0; //位选 P0 = 0xfe; wela = 1; //打开锁存, 给它一个下降沿量 wela = 0; delay(timeCount); } for(count = 0; count != 5; count++) { //关位选, 去除对上一位的影响 P0 = 0xff; wela = 1; //打开锁存, 给它一个下降沿量 wela = 0; //段选 if(count != 2) { P0 = table[datas[count]]; //显示数字 } else { P0 = tableWidthDot[datas[count]]; //显示带小数点数字 } dula = 1; //打开锁存, 给它一个下降沿量 dula = 0; //位选 P0 = _crol_(0xfd, count); //选择第(count + 1) 个数码管 wela = 1; //打开锁存, 给它一个下降沿量 wela = 0; delay(timeCount); }}void main(){ unsigned char i; while(1) { //启动温度转换 sendChangeCmd(); //显示5次 for(i = 0; i < 40; i++) { display(tempValue); } tempValue = getTmpValue(); }
2023-07-14 08:47:571

java操作Office办公软件(office办公软件基本操作)

说一下具体方式,首先java操作office需要有第三方的jar来支持比如poi-32jar、jacobjar、jxljar、poi-contrib-32-FINAL-20081019jar、poi-scratchpad-32-FINAL-20081019jar之类的jar,有了这些第三方包的支持,然后根据自己的需求来对照包里面具体的工具类来实现,自动播放和自动下来观看建议自己写个timer来实现javautilTimer和javautilTimerTask
2023-07-14 08:48:041

用lcd1602显示DS18B20的 温度,为什么温度值一直是25.5度,然而改了定义类型,就变成15.9度,急求解答。

应该延时不够精确引起,不知道你用的是什么型号单片机,DS18B20延时要求很严格,不同单片机执行后延时不同的,而DS18B20要求的延时差一点点就会出现各种奇怪问题,慢慢调整延时试试吧
2023-07-14 08:48:561

我编写DS18b20程序,想显示温度在三个LED灯上,但LED一直数字不变,下面是程序,开发板TX-1C晶振 11.0592M

应该是时序不对,18B20对时序要求很严格
2023-07-14 08:49:043

求单片机控制温度传感器,LCD显示温度值,温度达到30度时,蜂鸣器报警的报警程序

貌似楼下的回道都很到位 我只能说这个难度不大 有问题可以交流下
2023-07-14 08:49:127

STC89C52单片机,用C语言编温度报警器的程序

给你个例子void main(){int a;cin>>a;if(cin)cout<<"a is a interger";elsecout<<"a is not a interger";}应该是同一个原理
2023-07-14 08:49:472

DS18B20为什么每执行一次memory命令就要复位一次?

DS18B20的pdf有详细时序读写说明。
2023-07-14 08:49:561

:DSP程序运行时如何得到程序占用的程序空间大小和数据空间

打开项目下的.MAP文件 然后会看到类似下面的列表****************************************************************************** TMS320C54x COFF Linker PC Version 3.83 ******************************************************************************>> Linked Thu Aug 19 15:31:15 2010OUTPUT FILE NAME: <main.out>ENTRY POINT SYMBOL: "_c_int00" address: 00028000MEMORY CONFIGURATION name origin length used attr fill ---------------------- -------- --------- -------- ---- --------PAGE 0: ROMvec 00000080 00000080 00000080 RWIX PSWITCH 00000100 00000200 000000ba RWIX //ROM 0000f000 00000f00 00000000 RWIX PARAM1 00018000 00008000 00000000 RWIX PARAM2 00028000 00008000 00006d69 RWIX PARAM3 00038000 00008000 000031c0 RWIXPAGE 1: SCRATCHPAD 00000060 00000020 00000000 RWIX DSTACK 00000300 00001000 00001000 RWIX CIPHER_FLAG 00001300 00000010 00000000 RWIX DARAM 00001310 00006cf0 00001d93 RWIXPAGE 2: IOPORT 00000000 00010000 00000000 RWI 上面就是你在CMD中按块划分的各空间,有USED这列,是你已经用了的
2023-07-14 08:50:052

暂存英文

暂存:Temporary storage辞典例句You can leave your luggage at the Left - Baggage room during transit.在过境期间你可以把行李放在暂存行李房.Working memory ( or short - term memory ) has been described as the mind"s scratchpad.工作记忆 ( 或 短期 的记忆 ) 已经被描述成是头脑中的一种暂存.Is there a place we can check in our coats?有暂存大衣的地方吗 ?But Intel also repored lower demand for its flash - memory chips.但是英特尔同时也宣布降低对其暂存芯片的要求.Conveyors & Buffering system : Offer every type for all PCB production line.传送装置 及 暂存系统: 可提供所有PCB生产线所需的机种.However, only a temporary and custody, not a permanent responsibility.可是只是暂存和保管, 并不是永久的责任.It then reload s register and transfers control to the selected process.然后装入暂存器并传输控制到选定的过程.Starting create CD on - the - fly process in test mode.正在开始无暂存直接刻录CD测试模式.Create a new profile from scratch.从暂存区创建新的简要表.液弹收集器具有气液两相的分离功能和液体的暂存功能.此时已经适量添加酒花,并加热麦汁暂存罐中的麦汁, 可能要让其达到煮沸温度.From the wort holding tank onwards there is a continuous flow through the boiling section.
2023-07-14 08:50:271

单片机关于ds18b20 c语言程序的问题

程序不懂,原装DS18B20就有
2023-07-14 08:50:512

51单片机和DS2438测电池剩余电量的程序中的一部分,看不懂

额 能不能提供相应的子程序 或者说明子程序功能
2023-07-14 08:51:121

org.apache.poi.hslf报错,是因为缺少什么包

找到了吗,我这也出错了,不知道少了哪个jar包?
2023-07-14 08:51:286

用C语言设计多个ds18b20温度报警

编译时说TH、TL、p1^1、p1^2未定义,请问要怎样改呢还有别的错吗答:应该你编译时的文件没有加入头文件,应该加入 #include <reg52.h>
2023-07-14 08:51:551

java读取doc,pdf问题。

环境准备txt利用common-iopdf利用pdfbox剩下的用POI关于POI,读取xls没啥特别的,主要是读取doc和ppt,需要下载poi源代码,然后将poi-src-3.7-20101029.zippoi-3.7srcscratchpadsrc下的所有文件copy到工程,或者自己封装个jar包jar包依赖code如下:package test;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.text.NumberFormat;import org.apache.commons.io.FileUtils;import org.apache.pdfbox.pdfparser.PDFParser;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.util.PDFTextStripper;import org.apache.poi.POIXMLDocument;import org.apache.poi.POIXMLTextExtractor;import org.apache.poi.hslf.HSLFSlideShow;import org.apache.poi.hslf.model.Slide;import org.apache.poi.hslf.model.TextRun;import org.apache.poi.hslf.usermodel.RichTextRun;import org.apache.poi.hslf.usermodel.SlideShow;import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.hwpf.extractor.WordExtractor;import org.apache.poi.openxml4j.exceptions.OpenXML4JException;import org.apache.poi.openxml4j.opc.OPCPackage;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.xslf.extractor.XSLFPowerPointExtractor;import org.apache.poi.xssf.usermodel.XSSFCell;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import org.apache.poi.xwpf.extractor.XWPFWordExtractor;import org.apache.xmlbeans.XmlException;public class ReadFileUtils {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {ReadFileUtils rf = new ReadFileUtils();String s = "";// s = rf.readTXT("E:/itsm文档的后缀名分析报告2.txt");// s = rf.readPDF("E:/memcached全面剖析.pdf");// s = rf.readEXCEL("E:/副本工作量及成本模板.xls");// s = rf.readEXCEL2007("E:/功能点估算方案.xlsx");// s = rf.readWORD("E:/pms中文.doc");// s = rf.readWORD2007("E:/功能点估算方法.docx");//s = rf.readPPT("E:/精细化管理信息系统项目汇报v1.0.ppt");s = rf.readPPT2007("e:/精细化管理信息系统项目汇报v1.0.pptx");System.out.println(s);}// 读取pptpublic String readPPT(String file) throws IOException {StringBuilder sb = new StringBuilder();SlideShow ppt = new SlideShow(new HSLFSlideShow(file));Slide[] slides = ppt.getSlides();//提取文本信息 for (Slide each : slides) { TextRun[] textRuns = each.getTextRuns(); for (int i=0 ;i< textRuns.length; i++ ) { RichTextRun[] richTextRuns = textRuns.getRichTextRuns(); for (int j = 0; j < richTextRuns.length; j++) { sb.append(richTextRuns[j].getText()); } sb.append(" "); } sb.append(" ");}return sb.toString();}// 读取pptxpublic String readPPT2007(String file) throws IOException, XmlException, OpenXML4JException { return new XSLFPowerPointExtractor(POIXMLDocument.openPackage(file)).getText(); }// 读取xls文件public String readEXCEL(String file) throws IOException {StringBuilder content = new StringBuilder();HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(file));// 创建对Excel工作簿文件的引用for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {if (null != workbook.getSheetAt(numSheets)) {HSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheetfor (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {if (null != aSheet.getRow(rowNumOfSheet)) {HSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {if (null != aRow.getCell(cellNumOfRow)) {HSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值if (this.convertCell(aCell).length() > 0) {content.append(this.convertCell(aCell));}}content.append(" ");}}}}}return content.toString();}// 读取xlsx文件public String readEXCEL2007(String file) throws IOException {StringBuilder content = new StringBuilder();XSSFWorkbook workbook = new XSSFWorkbook(file);for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {if (null != workbook.getSheetAt(numSheets)) {XSSFSheet aSheet = workbook.getSheetAt(numSheets);// 获得一个sheetfor (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {if (null != aSheet.getRow(rowNumOfSheet)) {XSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一个行for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {if (null != aRow.getCell(cellNumOfRow)) {XSSFCell aCell = aRow.getCell(cellNumOfRow);// 获得列值if (this.convertCell(aCell).length() > 0) {content.append(this.convertCell(aCell));}}content.append(" ");}}}}}return content.toString();}private String convertCell(Cell cell) {NumberFormat formater = NumberFormat.getInstance();formater.setGroupingUsed(false);String cellValue = "";if (cell == null) {return cellValue;}switch (cell.getCellType()) {case HSSFCell.CELL_TYPE_NUMERIC:cellValue = formater.format(cell.getNumericCellValue());break;case HSSFCell.CELL_TYPE_STRING:cellValue = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BLANK:cellValue = cell.getStringCellValue();break;case HSSFCell.CELL_TYPE_BOOLEAN:cellValue = Boolean.valueOf(cell.getBooleanCellValue()).toString();break;case HSSFCell.CELL_TYPE_ERROR:cellValue = String.valueOf(cell.getErrorCellValue());break;default:cellValue = "";}return cellValue.trim();}// 读取pdf文件public String readPDF(String file) throws IOException {String result = null;FileInputStream is = null;PDDocument document = null;try {is = new FileInputStream(file);PDFParser parser = new PDFParser(is);parser.parse();document = parser.getPDDocument();PDFTextStripper stripper = new PDFTextStripper();result = stripper.getText(document);} finally {if (is != null) {is.close();}if (document != null) {document.close();}}return result;}// 读取doc文件public String readWORD(String file) throws Exception {String returnStr = "";try {WordExtractor wordExtractor = new WordExtractor(new FileInputStream(new File(file)));returnStr = wordExtractor.getText();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return returnStr;}// 读取docx文件public String readWORD2007(String file) throws Exception { return new XWPFWordExtractor(POIXMLDocument.openPackage(file)).getText(); }// 读取txt文件public String readTXT(String file) throws IOException {String encoding = ReadFileUtils.get_charset(new File(file));if (encoding.equalsIgnoreCase("GBK")) {return FileUtils.readFileToString(new File(file), "gbk");} else {return FileUtils.readFileToString(new File(file), "utf8");}}private static String get_charset(File file) throws IOException {String charset = "GBK";byte[] first3Bytes = new byte[3];BufferedInputStream bis = null;try {boolean checked = false;bis = new BufferedInputStream(new FileInputStream(file));bis.mark(0);int read = bis.read(first3Bytes, 0, 3);if (read == -1)return charset;if (first3Bytes[0] == (byte) 0xFF && first3Bytes[1] == (byte) 0xFE) {charset = "UTF-16LE";checked = true;} else if (first3Bytes[0] == (byte) 0xFE&& first3Bytes[1] == (byte) 0xFF) {charset = "UTF-16BE";checked = true;} else if (first3Bytes[0] == (byte) 0xEF&& first3Bytes[1] == (byte) 0xBB&& first3Bytes[2] == (byte) 0xBF) {charset = "UTF-8";checked = true;}bis.reset();if (!checked) {// int len = 0;int loc = 0;while ((read = bis.read()) != -1) {loc++;if (read >= 0xF0)break;if (0x80 <= read && read <= 0xBF) // 单独出现BF以下的,也算是GBKbreak;if (0xC0 <= read && read <= 0xDF) {read = bis.read();if (0x80 <= read && read <= 0xBF) // 双字节 (0xC0 - 0xDF)// (0x80// - 0xBF),也可能在GB编码内continue;elsebreak;} else if (0xE0 <= read && read <= 0xEF) {// 也有可能出错,但是几率较小read = bis.read();if (0x80 <= read && read <= 0xBF) {read = bis.read();if (0x80 <= read && read <= 0xBF) {charset = "UTF-8";break;} elsebreak;} elsebreak;}}// System.out.println( loc + " " + Integer.toHexString( read )// );}} catch (Exception e) {e.printStackTrace();} finally {if (bis != null) {bis.close();}}return charset;}}
2023-07-14 08:52:181

急求教大哥大姐们基于51单片机的数字温度计设计 小弟最近的实习设计就是这个~~~~~先谢谢了

这个做出来说容易容易 说难也难 关键是耗时间 不是不愿意帮忙 我建议楼主还是自己查查资料 做个试试 自己能做出来的 爱电子社区
2023-07-14 08:52:262

谁能给我一个详细的Java通过Apache POI导出Excel方法,最好能给完整代码

这是在开发中操作excel等等是最常见不过的问题了,今天给大家分享一下Apache POI导出Excel方法,ExportExcel 可以直接copy过去改改就可以用代码如下:01.package com.smnpc.util; 02. 03.import java.io.FileOutputStream; 04.import java.io.IOException; 05.import java.util.Calendar; 06. 07.import org.apache.poi.hssf.usermodel.HSSFCell; 08.import org.apache.poi.hssf.usermodel.HSSFCellStyle; 09.import org.apache.poi.hssf.usermodel.HSSFDataFormat; 10.import org.apache.poi.hssf.usermodel.HSSFRow; 11.import org.apache.poi.hssf.usermodel.HSSFSheet; 12.import org.apache.poi.hssf.usermodel.HSSFWorkbook; 13. 14./** 15.* 生成导出Excel文件对象 16.*17.* @author Robert 18.*19.*/ 20.public class ExportExcel { 21.// 设置cell编码解决中文高位字节截断 22.// private static short XLS_ENCODING = HSSFWorkbook.ENCODING_UTF_16; 23.// 定制日期格式 24.private static String DATE_FORMAT = " m/d/yy "; // "m/d/yy h:mm" 25.// 定制浮点数格式 26.private static String NUMBER_FORMAT = " #,##0.00 "; 27. 28.private String xlsFileName; 29. 30.private HSSFWorkbook workbook; 31. 32.private HSSFSheet sheet; 33. 34.private HSSFRow row; 35. 36./** 37.* 初始化Excel 38.*39.* @param fileName 40.* 导出文件名 41.* @return 42.*/ 43.public void XLSExport(String fileName) { 44.this.xlsFileName = fileName; 45.this.workbook = new HSSFWorkbook(); 46.this.sheet = workbook.createSheet(); 47.} 48. 49./** 50.* 导出Excel文件 51.*52.* @throws IOException 53.* @throws XLSException 54.*/ 55.public void exportXLS() throws IOException { 56.FileOutputStream fOut = new FileOutputStream(xlsFileName); 57.workbook.write(fOut); 58.fOut.flush(); 59.fOut.close(); 60.} 61. 62./** 63.* 增加一行 64.*65.* @param index 66.* 行号 67.*/ 68.public void createRow(int index) { 69.this.row = this.sheet.createRow(index); 70.} 71. 72./** 73.* 设置单元格 74.*75.* @param index 76.* 列号 77.* @param value 78.* 单元格填充值 79.*/ 80.public void setCell(int index, String value) { 81.HSSFCell cell = this.row.createCell((short) index); 82.cell.setCellType(HSSFCell.CELL_TYPE_STRING); 83.// cell.setEncoding(XLS_ENCODING); 84.cell.setCellValue(value); 85.} 86. 87./** 88.* 设置单元格 89.*90.* @param index 91.* 列号 92.* @param value 93.* 单元格填充值 94.*/ 95.public void setCell(int index, Calendar value) { 96.HSSFCell cell = this.row.createCell((short) index); 97.// cell.setEncoding(XLS_ENCODING); 98.cell.setCellValue(value.getTime()); 99.HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式 100.cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat(DATE_FORMAT)); // 设置cell样式为定制的日期格式 101.cell.setCellStyle(cellStyle); // 设置该cell日期的显示格式 102.} 103. 104./** 105.* 设置单元格 106.*107.* @param index 108.* 列号 109.* @param value 110.* 单元格填充值 111.*/ 112.public void setCell(int index, int value) { 113.HSSFCell cell = this.row.createCell((short) index); 114.cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); 115.cell.setCellValue(value); 116.} 117. 118./** 119.* 设置单元格 120.*121.* @param index 122.* 列号 123.* @param value 124.* 单元格填充值 125.*/ 126.public void setCell(int index, double value) { 127.HSSFCell cell = this.row.createCell((short) index); 128.cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC); 129.cell.setCellValue(value); 130.HSSFCellStyle cellStyle = workbook.createCellStyle(); // 建立新的cell样式 131.HSSFDataFormat format = workbook.createDataFormat(); 132.cellStyle.setDataFormat(format.getFormat(NUMBER_FORMAT)); // 设置cell样式为定制的浮点数格式 133.cell.setCellStyle(cellStyle); // 设置该cell浮点数的显示格式 134.} 135. 136. 137.public static void main(String[] args) { 138.ExportExcel excel = new ExportExcel(); 139.excel.XLSExport("d:\测试.xls"); 140.excel.createRow(0); 141.excel.setCell(0, "序号"); 142.excel.setCell(1, "公司"); 143.excel.setCell(2, "网址"); 144.excel.setCell(3, "姓名"); 145.excel.createRow(1);// excel正文 146.excel.setCell(0, "1"); 147.excel.setCell(1, "程序员之家"); 148.excel.setCell(2, "http://bbs.it-home.org"); 149.excel.setCell(3, "小贝"); 150.try { 151.excel.exportXLS(); 152.System.out.println("导出excel成功"); 153.} catch (IOException e) { 154.System.out.println("导出excel失败"); 155.e.printStackTrace(); 156.} 157.} 158.}
2023-07-14 08:52:434

我需要org.apache.poi.hwpf.extractor.WordExtractor 这个包,大家谁有啊,我下载了好多都不是,急等!!

poi-scratchpad-3.5-beta1.jar 我也再找 终于找到了
2023-07-14 08:52:501

SCratch怎么读

到百度翻译听听英音和美音的读法。http://fanyi.baidu.com/#en/zh/scratch
2023-07-14 08:53:162

便笺的词性便笺的词性是什么

便笺的词性是:名词。 便笺的词性是:名词。 结构是:便(左右结构)笺(上下结构)。 拼音是:biàn jiān。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratchpadscratch pad关于便笺的成语蛮笺象管鱼笺雁书空腹便便边老便便便辞巧说听其自便公私两便关于便笺的词语蛮笺象管鱼笺雁书一举两便便辞巧说方便门雁素鱼笺听其自便公私两便关于便笺的造句1、萨缪尔森的工作效率也奇高。作为学生的我们,当时常常在信箱里收到他放的粉红色便笺,上面记录了他的一些想法。2、电子纸可以是传统便笺本或便条贴那么大,上面带有小点,这样可以使笔“看到”上面都写了什么。3、德赖尔说,很多象牙板上记载的都是上贡给蝎子王的亚麻布和油的书面记录,还有一些便笺、数字,及国王名字和机构名称的目录。4、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。5、旁的便笺本草草记下一个通知。点此查看更多关于便笺的详细信息
2023-07-14 08:53:291

便笺的网络解释便笺的网络解释是什么

便笺的网络解释是:便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。 便笺的网络解释是:便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。 词性是:名词。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。 拼音是:biàn jiān。 结构是:便(左右结构)笺(上下结构)。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”关于便笺的单词scratch padscratchpad关于便笺的成语听其自便鱼笺雁书公私两便边老便便便辞巧说空腹便便蛮笺象管关于便笺的词语蛮笺象管方便门鱼笺雁书便辞巧说公私两便雁素鱼笺一举两便听其自便关于便笺的造句1、德赖尔说,很多象牙板上记载的都是上贡给蝎子王的亚麻布和油的书面记录,还有一些便笺、数字,及国王名字和机构名称的目录。2、哈根在他的便笺本上做了笔记。3、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。4、舍不得丢的信与便笺、舍不得删的邮件和短信,都藏着铭心难忘的故事与情谊。5、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。点此查看更多关于便笺的详细信息
2023-07-14 08:53:361

POI中的jar包都是干嘛的 我该导哪个

好多依赖包你都要导入:poi-version-yyyymmdd.jar用于操作.xls文件;依赖于commons-logging, commons-codec, log4j;poi-scratchpad-version-yyyymmdd.jar用于操作.ppt、.doc、.vsd、.pub、.msg文件;依赖于poi;poi-ooxml-version-yyyymmdd.jar、poi-ooxml-schemas-version-yyyymmdd.jar用于操作.xlsx、.pptx、docx文件;依赖于poi, dom4j,xmlbeans, stax-api-1.0.1;操作Excel主要是指ss包、xssf包;也就是目录lib下面是poi依赖的jar包,目录ooxml-lib下面是poi-ooxml依赖的jar包;
2023-07-14 08:53:431

鸿合科技推出的HiteVision交互式电子白板

交互式电子白板软件都是包含驱动和自身编辑软件的,一般开机自动启动的都是驱动软件,进行连接和定位的,这个过程完成后就可以实现您说的触控功能了。这个驱动软件是必须启动的,否则不能连接和定位。另外一套就是电子白板的自身编辑软件,您可以打开进行操作,也可以不启动它。我们就是生产电子白板的厂商,有关于这方面的问题,都可以来电或在线交流!
2023-07-14 08:53:532

便笺的拼音狐便笺的拼音是什么

便笺的读音是:biàn jiān。 便笺的拼音是:biàn jiān。 结构是:便(左右结构)笺(上下结构)。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。 词性是:名词。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratch padscratchpad关于便笺的成语蛮笺象管空腹便便公私两便便辞巧说边老便便听其自便鱼笺雁书关于便笺的词语便辞巧说公私两便听其自便鱼笺雁书一举两便蛮笺象管雁素鱼笺方便门关于便笺的造句1、萨缪尔森的工作效率也奇高。作为学生的我们,当时常常在信箱里收到他放的粉红色便笺,上面记录了他的一些想法。2、舍不得丢的信与便笺、舍不得删的邮件和短信,都藏着铭心难忘的故事与情谊。3、突然有一天,冰箱上有张他写的便笺:“对不起亲爱的,巧克力味的可爱多卖完了,今天你不妨试试草莓味。”。4、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。5、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。点此查看更多关于便笺的详细信息
2023-07-14 08:54:001

便笺的结构便笺的结构是什么

便笺的结构是:便(左右结构)笺(上下结构)。 便笺的结构是:便(左右结构)笺(上下结构)。 拼音是:biàn jiān。 词性是:名词。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratch padscratchpad关于便笺的成语蛮笺象管空腹便便鱼笺雁书边老便便公私两便听其自便便辞巧说关于便笺的词语便辞巧说鱼笺雁书公私两便听其自便一举两便蛮笺象管雁素鱼笺方便门关于便笺的造句1、突然有一天,冰箱上有张他写的便笺:“对不起亲爱的,巧克力味的可爱多卖完了,今天你不妨试试草莓味。”。2、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。3、德赖尔说,很多象牙板上记载的都是上贡给蝎子王的亚麻布和油的书面记录,还有一些便笺、数字,及国王名字和机构名称的目录。4、舍不得丢的信与便笺、舍不得删的邮件和短信,都藏着铭心难忘的故事与情谊。5、哈根在他的便笺本上做了笔记。点此查看更多关于便笺的详细信息
2023-07-14 08:54:061

便笺的词语便笺的词语是什么

便笺的词语有:便辞巧说,公私两便,听其自便。 便笺的词语有:雁素鱼笺,鱼笺雁书,公私两便。2:拼音是、biàn jiān。3:注音是、ㄅ一ㄢ_ㄐ一ㄢ。4:词性是、名词。5:结构是、便(左右结构)笺(上下结构)。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratchpadscratch pad关于便笺的成语公私两便空腹便便蛮笺象管听其自便便辞巧说鱼笺雁书边老便便关于便笺的造句1、突然有一天,冰箱上有张他写的便笺:“对不起亲爱的,巧克力味的可爱多卖完了,今天你不妨试试草莓味。”。2、旁的便笺本草草记下一个通知。3、使用此页作为起始页,可组织您的便笺和随时查看未组织的想法。4、电子纸可以是传统便笺本或便条贴那么大,上面带有小点,这样可以使笔“看到”上面都写了什么。5、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。点此查看更多关于便笺的详细信息
2023-07-14 08:54:251

便笺的意思便笺的意思是什么

便笺的词语解释是:便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。 便笺的词语解释是:便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。 拼音是:biàn jiān。 注音是:ㄅ一ㄢ_ㄐ一ㄢ。 词性是:名词。 结构是:便(左右结构)笺(上下结构)。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、引证解释【点此查看计划详细内容】⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”二、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratchpadscratch pad关于便笺的成语便辞巧说鱼笺雁书蛮笺象管公私两便边老便便空腹便便听其自便关于便笺的词语蛮笺象管一举两便方便门便辞巧说雁素鱼笺公私两便鱼笺雁书听其自便关于便笺的造句1、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。2、舍不得丢的信与便笺、舍不得删的邮件和短信,都藏着铭心难忘的故事与情谊。3、使用此页作为起始页,可组织您的便笺和随时查看未组织的想法。4、我同时建议你准备一些你可以自由书写的工具,比方说笔记本电脑,或是便笺本和一支铅笔。5、突然有一天,冰箱上有张他写的便笺:“对不起亲爱的,巧克力味的可爱多卖完了,今天你不妨试试草莓味。”。点此查看更多关于便笺的详细信息
2023-07-14 08:54:311

便笺的成语便笺的成语是什么

便笺的成语有:鱼笺雁书,边老便便,听其自便。 便笺的成语有:空腹便便,边老便便,听其自便。2:注音是、ㄅ一ㄢ_ㄐ一ㄢ。3:结构是、便(左右结构)笺(上下结构)。4:拼音是、biàn jiān。5:词性是、名词。便笺的具体解释是什么呢,我们通过以下几个方面为您介绍:一、词语解释【点此查看计划详细内容】便笺biànjiān。(1)具有一定质量、尺码或折痕的适宜于笔记、书信及便条用的书写用笺;便条。二、引证解释⒈没有正规格式的信笺或记事用纸。引叶圣陶《皮包》:“张书记回头看了看黄科长,站起来,拿张便笺送到黄科长桌子上。”三、网络解释便笺点击开始菜单--所有程序--附件--便笺运行,之后右击便笺的任务栏图标,然后点击“将此程序锁定到任务栏”,这样下次只需从任务栏就可以快速启动了。便笺启动后主界面只有很小一块,可以拖动右下角来改变大小,没有任何多余的东西,就和平时使用的实物便笺一样。整个界面上就2个按钮,左边的“+”号可以再新建一个便笺,右边的叉号则是删除当前便笺(不会提示你是否保存,直接删除),这也意味着,便笺可以同时开启好多个,分别用来记录不同的内容。关于便笺的单词scratch padscratchpad关于便笺的词语听其自便一举两便蛮笺象管便辞巧说雁素鱼笺鱼笺雁书公私两便方便门关于便笺的造句1、萨缪尔森的工作效率也奇高。作为学生的我们,当时常常在信箱里收到他放的粉红色便笺,上面记录了他的一些想法。2、本发明涉及一种多色便笺本及配页方法和多色便笺本配页机。3、哈根在他的便笺本上做了笔记。4、电子纸可以是传统便笺本或便条贴那么大,上面带有小点,这样可以使笔“看到”上面都写了什么。5、旁的便笺本草草记下一个通知。点此查看更多关于便笺的详细信息
2023-07-14 08:54:381

临时存储区英文怎么写

临时存储区 scratchpad area
2023-07-14 08:54:461

求救关于C51单片机ds18b20温度显示的问题

#include <ht48f30e.h>#define uint8 unsigned int //8 bit#define uint unsigned int //8 bit#define uint16 unsigned long //16 bit#define date _pb0//io 0 int 1#define dateio _15_0//pbc0#define Dispdata _pb7//io 0 int 1#define Dispclk _pb6//io 0 int 1uint8 const showtable[29]={0x7e,0x06,0x6d,0x79,0x33,0x5b,0xdf,0x70,0x7f,0x7b,0x77,0x1f,0x4e,0x3d,0x4f,0x47,0x00,0x31,0x07,0x01,0x37,0x0e,0x67,0x63,0x1d,0x15,0x3e,0x4f,0x76};uint8 const dotcodeh[]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};uint tplsb,tpmsb; // 温度值低位、高位字节uint16 tplmsb;uint16 temp @0x50;void delay1ms(uint16 j){ uint8 i; while(j) { _clrwdt(); j--; for(i=0;i<168;i++) {;} }}void disp(uint8 t,uint8 showdata){ unsigned char i,j,temp; for(j=0;j<t;j++) { temp=showdata; for(i=0; i<7; i++) { if(temp & 0x01) { Dispdata =1; //数据为1 } else { Dispdata= 0; //数据为0 } temp>>= 1; Dispclk=0; _delay(5); Dispclk=1; _delay(5); } }} void init(){ uint i; date=1; delay1ms(1); date = 0; i = 100; //拉低约900us while (i>0) i--; date= 1; // 产生上升沿 i = 4; while (i>0) i--;}void wait(){ uint i; dateio=1; //改PB5为输入脚 while(date); while(~date); // 检测到应答脉冲 dateio=0;//改PB5为输出脚 i = 4; while (i>0) i--;}bit readbit(){ uint i; bit b; date = 0; _nop(); _nop(); date = 1; dateio=1; //改PB5为输入脚 _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); // 延时15us以上,读时隙下降沿后15us,DS18B20输出数据才有效 b = date; dateio=0;//改PB5为输出脚 i = 8; while(i>0) i--; return (b);}uint readbyte(){ uint i,j,b; b = 0; for (i=1;i<=8;i++) { j = readbit(); b = (j<<7)|(b>>1);//读出的数据最低位在最前面,这样刚好一个字节在DATE里 } return(b);}void writebyte(uint b){ uint i; uint j; bit btmp; for(j=1;j<=8;j++) { btmp = b&0x01; b = b>>1; // 取下一位(由低位向高位) if (btmp) // 写1 { date = 0;_nop();// 延时,使得15us以内拉高 _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); date = 1; i = 8; while(i>0) i--; // 整个写1时隙不低于60us } else // 写0 { date = 0; i = 8; while(i>0) i--; // 保持低在60us到120us之间 date = 1; _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); _nop(); } }}void main(){ uint8 a1,a2,a3,a4=16; uint8 m=60,n; _intc=0; _tmrc=0; _wdts=0b00000101 ; //MOV A,00000101B ;512ms _clrwdt(); //MOV WDTS,A _pbc=0x00; delay1ms(1); // 延时1ms init(); // 产生复位脉冲,初始化DS18B20 wait(); // 等待DS18B20给出应答脉冲 delay1ms(1); // 延时 writebyte(0xcc); // 跳过rom 命令 writebyte(0x4e);//写暂存器 writebyte(0x32);//上限50°C writebyte(0x00);//下限50°C writebyte(0x7f);//设置分辨率为12位 //writebyte(0x44); // convert T 命令 delay1ms(1000); // 延时1s while(1) { init(); // 产生复位脉冲,初始化DS18B20 wait(); // 等待DS18B20给出应答脉冲 delay1ms(1); // 延时 writebyte(0xcc); // 跳过rom 命令 writebyte(0x44); // convert T 命令 delay1ms(1000);init(); // 产生复位脉冲,初始化DS18B20 wait(); // 等待DS18B20给出应答脉冲 delay1ms(1); // 延时 writebyte(0xcc); // 跳过rom命令 writebyte(0xbe); // read scratchpad 读暂存器命令 tplsb=readbyte(); // 温度值低位字节(其中低4位为二进制的"小数"部分) tpmsb=readbyte(); // 温度值高位字节(其中高5位为符号位) if(tpmsb>=0xf8) { a4=19; tplsb=~tplsb; if(tplsb==0xff) {tplsb=0;tpmsb=~tpmsb;++tpmsb;} else {tplsb=tplsb+1;tpmsb=~tpmsb;} } temp=tpmsb; temp=temp<<8; //合成一个字 temp=temp|tplsb; a3=temp&0x000f; temp=temp>>4; temp=temp&0x00ff; a1=temp/10; a2=temp%10; if(a4==19) disp(1,showtable[a4]); disp(1,showtable[a1]); disp(1,showtable[a2]); disp(1,showtable[dotcodeh[a3]]); if(a4==16) disp(1,0); m=60; n=4; }}、、、、、、、、、、、、、、、、、、、、、、、、、、、给你参考而已,自己工作使用过的,子程序一定没有问题
2023-07-14 08:55:122

单片机DS18B20温度计C语言程序

qq:896294462,我传给你
2023-07-14 08:55:214

HWPFDocument在哪个jar

这是我用的版本<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.16</version></dependency>
2023-07-14 08:55:302

poi 需要哪些jar 包 excel导入

poi-3.6.jarpoi-3.6-dom4j-1.6.1.jarpoi-3.6-geronimo-stax-api_1.0_spec-1.0.jarpoi-3.6-xmlbeans-2.3.0.jarpoi-3.6-ooxml-20091214.jarpoi-3.6-ooxml-schemas-20091214.jarpoi-3.7-20101029.jarpoi-examples-3.7-20101029.jarpoi-ooxml-3.7-20101029.jarpoi-ooxml-schemas-3.7-20101029.jarpoi-scratchpad-3.7-20101029.jar
2023-07-14 08:55:561

poi 需要哪些jar 包 excel导入解决方法

poi-3.6.jar poi-3.6-dom4j-1.6.1.jar poi-3.6-geronimo-stax-api_1.0_spec-1.0.jar poi-3.6-xmlbeans-2.3.0.jar poi-3.6-ooxml-20091214.jar poi-3.6-ooxml-schemas-20091214.jar poi-3.7-20101029.jar poi-examples-3.7-20101029.jar poi-ooxml-3.7-20101029.jar poi-ooxml-schemas-3.7-20101029.jar poi-scratchpad-3.7-20101029.jar u200b希望以上信息可以帮到您!
2023-07-14 08:56:031

如何用Apache POI操作Excel文件

首先POI是开源组织Apache出品的一个开源jar包,提供了方便解析Excel的API,我们可以非常方便的使用它来读取Excel。这里介绍3.5Final版本。  所需用到的jar包如下:  说到Excel,有2003和2007,格式是不一样的,用POI解析的方法也就不一样,Excel2003主要是使用org.apache.poi.hssf.usermodel包中的类来解析,而Excel2007就是使用org.apache.poi.xssf.usermodel来解析。  解析Excel2003源码说到Excel,有2003和2007,格式是不一样的,用POI解析的方法也就不一样,Excel2003主要是使用org.apache.poi.hssf.usermodel包中的类来解析,而Excel2007就是使用org.apache.poi.xssf.usermodel来解析。解析Excel2003源码
2023-07-14 08:56:102

Java 利用poi 可以直接读取word中的表格保持样式生成新的word么?

1.读取word2003及word2007需要的jar包  读取2003版本(.doc)的word文件相对来说比较简单,只需要poi-3.5-beta6-20090622.jar和poi-scratchpad-3.5-beta6-20090622.jar两个jar包即可,而2007版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的jar包比较的多,有如下7个之多:1.openxml4j-bin-beta.jar2.poi-3.5-beta6-20090622.jar3.poi-ooxml-3.5-beta6-20090622.jar4.dom4j-1.6.1.jar5.geronimo-stax-api_1.0_spec-1.0.jar6.ooxml-schemas-1.0.jar7.xmlbeans-2.3.0.jar其中4-7是poi-ooxml-3.5-beta6-20090622.jar所依赖的jar包(在poi-bin-3.5-beta6-20090622.tar.gz中的ooxml-lib目录下可以找到)。2.换行符号  硬换行:文件中换行,如果是键盘中使用了"enter"的换行。  软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。  对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。3.读取的注意事项  值得注意的是:POI在读取不会读取word文件中的图片信息;还有就是对于2007版的word(.docx),如果word文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。4.读取word文本内容代码1importjava.io.File;2importjava.io.FileInputStream;3importjava.io.InputStream;45importorg.apache.poi.POIXMLDocument;6importorg.apache.poi.POIXMLTextExtractor;7importorg.apache.poi.hwpf.extractor.WordExtractor;8importorg.apache.poi.openxml4j.opc.OPCPackage;9importorg.apache.poi.xwpf.extractor.XWPFWordExtractor;1011publicclassTest{12publicstaticvoidmain(String[]args){13try{14InputStreamis=newFileInputStream(newFile("2003.doc"));15WordExtractorex=newWordExtractor(is);16Stringtext2003=ex.getText();17System.out.println(text2003);1819OPCPackageopcPackage=POIXMLDocument.openPackage("2007.docx");20POIXMLTextExtractorextractor=newXWPFWordExtractor(opcPackage);21Stringtext2007=extractor.getText();22System.out.println(text2007);2324}catch(Exceptione){25e.printStackTrace();26}27}28}
2023-07-14 08:56:171

javafx中怎么导出excel

如果就是应用程序 控制台或者java swing都可以javaFX也可以如果要做web版你会的这些足够了显示层用什么技术都无所谓office文件的读写有对应的jar包 比如poi-3.2.jar、jacob.jar、jxl.jar、poi-contrib-3.2-FINAL-20081019.jar、poi-scratchpad-3.2-FINAL-20081019.jar 你可以百度一下 应该不难找 一般都是用流的形式读写成相应格式的编码
2023-07-14 08:56:251

Java 利用poi 可以直接读取word中的表格保持样式生成新的word么?

1.读取word 2003及word 2007需要的jar包  读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-20090622.jar 和 poi-scratchpad-3.5-beta6-20090622.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多: 1. openxml4j-bin-beta.jar 2. poi-3.5-beta6-20090622.jar 3. poi-ooxml-3.5-beta6-20090622.jar 4 .dom4j-1.6.1.jar 5. geronimo-stax-api_1.0_spec-1.0.jar 6. ooxml-schemas-1.0.jar 7. xmlbeans-2.3.0.jar其中 4-7 是 poi-ooxml-3.5-beta6-20090622.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-20090622.tar.gz 中的 ooxml-lib 目录下可以找到)。2.换行符号  硬换行:文件中换行,如果是键盘中使用了"enter"的换行。  软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。  对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。3.读取的注意事项  值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。4.读取word文本内容代码1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.InputStream; 4 5 import org.apache.poi.POIXMLDocument; 6 import org.apache.poi.POIXMLTextExtractor; 7 import org.apache.poi.hwpf.extractor.WordExtractor; 8 import org.apache.poi.openxml4j.opc.OPCPackage; 9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }
2023-07-14 08:56:341

java poi XWPFTable操作word表格的问题?

1.下载下载3.8beta4版本,请记得一定要下载该版本,其他版本读取word模板并改写内容生成新的文件后,打开新文件时会提示“word无法读取文档,文档可能损坏。”2.集成到项目这一步很简单,只要把下载后解压得到的poi-3.8-beta4-20110826.jar和poi-scratchpad-3.8-beta4-20110826.jar两个文件复制到java web项目的lib目录下就行了3.制作word模板把需要变动的值全部用代码来代替,例如你需要改变名称的值,则可以在模板中用name来表示。详细见附件中的doc文件。4.调用接口方法实现对word的读写操作整个过程就是先读取模板,然后修改内容,再重新生成新的文档保存到本地或者输出文件流提供下载,下面分别是生成新文档和输出文件流两种方式的代码片断,详细的代码请见下列代码中的readwriteWord()两个重载方法。
2023-07-14 08:56:411

java 检测class文件走哪个jar包的代码

ClassLoader classloader =org.apache.poi.poifs.filesystem.POIFSFileSystem.class.getClassLoader();URL res = classloader.getResource("org/apache/poi/poifs/filesystem/POIFSFileSystem.class");String path = res.getPath();System.out.println("POI Core came from " + path);classloader = org.apache.poi.POIXMLDocument.class.getClassLoader();res = classloader.getResource("org/apache/poi/POIXMLDocument.class");path = res.getPath();System.out.println("POI OOXML came from " + path);classloader = org.apache.poi.hslf.HSLFSlideShow.class.getClassLoader();res = classloader.getResource("org/apache/poi/hslf/HSLFSlideShow.class");path = res.getPath();System.out.println("POI Scratchpad came from " + path);检测后,发现确实有一个class走了老包,只删java build path没生效。后来把workspace里面的包删了再把project clean一下,然后重新部署,OK,问题解决了!
2023-07-14 08:56:511