藍橋杯微控制器第四屆國賽 超聲波測距報警

2021-10-04 19:28:40 字數 2033 閱讀 8509

1.超聲波模組,超聲波接收到訊號的時候,會把接收訊號rx從高拉低,所以我們在判斷的時候一定要判斷正確。

2.開啟定時器2的中斷:ie2 |= 0x04.

第四屆使用到的模組和第三屆一樣,這裡各個模組的讀寫操作可以看我寫的第三屆:

#include #include #include "iic.h"

#include "ds1302.h"

#define u8 unsigned char

#define u16 unsigned int

sbit tx = p1^0;

sbit rx = p1^1;

u8 code led=;

u8 digcom = 0,yi = 1,er = 2,san = 3,si = 4,wu = 5,liu = 6,qi = 7,ba = 8;

u8 digbuf = ;

u8 key,key_temp;

u8 tsonic = 0;

bit sonic_flag = 0,alarm_flag = 0,led_flag1 = 0,led_flag2 = 0;

u16 distance,alarm_distance = 30,t_led = 0;

u16 t_start = 0;

bit start_flag = 1;

bit s7_flag = 1,s6_flag = 1,s5_flag = 1,s4_flag = 1;

bit flicker_flag = 1,time_flag = 1;

u8 button = 1;

u8 hour = 11,min = 50,sec = 59;

u16 t_flicker = 999;

extern u8 time;

void delay13us()

void delay_ms(u16 ms)

void init(void)

void start(void) //上電時,數碼管全亮

void key_btn(void)

}else

else

}break;

case 0x0b:

if(s7_flag && flicker_flag)

else if(button == 2)

// else if(button == 3)

//

}else if(!s7_flag && alarm_flag)

break;

case 0x07:

if(s7_flag && flicker_flag)

else

}else if(button == 2)

else

}// else if(button == 3)

//

// else

//

// }

}else if(!s7_flag && alarm_flag)

break;

}} }

else if(key_temp == 0x0f && key != 0x0f) }

}void timer2init(void) //1毫秒@11.0592mhz

void timer0init(void)

void timer2()interrupt 12

else

p2 |= 0xa0;

p2 &= 0xbf;

p0 = 0x00;

}}

if(start_flag) //上電初始化

else if(s7_flag && !s6_flag)

//超聲波檢測程式

else if(!s7_flag && !s6_flag)

else

}else if(!s7_flag && alarm_flag)

key_btn();

}}

藍橋杯微控制器之超聲波

首先看原理圖 這裡的超聲波模組主要是介紹的是藍橋杯板子上的超聲波模組,超聲波的原理其實很簡單的 就是由於微控制器乙個引腳連線到發射模組 就可以利用這個引腳來發出一定頻率的訊號,而在 而在發射模組發射出的超聲波被接受回來之後 就會在接收端連線的一極產生下降沿 我們利用乙個定時器來計數 記錄下來回的時間...

第四屆藍橋杯(國賽) 填算式

問題描述 請看下面的算式 abcd efgh xy 900 每個字母代表乙個 0 9 的數字,不同字母代表不同數字,首位不能為 0。比如,5012 4987 36 就是乙個解。請找到另乙個解,並提交該解中 abcd 所代表的整數。答案提交 請嚴格按照格式,通過瀏覽器提交答案。注意 只提交 abcd ...

第四屆藍橋杯(國賽) 骰子謎題

問題描述 小明參加了少年宮的一項趣味活動 每個小朋友發給乙個空白的骰子 它的6個面是空白的,沒有數字 要小朋友自己設計每個面寫哪個數字。但有如下要求 每個面只能填寫 0 至 8 中的某乙個數字。不同面可以填寫同樣的數字,但 6 個面總和必須等於 24。填好後,小朋友可以用自己填寫好數字的骰子向少年宮...