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。填好後,小朋友可以用自己填寫好數字的骰子向少年宮...