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

標題: 數控直流電源0V~10V 單片機程序+仿真 [打印本頁]

作者: 黑菜加白菜    時間: 2016-5-25 13:10
標題: 數控直流電源0V~10V 單片機程序+仿真
數控直流電源0V~10V功能說明
(1)系統可調節直流穩壓電源,調節范圍0V~10V;
(2)步進調節,每次0.1V;
(3)數碼管顯示輸出的電壓;
(4)設置了加,減和歸零按鍵



51單片機做的數控源仿真原理圖(仿真文件請下載本帖最后的51黑附件)

單片機數控源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uint aa,b,bb;
  5. sbit p1=P2^7;
  6. sbit p2=P2^6;
  7. sbit p3=P2^5;
  8. sbit p4=P2^4;
  9. sbit dp=P0^7;
  10. sbit an1=P1^4;
  11. sbit an2=P1^5;
  12. sbit an3=P1^6;
  13. sbit CLK=P1^2;/*定義DAC控制端口*/
  14. sbit CS=P1^1;
  15. sbit DIN=P1^3;
  16. uchar code SegCode[12] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xc1};
  17. int moshi=0;
  18. void DelayMs(uchar n)
  19. {
  20.         uchar j;
  21.         while (n--)            
  22.         {
  23.                 for (j = 0; j < 113; j++);
  24.         }
  25. }

  26. void keyscan1()        /*復位*/
  27. {
  28.     if(an1==0)
  29.      {  aa=0;
  30.                 bb=0;
  31.        
  32.          }
  33.     while(an1==0);
  34. }

  35. void keyscan2()        /*按鍵1進行加1*/
  36. {
  37.     if(an2==0)
  38.      {
  39.                          if(aa<100)
  40.                          {
  41.                                  aa=aa+1;
  42.                      bb++;
  43.                          }
  44.          }
  45.     while(an2==0);
  46. }

  47. void keyscan3() /*按鍵2進行減1*/
  48. {
  49.    if(an3==0)
  50.     {
  51.            if(aa>0)
  52.                  {
  53.                          aa=aa-1;
  54.              bb--;
  55.                  }
  56.         }
  57.   while(an3==0);
  58. }

  59. /*顯示函數*/
  60. void display(void)
  61. {  p1=0;p2=0;p3=0;p4=0;
  62.           if(bb/100%10==0)
  63.     P0=SegCode[10];
  64.     else
  65.         P0=SegCode[bb/100%10];
  66.         p1=1;p2=0;p3=0;p4=0;
  67.         DelayMs(3);
  68.        
  69.           p1=0;p2=0;p3=0;p4=0;
  70.         P0=SegCode[bb/10%10];
  71.         dp=0;
  72.         p1=0;p2=1;p3=0;p4=0;
  73.         DelayMs(3);
  74.   
  75.         p1=0;p2=0;p3=0;p4=0;
  76.         P0=SegCode[bb%10];
  77.         p1=0;p2=0;p3=1;p4=0;
  78.         DelayMs(3);

  79.         p1=0;p2=0;p3=0;p4=0;
  80.         P0=SegCode[11];
  81.         p1=0;p2=0;p3=0;p4=1;
  82.         DelayMs(3);

  83.         p1=0;p2=0;p3=0;p4=0;
  84. }
  85.        
  86. void DA_Conver(unsigned int DAValue)
  87. {
  88.       unsigned char i;
  89.       DAValue <<= 6;       
  90.       CS =   0;                             
  91.       CLK = 0;                          
  92.                                        
  93.       for(i = 0; i < 12; i++)                 
  94.       {                                    
  95.           DIN = (bit)(DAValue & 0x8000);  
  96.           CLK = 1;                        
  97.           DAValue <<= 1;                  
  98.          CLK = 0;
  99.       }
  100.       CS = 1;                              
  101.       CLK = 0;           
  102. }
  103.                        
  104. float zh (float k)
  105. {
  106.   float DA;
  107.   DA=k*1024/500;        /*2.5v參考電壓!*/
  108.   return DA;  }
  109. void init_timer()
  110. {  
  111.     TMOD=0x01;
  112.         TH0=(65536-3500)/256;         
  113.         TL0=(65536-3500)%256;
  114.         EA=1;
  115.         ET0=1;
  116.         TR0=1;
  117.               }

  118. void main()
  119. {long DAValue=0;
  120.   aa=0;


  121.           init_timer();

  122.   while(1)
  123.   {  
  124.     DAValue=zh(aa);  /*輸出電壓*/
  125.           DA_Conver(DAValue);
  126.              keyscan1();
  127.           keyscan2();
  128.           keyscan3();
  129.          
  130.         }
  131.   }
  132.        
  133. void time0() interrupt 1
  134.         {          TH0=(65536-3500)/256;
  135.         TL0=(65536-3500)%256;
  136.         b++         ;
  137.         if(b==2)
  138.         {b=0;
  139.           display(); }
  140.           }         
復制代碼


全部資料下載:
程序設計.rar (5.31 KB, 下載次數: 263) 電路仿真.rar (56.33 KB, 下載次數: 279)


作者: huanganan    時間: 2017-4-25 19:53
樓主能把資料發郵箱嗎
作者: dragon19790000    時間: 2017-4-25 20:26
好東西,量程可以更大一些嗎
作者: 虎兔賽高    時間: 2017-5-19 12:13
樓主好人
作者: XDDZ1013    時間: 2017-5-19 21:23
學習一下
作者: nc4485    時間: 2017-5-23 04:34
好資料,學習
作者: 清風望月哀    時間: 2017-6-22 11:55
樓主好人,就是沒有元器件圖,我很小白
作者: effort    時間: 2017-7-28 17:21
謝謝樓主
作者: 老夏家的云    時間: 2017-12-16 17:04
樓主可以發郵箱嗎 資料?
作者: GUOXUAN    時間: 2017-12-17 10:10
這個項目簡潔易做,初學DIY可以一試.
就是量程只有10V,用起來范圍會顯得小,雞肋一些.老師能修改大一些嗎?
作者: huhao512215    時間: 2017-12-21 22:17
剛入門,沒得黑幣
作者: ztw    時間: 2018-3-22 22:32
樓主,能說明下算法流程嗎
作者: aa12315    時間: 2018-5-4 16:34
厲害的樓主,有沒有講解?
作者: yjs    時間: 2018-5-4 21:32
很好,感謝論壇,感謝老鐵
作者: TKJT    時間: 2018-6-4 07:35
感謝分享
作者: gemxie    時間: 2018-11-4 23:07
樓主能把資料發郵箱嗎
作者: gemxie    時間: 2018-11-4 23:08

很好,感謝論壇,感謝老鐵
作者: 真的很麻煩    時間: 2019-4-22 17:21
萬分感謝

作者: 劉軼淼    時間: 2019-4-22 23:08
感謝樓主,萌新求帶

作者: 真的很麻煩    時間: 2019-4-24 22:08
真的萬分感謝啊啊啊啊啊
作者: 風一樣的壞蛋    時間: 2019-4-25 11:07
非常好

作者: hua7328    時間: 2019-5-7 17:51
下載學習下
作者: liqingyong    時間: 2019-5-9 16:56
很好,我覺得把電壓分成幾段,然后精度就提高了,可以做到0-30v.
作者: JJ1154285848    時間: 2019-5-19 17:48
這個就是按鍵控制的數控直流電壓源嘛?

作者: 初學者52    時間: 2020-9-17 20:32
樓主能講解一下嗎?我初學
作者: rayin    時間: 2020-11-15 17:48
不錯,值得學習。51hei有你更精彩!
作者: 蝸牛賢    時間: 2022-8-16 19:39
資料不錯,輸出驅動電流多大。




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 新香蕉视频 | 亚洲乱码在线观看 | www.亚洲国产| 青青青草视频在线观看 | 久久久久久黄色 | 一级真人毛片 | 视频一区在线播放 | 午夜精品久久久久久久久久蜜桃 | 久久国产小视频 | 午夜性影院 | 一级片在线观看视频 | 欧美国产精品一区二区 | 日本高清中文字幕 | 五月天婷婷激情网 | 黄色一级大片在线免费看国产一 | 精品免费国产一区二区三区四区 | 久久免费看视频 | 日韩一区二区三免费高清在线观看 | 一级黄色片在线观看 | 欧美一区二 | 中文在线视频 | 亚洲精品视频在线 | 欧美一区二区三区在线播放 | 亚洲特级片 | 欧美日韩国产二区 | 日韩在线网址 | 成人网av | 天天操天天插 | 日韩成人免费 | 国产h在线观看 | 日本毛片视频 | 国产一区一区 | 日本天天操 | 色中色综合 | 久热伊人 | a免费视频 | 伊人网在线视频 | 日本三级大片 | 国产盗摄一区二区三区 | 色噜噜狠狠一区二区三区 | 国产女人高潮视频 |