⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc.bas

📁 AVR单片机驱动LCD显示汉字的实践,在MEGA8上运行.
💻 BAS
📖 第 1 页 / 共 2 页
字号:
   End If
   8cake = &HFF
End If

Reset Watchdog

Call Ooflcd                                                 '预制关阀指示值

Ctl = Pind And &HFF                                         '读入按键状态,被置"0"位即有按键
If Ctl.0 = 0 Then                                           '水手动开泵信号有效
   If Automan = 0 Then                                      '确认不排母液
      If Inlock1 = 0 Then                                   '确认手动模式
         Reset Portc.3                                      '投料驱动控制位置"0" ;开泵投料
         H2o = "ON "
      Else
         H2o = "DIS"
      End If
   Else
      Set Portc.0                                           '若非手动模式
      H2o = "OFF"                                           '连锁失电,常开断开,禁止H2O投料
   End If
Else
   Set Portc.3
End If

If Ctl.1 = 0 Then                                           '酸手动开泵信号有效
   If Automan = 0 Then                                      '确认不排母液
      If Inlock2 = 0 Then                                   '确认允许酸投料
         Reset Portc.4                                      '投料驱动控制位置"0" ;开泵投料
         Hac = "ON "
      Else
         Set Portc.4
         Hac = "DIS "
      End If
   Else
      Set Portc.1                                           '若非手动模式
      Hac = "OFF "                                          '连锁失电,常开断开,禁止HCL投料
   End If
Else
   Set Portc.4
End If

If Ctl.2 = 0 Then                                           '系统报警应答信号有效
   Set Portc.6                                              '系统报警应答关系统报警声响器
   Ackdelay = &HFF                                          '置延时值
End If

If Ctl.3 = 0 Then                                           '手/自动开关信号有效
   If Amkey = 0 Then
      Amkey = 2
      If Automan = 0 Then
         Automan = 1                                        '置手/自动标志
         Am = "A "
      Else
         Automan = 0
         Am = "M "
      End If
         Locate 4 , 5
         Lcd Am
         Waitms 600                                         '延时
   Else
      Decr Amkey
   End If
End If

Reset Watchdog
If Ctl.4 = 0 Then                                           '氧化剂手动开泵信号有效
   If Automan = 0 Then                                      '确认手动模式
      If Inlock3 = 0 Then                                   '确认允许YH310投料
         Reset Portc.5                                      '投料驱动控制位置"0" ;开泵投料
         Oxg = "ON "
      Else
         Set Portc.5
         Oxg = "DIS "
      End If
   Else
      Set Portc.2                                           '若非手动模式
      Oxg = "OFF "                                          '连锁失电,常开断开,禁止YH310投料
   End If
Else
   Set Portc.5
End If

Reset Watchdog
If Ctl.5 = 0 Then                                           '水自动加料信号有效
   If Automan = 1 Then
      If Inlock1 = 0 Then
         H2o = "ON "
      Else
         H2o = "DIS "
      End If
   Else
      H2o = "ON "
   End If
End If

If Ctl.6 = 0 Then                                           '酸自动加料信号有效
   If Automan = 1 Then
      If Inlock2 = 0 Then
         Hac = "ON "
      Else
         Hac = "DIS "
      End If
   Else
      Hac = "ON "
   End If
End If

If Ctl.7 = 0 Then                                           '氧化剂自动加料信号有效
   If Automan = 1 Then
      If Inlock3 = 0 Then
         Oxg = "ON "
      Else
         Oxg = "DIS "
      End If
   Else
      Oxg = "ON "
   End If
End If

Call Updatalcd
Reset Watchdog
Call Ackalarm
Loop
End

Sub Creatlcd
Cls
Locate 1 , 1
Lcd "CNV:   HCl:    Th:"
Locate 2 , 1
Lcd "ORP:   310:    Tx:"
Locate 3 , 1
Lcd "SG :   H2O:    F1:"
Locate 4 , 1
Lcd "A/M:   FLW:    F2:"
Reset Watchdog
End Sub

Sub Oklcd
Cnv = "OK"
Th = "OK"
Orp = "OK"
Tx = "OK"
Sg = "OK"
F1 = "OK"
F2 = "OK"
End Sub

Sub Ooflcd
Hac = "OFF "
Oxg = "OFF "
H2o = "OFF "
End Sub

Sub Updatalcd
Locate 1 , 5
Lcd Cnv
Locate 1 , 12
Lcd Hac
Locate 1 , 19
Lcd Th
Locate 2 , 5
Lcd Orp
Locate 2 , 12
Lcd Oxg
Locate 2 , 19
Lcd Tx
Locate 3 , 5
Lcd Sg
Locate 3 , 12
Lcd H2o
Locate 3 , 19
Lcd F1
Locate 4 , 5
Lcd Am
Locate 4 , 12
Lcd Flw
Locate 4 , 19
Lcd F2
Cursor Off                                                  'hide cursor
Reset Watchdog
End Sub


'报警确认键处理子程序
Sub Ackalarm
If Alarm = 0 Then                                           '如Alarm为"0"
   Set Portc.6                                              '置报警停
Else                                                        '如Alarm <> 0,置报警处理
   If Lalarm = Alarm Then                                   '如无新报警源
      If Ackdelay = 0 Then                                  '延时完
         Reset Portc.6                                      '时间到有报警,继续报警
      Else
         Reset Watchdog
         Waitms 300                                         '延时
         Reset Watchdog
         Decr Ackdelay                                      '计数
      End If
   Else
      Reset Portc.6                                         '如有新报警源,置报警
   End If
End If
Lalarm = Alarm                                              '记载新鲜报警状态
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -