超聲波測距時(shí)51單片機(jī)控制八段數(shù)碼管時(shí),用2個(gè)4位的74LS244咋連數(shù)碼管?
-
幫我聯(lián)系啊吧,論文很急?。?
全部評論(0條)
登錄或新用戶注冊
- 微信登錄
- 密碼登錄
- 短信登錄
請用手機(jī)微信掃描下方二維碼
快速登錄或注冊新賬號(hào)
微信掃碼,手機(jī)電腦聯(lián)動(dòng)
注冊登錄即表示同意《儀器網(wǎng)服務(wù)條款》和《隱私協(xié)議》
熱門問答
- 超聲波測距時(shí)51單片機(jī)控制八段數(shù)碼管時(shí),用2個(gè)4位的74LS244咋連數(shù)碼管?
- 幫我聯(lián)系啊吧,論文很急!!
2018-11-19 06:44:05
350
0
- 51單片機(jī) 超聲波測距 控制直流電機(jī)正反轉(zhuǎn)
- 通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時(shí),直流電機(jī)反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時(shí),直流電機(jī)停止;當(dāng)距離小于設(shè)定值A(chǔ)時(shí),直流電機(jī)正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機(jī)所處的各個(gè)狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液... 通過超聲波傳感器測距,當(dāng)距離大于設(shè)定值A(chǔ)時(shí),直流電機(jī)反轉(zhuǎn);當(dāng)距離等于設(shè)定值A(chǔ)時(shí),直流電機(jī)停止;當(dāng)距離小于設(shè)定值A(chǔ)時(shí),直流電機(jī)正轉(zhuǎn)。具體要求:1)設(shè)定值A(chǔ)能夠通過鍵盤設(shè)定;2)電機(jī)所處的各個(gè)狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)和停止)及超聲波傳感器檢測的距離值能夠在液晶上實(shí)時(shí)顯示。 展開
2015-07-12 14:27:24
787
1
- 51單片機(jī)超聲波測距用lcd顯示
- 51單片機(jī)超聲波測距用lcd顯示1602顯示屏
2018-11-24 01:55:06
380
0
- 51單片機(jī)C語言編寫自行車測速儀用數(shù)碼管顯示速度和路程
2017-02-28 10:40:32
451
3
- 51單片機(jī)超聲波測距模塊代碼
- ****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時(shí)器1和外部中斷呢 這時(shí)候回波已經(jīng)回來了啊 不是測不出超聲波回波的時(shí)間了... ****************************************************************************************這是代碼原文 我想問一下主函數(shù)下的while循環(huán)里面 為什么等到echo回波回來了 才打開定時(shí)器1和外部中斷呢 這時(shí)候回波已經(jīng)回來了啊 不是測不出超聲波回波的時(shí)間了嗎還有就是 為什么在whlie循環(huán)前先打開了總中斷 然后進(jìn)入whlie又立刻關(guān)閉 再重新打開 那diyi次打開不是很多余嗎 麻煩大神解答一下 展開
2018-06-26 20:47:55
563
1
- 求51單片機(jī)超聲波測距代碼
2011-08-20 06:16:46
488
2
- 用51單片機(jī)做的簡易頻率計(jì)為什么在高頻段數(shù)碼管就開始閃了
- 采用測頻法測外部信號(hào)的頻率,T1,定時(shí)一秒,方式2;T0,計(jì)數(shù),方式1,低頻段的時(shí)候顯示正常,高頻段數(shù)碼管就閃,為什么呢 #include
#define uchar unsigned char #define uint unsigned int uchar code t[]={0x3f,0x06,0x5b,0x4f,0x66,0x6...
2013-06-12 00:16:56
470
2
- 單片機(jī)用余暉效應(yīng)實(shí)現(xiàn)6個(gè)數(shù)碼管的動(dòng)態(tài)顯示(計(jì)時(shí)器)
- 要同時(shí)亮起6個(gè)數(shù)碼管就得用余暉效應(yīng)。每個(gè)數(shù)碼管之間亮起的間隔為1ms。但是這個(gè)藥怎么寫代碼。為什么我看一本書中的代碼就只是用if-else這個(gè)語句而已。感覺并沒有體現(xiàn)出用定時(shí)器來控制的感覺。
2018-04-05 23:37:56
752
1
- 用51單片機(jī)做超聲波測距都需要什么元件?
- 用51單片機(jī)做超聲波測距都需要什么元件(探測的距離5到10米左右)?知道的話發(fā)到我郵箱里zhanxiage1994@sina.com謝謝了
2012-03-28 03:51:02
344
1
- 51單片機(jī)做頻率計(jì),為什么兩個(gè)數(shù)碼管一直是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)//延時(shí)函數(shù) { 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優(yōu)先級(jí)高
TMOD=0x15; //TI定時(shí)。T0計(jì)數(shù)
TH0=0; //T0初值
TL0=0;
TH1=(65535-45872)/256; //T1初值50ms
TL1=(65535-45872)%256;
EA=1; // 開總中斷
ET0=1; // 開定時(shí)器T0中斷
TR0=1; // 開T0自啟動(dòng)方式開關(guān)
ET1=1; // 開定時(shí)器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計(jì)數(shù) { f++; } void T1time() interrupt 3 using 1//定時(shí)器 { 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
441
0
- GP2Y0A21YK0F紅外測距傳感器怎樣用怎樣接51單片機(jī)用51控制它
2017-08-06 11:44:06
933
1
- 做一個(gè)51單片機(jī)超聲波測距需要哪些器材
2017-02-28 00:10:01
438
1
- 用51單片機(jī)實(shí)現(xiàn)超聲波測距怎樣才可以測到4m?
2011-08-14 00:36:29
485
4
- 請問適合51單片機(jī)用的50M測距用哪種超聲波芯片好
2012-10-03 21:03:52
394
2
- 單片機(jī)做頻率計(jì)數(shù)碼管的顯示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
533
2
- 這個(gè)51單片機(jī)HC-SR04超聲波測距程序哪里錯(cuò)了
- //晶振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)//定時(shí)器1初始化 { TMOD=0x22;//定時(shí)器1工作方式2,TH1是重裝值,TL1是初值 TH1=0xd2; //重載值 溢出一次約50us TL1=0xd2; //初始化值 ET1=1; //開中斷 } void EX1init(void) //外部中斷1初始化 { IT1 = 1; //指定外部中斷0下降沿觸發(fā),INT1 (P3.3) EA = 1; //開總中斷 } /*------------------------------------------------ 定時(shí)器1中斷處理 ------------------------------------------------*/ void tim1_isr (void) interrupt 3 { irtime++; //用于計(jì)數(shù)2個(gè)下降沿之間的時(shí)間 } /*------------------------------------------------ 外部中斷1中斷處理 ------------------------------------------------*/ void EX1_ISR (void) interrupt 2 //外部中斷1服務(wù)函數(shù) { 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); } } 主函數(shù)調(diào)用test,然后在數(shù)碼管上顯示(顯示函數(shù)略過),測試的時(shí)候,在數(shù)碼管上顯示的距離明顯不對,還各種不穩(wěn)定,有時(shí)就個(gè)位數(shù)上顯示一個(gè)1或2,不知道怎么回事 展開
2016-01-25 09:17:10
409
2
- 想學(xué)下51單片機(jī)的超聲波測距,有幾個(gè)疑問。
- 想學(xué)下51單片機(jī)的超聲波測距,有幾個(gè)疑問。 在百度上看到的超聲波模塊工作原理:單片機(jī)供給超聲波信號(hào)端Trig一個(gè)Z少10us長的高電平信號(hào),模塊自動(dòng)發(fā)射8個(gè)40khz的方波,自動(dòng)檢測到信號(hào)是否返回,有信號(hào)返回,Echo端輸出一個(gè)高電平,高電平持續(xù)的實(shí)踐就是超... 想學(xué)下51單片機(jī)的超聲波測距,有幾個(gè)疑問。 在百度上看到的超聲波模塊工作原理:單片機(jī)供給超聲波信號(hào)端Trig一個(gè)Z少10us長的高電平信號(hào),模塊自動(dòng)發(fā)射8個(gè)40khz的方波,自動(dòng)檢測到信號(hào)是否返回,有信號(hào)返回,Echo端輸出一個(gè)高電平,高電平持續(xù)的實(shí)踐就是超聲波從發(fā)射到返回的時(shí)間。 我的理解是給Trig一個(gè)10微秒以上高電平信號(hào),模塊會(huì)發(fā)射超聲波,這個(gè)時(shí)候Echo應(yīng)該是低電平,等有聲波信號(hào)返回時(shí)Echo會(huì)變高電平,聲波從發(fā)射到返回用了多長時(shí)間,Echo的高電平就持續(xù)多長時(shí)間。不知道理解的對不對? 這里有個(gè)疑問,百度了一下發(fā)現(xiàn)都是檢測Echo收到返回聲波后高電平持續(xù)時(shí)間來計(jì)算距離,為什么不檢測從模塊發(fā)射聲波到Echo收到返回聲波的時(shí)間呢?這樣不是可以節(jié)約一半的時(shí)間嗎? 還有一個(gè)問題,我在學(xué)習(xí)板上試了一下程序,給Trig一個(gè)20微秒的高電平信號(hào),然后等待Echo變高電平開啟定時(shí)器,但直到定時(shí)器溢出Echo一直都是高電平,超聲波模塊離墻面只有80厘米左右,模塊換了2個(gè)都是這樣。 第三個(gè)問題,百度上說計(jì)算測量距離等于定時(shí)器記錄的時(shí)間乘以340除以2,但定時(shí)器記錄的時(shí)間單位不是納秒嗎?還要除以一百萬才能乘以340吧?這樣得到的距離單位是米。 求教各位答疑解惑。 展開
2018-01-19 02:56:05
446
2
- 利用芯片74138控制的數(shù)碼管的C程序
- voidReadKey(void);//掃描鍵盤獲取鍵值voidmain(void)//入口函數(shù){while(1){ReadKey();//調(diào)用鍵盤掃描if(l_key!=0xff)//如果有鍵按下,將其輸出P2口LED燈顯示,{switch(l_key){case0x7... void ReadKey(void); //掃描鍵盤 獲取鍵值
void main(void) //入口函數(shù)
{
while(1){
ReadKey(); //調(diào)用鍵盤掃描
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] ; } //這里取反是因?yàn)長ED燈采用共陰接法 } } void ReadKey(void) //讀鍵盤值 { P0=0xfe; //將diyi列拉低,掃描是否有按鍵按下,diyi列按鍵包括:0,4,8,C l_key=P0; //讀取鍵值 if(l_key!=0xfe) //如果l_key不等于0xfe,說明有鍵按下,就返回,否則繼續(xù)掃描下一列 return; P0=0xfd; //將第二列拉低,掃描是否有按鍵按下,第二列按鍵包括:1,5,9,D l_key=P0; //讀取鍵值 if(l_key!=0xfd) //如果l_key不等于0xfd,說明有鍵按下,就返回,否則繼續(xù)掃描下一列 return; P0=0xfb; //將第三列拉低,掃描是否有按鍵按下,第三列按鍵包括:2,6,A,F(xiàn) l_key=P0; //讀取鍵值 if(l_key!=0xfb) //如果l_key不等于0xfb,說明有鍵按下,就返回,否則繼續(xù)掃描下一列 return; P0=0xf7; //將第四列拉低,掃描是否有按鍵按下,第四列按鍵包括:3,7,B,F(xiàn) 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--); } 這個(gè)程序是用來掃描diyi列鍵盤,diyi個(gè)和第二個(gè)鍵按下,數(shù)碼管會(huì)顯示1和2,但是第三個(gè)鍵和第四個(gè)鍵按下,就不顯示不出來三和四,這是為什么呢? 展開
2008-09-15 15:10:29
493
1
- 數(shù)碼管led菜單求助
2018-07-28 17:02:18
379
1
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論