全部評論(1條)
-
- Liuwei20080866 2011-04-04 00:00:00
- 我有。用外部中斷0做輸入。
#include <mega16.h>
#include <delay.h>
#define uchar unsigned char
unsigned char ge,shi,bai,qian,flag,x,cont;
unsigned int temp,temp_1,temp_2,y;
flash unsigned char duan[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}; void dis() { DDRA=0X0F; DDRB=0XFF; PORTA=0XFF; PORTB=duan[qian]; PORTA.0=0; delay_ms(1); PORTA.0=1; PORTB=duan[bai]; PORTA.1=0; delay_ms(1); PORTA.1=1; PORTB=duan[shi]; PORTA.2=0; delay_ms(1); PORTA.2=1; PORTB=duan[ge]; PORTA.3=0; delay_ms(1); PORTA.3=1; } void jisuan() { temp_1=temp; temp_1=temp_1*17; temp_1=temp_1/100; ge=temp_1 % 10; temp_1=temp_1 / 10; shi=temp_1 % 10; temp_1=temp_1 / 10; bai=temp_1 % 10; qian=temp_1 / 10; flag=0; temp=0; } void init() { temp=0; DDRD.2=0; DDRD.5=1; PORTD.2=1; GICR=0X00; //,先不允許中斷 GICR=0X40; //INT0中斷允許 MCUCR=0X0A; //下降沿觸發(fā) GIFR=0XC0; //清中斷INT0中斷標(biāo)志位 DDRC=0XFF; TCCR2=0X09; //不分頻 TCNT2=0; OCR2=119; //10US; TIMSK=0X80; SREG|=0X80; } interrupt [2] one_INT0() { x++; if(x>=2) { TCCR2=0; //收到回波,停止計(jì)時(shí)。 GICR=0; //關(guān)INT0中斷。 x=0; PORTC=temp; jisuan(); flag=0; } delay_us(20); } interrupt [4] two_T2() //T2定時(shí)器溢出中斷,計(jì)時(shí)。 { temp++; } void send40k() { DDRD.5=1; //CTC模式 TCCR1A=0X40; TCCR1B=0X09; OCR1A=149; } void close40k() { TCCR1B=0; } void main(void) { init(); flag=1; DDRC=0XFF; PORTC=0XFF; DDRD.2=0; PORTD.2=1; while(flag) { GICR=0X00; TCNT2=0; temp=0; send40k(); while(1); TCCR2=0X09; //開始計(jì)時(shí) delay_us(125); close40k(); // PORTD.5=1; delay_us(1500); GICR=0X40; //開INT0中斷。 while(!(temp>=6000)&&flag) //等待外部中斷 防止卡死。 temp=5000,50ms,17米 { } if(temp>=6000) { GICR=0X00; TCCR2=0X00; ge=shi=bai=qian=0; delay_ms(500); } y=700; while(y--)dis(); flag=1; } } -
贊(16)
回復(fù)(0)
熱門問答
- 誰有基于AVR atmega16超聲波測距程序 發(fā)給我
2011-04-03 04:30:42
363
1
- 基于89C52單片機(jī)的HC-SR04超聲波測距系統(tǒng)程序
2018-12-09 01:37:42
379
0
- 超聲波測距程序問題
- #include
#define uchar unsigned char #define uint unsigned int #define ulong unsigned long sbit Tx = P3^3; //產(chǎn)生脈沖引腳 sbit Rx = P3^2; //回波引腳 uchar code SEG7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0...
2012-07-17 06:51:21
601
2
- 求一份如圖 基于單片機(jī)超聲波倒車測距的程序
2016-08-01 00:14:58
662
1
- 誰有三菱PLC仿真軟件。發(fā)給我
2018-06-28 05:17:16
482
2
- 請問基于atmega16 ,利用霍爾傳感器設(shè)計(jì)一個(gè)測速儀,求原理圖跟設(shè)計(jì)程序
2011-10-22 21:40:33
278
2
- 求一份verilog的超聲波測距程序
- 基本要求: 1) 測量距離不低于0.5m,測量精度優(yōu)于0.1m。 2) 數(shù)字顯示測量結(jié)果,并能動(dòng)態(tài)更新,更新周期約為0.5s。 拓展要求: 1) 測量距離大于1m,測量精度優(yōu)于0.05m,顯示精度為0.01m,顯示要求同上。 2) 數(shù)字顯示測量結(jié)果的更新周期可調(diào),顯示... 基本要求: 1) 測量距離不低于0.5m,測量精度優(yōu)于0.1m。 2) 數(shù)字顯示測量結(jié)果,并能動(dòng)態(tài)更新,更新周期約為0.5s。 拓展要求: 1) 測量距離大于1m,測量精度優(yōu)于0.05m,顯示精度為0.01m,顯示要求同上。 2) 數(shù)字顯示測量結(jié)果的更新周期可調(diào),顯示穩(wěn)定。當(dāng)距離小于0.5m時(shí),通過蜂鳴器給出間歇式的“滴-滴”聲響告警;當(dāng)距離小于0.3m時(shí),告警聲響變得更加急促。 3) 其它功能(如使用多個(gè)超聲波傳感器實(shí)現(xiàn)汽車倒車?yán)走_(dá)的功能)。 拓展要求可要可不要,求做過的大佬給份程序謝謝。 展開
2018-07-02 06:15:24
307
1
- 誰有1000L的發(fā)酵罐剖面圖,發(fā)給我吧,謝謝。。。
2018-11-17 19:08:09
290
0
- 求US-100(模塊)超聲波測距的C語言程序,基于51單片機(jī)的,3Q哦~
- 求基于51單片機(jī)的US-100超聲波測距C語言程序。需要詳細(xì)點(diǎn)的具體設(shè)計(jì)程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實(shí)現(xiàn)2--150cm的測距,測得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪... 求基于51單片機(jī)的US-100超聲波測距C語言程序。需要詳細(xì)點(diǎn)的具體設(shè)計(jì)程序,O(∩_∩)O~ US-100模塊參考資料:http://wenku.baidu.com/view/65e63e35a32d7375a41780ce.html 性能要求:實(shí)現(xiàn)2--150cm的測距,測得結(jié)果保留4位有效數(shù)字(取整數(shù)),單位:mm。 哪位大神幫幫忙嘍,急?。。?!真心謝謝大神了~ 展開
2017-05-17 15:16:00
580
1
- 求一個(gè)cc2530 超聲波模塊測距的程序
2013-08-02 21:14:16
394
2
- 求基于STC89c52單片機(jī)做超聲波測距儀程序
2015-04-11 11:12:58
447
1
- 誰有機(jī)器視覺圖像處理軟件,發(fā)一份給我。謝謝啊 QQ:349284951
2011-07-25 10:42:17
377
2
- 誰有PLC運(yùn)動(dòng)控制控制實(shí)例的 發(fā)份給我 謝謝 525259034@qq.com
- 要求精度的大功率的伺服... 要求精度的 大功率的伺服 展開
2011-08-31 02:09:42
445
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
- 超聲波測距
- time=timeH*256+timeL; distance=time*0.0172; //厘米 0.0172怎么來的 , distance怎么來的 求具體轉(zhuǎn)換過程,只要真心,一定采納
2013-11-23 11:03:17
462
1
- 求一個(gè)基于stm32和us-100的超聲波測距原理圖
2018-06-17 12:43:03
737
1
- 基于單片機(jī)的超聲波測距系統(tǒng)的答辯有什么問題
2017-06-07 04:45:19
634
1
- DHT11 溫濕度傳感器 avr nega 16 c程序
- 用4個(gè)共陽的數(shù)碼管顯示的mega16avr單片機(jī)的c程序... 用4個(gè)共陽的數(shù)碼管顯示的 mega 16 avr單片機(jī)的 c程序 展開
2018-11-28 15:47:44
351
0
- 誰有真空鍍膜機(jī)操作規(guī)程和維修保養(yǎng)計(jì)劃表?有的發(fā)一份給我,謝謝!
2018-12-02 00:08:44
372
0
- 幫幫忙 幫我解釋詳細(xì)下 這個(gè)程序 超聲波測距的
- void Conut(void) { time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.72)/100; //算出來是CM
2013-06-17 03:22:24
481
1
4月突出貢獻(xiàn)榜
推薦主頁
最新話題





參與評論
登錄后參與評論