AMX编程案例

loading 分享 2026-7-19 下载文档

(***********************************************************) (* 希望对从事AMX编程的你有所帮助*)

(***********************************************************)

PROGRAM_NAME='BEIJING 15-07-2000 TRAINING 2' (*程序文件名,最后修改日期、时间*)

(* DATE:07/15/00 TIME:18:14:34 *)

(***********************************************************) (* System Type : 系统类型 *)

(***********************************************************) (***********************************************************) (* DEVICE NUMBER DEFINITIONS GO BELOW *)

(***********************************************************) DEFINE_DEVICE (*定义_设备号*)

PROJ=1 (*定义投影机_1#*) RELAY=7 (*定义继电器_7#*) VCD=8 (*定义VCD_8#*) VOL=85 (*定义调音合_85#*) WP=87 (*定义墙身按键_87*)

TP=128 (*定义触摸屏_128#*)

DEFINE_CONNECT_LEVEL (*定义拉条与设备值相关联*)

(TP,1,VOL,1,VOL,2) (*定义TP,1分别VOL,1T和VOL,2相关联*)

(***********************************************************) (* CONSTANT DEFINITIONS GO BELOW *)

(***********************************************************) DEFINE_CONSTANT (*定义_常量*)

SCREEN_UP_B=1 (*定义电动幕_向上_按键=1*) SCREEN_STOP_B=2 (*定义电动幕_停止_按键=2*)

SCREEN_DOWN_B=3 (*定义电动幕_向下_按键=3*)

SCREEN_UP_FB=101 (*定义电动幕_向上_按键反馈=101*)利用RELAY7的9~255空余的地址

SCREEN_STOP_FB=102 (*定义电动幕_停止_按键反馈=102*) 存储反馈信息 SCREEN_DOWN_FB=103 (*定义电动幕_向下_按键反馈=103*)

PLAY_B=11 (*定义播放_按键=11*) STOP_B=12 (*定义停止_按键=12*)

PAUSE_B=13 (*定义暂停_按键=13*)

SKIP_FWD_B=14 (*定义跳转_快进_按键=14*) SKIP_REW_B=15 (*定义跳转_快退_按键=15*)

SCAN_FWD_B=16 (*定义搜索_快进=16*) SCAN_REW_B=17 (*定义搜索_快退_按键=17*) POWER_B=19 (*定义电源_按键=19*)

VOL_UP_B=21 (*音量_增加_按键=21*) VOL_DOWN_B=22 (*音量_减少_按键=22*) VOL_MUTE_B=23 (*音量_静音_按键=23*) VOL_SLIDER=24 (*音量_拉条按钮号=24*) VOL_PRESET_B=25 (*音量_预置_按键=25*)

PROJ_ON_B=31 (*投影机_开_按键=21*) PROJ_OFF_B=32 (*投影机_关_按键=21*)

PROJ_VIDEO_B=33 (*投影机_切换视频_按键=21*) PROJ_RGB_B=34 (*投影机_切换VGA_按键=21*)

PROJ_ON_FB=104 (*投影机_开_按键反馈=21*) PROJ_OFF_FB=105 (*投影机_开_按键反馈=21*)

(***********************************************************) (* VARIABLE DEFINITIONS GO BELOW *)

(***********************************************************) DEFINE_VARIABLE (*设置变量*)

CURRENT_VOL_LEVEL (*定义音量值变量*) PRESET_VOL_LEVEL

STORE_MODE

PROJ_BUSY (*定义投影机输入端子*)

(***********************************************************) (* LATCHING DEFINITIONS GO BELOW *)

(***********************************************************) DEFINE_LATCHING

(***********************************************************) (* MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW *)

(***********************************************************) DEFINE_MUTUALLY_EXCLUSIVE (*定义互锁*)

([RELAY,SCREEN_UP_FB]..[RELAY,SCREEN_DOWN_FB]) (*定义电动幕上_停_下按钮反馈互锁*)

([7,101],[7,102],[7,103]) ([7,101]..[7,103]) ([RELAY,PROJ_ON_FB],[RELAY,PROJ_OFF_FB]) (*定义投影机开_关按钮反馈互锁*)

(***********************************************************) (* SUBROUTINE DEFINITIONS GO BELOW *) (*定义子程序*)

(***********************************************************)

(*当在IF判断语句里用OR时必须在DEFINE_START语句里将其另一种状态先置为开,*) (*否则在第一次的起动时其按键会没有响应*)

DEFINE_CALL 'SCREEN UP' (*定义电动幕_向上子程序为\

{

IF (NOT[RELAY,SCREEN_UP_FB]) (*判断电动幕向上反馈铵钮不是开则运行以下程序*) {

CANCEL_WAIT 'SCREEN WAIT' (*取消等待“SCREEN WAIT”命令*) ON[RELAY,SCREEN_UP_FB] (*将电动幕向上反馈按钮置为开*) OFF[RELAY,1] (*将继电器1置为关*) OFF[RELAY,2] (*将继电器2置为关*) WAIT 5 (*等待0.5秒执行下行程序*) {

ON[RELAY,1] (*将继电器1置为开*)

}

(*下面的一段程序是执行屏幕下降10秒钟后将继电器1,2关闭,这样可防止继电器长时间处于通电状态*)

WAIT 100 'SCREEN WAIT' (*等待10秒,并将其定义为?SCREEN WAIT?子程序*) {

OFF[RELAY,1] (*将继电器1置为关*) OFF[RELAY,2] (*将继电器2置为关*) ON[RELAY,SCREEN_STOP_FB] (*将电动幕停止反馈按钮置为开*) } }

}

DEFINE_CALL 'SCREEN STOP' (*定义电动幕_停止子程序为\{

ON[RELAY,SCREEN_STOP_FB] (*将电动幕停止反馈按钮置为开*) OFF[RELAY,1] (*将继电器1置为关*) OFF[RELAY,2] (*将继电器2置为关*)

}

DEFINE_CALL 'SCREEN DOWN' (*定义电动幕_下降子程序为\{

IF (NOT[RELAY,SCREEN_DOWN_FB]) (*判断电动幕向下反馈铵钮不是开则运行以下程序*)

{

CANCEL_WAIT 'SCREEN WAIT' (*取消等待“SCREEN WAIT”命令*) ON[RELAY,SCREEN_DOWN_FB] (*将电动幕向下反馈按钮置为开*) OFF[RELAY,1] (*将继电器1置为关*)

OFF[RELAY,2] (*将继电器2置为关*) WAIT 5 (*等待0.5秒执行下行程序*)

{

ON[RELAY,2] (*将继电器2置为开*) 这时是先将非供电继电器打开 WAIT 1 (*等待0.1秒) 等待0.1秒使非供电继电器动作完成 ON[RELAY,1] (*将继电器1置为开*) 再将供电继电器打开

}

WAIT 100 'SCREEN WAIT' (*等待10秒, 并将其定义为?SCREEN WAIT?子程序*) {

OFF[RELAY,1] (*将继电器1置为关*) OFF[RELAY,2] (*将继电器2置为关*)

ON[RELAY,SCREEN_STOP_FB] (*将电动幕停止反馈按钮置为开*) } } }

(***********************************************************) (* STARTUP CODE GOES BELOW *)

(***********************************************************) DEFINE_START (*设定初使状态*)

SEND_COMMAND PROJ,'SET BAUD 19200,N,8,1' (*向投影机发射通信设置指令*) PROJ_BUSY=0

ON[RELAY,SCREEN_STOP_FB] (*将电动幕反馈按钮预置为开*) PRESET_VOL_LEVEL=50 (*开机预置音量为50*)

CREATE_LEVEL VOL,1,CURRENT_VOL_LEVEL CURRENT_VOL_LEVEL 变量*)

(***********************************************************) (* THE ACTUAL PROGRAM GOES BELOW *)(*主程序*)

(***********************************************************) DEFINE_PROGRAM (*主程序*)

PUSH[TP,SCREEN_UP_B] (*当按下触摸屏(TP),电动幕上升键(SCREEN_UP_B)执行下面的程序*)

PUSH[WP,SCREEN_UP_B] (*当按下墙身面板(WP),电动幕上升键(SCREEN_UP_B)执行下面的程序*)

{

CALL 'SCREEN UP' (*用CALL命令调用电动幕上升子程序?SCREEN UP?*) }

PUSH[TP,SCREEN_STOP_B] (*当按下触摸屏(TP),电动幕停止键执行下面的程序*)

(*

VOL1


AMX编程案例.doc 将本文的Word文档下载到电脑
搜索更多关于: AMX编程案例 的文档
相关推荐
相关阅读