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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機數控電源 tlc5615+tlc1543程序

[復制鏈接]
跳轉到指定樓層
樓主
數控電源,51單片機+tlc5615+tlc1543

源程序:
  1. /*最大電流為6A,最大電壓為40V*/
  2. #include<reg52.h>
  3. sbit sclk5615=P1^0;                                                                                                                                /*dac tlc5615串行時鐘*/
  4. sbit din5615=P1^1;                                                                                                                                 /*dac tlc5615串行數據輸入*/
  5. sbit cs5615=P1^2;                                                                                                                                  /*dac tlc5615片選*/
  6. sbit dout5615=P1^3;                                                                                                                                /*dac tlc5615串行數據輸出*/
  7. sbit eoc1543=P3^0;
  8. sbit sclk1543=P3^1;
  9. sbit addr1543=P3^2;
  10. sbit dout1543=P3^3;
  11. sbit cs1543=P3^4;
  12. void Delayms(unsigned int t)                                                                                                    //延時毫秒函數:
  13. {
  14.         unsigned int x,y;
  15.         for(x=t;x>0;x--)
  16.                 for(y=120;y>0;y--);
  17. }
  18. void TLC1543_init(void)
  19. {
  20.     cs1543=1;
  21.     sclk1543=0;
  22. }
  23. unsigned int ReadADC_TLC1543(unsigned char ch)
  24. {
  25.     unsigned char temp;
  26.     unsigned int adc_value=0;
  27.     ch<<=4;
  28.     cs1543=0;
  29.     for(temp=0;temp<10;temp++)         // 將判斷語句改為 temp<12
  30.     {                                       // 程序可移殖至 TLC2543.
  31.         adc_value<<=1;
  32.         ch<<=1;
  33.         addr1543=CY;
  34.         if(dout1543)   
  35.                         adc_value+=1;
  36.         sclk1543=1;
  37.         Delayms(1);
  38.         sclk1543=0;
  39.     }
  40.     cs1543=1;
  41.     return adc_value;
  42. }
  43. void WriteTLC5615(unsigned int wdata)                                                                                //寫TLC5615數據函數:
  44. {
  45.         unsigned char i;
  46.         cs5615=0;                                                                                                                                        //片選使能
  47.         wdata<<=2;                                                                                                                                //將數據左移兩位,補兩位擴展位,組成12位數據寫入
  48.         for(i=0;i<12;i++)                                                                                                                //寫入12位數據
  49.         {
  50.                 sclk5615=0;
  51.                 din5615=(wdata&0x0800)?1:0;                                                                                                //取出最高位(第11位)寫入
  52.                 sclk5615=1;                                                                                                                                //上升沿送數據
  53.                 wdata<<=1;                                                                                                                        //下一位移到最高位
  54.         }
  55.         cs5615=1;                                                                                                                                        //片選禁止
  56. }
  57. float get_average(unsigned char ch,unsigned char time)
  58. {
  59.         unsigned char i;
  60.         float v;
  61.         v=ReadADC_TLC1543(ch);
  62.         for(i=0;i<time;i++)
  63.         {
  64.                 v+=v;
  65.                 Delayms(5);
  66.         }
  67.         return v/time;
  68. }
  69. /*unsigned char KEY_Scan()
  70. {
  71.         unsigned char temp=0;
  72.         unsigned char com=0x55,com1=0,com2=0;
  73.         P2=0xf0;
  74.         if(P2!=0xf0)
  75.         {
  76.                 com1=P2;
  77.                 P2=0x0f;
  78.                 com2=P2;        
  79.         }
  80.         P2=0xf0;
  81.     while(P2!=0xf0);          
  82.         temp=com1|com2;
  83.         switch(temp)
  84.         {
  85.                 case 0xee:com=0;break;
  86.                 case 0xed:com=1;break;
  87.                 case 0xeb:com=2;break;
  88.                 case 0xe7:com=3;break;
  89.                 case 0xde:com=4;break;
  90.                 case 0xdd:com=5;break;
  91.                 case 0xdb:com=6;break;
  92.                 case 0xd7:com=7;break;
  93.                 case 0xbe:com=8;break;
  94.                 case 0xbd:com=9;break;
  95.                 case 0xbb:com=10;break;
  96.                 case 0xb7:com=11;break;
  97.                 case 0x7e:com=12;break;
  98.                 case 0x7d:com=13;break;
  99.                 case 0x7b:com=14;break;       
  100.                 case 0x77:com=15;break;                                  
  101.         }
  102.         return(com);
  103. }*/
  104. void main(void)                                                                                                                       
  105. {
  106.         float dat1,dat2,volt,current;
  107.         TLC1543_init();                                                                                                               
  108.         while(1)
  109.         {
  110.                 WriteTLC5615(100);/*向dac寫入數據*/
  111.                 dat1=get_average(0,10);/*通道0測電壓*/
  112.                 dat2=get_average(1,10);/*通道1測電流*/
  113.                 volt=dat1*8;/*最大電壓為40v,分壓為5v,分壓倍數為8倍*/
  114.                 current=dat2*6/5;/*最大電流6A,采樣電阻為1mΩ,采樣電阻上面最大電壓為6mv,差分放大100倍,即最大電壓為6v,分壓電阻分壓后變成5v*/
  115.                                 


  116. …………余下代碼請下載附件…………
復制代碼


下載:
電源.zip (30.14 KB, 下載次數: 62)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:236763 發表于 2018-3-23 19:54 | 只看該作者
大神,有proteus仿真圖嗎?多謝
回復

使用道具 舉報

板凳
ID:123003 發表于 2018-6-16 20:42 | 只看該作者
有沒有電路圖
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线一区二区 | 国产福利免费视频 | 成人在线| 中文字幕三区 | 成人久久18免费网站 | 日韩a视频 | 天堂免费看片 | 亚洲三级在线 | 日本黄色大片免费 | 91麻豆精品一区二区三区 | 亚洲成人精品国产 | 国产乱码精品一区二区三区av | 日韩精品久久久久久 | 99九九视频| 男人av网 | 国产91久久久久蜜臀青青天草二 | 免费在线观看成年人视频 | 亚洲一区二区三区免费 | 亚洲一区二区三区国产 | 久久久久免费观看 | 日韩欧美国产精品综合嫩v 一区中文字幕 | 欧美a∨ | 国内自拍第一页 | 亚洲欧美日韩一区二区 | 婷婷丁香在线视频 | 国产精品入口麻豆www | 国产精品亚洲精品久久 | 国产精品99久久久久久久久久久久 | 中文字幕精品视频在线观看 | 国产午夜精品久久久 | 91成人在线| 久久一区二区av | 国产精品成人一区二区三区夜夜夜 | 91高清视频在线 | 亚洲国产一区二区视频 | 国产精品精品久久久 | 丁香久久| 免费黄色的视频 | 久草成人| 日韩1区| 国产一级视频在线观看 |