仪器网(yiqi.com)欢迎您!

| 注册2 登录
网站首页-资讯-专题- 微头条-话题-产品- 品牌库-搜索-供应商- 展会-招标-采购- 社区-知识-技术-资料库-方案-产品库- 视频

问答社区

超声波测距时51单片机控制八段数码管时,用2个4位的74LS244咋连数码管?

shuai雅然 2018-11-19 06:44:05 331  浏览
  • 帮我联系啊吧,论文很急!!

参与评论

全部评论(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月突出贡献榜

推荐主页

最新话题