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

標(biāo)題: 實(shí)驗(yàn)用0一20V數(shù)控電源 [打印本頁(yè)]

作者: 阿凡提    時(shí)間: 2016-12-23 22:26
標(biāo)題: 實(shí)驗(yàn)用0一20V數(shù)控電源
實(shí)驗(yàn)用0一20V數(shù)控電源   程序  PCB

穩(wěn)壓電源.rar

537.68 KB, 下載次數(shù): 370, 下載積分: 黑幣 -5

實(shí)驗(yàn)用0一20V數(shù)控電源 程序 PCB


作者: 阿凡提    時(shí)間: 2016-12-23 22:29


'///////////////////////////////////////////////////////////////////////////////
'/                                                                             /
'/ 這是一個(gè)M8控制LM317的直流穩(wěn)壓電源                                           /
'/ 輸出電壓 0-20V 連續(xù)調(diào)節(jié)                                                     /
'/ 最大輸出電流 1.5A                                                           /
'/ 截止型過(guò)電流保護(hù) 0-1.5A 連續(xù)調(diào)節(jié)                                            /
'/ 呂軍省  junsheng427@126.com  200712 于天津大港                              /
'/                                                                             /
'///////////////////////////////////////////////////////////////////////////////




$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portd.2
Config Lcd = 16 * 2
'定義LED是16字符,2行

Config Adc = Single , Prescaler = Auto , Reference = Internal
'定義ADC為單次運(yùn)行模式,轉(zhuǎn)換時(shí)鐘-自動(dòng),內(nèi)部參考電壓

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1
'PWM1A配置,用于數(shù)模轉(zhuǎn)換,

Ddrb.1 = 1       'PWM1A輸出端子

'定義所需要變量 ////////////////////////////////////////////////////////////////

Dim V_dc As Long , A_dc As Long , W As Long

Dim V1_dc As Word , A1_dc As Word , A As Word , C As Word , A1 As Word

Dim V1 As String * 5
Dim V2 As String * 5
Dim C1 As String * 5

Dim N As Byte , B2 As Byte , B3 As Byte , B4 As Byte , B5 As Byte

'初始化設(shè)置/////////////////////////////////////////////////////////////////////

   Ddrd.3 = 0       '按鍵初始化
   Ddrd.4 = 0
   Ddrd.5 = 0
   Ddrd.6 = 0
   Ddrd.7 = 0

   Portd.3 = 1
   Portd.4 = 1
   Portd.5 = 1
   Portd.6 = 1
   Portd.7 = 1


   Start Timer1
   Start Adc

   Cls
   Cursor Off

   A = 0
   C = 1500
   W = 0

   Ddrc.4 = 1       '初始化風(fēng)扇控制
   Portc.4 = 0

   Ddrc.3 = 1       '初始化繼電器控制
   Portc.3 = 0

   Ddrc.2 = 1
   Portc.2 = 0


'主程序/////////////////////////////////////////////////////////////////////////

Do

   Pwm1a = A


   N = 1
   V1_dc = 0
   A1_dc = 0
   V_dc = 0
   A_dc = 0

   For N = 1 To 30       'ADC采樣30次

      V1_dc = Getadc(0)
      V_dc = V_dc + V1_dc       'ADC的原始值累加

      A1_dc = Getadc(1)
      A_dc = A_dc + A1_dc

   Next

      V_dc = V_dc / 30
      A_dc = A_dc / 30

      V_dc = 2560 * V_dc
      V_dc = V_dc / 1023

      A_dc = 2560 * A_dc
      A_dc = A_dc / 1430

   If A >= 451 Then Portc.3 = 1 Else Portc.3 = 0       '繼電器控制

   If A < 451 Then W = 1400 Else W = 2800
      W = W - V_dc
      W = W * A_dc
   If W > 400000 Then Portc.4 = 1 Else Portc.4 = 0       '風(fēng)扇控制

      Gosub Lp_lcd
      Gosub Lp_key

   If A_dc >= C Then       '截止型電流保護(hù)
     Waitms 500
      If A_dc >= C Then

         A1 = A
         A = 0

         Locate 1 , 12
         Lcd "OC "

         Gosub Mu

      End If
   End If

Loop
End

'顯示處理///////////////////////////////////////////////////////////////////////

Lp_lcd:

   V1 = Str(v_dc)
   V1 = Format(v1 , " 0.00")       '數(shù)字轉(zhuǎn)換為字符串,確定小數(shù)點(diǎn)

   V2 = Str(a_dc)
   V2 = Format(v2 , "0.000")

   C1 = Str(c)
   C1 = Format(c1 , "0.000")

   Locate 1 , 1
   Lcd "U=" ; V1 ; "V"

   Lowerline
   Lcd "I=" ; V2 ; "A <"

   Locate 2 , 11
   Lcd C1 ; "A"

Return

'按鍵處理//////////////////////////////////////////////////////////////////////

Lp_key:

   If Pind.3 = 0 Then       '啟動(dòng)
      Waitms 20
        If Pind.3 = 0 And A = 0 Then
           A = A1
           Locate 1 , 12
           Lcd "ON "
           Waitms 250
     End If
   End If

   If Pind.3 = 0 Then       '停止
      Waitms 20
        If Pind.3 = 0 And A > 1 Then
           A1 = A
           A = 0
           Locate 1 , 12
           Lcd "OFF"
        End If
   End If

   If Pind.4 = 1 Then B2 = 0       '電壓+

   If Pind.4 = 0 Then
      Waitms 20
        If Pind.4 = 0 Then
          If A < 1023 Then
             A = A + 1
             B2 = B2 + 1
              If B2 > 20 And A < 1013 Then
              A = A + 10
              End If
          End If
        End If
   End If

   If Pind.5 = 1 Then B3 = 0       '電壓-

   If Pind.5 = 0 Then
      Waitms 20
        If Pind.5 = 0 Then
          If A > 1 Then
            A = A - 1
            B3 = B3 + 1
             If B3 > 20 And A > 10 Then
             A = A - 10
             End If
          End If
        End If
   End If

   If Pind.6 = 1 Then B4 = 0       '電流+

   If Pind.6 = 0 Then
      Waitms 20
        If Pind.6 = 0 Then
          If C < 1500 Then
            C = C + 1
            B4 = B4 + 1
             If B4 > 20 And C < 1480 Then
             C = C + 20
             End If
          End If
        End If
   End If

   If Pind.7 = 1 Then B5 = 0       '電流-

   If Pind.7 = 0 Then
      Waitms 20
         If Pind.7 = 0 Then
           If C > 1 Then
             C = C - 1
             B5 = B5 + 1
             If B5 > 20 And C > 20 Then
                C = C - 20
             End If
           End If
         End If
   End If

Return

'報(bào)警聲音///////////////////////////////////////////////////////////////////////

Mu:

   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000

Return

'///////////////////////////////////////////////////////////////////////////////
作者: 阿凡提    時(shí)間: 2016-12-23 22:32


'///////////////////////////////////////////////////////////////////////////////
'/                                                                             /
'/ 這是一個(gè)M8控制LM317的直流穩(wěn)壓電源                                           /
'/ 輸出電壓 0-20V 連續(xù)調(diào)節(jié)                                                     /
'/ 最大輸出電流 1.5A                                                           /
'/ 截止型過(guò)電流保護(hù) 0-1.5A 連續(xù)調(diào)節(jié)                                            /
'/ 呂軍省  junsheng427@126.com  200712 于天津大港                              /
'/                                                                             /
'///////////////////////////////////////////////////////////////////////////////




$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.0 , Rs = Portd.2
Config Lcd = 16 * 2
'定義LED是16字符,2行

Config Adc = Single , Prescaler = Auto , Reference = Internal
'定義ADC為單次運(yùn)行模式,轉(zhuǎn)換時(shí)鐘-自動(dòng),內(nèi)部參考電壓

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1
'PWM1A配置,用于數(shù)模轉(zhuǎn)換,

Ddrb.1 = 1       'PWM1A輸出端子

'定義所需要變量 ////////////////////////////////////////////////////////////////

Dim V_dc As Long , A_dc As Long , W As Long

Dim V1_dc As Word , A1_dc As Word , A As Word , C As Word , A1 As Word

Dim V1 As String * 5
Dim V2 As String * 5
Dim C1 As String * 5

Dim N As Byte , B2 As Byte , B3 As Byte , B4 As Byte , B5 As Byte

'初始化設(shè)置/////////////////////////////////////////////////////////////////////

   Ddrd.3 = 0       '按鍵初始化
   Ddrd.4 = 0
   Ddrd.5 = 0
   Ddrd.6 = 0
   Ddrd.7 = 0

   Portd.3 = 1
   Portd.4 = 1
   Portd.5 = 1
   Portd.6 = 1
   Portd.7 = 1


   Start Timer1
   Start Adc

   Cls
   Cursor Off

   A = 0
   C = 1500
   W = 0

   Ddrc.4 = 1       '初始化風(fēng)扇控制
   Portc.4 = 0

   Ddrc.3 = 1       '初始化繼電器控制
   Portc.3 = 0

   Ddrc.2 = 1
   Portc.2 = 0


'主程序/////////////////////////////////////////////////////////////////////////

Do

   Pwm1a = A


   N = 1
   V1_dc = 0
   A1_dc = 0
   V_dc = 0
   A_dc = 0

   For N = 1 To 30       'ADC采樣30次

      V1_dc = Getadc(0)
      V_dc = V_dc + V1_dc       'ADC的原始值累加

      A1_dc = Getadc(1)
      A_dc = A_dc + A1_dc

   Next

      V_dc = V_dc / 30
      A_dc = A_dc / 30

      V_dc = 2560 * V_dc
      V_dc = V_dc / 1023

      A_dc = 2560 * A_dc
      A_dc = A_dc / 1430

   If A >= 451 Then Portc.3 = 1 Else Portc.3 = 0       '繼電器控制

   If A < 451 Then W = 1400 Else W = 2800
      W = W - V_dc
      W = W * A_dc
   If W > 400000 Then Portc.4 = 1 Else Portc.4 = 0       '風(fēng)扇控制

      Gosub Lp_lcd
      Gosub Lp_key

   If A_dc >= C Then       '截止型電流保護(hù)
     Waitms 500
      If A_dc >= C Then

         A1 = A
         A = 0

         Locate 1 , 12
         Lcd "OC "

         Gosub Mu

      End If
   End If

Loop
End

'顯示處理///////////////////////////////////////////////////////////////////////

Lp_lcd:

   V1 = Str(v_dc)
   V1 = Format(v1 , " 0.00")       '數(shù)字轉(zhuǎn)換為字符串,確定小數(shù)點(diǎn)

   V2 = Str(a_dc)
   V2 = Format(v2 , "0.000")

   C1 = Str(c)
   C1 = Format(c1 , "0.000")

   Locate 1 , 1
   Lcd "U=" ; V1 ; "V"

   Lowerline
   Lcd "I=" ; V2 ; "A <"

   Locate 2 , 11
   Lcd C1 ; "A"

Return

'按鍵處理//////////////////////////////////////////////////////////////////////

Lp_key:

   If Pind.3 = 0 Then       '啟動(dòng)
      Waitms 20
        If Pind.3 = 0 And A = 0 Then
           A = A1
           Locate 1 , 12
           Lcd "ON "
           Waitms 250
     End If
   End If

   If Pind.3 = 0 Then       '停止
      Waitms 20
        If Pind.3 = 0 And A > 1 Then
           A1 = A
           A = 0
           Locate 1 , 12
           Lcd "OFF"
        End If
   End If

   If Pind.4 = 1 Then B2 = 0       '電壓+

   If Pind.4 = 0 Then
      Waitms 20
        If Pind.4 = 0 Then
          If A < 1023 Then
             A = A + 1
             B2 = B2 + 1
              If B2 > 20 And A < 1013 Then
              A = A + 10
              End If
          End If
        End If
   End If

   If Pind.5 = 1 Then B3 = 0       '電壓-

   If Pind.5 = 0 Then
      Waitms 20
        If Pind.5 = 0 Then
          If A > 1 Then
            A = A - 1
            B3 = B3 + 1
             If B3 > 20 And A > 10 Then
             A = A - 10
             End If
          End If
        End If
   End If

   If Pind.6 = 1 Then B4 = 0       '電流+

   If Pind.6 = 0 Then
      Waitms 20
        If Pind.6 = 0 Then
          If C < 1500 Then
            C = C + 1
            B4 = B4 + 1
             If B4 > 20 And C < 1480 Then
             C = C + 20
             End If
          End If
        End If
   End If

   If Pind.7 = 1 Then B5 = 0       '電流-

   If Pind.7 = 0 Then
      Waitms 20
         If Pind.7 = 0 Then
           If C > 1 Then
             C = C - 1
             B5 = B5 + 1
             If B5 > 20 And C > 20 Then
                C = C - 20
             End If
           End If
         End If
   End If

Return

'報(bào)警聲音///////////////////////////////////////////////////////////////////////

Mu:

   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000
      Waitms 20
   Sound Portc.5 , 100 , 1000

Return

'///////////////////////////////////////////////////////////////////////////////
作者: wylx    時(shí)間: 2016-12-24 00:05
先支持一下,等待樓主上圖講解。
作者: atl0402    時(shí)間: 2017-1-3 22:35
放個(gè)實(shí)物圖片就完美了
作者: mirage    時(shí)間: 2017-1-4 13:51
有原理圖就更好了
作者: zscioo    時(shí)間: 2017-2-1 10:42
感謝樓主分享~
作者: 超級(jí)博士    時(shí)間: 2017-2-14 01:12
感謝分享 支持樓主
作者: 夏至未至_FF    時(shí)間: 2017-2-15 16:35

感謝分享 支持樓主
作者: 視界    時(shí)間: 2017-2-16 12:14


感謝分享,謝謝
作者: hldnd    時(shí)間: 2017-2-17 15:14
樓主,好東東,可惜沒(méi)有黑幣
作者: chunzz    時(shí)間: 2017-4-2 00:11
新手學(xué)習(xí)
作者: Alvin_Nie    時(shí)間: 2017-4-3 17:32
有沒(méi)朋友驗(yàn)證過(guò)?

作者: GUOXUAN    時(shí)間: 2017-11-18 11:28
在礦石論壇上電源版上學(xué)習(xí)到呂老師此作品,!原諒我來(lái)51HEI壇晚,資歷不夠,不能為老師評(píng)分,但鼓勵(lì)是一直的謝謝老師再分享~
作者: SONG1230    時(shí)間: 2017-11-27 11:41
學(xué)習(xí)了
作者: tangshangen1989    時(shí)間: 2018-3-31 10:33
我沒(méi)有黑幣,能否把穩(wěn)壓電源資料發(fā)我郵箱,謝謝!773414324@qq.com
作者: 菜鳥也上線    時(shí)間: 2018-3-31 20:25
樓主的數(shù)控電源太好了,謝謝分享
作者: badmon    時(shí)間: 2018-4-4 17:51
有點(diǎn)講解就完美了  這么看真是一頭漿糊啊
作者: qq450218705    時(shí)間: 2018-6-4 18:41
好東西,正需要,感謝開(kāi)源。
作者: ycgxlyf    時(shí)間: 2019-1-24 00:28
先收藏
作者: 888fa    時(shí)間: 2020-2-26 15:31
會(huì)編程的都是老大




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲黄色三级 | 亚洲成人av | 国产又粗又猛又黄又爽的视频 | 国产色视频一区二区三区qq号 | 精品久久久久久久久久久 | 国产午夜视频在线观看 | 国产女人高潮视频 | 天天爽夜夜爽 | 日韩理论在线 | 欧美成视频 | 在线观看视频国产 | 日本在线网站 | 亚洲免费视频观看 | 国产欧美日韩在线观看 | 欧美不卡一区二区三区 | 超碰99在线 | 日本亚洲欧美 | 日韩欧美一级 | 免费av在线网站 | 欧美一区不卡 | 欧美在线免费观看 | 日日操视频 | 亚洲精品a | 天天干天天弄 | 能看毛片的网站 | 女同一区二区三区 | 日韩一区中文字幕 | 亚洲二区在线 | 成人免费看片视频 | 国产人成一区二区三区影院 | 欧美一区二区三区成人 | 国产精品毛片久久久久久久 | 欧美一级淫片bbb一84 | 一区二区三区在线观看视频 | 久久不射网 | 国产一区二区免费看 | 亚洲成人中文字幕 | www婷婷| av一道本| 窝窝午夜精品一区二区 | 午夜精品视频 |