r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一

大家好!今天r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一让小编来大家介绍下关于r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。

r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一-图1

本文目录一览

1,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一

h=960/80=12cms=π(12/2)^2s=36π满意请采纳!
d=960/80=12cm,r=d/2=6∴体积V=πr2L=2880π
960 x 80= 76800 cm^3

2,基于51单片机的电子秒表设计

这个是 数码管显示计数器程序。稍加更改 既满足要求 要精确定时,必须使用自装载方式。这里我们使用T2定时器,让它工作在16bit自动装载方式,这时,有另一个位置专门装着16位预装载值,T2溢出时,预装载值立即被置入。这就保证了精确定时。 但是,即使是16位定时器,最长的溢出时间也就几十毫秒,要定时一秒,就需要一个变量来保存溢出的次数,积累到了多少次之后,才执行一次操作。这样就可以累加到1秒或者更长的时间才做一次操作了。 T2定时器有个特殊的地方,它进入中断后,需要自己清除溢出标记,而51的其他定时器是自动清除的。请参考51单片机相关书籍。 如果使用T2定时器实现1秒精确定时 下面我们就来计算: 仿真器的晶振是22118400HZ,每秒钟可以执行1843200个机器周期。而T2每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少,这样对主程序的干扰也就最小。 选择每秒中断24次,每次溢出1843200/24=76800个机器周期,超出65536,无效。 选择每秒中断30次,每次溢出1843200/30=61440个机器周期 选择每秒中断32次,每次溢出1843200/32=57600个机器周期 选择每秒中断36次,每次溢出1843200/36=51200个机器周期 选择每秒中断40次,每次溢出1843200/40=46080个机器周期 从上面可以看到我们可以选择方式有很多,但是最佳的是每秒中断30次,每次溢出61440个机器周期。也就是赋定时器T2初值65536-61440=4096,换成十六进制就是0x1000。 从上面的计算也可以看出晶振2118400Hz的好处,它可以整除的倍数多,要准确定时非常方便。更常见的应用是在串口波特率上,使用22118400HZ可以输出最多准确的标准波特率。 如果是其他频率的晶振 按照上面的方法计算即可 ******************************************************************/ #include <reg52.h> //包括一个52标准内核的头文件 #include<intrins.h> /****************************声明函数*****************************/ void x8led(unsigned long ddd); void delay882us(void); /*****************************定义IO******************************/ sbit P20=P2^0; sbit P21=P2^1; sbit S16=P3^0; sbit S15=P3^1; sbit S14=P3^2; sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; bit f=0;//位变量 /***************************定时器2中断**************************/ timer2() interrupt 5 { static unsigned char t; TF2=0; t++; if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ 这里晶振频率不同则会有所不同 { t=0; f=1;//每次长时间的溢出,就置一个标记,以便主程序处理 } } /*****************************数码管扫描**************************/ void x8led(unsigned long ddd) { unsigned char q,r=0; unsigned char l[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}; //0-9的字段码 unsigned char xx[8]={0,0,0,0,0,0,0,0}; unsigned char y[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1}; xx[0]=ddd%10; xx[2]=ddd/10%10; xx[1]=ddd/100%10; xx[3]=ddd/1000%10; xx[4]=ddd/10000%10; xx[6]=ddd/100000%10; xx[5]=ddd/1000000%10; xx[7]=ddd/10000000; //求出八位数,分别放在八个变量中 for(q=0;q<8;) //循环扫描 { q++; r++; if(r==8)r=0; P1=y[r]; P21=1; delay882us(); P21=0; P20=1; P1=l[xx[r]]; delay882us(); P1=0xff; P20=0; } } /*******************************延时882us*************************/ void delay882us(void) { unsigned char i; for(i=0;i<255;i++) { _nop_(); } } /*****************************主程序******************************/ void main(void) { unsigned long a=0; RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟 RCAP2L =0x00; TR2=1; //启动定时器 ET2=1; //打开定时器2中断 EA=1; //打开总中断 while(1) { if(f)//发现标记进入处理 { f=0;//清除标记 a++; if(a>99999999)a=0; } x8led(a);//将a的值送到数码管显示 } } /*****************************************************************/

3,基于51单片机的电子秒表设计

这个是 数码管显示计数器程序。稍加更改 既满足要求要精确定时,必须使用自装载方式。这里我们使用T2定时器,让它工作在16bit自动装载方式,这时,有另一个位置专门装着16位预装载值,T2溢出时,预装载值立即被置入。这就保证了精确定时。但是,即使是16位定时器,最长的溢出时间也就几十毫秒,要定时一秒,就需要一个变量来保存溢出的次数,积累到了多少次之后,才执行一次操作。这样就可以累加到1秒或者更长的时间才做一次操作了。T2定时器有个特殊的地方,它进入中断后,需要自己清除溢出标记,而51的其他定时器是自动清除的。请参考51单片机相关书籍。如果使用T2定时器实现1秒精确定时下面我们就来计算:仿真器的晶振是22118400HZ,每秒钟可以执行1843200个机器周期。而T2每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少,这样对主程序的干扰也就最小。选择每秒中断24次,每次溢出1843200/24=76800个机器周期,超出65536,无效。选择每秒中断30次,每次溢出1843200/30=61440个机器周期选择每秒中断32次,每次溢出1843200/32=57600个机器周期选择每秒中断36次,每次溢出1843200/36=51200个机器周期选择每秒中断40次,每次溢出1843200/40=46080个机器周期从上面可以看到我们可以选择方式有很多,但是最佳的是每秒中断30次,每次溢出61440个机器周期。也就是赋定时器T2初值65536-61440=4096,换成十六进制就是0x1000。从上面的计算也可以看出晶振2118400Hz的好处,它可以整除的倍数多,要准确定时非常方便。更常见的应用是在串口波特率上,使用22118400HZ可以输出最多准确的标准波特率。如果是其他频率的晶振 按照上面的方法计算即可******************************************************************/ #include //包括一个52标准内核的头文件 #include /****************************声明函数*****************************/ void x8led(unsigned long ddd); void delay882us(void); /*****************************定义IO******************************/ sbit P20=P2^0; sbit P21=P2^1; sbit S16=P3^0; sbit S15=P3^1; sbit S14=P3^2; sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; bit f=0;//位变量 /***************************定时器2中断**************************/ timer2() interrupt 5 { static unsigned char t; TF2=0; t++; if(t==30) //T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ 这里晶振频率不同则会有所不同 { t=0; f=1;//每次长时间的溢出,就置一个标记,以便主程序处理 } } /*****************************数码管扫描**************************/ void x8led(unsigned long ddd) { unsigned char q,r=0; unsigned char l[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f}; //0-9的字段码 unsigned char xx[8]={0,0,0,0,0,0,0,0}; unsigned char y[8]={0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1}; xx[0]=ddd%10; xx[2]=ddd/10%10; xx[1]=ddd/100%10; xx[3]=ddd/1000%10; xx[4]=ddd/10000%10; xx[6]=ddd/100000%10; xx[5]=ddd/1000000%10; xx[7]=ddd/10000000; //求出八位数,分别放在八个变量中 for(q=0;q<8;) //循环扫描 { q++; r++; if(r==8)r=0; P1=y[r]; P21=1; delay882us(); P21=0; P20=1; P1=l[xx[r]]; delay882us(); P1=0xff; P20=0; } } /*******************************延时882us*************************/ void delay882us(void) { unsigned char i; for(i=0;i<255;i++) { _nop_(); } } /*****************************主程序******************************/ void main(void) { unsigned long a=0; RCAP2H =0x10; //赋T2的预置值0x1000,溢出30次就是1秒钟 RCAP2L =0x00; TR2=1; //启动定时器 ET2=1; //打开定时器2中断 EA=1; //打开总中断 while(1) { if(f)//发现标记进入处理 { f=0;//清除标记 a++; if(a>99999999)a=0; } x8led(a);//将a的值送到数码管显示 } } /*****************************************************************/
这个是 数码管显示计数器程序。稍加更改 既满足要求要精确定时,必须使用自装载方式。这里我们使用t2定时器,让它工作在16bit自动装载方式,这时,有另一个位置专门装着16位预装载值,t2溢出时,预装载值立即被置入。这就保证了精确定时。但是,即使是16位定时器,最长的溢出时间也就几十毫秒,要定时一秒,就需要一个变量来保存溢出的次数,积累到了多少次之后,才执行一次操作。这样就可以累加到1秒或者更长的时间才做一次操作了。t2定时器有个特殊的地方,它进入中断后,需要自己清除溢出标记,而51的其他定时器是自动清除的。请参考51单片机相关书籍。如果使用t2定时器实现1秒精确定时下面我们就来计算:仿真器的晶振是22118400hz,每秒钟可以执行1843200个机器周期。而t2每次溢出最多65536个机器周期。我们尽量应该让溢出中断的次数最少,这样对主程序的干扰也就最小。选择每秒中断24次,每次溢出1843200/24=76800个机器周期,超出65536,无效。选择每秒中断30次,每次溢出1843200/30=61440个机器周期选择每秒中断32次,每次溢出1843200/32=57600个机器周期选择每秒中断36次,每次溢出1843200/36=51200个机器周期选择每秒中断40次,每次溢出1843200/40=46080个机器周期从上面可以看到我们可以选择方式有很多,但是最佳的是每秒中断30次,每次溢出61440个机器周期。也就是赋定时器t2初值65536-61440=4096,换成十六进制就是0x1000。从上面的计算也可以看出晶振2118400hz的好处,它可以整除的倍数多,要准确定时非常方便。更常见的应用是在串口波特率上,使用22118400hz可以输出最多准确的标准波特率。如果是其他频率的晶振 按照上面的方法计算即可******************************************************************/ #include &lt;reg52.h&gt; //包括一个52标准内核的头文件 #include&lt;intrins.h&gt;/****************************声明函数*****************************/ void x8led(unsigned long ddd); void delay882us(void);/*****************************定义io******************************/ sbit p20=p2^0; sbit p21=p2^1; sbit s16=p3^0; sbit s15=p3^1; sbit s14=p3^2; sbit p10=p1^0; sbit p11=p1^1; sbit p12=p1^2; sbit p13=p1^3; sbit p14=p1^4; sbit p15=p1^5; sbit p16=p1^6; sbit p17=p1^7; bit f=0;//位变量 /***************************定时器2中断**************************/timer2() interrupt 5 static unsigned char t; tf2=0; t++; if(t==30) //t2的预置值0x1000,溢出30次就是1秒钟,晶振22118400hz 这里晶振频率不同则会有所不同 t=0; f=1;//每次长时间的溢出,就置一个标记,以便主程序处理 }}/*****************************数码管扫描**************************/void x8led(unsigned long ddd) unsigned char q,r=0; unsigned char l[11]= //0-9的字段码 unsigned char xx[8]= unsigned char y[8]= xx[0]=ddd%10; xx[2]=ddd/10%10; xx[1]=ddd/100%10; xx[3]=ddd/1000%10; xx[4]=ddd/10000%10; xx[6]=ddd/100000%10; xx[5]=ddd/1000000%10; xx[7]=ddd/10000000; //求出八位数,分别放在八个变量中 for(q=0;q&lt;8;) //循环扫描 q++; r++; if(r==8)r=0; p1=y[r]; p21=1; delay882us(); p21=0; p20=1; p1=l[xx[r]]; delay882us(); p1=0xff; p20=0; }} /*******************************延时882us*************************/void delay882us(void) unsigned char i; for(i=0;i&lt;255;i++) _nop_(); }}/*****************************主程序******************************/ void main(void) unsigned long a=0; rcap2h =0x10; //赋t2的预置值0x1000,溢出30次就是1秒钟 rcap2l =0x00; tr2=1; //启动定时器 et2=1; //打开定时器2中断 ea=1; //打开总中断 while(1) if(f)//发现标记进入处理 f=0;//清除标记 a++; if(a&gt;99999999)a=0; } x8led(a);//将a的值送到数码管显示 } }/*****************************************************************/

以上就是小编对于r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一问题和相关问题的解答了,r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一的问题希望对你有用!

转载请说明出处 内容投诉内容投诉
南趣百科 » r76800h,把一根长为80cm的圆柱形木材沿底面直径切成两个半圆柱体已知一

南趣百科分享生活经验知识,是您实用的生活科普指南。

查看演示 官网购买