標(biāo)題: 基于51單片機(jī)的光電傳感器程序 [打印本頁]

作者: 草莓味    時(shí)間: 2018-6-26 19:09
標(biāo)題: 基于51單片機(jī)的光電傳感器程序
基于51單片機(jī)的光電傳感器程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰極數(shù)碼管段碼
sbit SPK=P3^7;
sbit key1=P1^0;
sbit key2=P1^1;
uchar n,a,b;
void delay(uchar z)        //延時(shí)函數(shù)
{
   uchar x,y;
   for(x=z;x>0;x--)
   for(y=110;y>0;y--);
}
void scan()//按鍵模擬紅外光電開關(guān)
{
if(key1==0) //計(jì)數(shù)
  {
   delay(10);
   if(key1==0)
   {
    while(!key1);
    n++;
    if(n==100)
    n=0;
   }
  }
if(key2==0)//清零
{
  delay(10);
  if(key2==0)
  {
   while(!key2);
   n=0;
  }
}
}
void display()//顯示函數(shù)
{
a=n%10;
b=n/10;
P2=0xfe;  //數(shù)碼管位選
P0=table[b];
delay(10);
P2=0xfd;
P0=table[a];
delay(10);      
}
void alarm(uchar t)//蜂鳴器報(bào)警函數(shù)        
{
uchar i,j;
for(i=0;i<200;i++)
{
  SPK=~SPK;
  for(j=0;j<t;j++);   
}
}
void main()//主函數(shù)
{
  while(1)
{
  scan();
  display();
  if((a==8)&&(b==0))//模擬產(chǎn)品報(bào)警個(gè)數(shù)(例如程序中的8)
  {
   alarm(30);
   alarm(50);
  }
}
}



作者: 無線強(qiáng)大    時(shí)間: 2019-6-19 22:02
nice    非常感謝
作者: 星空丶懶惰的貓    時(shí)間: 2020-11-2 22:06
樓主有仿真圖嗎
作者: kk理想    時(shí)間: 2023-5-7 18:00
星空丶懶惰的貓 發(fā)表于 2020-11-2 22:06
樓主有仿真圖嗎

樓主有仿真圖嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1