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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3341|回復(fù): 0
收起左側(cè)

單片機低頻信號發(fā)生器Proteus仿真程序

[復(fù)制鏈接]
ID:655559 發(fā)表于 2019-12-3 23:15 | 顯示全部樓層 |閱讀模式
1、       查閱相關(guān)資料,完成原理圖設(shè)計;
2、       編寫軟件,使該系統(tǒng)能輸出方波、三角波、鋸齒波和梯形波;波形頻率均為1khz,雙極性輸出。
3、       用protel軟件完成系統(tǒng)的硬件設(shè)計,并通過電器規(guī)則檢查;
4、       仿真實現(xiàn);
5、       畫pcb圖;

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
3.png
1.png

電路原理圖如下:
2.png


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png

單片機代碼:
  1. #include <AT89X51.H>
  2. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66}//  0 1 2 3 4  


  3. unsigned char time1;                              //////延時函數(shù)參數(shù)///////           
  4. /////////////////////////////變量說明//////////////////////////////////////                              
  5. unsigned char time2;
  6. unsigned char time3;
  7. unsigned char count;
  8. unsigned char ms;
  9. ////////////////////////////////////////函數(shù)說明////////////////////////////////

  10. void  initial(void);                                           ////初始化函數(shù)////
  11. //void  initial_time0(void);                                      //////定時器0初始化///////


  12. void  anjian(void);                                          ////////////按鍵函數(shù)////
  13. void  delay(unsigned char time1,time2,time3);                  ////延時函數(shù)////
  14. void  disp(unsigned char count);                              /////靜態(tài)顯示子函數(shù)/////
  15. void  delay1(char ms);

  16. void  fangbo(void);                                          //方波函數(shù)//
  17. void  sanjiaobo(void);                                    //三角波函數(shù)//
  18. void  juchibo(void);                                      //鋸齒波函數(shù)//
  19. void  tixingbo(void);                                  //正弦波函數(shù)//



  20. void  main (void)
  21. {
  22.   initial();
  23.   while(1)
  24.   {
  25.      anjian();
  26.   }
  27. }
  28. /*************************************************************************
  29. //函數(shù)名稱:void anjian(void)
  30. //函數(shù)說明:按鍵函數(shù)
  31. //函數(shù)功能:
  32. //    注意:
  33. *************************************************************************/
  34. void  anjian(void)
  35. {

  36.   if(P3_7==0)
  37.    {delay(1,50,248);
  38.     if(P3_7==0)
  39.      {count=1;
  40.       disp(count);
  41.     fangbo();
  42.      }
  43.    }
  44.    while(P3_7==0);
  45.   count=0;
  46.   disp(count);
  47.   anjian();
  48. }
  49. /*************************************************************************
  50. //函數(shù)名稱:void fangbo(void)
  51. //函數(shù)說明:方波函數(shù)
  52. //函數(shù)功能:
  53. //    注意:
  54. *************************************************************************/
  55. void  fangbo(void)
  56. {
  57.   while(1)
  58.      {
  59.      unsigned char fangbo_1;
  60.          fangbo_1+=8;
  61.          if(fangbo_1>128&fangbo_1<256)   {P0=0x00;}            
  62.          if(fangbo_1<128)            {P0=0xff;}

  63.        if(P3_7==0)
  64.             {delay(1,50,248);
  65.          if(P3_7==0)
  66.              {  count=2;
  67.                 disp(count);
  68.                     sanjiaobo();

  69.              }
  70.             }
  71.             while(P3_7==0);
  72.   }   
  73. }
  74. /*************************************************************************
  75. //函數(shù)名稱:voidsanjiaobo(void)
  76. //函數(shù)說明:三角波函數(shù)
  77. //函數(shù)功能:
  78. //    注意:
  79. *************************************************************************/
  80. void  sanjiaobo(void)
  81. {
  82.   while(1)
  83.   {
  84.          unsignedchar sanjiaobo_2;
  85.          if(sanjiaobo_2<=128)
  86.          {P0=sanjiaobo_2;}
  87.          else
  88.          {P0=255-sanjiaobo_2;}
  89.       sanjiaobo_2+=5;   
  90.          if(sanjiaobo_2>=255)
  91.          {sanjiaobo_2=0x00;}

  92.           if(P3_7==0)
  93.             {
  94.             delay(1,50,248);
  95.             if(P3_7==0)
  96.              {count=3;
  97.                 disp(count);
  98.                     juchibo();

  99.               }
  100.          }
  101.             while(P3_7==0);
  102.   }
  103. }
  104. /*************************************************************************
  105. //函數(shù)名稱:voidjuchibo(void)
  106. //函數(shù)說明:鋸齒波函數(shù)
  107. //函數(shù)功能:
  108. //    注意:
  109. *************************************************************************/
  110. void  juchibo(void)
  111. {
  112.   while(1)
  113.   {
  114.          unsignedchar juchibo_3;
  115.          if(juchibo_3<180) {P0=juchibo_3;}   
  116.          juchibo_3+=4;   
  117.          if(juchibo_3>=180)   {juchibo_3=0x00;}
  118.          if(P3_7==0)
  119.          {
  120.          delay(1,50,248);
  121.          if(P3_7==0)
  122.              {count=4;
  123.                 disp(count);
  124.                     tixingbo();
  125.             }
  126.           }
  127.         while(P3_7==0);
  128.   }   
  129. }
  130. /*************************************************************************
  131. //函數(shù)名稱:voidtixingbo(void)
  132. //函數(shù)說明:梯形波函數(shù)
  133. //函數(shù)功能:
  134. //    注意:
  135. *************************************************************************/
  136. void tixingbo(void)
  137. {
  138.   while(1)
  139.   {
  140.      unsignedchar tixingbo_4;
  141.          if(tixingbo_4<120)
  142.          {P0=tixingbo_4;}
  143.          elseif(tixingbo_4==120)
  144.            delay1(1);
  145.         elseif(tixingbo_4<240)
  146.            {P0=240-tixingbo_4;}
  147.           if(tixingbo_4==240)
  148.            {delay1(1);}


  149.          if(tixingbo_4>240)
  150.          {
  151.          tixingbo_4=0x00;

  152.          }   

  153.              tixingbo_4+=10;
  154.          if(P3_7==0)
  155.             {delay(1,50,248);
  156.             if(P3_7==0)
  157.              {  count=0;
  158.                 disp(count);
  159.                     anjian();

  160.               }
  161.          }
  162.            while(P3_7==0);
  163.   }
  164. }
  165. /*************************************************************************
  166. //函數(shù)名稱:voidinitial(void)
  167. //函數(shù)說明:初始化函數(shù)
  168. //函數(shù)功能:
  169. //    注意:
  170. *************************************************************************/
  171. void  initial(void)
  172.       {
  173.          P0=0xff;
  174.          P1=0xff;
  175.          P2=0xff;
  176.          P3=0xff;
  177.       }
  178. /*************************************************************************
  179. //函數(shù)名稱:delay(unsignedchar time1,time2,time3)
  180. //函數(shù)說明:延時函數(shù)
  181. //函數(shù)功能:
  182. //入口參數(shù):unsigned chartime1,time2,time3
  183. //出口參數(shù):
  184. //    注意:延時時間的計算:(time1*time2*time3*8us)us   
  185.             time1,time2,time3可以不進行變量說明  
  186. *************************************************************************/
  187. void delay(unsigned char time1,time2,time3)
  188.        {
  189.          unsigned char i,j,k;
  190.           for(i=time1;i>0;i--)
  191.              { for(j=time2;j>0;j--)
  192.                   {
  193.                      for(k=time3;k>0;k--);
  194.                   }
  195.              }
  196.         }
  197. /*************************************************************************
  198. //函數(shù)名稱:disp(unsignedchar count)
  199. //函數(shù)說明:靜態(tài)顯示子函數(shù)
  200. //函數(shù)功能:
  201. //入口參數(shù):unsigned charcount
  202. //出口參數(shù):
  203. //    注意:
  204. *************************************************************************/
  205. void  disp(unsigned char count)
  206.       {  
  207.          P2=table[count];
  208.          delay(1,5,248);
  209.       }

  210.    void delay1(char ms)
  211. {
  212. char ti;
  213. while(ms--)
  214. {
  215.   for(ti=0;ti<16;ti++){}
  216. }
  217. }
復(fù)制代碼
51hei.png

全部資料51hei下載地址:
低頻信號發(fā)生器.rar (1.53 MB, 下載次數(shù): 38)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

無效樓層,該帖已經(jīng)被刪除
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表