欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

基于51單片機數字示波器的設計 波形電路

查看數: 5038 | 評論數: 7 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2017-5-11 19:05

正文摘要:

本帖最后由 Nyx影 于 2017-5-11 20:50 編輯 [size=13.3333px] AD574A AT89C52單片機 19264液晶屏 來實現輸入信號波形顯示[size=13.3333px]proteus仿真不成功 請問前輩們,程序錯在了哪里。單片機完全無法驅動AD#i ...

回復

ID:199666 發表于 2017-5-13 15:40
sad,沒有一個人解答 。。。。
ID:191024 發表于 2017-5-12 21:39
很好,做得借鑒。
ID:199666 發表于 2017-5-12 17:43
經過修改,最后發現      void prcrdata() 函數 沒有被程序調用。。。請問前輩們,這個函數應該插入到哪里呢?
ID:189987 發表于 2017-5-12 15:04
雖然很長 但也看完了
ID:199666 發表于 2017-5-12 13:20
666562323 發表于 2017-5-12 10:59
#include
#include//循環函數的頭文件
#define uint unsigned int

您好。。這個和我的有關系么~如果我沒猜錯的話,前面看出來這是點亮數碼管的程序吧~
ID:162136 發表于 2017-5-12 11:35
之前想過用51做示波器,看了我又想起來了。
ID:199877 發表于 2017-5-12 10:59
#include<reg52.h>
#include<intrins.h>//循環函數的頭文件
#define uint unsigned int
#define uchar unsigned char
uchar code table0[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//從低位往高位移一個燈
uchar code table1[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//從高位往低位移一個燈
uchar code table2[]={0xfe,0xfa,0xf8,0xf0,0xe0,0xa0,0x80,0x00};//從低位到高位逐步全部點亮
uchar code table3[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};//從高位到低位逐步全部點亮
uchar code table4[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//從低位到高位逐步全部熄滅
uchar code table5[]={0x80,0xa0,0xe0,0xf0,0xf8,0xfa,0xfe,0xff};//從高位到低位逐步全部熄滅
uchar code table6[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//從低位到高位,滅一個燈移動
uchar code table7[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//從高位到低位,滅一個燈移動

uchar i;

void delay(uint z) //延時函數
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=314;y>0;y--);
}
///////////////////////////////////////////////////
///////////////////////////////////////////////////
///////////////////////////////////////////////////
void deng123()//
{
                for(i=0;i<8;i++)
        {
                P2=table1[i];
                P0=table1[i];
                delay(25);
        }
}
/***********************************************
************************************************/
void deng0()//所有燈亮一會兒
{
        P0=0x00;P1=0x00;P2=0x00;P3=0x00;
        delay(150);
}
/////////////////////////////////
void deng0_1()//所有燈滅一會兒
{
        P0=0xff;P1=0xff;P2=0xff;P3=0xff;
        delay(150);
}
//////////////////////////////////////
void deng1()//兩列燈順時針旋轉2遍,然后逐漸降低
{         
          uchar c;
          P1=0x00;P3=0x00;
         
         for(c=2;c>0;c--)
         {
                 deng123();
         }
         ////////////////

        P1=0x03;
        deng123();
        /////////////////               
        P1=0x0f;
        deng123();
        ////////////////
        P1=0x3f;
        deng123();
        ///////////////
        P1=0xff;
        deng123();
        ////////////////////////
        P3=0x03;
        deng123();
        //////////////
        P3=0x0f;
        deng123();
        //////////////
        P3=0x3f;
        deng123();
        /////////////
        P3=0xff;
        deng123();
        P2=0xff;P0=0xff;
               
}

///////////////////////////////////////////////

  void deng2()//四列燈順時針旋轉2遍
{         
          uchar a;
         uchar b;
         b=0x77;
         P2=b;
         P0=b;
         P1=0x00;P3=0x00;
        for(a=4;a>0;a--)
         {
                  for(i=0;i<8;i++)
        {
                b=_cror_(b,1);//循環左移
                delay(25);
                P2=b;
                P0=b;
        }
         }               
        
        P2=0xff;P0=0xff;P1=0xff;P3=0xff;
               
}
//////////////////////////////////////////////
void deng3()//單層,向上升
{
         P0=0x00;
        P2=0x00;
               
        for(i=0;i<8;i++)
         {
                  P3=table1[i];
                 delay(25);
         }
        P3=0xff;
/*----------------------*/         
         for(i=0;i<8;i++)
         {
                  P1=table1[i];
                 delay(25);
         }
        P1=0xff;
}
/////////////////////////////////////////
void deng4()//單層,向下降
{         
         P2=0x00;P0=0x00;
         for(i=0;i<8;i++)
        {
                P1=table0[i];
                delay(25);
        }
        P1=0xff;
/*----------------------*/
        for(i=0;i<8;i++)
        {
                P3=table0[i];
                delay(25);
        }
        P3=0xff;P1=0xff;P0=0xff;P2=0xff;        
}
/////////////////////////////////////////
void deng5()//從上到下,逐層全部點亮】
{
         P0=0x00;P2=0x00;
        for(i=0;i<8;i++)
        {
                P1=table2[i];
                delay(25);
        }
        for(i=0;i<8;i++)
        {
                P3=table2[i];
                delay(25);
        }
        P0=0xff;P1=0xff;P2=0xff;P3=0xff;
}
////////////////////////////////////////
void deng6()//從上到下,逐層全部熄滅】
{
         P0=0x00;P2=0x00;
        P1=0x00;P3=0x00;
        for(i=0;i<8;i++)
        {
                P1=table4[i];
                delay(25);
        }
        P1=0xff;
        for(i=0;i<8;i++)
        {
                P3=table4[i];
                delay(25);
        }
        P3=0xff;
        P0=0xff;P2=0xff;
}
///////////////////////////////////

void deng7()//四組燈,交替兩次
{
        for(i=2;i>0;i--)
        {
                P1=0x00;P2=0x00;//上左
                delay(40);
                P1=0xff;P2=0xff;
                delay(40);
        
               
        /////////////
        P3=0x00;P0=0x00;//下右
                delay(40);
                P3=0xff;P0=0xff;
                delay(40);
        /////////////
        P3=0x00;P2=0x00;//下左
                delay(40);
                P3=0xff;P2=0xff;
                delay(40);
        /////////////
                P1=0x00;P0=0x00;//上右
                delay(40);
                P1=0xff;P0=0xff;
                delay(40);
          }
               
}
void deng8()//上半先逐步列點亮,然后再向下點點亮
{
        P0=0xff;P2=0xff;P3=0xff;
        P1=0x00;
        for(i=0;i<8;i++)
        {
                P0=table3[i];
            P2=table3[i];
                delay(25);        
        }
         delay(70);
        P1=0x00;P2=0x00;P0=0x00;
        for(i=0;i<8;i++)
        {
                P3=table2[i];
                delay(25);
        }

        
}
//////////////////////////////////////
void deng9()//從中間向上、下點亮,再熄滅
{
        P0=0x00;P2=0x00;
        for(i=0;i<8;i++)
        {
                P1=table3[i];
                P3=table2[i];
                delay(25);
        }
        for(i=0;i<8;i++)
        {
                P1=table4[i];
                P3=table5[i];
                delay(25);
        }
}
///////////////////////////////////////////
void deng10()//從中間向上、下熄滅
{
        P0=0x00;P2=0x00;
        for(i=0;i<8;i++)
        {
                P1=table5[i];
                P3=table4[i];
                delay(25);
        }
        P1=0xff;P3=0xff;

}
void deng11()//逆時針逐列點亮所有燈
{
        P1=0x00;P3=0x00;
        P0=0xff;P2=0xff;
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                delay(25);
        }
        for(i=0;i<8;i++)
        {
                P2=table2[i];
                delay(25);
        }
        P0=0xff;P2=0xff;P3=0xff;P1=0xff;
}
///////////////////////////////////////////
void deng12()//閃爍
{
        uchar i;
         uchar b;
         b=0xaa;
         P2=b;
         P0=b;
         P1=b;
         P3=b;
        
         for(i=0;i<8;i++)
        {
                b=_cror_(b,1);//循環左移
                delay(50);
                P2=b;
                P0=b;
                P1=b;
                P3=b;
        
        }
        P0=0xff;P1=0xff;P2=0xff;P3=0xff;
}
void deng13()//兩層燈,分別從中間向上、下移動
{
        P2=0x00;P0=0x00;
        for(i=0;i<8;i++)
        {
                P1=table1[i];
                P3=table0[i];
                delay(25);
        }
        P2=0xff;P0=0xff;P1=0xff;P3=0xff;
}
void deng14_1()//點滿一圈的小函數(限內部用)
{        
        P2=0xff;P0=0xff;

        for(i=0;i<8;i++)
        {
                P2=table2[i];
                delay(15);
        }
         
        for(i=0;i<8;i++)
        {
                P0=table2[i];
                delay(15);
        }
         P2=0xff;P0=0xff;
}
///////////////////////////
void deng14()//從下開始,點滿一圈后,滅,再上升點亮第二圈
{
        P1=0xff;

        P3=0x7f;//1層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xbf;//2層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xdf;//3層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xef;//4層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xf7;//5層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xfb;//6層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xfd;//7層
        deng14_1();//點滿一圈的小函數(限內部用)
        P3=0xfe;//8層
        deng14_1();//點滿一圈的小函數(限內部用)
        //////////////////
        P3=0xff;

        P1=0x7f;//1層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xbf;//2層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xdf;//3層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xef;//4層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xf7;//5層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xfb;//6層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xfd;//7層
        deng14_1();//點滿一圈的小函數(限內部用)
        P1=0xfe;//8層
        deng14_1();//點滿一圈的小函數(限內部用)

        P1=0xff;
}

/*====================================================
===================主函數君===========================
======================================================*/        
void main()
{
        while(1)
        {  
            
        deng0_1();//所有燈滅一會兒
        deng0_1();//所有燈滅一會兒        
        deng14();//從下開始,點滿一圈后,滅,再上升點亮第二圈        
        deng4();//單層,向下降
        
        deng5();//從上到下,逐層全部點亮
        deng6();//從上到下,逐層全部熄滅】
        deng8();//上半先逐步點亮,然后再向下點亮
        deng0();//所有燈亮一會

        deng6();//從上到下,逐層全部熄滅】
        deng9();//從中間向上、下點亮,再熄滅
        deng9();//從中間向上、下點亮,再熄滅
        deng0_1();//所有燈滅一會兒
        deng11();//逆時針逐列點亮所有燈
        deng10();//從中間向上、下熄滅
        deng0_1();//所有燈滅一會兒
        deng13();//兩層燈,分別從中間向上、下移動
        deng3();//單層,向上升
        deng5();//從上到下,逐層全部點亮
        deng12();//閃爍
        deng12();//閃爍
        deng2();//四列燈順時針旋轉2遍
        deng1();//兩列燈順時針旋轉2遍,然后逐漸降低
        deng0_1();//所有燈滅一會兒        
        }
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表