這篇要做的Project就是感測器測到訊號時,LED七段顯示器會開始計算偵測次數,
到第5次時會讓紅色LED燈發光。
程式如下:
#include <reg52.h>
unsigned char seg[5]={0xf9,0xa4,0xb0,0x99,0x92}; //七段顯示器0~4。
sbit Sensor=P2^0;
sbit LED=P2^1;
void delay(unsigned int);
int seven_count=0;//LED7計數器。
void main()
{
while(1)
{
if(Sensor==0){ //感測器是觸發給低電位。
P1=~seg[seven_count];//一開始是"0",所以LED7會先顯示"0"。
delay(20000);
seven_count++;//計數器先加1,再度觸發時就會顯示+1後的數值。。
}
if(seven_count>=5){
LED=0;//計數器為5的時候亮紅色燈泡。
delay(30000);
seven_count=0;//清除計數器。
if(seven_count<5){//計數器小於5的時候紅色燈泡不亮。
LED=1;
delay(5000);
}
}
}
}
void delay( unsigned int count)
{
unsigned int i;
for(i=0;i<count;i++);
}
我本來想再加一些功能,就是如果數到5以下時過了5秒會自動清除計數器,
這我還在試...