全部评论(0条)
热门问答
- 超声波测距时51单片机控制八段数码管时,用2个4位的74LS244咋连数码管?
- 帮我联系啊吧,论文很急!!
2018-11-19 06:44:05
331
0
- 51单片机 超声波测距 控制直流电机正反转
- 通过超声波传感器测距,当距离大于设定值A时,直流电机反转;当距离等于设定值A时,直流电机停止;当距离小于设定值A时,直流电机正转。具体要求:1)设定值A能够通过键盘设定;2)电机所处的各个状态(正转、反转和停止)及超声波传感器检测的距离值能够在液... 通过超声波传感器测距,当距离大于设定值A时,直流电机反转;当距离等于设定值A时,直流电机停止;当距离小于设定值A时,直流电机正转。具体要求:1)设定值A能够通过键盘设定;2)电机所处的各个状态(正转、反转和停止)及超声波传感器检测的距离值能够在液晶上实时显示。 展开
2015-07-12 14:27:24
765
1
- 51单片机超声波测距用lcd显示
- 51单片机超声波测距用lcd显示1602显示屏
2018-11-24 01:55:06
350
0
- 51单片机C语言编写自行车测速仪用数码管显示速度和路程
2017-02-28 10:40:32
435
3
- 51单片机超声波测距模块代码
- ****************************************************************************************这是代码原文 我想问一下主函数下的while循环里面 为什么等到echo回波回来了 才打开定时器1和外部中断呢 这时候回波已经回来了啊 不是测不出超声波回波的时间了... ****************************************************************************************这是代码原文 我想问一下主函数下的while循环里面 为什么等到echo回波回来了 才打开定时器1和外部中断呢 这时候回波已经回来了啊 不是测不出超声波回波的时间了吗还有就是 为什么在whlie循环前先打开了总中断 然后进入whlie又立刻关闭 再重新打开 那diyi次打开不是很多余吗 麻烦大神解答一下 展开
2018-06-26 20:47:55
537
1
- 求51单片机超声波测距代码
2011-08-20 06:16:46
466
2
- 用51单片机做的简易频率计为什么在高频段数码管就开始闪了
- 采用测频法测外部信号的频率,T1,定时一秒,方式2;T0,计数,方式1,低频段的时候显示正常,高频段数码管就闪,为什么呢 #include
#define uchar unsigned char #define uint unsigned int uchar code t[]={0x3f,0x06,0x5b,0x4f,0x66,0x6...
2013-06-12 00:16:56
455
2
- 单片机用余晖效应实现6个数码管的动态显示(计时器)
- 要同时亮起6个数码管就得用余晖效应。每个数码管之间亮起的间隔为1ms。但是这个药怎么写代码。为什么我看一本书中的代码就只是用if-else这个语句而已。感觉并没有体现出用定时器来控制的感觉。
2018-04-05 23:37:56
734
1
- 用51单片机做超声波测距都需要什么元件?
- 用51单片机做超声波测距都需要什么元件(探测的距离5到10米左右)?知道的话发到我邮箱里zhanxiage1994@sina.com谢谢了
2012-03-28 03:51:02
314
1
- 51单片机做频率计,为什么两个数码管一直是00无法检测到频率
- #include
#define uchar unsigned char #define uint unsigned int uchar f,num,shi,ge; bit flag; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c... #include #define uchar unsigned char #define uint unsigned int uchar f,num,shi,ge; bit flag; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; void delay(uint z)//延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void display(uchar shi,uchar ge) { dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(5); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(5); } void main() {f=0;num=0;
IP=0x02; //T0优先级高
TMOD=0x15; //TI定时。T0计数
TH0=0; //T0初值
TL0=0;
TH1=(65535-45872)/256; //T1初值50ms
TL1=(65535-45872)%256;
EA=1; // 开总中断
ET0=1; // 开定时器T0中断
TR0=1; // 开T0自启动方式开关
ET1=1; // 开定时器T0中断
TR1=1;
while(1)
{if(flag==1)
{shi=f/10;
ge=f%10;
flag=0;
f=0;
TH0=0;
TL0=0;
TR1=1;
} display(shi,ge); } } void T0time() interrupt 1 using 0 //T0计数 { f++; } void T1time() interrupt 3 using 1//定时器 { TH1=(65535-45872)/256; // 重装初值 TL1=(65535-45872)%256; num++; //自加一次 50ms if(num==20) // 判断是否为一秒 { num=0; TR1=0; flag=1; } } 展开
2018-11-19 21:55:11
425
0
- GP2Y0A21YK0F红外测距传感器怎样用怎样接51单片机用51控制它
2017-08-06 11:44:06
911
1
- 做一个51单片机超声波测距需要哪些器材
2017-02-28 00:10:01
414
1
- 用51单片机实现超声波测距怎样才可以测到4m?
2011-08-14 00:36:29
467
4
- 请问适合51单片机用的50M测距用哪种超声波芯片好
2012-10-03 21:03:52
374
2
- 单片机做频率计数码管的显示C语言程序
- #include
float time=0; float freq=0; unsigned char dsh=0; unsigned char dsz=0; unsigned char dsl=0; main() {EA=1; ET0=1; ET1=1; TMOD=0x061; TH0=-1000/256; TL0=-1000%256; TH1=0xfb; TL1=0xfb; TR0=1; TR1=1; while...
2010-06-19 23:43:52
515
2
- 这个51单片机HC-SR04超声波测距程序哪里错了
- //晶振11.0592MHz #include
#define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TI... //晶振11.0592MHz #include #define uchar unsigned char #define uint unsigned int sbit trig=P0^2; sbit echo=P3^3; float dis=0; uint irtime=0; void delay_20us() { uchar bt ; for(bt=0;bt<100;bt++); } void TIM1init(void)//定时器1初始化 { TMOD=0x22;//定时器1工作方式2,TH1是重装值,TL1是初值 TH1=0xd2; //重载值 溢出一次约50us TL1=0xd2; //初始化值 ET1=1; //开中断 } void EX1init(void) //外部中断1初始化 { IT1 = 1; //指定外部中断0下降沿触发,INT1 (P3.3) EA = 1; //开总中断 } /*------------------------------------------------ 定时器1中断处理 ------------------------------------------------*/ void tim1_isr (void) interrupt 3 { irtime++; //用于计数2个下降沿之间的时间 } /*------------------------------------------------ 外部中断1中断处理 ------------------------------------------------*/ void EX1_ISR (void) interrupt 2 //外部中断1服务函数 { dis=340*(irtime/2.0)*50/10000; irtime=0; TR1=0; EX1=0; } void test(void) { trig=1; delay_20us(); trig=0; EX1=1; while(!echo); TR1=1; } void main(void) { TIM1init(); EX1init(); while(1) { test(); display(dis); } } 主函数调用test,然后在数码管上显示(显示函数略过),测试的时候,在数码管上显示的距离明显不对,还各种不稳定,有时就个位数上显示一个1或2,不知道怎么回事 展开
2016-01-25 09:17:10
375
2
- 想学下51单片机的超声波测距,有几个疑问。
- 想学下51单片机的超声波测距,有几个疑问。 在百度上看到的超声波模块工作原理:单片机供给超声波信号端Trig一个Z少10us长的高电平信号,模块自动发射8个40khz的方波,自动检测到信号是否返回,有信号返回,Echo端输出一个高电平,高电平持续的实践就是超... 想学下51单片机的超声波测距,有几个疑问。 在百度上看到的超声波模块工作原理:单片机供给超声波信号端Trig一个Z少10us长的高电平信号,模块自动发射8个40khz的方波,自动检测到信号是否返回,有信号返回,Echo端输出一个高电平,高电平持续的实践就是超声波从发射到返回的时间。 我的理解是给Trig一个10微秒以上高电平信号,模块会发射超声波,这个时候Echo应该是低电平,等有声波信号返回时Echo会变高电平,声波从发射到返回用了多长时间,Echo的高电平就持续多长时间。不知道理解的对不对? 这里有个疑问,百度了一下发现都是检测Echo收到返回声波后高电平持续时间来计算距离,为什么不检测从模块发射声波到Echo收到返回声波的时间呢?这样不是可以节约一半的时间吗? 还有一个问题,我在学习板上试了一下程序,给Trig一个20微秒的高电平信号,然后等待Echo变高电平开启定时器,但直到定时器溢出Echo一直都是高电平,超声波模块离墙面只有80厘米左右,模块换了2个都是这样。 第三个问题,百度上说计算测量距离等于定时器记录的时间乘以340除以2,但定时器记录的时间单位不是纳秒吗?还要除以一百万才能乘以340吧?这样得到的距离单位是米。 求教各位答疑解惑。 展开
2018-01-19 02:56:05
422
2
- 利用芯片74138控制的数码管的C程序
- voidReadKey(void);//扫描键盘获取键值voidmain(void)//入口函数{while(1){ReadKey();//调用键盘扫描if(l_key!=0xff)//如果有键按下,将其输出P2口LED灯显示,{switch(l_key){case0x7... void ReadKey(void); //扫描键盘 获取键值
void main(void) //入口函数
{
while(1){
ReadKey(); //调用键盘扫描
if(l_key!=0xff) //如果有键按下,将其输出P2口LED灯显示,
{ switch(l_key)
{ case 0x7e:
num=1;
break;
case 0xbe:
num=2;
break;
case 0xde:
num=3;
break;
case 0xee:
num=4;
break;
} P2=table[num] ; } //这里取反是因为LED灯采用共阴接法 } } void ReadKey(void) //读键盘值 { P0=0xfe; //将diyi列拉低,扫描是否有按键按下,diyi列按键包括:0,4,8,C l_key=P0; //读取键值 if(l_key!=0xfe) //如果l_key不等于0xfe,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xfd; //将第二列拉低,扫描是否有按键按下,第二列按键包括:1,5,9,D l_key=P0; //读取键值 if(l_key!=0xfd) //如果l_key不等于0xfd,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xfb; //将第三列拉低,扫描是否有按键按下,第三列按键包括:2,6,A,F l_key=P0; //读取键值 if(l_key!=0xfb) //如果l_key不等于0xfb,说明有键按下,就返回,否则继续扫描下一列 return; P0=0xf7; //将第四列拉低,扫描是否有按键按下,第四列按键包括:3,7,B,F l_key=P0; //读取键值 if(l_key!=0xf7) //如果l_key不等于0xf7,说明有键按下,就返回,否则扫描完毕将l_key=0xff return; l_key=0xff; } void delay() { unsigned int x,y; for(x=100;x>0;x--) for(y=200;y>0;y--); } 这个程序是用来扫描diyi列键盘,diyi个和第二个键按下,数码管会显示1和2,但是第三个键和第四个键按下,就不显示不出来三和四,这是为什么呢? 展开
2008-09-15 15:10:29
473
1
- 数码管led菜单求助
2018-07-28 17:02:18
364
1
1月突出贡献榜
推荐主页
最新话题
-
- #八一建军节——科技铸盾,仪器护航#
- 如何选择到合适的磷青铜绞线?磷青铜绞线的质量...如何选择到合适的磷青铜绞线?磷青铜绞线的质量解析和如何选择到合适的绞线?磷青铜绞线是一种特殊的铜合金导线,由铜、锡和磷等元素组成,具有很好的机械性能、电气性能和耐腐蚀性。磷青铜绞线基本定义与特性:磷青铜是铜与锡、磷的合金,质地坚硬,可制弹簧。典型成分为铜(90%)、锡(6-9%)及磷(0.03-0.6%)锡元素提升合金的强度和耐腐蚀性,磷则细化晶粒、增强耐磨性铸造性能。耐磨性:表面氧化层使其在特殊环境下耐腐蚀,使用寿命长导电性:保持铜很好导电性能的同时有化电子传输路径非铁磁性:不含铁元素,避免在强磁场环境中产生额外能量损耗弹性:受到外力作用时能迅速恢复原状
- 八一建军节 铁血铸军魂













参与评论
登录后参与评论