Ravi Dutt
Newbie level 2
Dear All
Please help me on this issue.
i am using the software -Basecom-AVR IDE & using the Atmel AT89S52 writing a program
i want to know how to generate the .hex (hexadecimal) from blow mention program
& where it save when we generate the file.
Regards....
Ravi Dutt
Please help me on this issue.
i am using the software -Basecom-AVR IDE & using the Atmel AT89S52 writing a program
i want to know how to generate the .hex (hexadecimal) from blow mention program
& where it save when we generate the file.
Regards....
Ravi Dutt
Code:
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' G R T I
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Fire Panel 4 Zone
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$large
$crystal = 12000000
'***************************************************************************
' Trip all output ports to zeros
'***************************************************************************
Reset P2.0
Reset P2.1
Reset P2.2
Reset P2.3
Reset P3.0
Reset P3.1
Reset P3.7
'***************************************************************************
' LCD port configuration
'***************************************************************************
Config Lcd = 16 * 2
Config Lcdbus = 4
Config Lcdpin = Pin Db4 = P1.4 , Db5 = P1.5 , Db6 = P1.6 , Db7 = P1.7 , E = P3.4 , Rs = P3.2
'***************************************************************************
'***************************************************************************
' Configure input & output ports
'***************************************************************************
'***************************************************************************
Cfire Alias P3.0 ' Common Fire Output
Cfault Alias P3.1 ' Common Fault Output
Trsil Alias P3.5 ' Trouble Silence Input
Alsil Alias P3.6 ' Alarm Silence Input
Buz Alias P3.7 ' Buzzer Output
'***************************************************************************
' Inputs for Zones 1, 2 & 3
'***************************************************************************
F1 Alias P0.0 ' Zone-1 fire
O2 Alias P0.1 ' Zone-2 open
S1 Alias P0.2 ' Zone-1 short
S2 Alias P0.3 ' Zone-2 short
O1 Alias P0.4 ' Zone-1 open
F2 Alias P0.5 ' Zone-2 fire
F3 Alias P0.6 ' Zone-3 fire
S3 Alias P0.7 ' Zone-3 short
'***************************************************************************
' Outputs for hooters in Z1-4
'***************************************************************************
H1 Alias P2.0 ' Zone-1 hooter
H2 Alias P2.1 ' Zone-2 hooter
H3 Alias P2.2 ' Zone-3 hooter
H4 Alias P2.3 ' Zone-4 hooter
'***************************************************************************
' Inputs for Zones 3 & 4
'***************************************************************************
O4 Alias P2.4 ' Zone-4 open
F4 Alias P2.5 ' Zone-4 fire
O3 Alias P2.6 ' Zone-3 open
S4 Alias P2.7 ' Zone-4 short
'***************************************************************************
'***************************************************************************
' System variable declaration
'***************************************************************************
'***************************************************************************
Dim Message2 As String * 16 , Errorno As Byte , 'Message1 As String * 16
Dim I As Byte , Fire1 As Bit
Dim Fire2 As Bit , Fire3 As Bit , Fire4 As Bit , Fault1 As Bit , Fault2 As Bit
Dim Fault3 As Bit , Fault4 As Bit , Firesil As Bit , Faultsil As Bit
Dim Sfault1 As Bit , Ofault1 As Bit , Sfault2 As Bit , Ofault2 As Bit
Dim Sfault3 As Bit , Ofault3 As Bit , Sfault4 As Bit , Ofault4 As Bit
Dim Firesil1 As Bit , Firesil2 As Bit , Firesil3 As Bit , Firesil4 As Bit
'***************************************************************************
'***************************************************************************
' System subroutine declarations
'***************************************************************************
'***************************************************************************
Declare Sub Lcd_disp()
Declare Sub Fire_alarm()
Declare Sub Chck_port()
Declare Sub Z1()
Declare Sub Z2()
Declare Sub Z3()
Declare Sub Z4()
Declare Sub Disp()
Declare Sub Trsil()
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
' All variable initilization
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fire1 = 1
Fire2 = 1
Fire3 = 1
Fire4 = 1
Fault1 = 1
Fault2 = 1
Fault3 = 1
Fault4 = 1
Firesil1 = 0
Firesil2 = 0
Firesil3 = 0
Firesil4 = 0
'***************************************************************************
'***************************************************************************
' System main program
'***************************************************************************
'***************************************************************************
Waitms 200
Cursor Off
Cls
Message1 = Lookupstr(4 , Msgidx)
Message2 = Lookupstr(0 , Msgidx)
Call Lcd_disp
Do
Call Chck_port
Loop
End
'***************************************************************************
'***************************************************************************
' System subroutines
'***************************************************************************
'***************************************************************************
'###########################################################################
' Zone 1 - 4 scanner
'###########################################################################
Sub Chck_port()
Call Z1
Waitms 200
Call Z2
Waitms 200
Call Z3
Waitms 200
Call Z4
Waitms 200
End Sub
'###########################################################################
' Alphanumeric Display
'###########################################################################
Sub Lcd_disp()
Cls
'Locate 1 , 1
'Lcd Message1
Locate 1 , 1
Lcd Message2
Waitms 300
End Sub
'###########################################################################
' Alarm for Fire Z 1-4
'###########################################################################
Sub Fire_alarm()
For I = 1 To 3
Set Buz
Waitms 100
Reset Buz
Waitms 100
Next
End Sub
Sub Trsil()
If Trsil = 0 Then
Reset Trsil
Reset Buz
Else
Set Buz
End If
End Sub
'###########################################################################
' System LCD display routine
'###########################################################################
Sub Disp()
If Fire1 = 0 Or Fire2 = 0 Or Fire3 = 0 Or Fire3 = 0 Or Fire4 = 0 Then
Set Cfire
Message1 = Lookupstr(4 , Msgidx)
Call Lcd_disp
Else
Reset Cfire
Set Alsil
Firesil1 = 0
Firesil2 = 0
Firesil3 = 0
Firesil4 = 0
Reset H1
Reset H2
Reset H3
Reset H4
If Fault1 = 0 Or Fault2 = 0 Or Fault3 = 0 Or Fault4 = 0 Then
Set Cfault
Message1 = Lookupstr(4 , Msgidx)
Call Lcd_disp
Else
Reset Cfault
Set Trsil
Reset Buz
Message1 = Lookupstr(4 , Msgidx)
Message2 = Lookupstr(0 , Msgidx)
Call Lcd_disp
End If
End If
End Sub
'###########################################################################
' System check I/O & act
'###########################################################################
'***********************************************************************
' Zone-1 status monitor
'***********************************************************************
Sub Z1()
Errorno = 1
If F1 = 0 Then
If Alsil = 0 And Fire1 <> 0 Then
Set Alsil
End If
Message2 = Lookupstr(1 , Msgidx)
Message2 = Message2 + Str(errorno)
If Fire1 = 1 Then
If Alsil = 1 And Firesil1 = 0 Then
Fire1 = 0
Set H1
Call Fire_alarm
End If
Else
If Alsil = 0 And Firesil1 = 0 Then
Reset Alsil
Reset H1
Firesil1 = 1
'Fire1 = 1
End If
If Firesil1 = 0 Then
Fire1 = 0
Set H1
Call Fire_alarm
End If
End If
Else
Fire1 = 1
Firesil1 = 0
Reset H1
If S1 = 0 Then
If Trsil = 0 And Sfault1 <> 0 Then
Set Trsil
End If
Fault1 = 0
Sfault1 = 0
Message2 = Lookupstr(3 , Msgidx)
Message2 = Message2 + Str(errorno)
If Sfault1 = 0 Then
Call Trsil
End If
Else
Fault1 = 1
Sfault1 = 1
If O1 = 0 Then
If Trsil = 0 And Ofault1 <> 0 Then
Set Trsil
End If
Fault1 = 0
Ofault1 = 0
Message2 = Lookupstr(2 , Msgidx)
Message2 = Message2 + Str(errorno)
If Ofault1 = 0 Then
Call Trsil
End If
Call Disp
Else
Fault1 = 1
Ofault1 = 1
End If
End If
End If
Call Disp
End Sub
'***********************************************************************
' Zone-2 status monitor
'***********************************************************************
Sub Z2()
Errorno = 2
If F2 = 0 Then
If Alsil = 0 And Fire2 <> 0 Then
Set Alsil
End If
Message2 = Lookupstr(1 , Msgidx)
Message2 = Message2 + Str(errorno)
If Fire2 = 1 Then
If Alsil = 1 And Firesil2 = 0 Then
Fire2 = 0
Set H2
Call Fire_alarm
End If
Else
If Alsil = 0 And Firesil2 = 0 Then
Reset Alsil
Reset H2
Firesil2 = 1
End If
If Firesil2 = 0 Then
Fire2 = 0
Set H2
Call Fire_alarm
End If
End If
Else
Fire2 = 1
Firesil2 = 0
Reset H2
If S2 = 0 Then
If Trsil = 0 And Sfault2 <> 0 Then
Set Trsil
End If
Fault2 = 0
Sfault2 = 0
Message2 = Lookupstr(3 , Msgidx)
Message2 = Message2 + Str(errorno)
If Sfault2 = 0 Then
Call Trsil
End If
Else
Fault2 = 1
Sfault2 = 1
If O2 = 0 Then
If Trsil = 0 And Ofault2 <> 0 Then
Set Trsil
End If
Fault2 = 0
Ofault2 = 0
Message2 = Lookupstr(2 , Msgidx)
Message2 = Message2 + Str(errorno)
If Ofault2 = 0 Then
Call Trsil
End If
Else
Fault2 = 1
Ofault2 = 1
Call Disp
End If
End If
End If
Call Disp
End Sub
'***********************************************************************
' Zone-3 Alarm status monitor
'***********************************************************************
Sub Z3()
Errorno = 3
If F3 = 0 Then
If Alsil = 0 And Fire3 <> 0 Then
Set Alsil
End If
Message2 = Lookupstr(1 , Msgidx)
Message2 = Message2 + Str(errorno)
If Fire3 = 1 Then
If Alsil = 1 And Firesil3 = 0 Then
Fire3 = 0
Set H3
Call Fire_alarm
End If
Else
If Alsil = 0 And Firesil3 = 0 Then
Reset Alsil
Reset H3
Firesil3 = 1
End If
If Firesil3 = 0 Then
Fire3 = 0
Set H3
Call Fire_alarm
End If
End If
Else
Fire3 = 1
Firesil3 = 0
Reset H3
If S3 = 0 Then
If Trsil = 0 And Sfault3 <> 0 Then
Set Trsil
End If
Fault3 = 0
Sfault3 = 0
Message2 = Lookupstr(3 , Msgidx)
Message2 = Message2 + Str(errorno)
If Sfault3 = 0 Then
Call Trsil
End If
Else
Fault3 = 1
Sfault3 = 1
If O3 = 0 Then
If Trsil = 0 And Ofault3 <> 0 Then
Set Trsil
End If
Fault3 = 0
Ofault3 = 0
Message2 = Lookupstr(2 , Msgidx)
Message2 = Message2 + Str(errorno)
If Ofault3 = 0 Then
Call Trsil
End If
Else
Fault3 = 1
Ofault3 = 1
Call Disp
End If
End If
End If
Call Disp
End Sub
'***********************************************************************
' Zone-4 Alarm status monitor
'***********************************************************************
Sub Z4()
Errorno = 4
If F4 = 0 Then
If Alsil = 0 And Fire4 <> 0 Then
Set Alsil
End If
Message2 = Lookupstr(1 , Msgidx)
Message2 = Message2 + Str(errorno)
If Fire4 = 1 Then
If Alsil = 1 And Firesil4 = 0 Then
Fire4 = 0
Set H4
Call Fire_alarm
End If
Else
If Alsil = 0 And Firesil4 = 0 Then
Reset Alsil
Reset H4
Firesil4 = 1
End If
If Firesil4 = 0 Then
Fire4 = 0
Set H4
Call Fire_alarm
End If
End If
Else
Fire4 = 1
Firesil4 = 0
Reset H4
If S4 = 0 Then
If Trsil = 0 And Sfault4 <> 0 Then
Set Trsil
End If
Fault4 = 0
Sfault4 = 0
Message2 = Lookupstr(3 , Msgidx)
Message2 = Message2 + Str(errorno)
If Sfault4 = 0 Then
Call Trsil
End If
Else
Fault4 = 1
Sfault4 = 1
If O4 = 0 Then
If Trsil = 0 And Ofault4 <> 0 Then
Set Trsil
End If
Fault4 = 0
Ofault4 = 0
Message2 = Lookupstr(2 , Msgidx)
Message2 = Message2 + Str(errorno)
If Ofault4 = 0 Then
Call Trsil
End If
Else
Fault4 = 1
Ofault4 = 1
Call Disp
End If
End If
End If
Call Disp
End Sub
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' System LCD Message table
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Msgidx:
Data " SYSTEM NORMAL " , " F IN ZONE " , " O IN ZONE " , " S IN ZONE "
Data "F A P"
Last edited by a moderator: