久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1991|回復: 0
打印 上一主題 下一主題
收起左側

聲光控制代碼單片機

[復制鏈接]
跳轉到指定樓層
樓主
ID:330317 發表于 2018-5-15 12:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,bai,shi,ge,tt;
uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  
// //數碼管段定義;
uchar code table1[]={0xfb,0xfd,0xfe}; //數碼管位定義;
sbit open=P3^7;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit light=P3^2;
//ADC0832的引腳;
sbit adCS =P3^1;  //ADC0832 片選  ;
sbit adDI =P3^3;  //ADC0832 通道選擇和初始化輸入 ;
sbit adDO =P3^3;  //ADC0832 的數據輸出;
sbit adCLK =P3^0;  //ADC0832 時鐘信號;
uchar getdat; //獲取ADC轉換回來的值;
void display(uchar shi,uchar ge);
void delay(uint z);
void keyscan();
void init();
uchar adc0832(unsigned char channel);
//主程序
void main()
{
init();//初始化子程序  
keyscan();
while(1)
{   
     light=1; //光線初始化為0;
   if(light==0)
      {   
         getdat=adc0832(1);
             display(temp/10,temp%10);    //顯示數字;
     if(getdat>120) //聲音超過2.4V后燈亮;
     {  
          shi=temp/10; //取出十位數字;
      ge=temp%10; //取出個位數字;
          display(shi,ge);    //顯示數字;
             TR0=1;      //啟動定時器0
         if(aa==16)
     {  
           open=0;      //開啟照明燈;
          aa=0;
          temp--;         //倒計時;
         if(temp==-1)
         {
                    temp=0;
                     open=1;    //關閉照明燈;
        }
      }
     }
    }
  }
}
//延時函數;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
//顯示數碼管內容;
void display(uchar shi,uchar ge)
{
   P2=0xfe;
   P0=table[shi];
   delay(1);
   P2=0xfd;
   P0=table[ge];
   delay(1);
       P2=0xfc;
}
void init()   
{
TMOD=0x01;
TH0=(65536-50000)/256;    //給定時器T0的高8位賦初值;
TL0=(65536-50000)%256;     //給定時器T0的低8位賦初值;
EA=1;             //cpu總中斷;
ET0=1;            //T0中斷;
TR0=0;          //關閉定時器0
IE0=1;
//外中斷0初始化 ;
IT0=1; //下降沿觸發;
EX0=1;
light=1; //光線初始化為0;
}
//T0中斷函數;
void timer0() interrupt 1
{
TH0=(65536-50000)/256;      //賦初值;
TL0=(65536-50000)%256;
aa++;
}
//外中斷0函數 ;
void int0() interrupt 0
{
    light=0;
}
//鍵盤掃描函數 ;
void keyscan()
{
      if(key1==0)
      {
            delay(5);   //消抖;
            if(key1==0)  //按下key1燈亮時間為10s
            {   
               temp=10;     //10s延時;  
            }
      }
      if(key2==0)
      {
            delay(5);   //消抖;
            if(key2==0)  //按下key2燈亮時間為20s
            {
               temp=20;
          }
      }
      if(key3==0)
      {   
delay(5);  //消抖;
          if(key3==0)  //按下key3燈亮時間為30s
           {
              temp=30;
           }
      }
}
uchar adc0832(unsigned char ch) //AD轉換,返回結果;
{  
   uchar i=0;
   uchar j;
   uint dat1=0;
   uchar dat2=0;
   if(ch==0)ch=2;
   if(ch==1)ch=3;
   adDI=1;
   _nop_();
   _nop_();
   adCS=0;//拉低CS;
   _nop_();
   _nop_();
   adCLK=1;//拉高CLK;
   _nop_();
   _nop_();
   adCLK=0;//拉低CLK,形成下降沿1 ;
   _nop_();
   _nop_();
   adCLK=1;//拉高CLK;
   adDI=ch&0x1;
   _nop_();
   _nop_();
   adCLK=0;//拉低CLK,形成下降沿2 ;
   _nop_();
   _nop_();
   adCLK=1;//拉高CLK;
   adDI=(ch>>1)&0x1;
   _nop_();
   _nop_();
   adCLK=0;//拉低CLK,形成下降沿3 ;
   adDI=1;//控制命令結束 ;
   _nop_();
   _nop_();
   dat1=0;
   for(i=0;i<8;i++)
    {
       dat1|=adDO;//收數據;
       adCLK=1;
       _nop_();
       _nop_();
       adCLK=0;//形成一次時鐘脈沖 ;
       _nop_();
       _nop_();
       dat1<<=1;
       if(i==7)dat1|=adDO;
   }  
   for(i=0;i<8;i++)
    {
       j=0;
       j=j|adDO;//收數據;
       adCLK=1;
       _nop_();
       _nop_();
       adCLK=0;//形成一次時鐘脈沖 ;
       _nop_();
       _nop_();
       j=j<<7;
       dat2=dat2|j;
       if(i<7)dat2>>=1;
    }
   adCS=1;//拉低CS;
   adCLK=0;//拉低CLK;
   adDO=1;//拉高數據端,回到初始狀態 ;
   dat1<<=8;
   dat1|=dat2;
   return(dat1);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线成人av | 天天爱爱网 | 国精品一区二区 | 特一级毛片 | www.日日夜夜| 日韩中文字幕免费在线观看 | 久久久综合色 | 亚洲欧美一区二区在线观看 | 国产精品一区二区av | 91精品国产一区二区三区 | a级免费黄色片 | 亚洲国产精品一区 | 欧美日韩中文字幕 | 免费成人高清在线视频 | 日本精品一区二区三区视频 | 日韩不卡一区二区 | 97色在线观看免费视频 | 成人久久一区 | 日本一区二区三区四区 | 91传媒在线观看 | 伊人精品在线 | 国产日韩亚洲欧美 | 亚洲精品一区在线 | 日韩电影a | avhd101在线成人播放 | 99久久婷婷国产综合精品电影 | 美女国产精品 | 国产精品久久二区 | 国产免费色 | 亚洲午夜精品一区二区三区他趣 | 日韩欧美在线视频一区 | 欧美毛片免费观看 | 亚洲综合色自拍一区 | 欧美日韩在线观看视频网站 | 亚洲最新在线视频 | 成人精品一区亚洲午夜久久久 | 精品香蕉一区二区三区 | 久久一日本道色综合久久 | 久久网一区二区三区 | 正在播放国产精品 | 亚洲第一成人影院 |