REKLAMA

Laminarka.zip

Laminarka do PCB - Proszę o compilację w Bascomie

Skompilowało się bez błędów. Bascom 1.11.9.8


Pobierz plik - link do postu
  • Laminarka.zip
    • LAMINARKA.CFG
    • laminarka.dbg
    • laminarka.hex
    • laminarka.bas
    • laminarka.rpt
    • laminarka.bin
    • laminarka.obj
    • Laminarka PCB.txt


Laminarka.zip > Laminarka PCB.txt

' Laminarka do PCB
' Aberdeen 2014
' By Chodi

' kwarc wewnetrzny 8MHz
' fusy L=0xD4 H=0xD9

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

'LCD
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.3 , Db5 = Portd.4 , Db6 = Portb.6 , Db7 = Portb.7

'ADC
Config Adc = Single , Prescaler = Auto , Reference = Avcc

'PWM
Config Timer1 = Pwm , Pwm = 8 , Prescale = 64 , Compare A Pwm = Clear Down

'timer sterowania fazowego
Config Timer0 = Timer , Prescale = 1024
On Timer0 Triakon

'detekcja zera sieci
Config Int0 = Falling
On Int0 Przejscie

'znak stopnia

Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 ' znak stopnia

' konfiguracja wejsc/wyjsc

' przyciski
Config Pind.6 = Input
Sw1 Alias Pind.6

Config Pind.7 = Input
Sw2 Alias Pind.7

Config Pinb.0 = Input
Sw3 Alias Pinb.0

'czujniki optyczne
Config Pinb.2 = Input
Opto1 Alias Pinb.2

Config Pinc.0 = Input
Opto2 Alias Pinc.0

'pikawka
Config Portc.4 = Output
Buzer Alias Portc.4

'wyjscie grzalki
Config Portc.5 = Output
Triak Alias Portc.5

'detekcja zera jako wejscie
Config Pind.2 = Input
Set Portd.2

'sterowanie silnikiem DC
Config Portc.2 = Output
Kier1 Alias Portc.2

Config Portc.3 = Output
Kier2 Alias Portc.3

Config Portb.1 = Output 'pwm1a
Silnik Alias Portb.1

'zmienne

Dim Moc As Byte
Dim Zwloka As Byte
Dim Termistor As Integer
Dim Temperatura As Integer
Dim Roznica As Integer
Dim Temp As Integer
Dim Temp_obl As Integer
Dim Pikniecia As Byte
Dim Cykle As Byte
Dim Kierunek As Bit
Dim Rundy As Byte
Dim Krok As Byte
Dim Wynik As Byte

'podprogramy

Declare Sub Ustawienia
Declare Sub Rozruch
Declare Sub Koniec_pracy

'Dane startowe

Temperatura = 190
Cykle = 30
Rundy = 0

' powitanie

Cls
Upperline
Lcd " Laminarka do PCB "
Lowerline
Lcd " By Bodzio 2015 "
Wait 2

'wywolanie podprogramu ustawien

Call Ustawienia

Cls
Upperline
Lcd " Temp. : " ; Temperatura ; Chr(0) ; " C "
Lowerline
Lcd " Liczba cykli: " ; Cykle
Wait 2

'rozgrzanie walkow
Call Rozruch
'program glowny

Pwm1a = 255
Cls

Enable Interrupts
Enable Int0
Enable Timer0
Stop Timer0

Do
'sterowanie temperatura

Termistor = Getadc(1)
Temp = 1024 - Termistor
Temp = Temp / 3
Temp_obl = Temp + 1000

Roznica = Temp_obl - Temperatura

Select Case Roznica

Case 1030 To 2000:
Disable Interrupts
Stop Timer0
Triak = 0
Upperline
Lcd " AWARIA !!!!!!!! "
Lowerline
Lcd " odlacz zasilanie "
Buzer = 1

Case 1025 To 1029:
Zwloka = 68

Case 1020 To 1024:
Zwloka = 64

Case 1015 To 1019:
Zwloka = 61

Case 1010 To 1014:
Zwloka = 58

Case 1005 To 1009:
Zwloka = 46

Case 1000 To 1004:
Zwloka = 40

Case 995 To 999:
Zwloka = 38


Case 990 To 994:
Zwloka = 33


Case 985 To 989:
Zwloka = 30


Case 980 To 984:
Zwloka = 29

Case 975 To 979:
Zwloka = 28

Case 970 To 974:
Zwloka = 27

Case 965 To 969:
Zwloka = 26

Case 960 To 964:
Zwloka = 24

Case 955 To 959:
Zwloka = 21

Case 950 To 954:
Zwloka = 20

Case 945 To 949:
Zwloka = 13

Case 940 To 944:
Zwloka = 10

Case 0 To 754:
Zwloka = 2

End Select

'sterowanie silnikiem

If Opto2 = 0 And Opto1 = 1 And Krok = 0 Then
Krok = 1
End If

If Opto2 = 0 And Opto1 = 0 And Krok = 1 Then
Krok = 2
End If

If Opto2 = 1 And Opto1 = 0 And Krok = 2 Then
Wait 1
Kierunek = 0
Krok = 3
End If

If Opto2 = 0 And Opto1 = 0 And Krok = 3 Then
Krok = 4
End If

If Opto2 = 0 And Opto1 = 1 And Krok = 4 Then
Wait 1
Kierunek = 1
Krok = 1
Incr Rundy
End If

If Rundy = Cykle Then
Krok = 5
Kierunek = 0
Rundy = 0
For Pikniecia = 1 To 100
Buzer = 1
Waitms 50
Buzer = 0
Waitms 50
Next Piknieca
Call Koniec_pracy
End If

If Opto1 = 1 And Opto2 = 1 Then
Krok = 0
Kierunek = 1
End If

If Kierunek = 0 Then
Kier1 = 0 : Kier2 = 1
End If

If Kierunek = 1 Then
Kier1 = 1 : Kier2 = 0

End If

'wyswietlane dane

Wynik = Cykle - Rundy

Upperline
Lcd " Temperat. : " ; Temp ; Chr(0) ; " C "
Lowerline
Lcd " Nadal " ; Wynik ; " przejsc "

Loop
End

' podprogram ustawienia wartosci

Sub Ustawienia

Triak = 0
Cls
Cursor Off
Do
Upperline
Lcd " Wprowadz temper. "
Locate 2 , 7
Lcd Temperatura ; Chr(0) ; " C "

If Sw1 = 0 Then Temperatura = Temperatura + 5
If Sw3 = 0 Then Temperatura = Temperatura - 5

If Temperatura & gt; 250 Then Temperatura = 250
If Temperatura & lt; 50 Then Temperatura = 50

Waitms 100 'zwiekszenie szans trafienia w wynik ;)

Loop Until Sw2 = 0

Waitms 750

Cls

Do

Upperline
Lcd " Liczba przejsc "
Locate 2 , 7
Lcd Cykle

If Sw1 = 0 Then Incr Cykle
If Sw3 = 0 Then Decr Cykle

If Cykle & gt; 50 Then Cykle = 50
If Cykle & lt; 1 Then Cykle = 1

Waitms 100 ' jak wyzej :-)

Loop Until Sw2 = 0
End Sub Ustawienia

'podprogram rozgrzania i startu
Sub Rozruch

Cls
Upperline
Lcd " Rozgrzanie rolek "

Buzer = 1
Waitms 500
Buzer = 0
Kier1 = 0
Kier2 = 1
Pwm1a = 200

Do
Termistor = Getadc(1)
Temp = 1024 - Termistor
Temp = Temp / 3
Triak = 1
Lowerline
Lcd " Czekaj... " ; Temp ; Chr(0) ; " C "

Loop Until Temp & gt; Temperatura

For Pikniecia = 1 To 3
Buzer = 1
Waitms 250
Buzer = 0
Waitms 250
Next Pikniecia

Triak = 0

End Sub Rozruch




' koniec
Sub Koniec_pracy

Cls
Disable Interrupts
Stop Timer0
Triak = 0
Do
Upperline
Lcd " Koniec pracy ? "
Lowerline
Lcd " G(T) D(N) "


If Sw1 = 0 Then

Kier1 = 1
Kier2 = 0
Pwm1a = 255
Cls
Do
Termistor = Getadc(1)
Temp = 1024 - Termistor
Temp = Temp / 3
Upperline
Lcd " Chlodze rolki... "
Lowerline
Lcd " Czekaj.......... "
Loop Until Temp & lt; 50

For Pikniecia = 1 To 10
Buzer = 1
Waitms 100
Buzer = 0
Waitms 100
Next X

Do
Upperline
Lcd " Mozna odlaczyc "
Lowerline
Lcd " Do nastepnego :) "
Triak = 0
Pwm1a = 0
Loop


End If

If Sw3 = 0 Then
Config Watchdog = 16
Do
Start Watchdog
Loop
End If

Loop
End Sub Koniec_pracy


'detekcja zera sieci na przerwaniu
Przejscie:


Triak = 0
Load Timer0 , Zwloka
Start Timer0

Return

'przerwanie od timer0
Triakon:

Triak = 1
Stop Timer0
Waitus 10 ' niby tego byc nie powinno .... '
Triak = 0 'ale bez tego nie zatyka triaka i dupa blada :/


Return