AMX编程案例.doc_第1页
AMX编程案例.doc_第2页
AMX编程案例.doc_第3页
AMX编程案例.doc_第4页
AMX编程案例.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(*)(* 希望对从事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的9255空余的地址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_LEVELSTORE_MODEPROJ_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 (*定义电动幕_向上子程序为SCREEN UP*)IF (NOTRELAY,SCREEN_UP_FB) (*判断电动幕向上反馈铵钮不是开则运行以下程序*)CANCEL_WAIT SCREEN WAIT (*取消等待“SCREEN WAIT”命令*)ONRELAY,SCREEN_UP_FB (*将电动幕向上反馈按钮置为开*)OFFRELAY,1 (*将继电器1置为关*)OFFRELAY,2 (*将继电器2置为关*)WAIT 5 (*等待0.5秒执行下行程序*)ONRELAY,1 (*将继电器1置为开*)(*下面的一段程序是执行屏幕下降10秒钟后将继电器1,2关闭,这样可防止继电器长时间处于通电状态*)WAIT 100 SCREEN WAIT (*等待10秒,并将其定义为SCREEN WAIT子程序*)OFFRELAY,1 (*将继电器1置为关*)OFFRELAY,2 (*将继电器2置为关*)ONRELAY,SCREEN_STOP_FB (*将电动幕停止反馈按钮置为开*)DEFINE_CALL SCREEN STOP (*定义电动幕_停止子程序为SCREEN UP*)ONRELAY,SCREEN_STOP_FB (*将电动幕停止反馈按钮置为开*)OFFRELAY,1 (*将继电器1置为关*)OFFRELAY,2 (*将继电器2置为关*)DEFINE_CALL SCREEN DOWN (*定义电动幕_下降子程序为SCREEN DOWN*)IF (NOTRELAY,SCREEN_DOWN_FB) (*判断电动幕向下反馈铵钮不是开则运行以下程序*) CANCEL_WAIT SCREEN WAIT (*取消等待“SCREEN WAIT”命令*)ONRELAY,SCREEN_DOWN_FB (*将电动幕向下反馈按钮置为开*)OFFRELAY,1 (*将继电器1置为关*)OFFRELAY,2 (*将继电器2置为关*)WAIT 5 (*等待0.5秒执行下行程序*)ONRELAY,2 (*将继电器2置为开*) 这时是先将非供电继电器打开WAIT 1 (*等待0.1秒) 等待0.1秒使非供电继电器动作完成ONRELAY,1 (*将继电器1置为开*) 再将供电继电器打开WAIT 100 SCREEN WAIT (*等待10秒, 并将其定义为SCREEN WAIT子程序*)OFFRELAY,1 (*将继电器1置为关*)OFFRELAY,2 (*将继电器2置为关*)ONRELAY,SCREEN_STOP_FB (*将电动幕停止反馈按钮置为开*)(*)(* STARTUP CODE GOES BELOW *)(*)DEFINE_START (*设定初使状态*)SEND_COMMAND PROJ,SET BAUD 19200,N,8,1 (*向投影机发射通信设置指令*)PROJ_BUSY=0ONRELAY,SCREEN_STOP_FB (*将电动幕反馈按钮预置为开*)PRESET_VOL_LEVEL=50 (*开机预置音量为50*)CREATE_LEVEL VOL,1,CURRENT_VOL_LEVEL (*将VOL1路值送到CURRENT_VOL_LEVEL 变量*)(*)(* THE ACTUAL PROGRAM GOES BELOW *)(*主程序*)(*)DEFINE_PROGRAM (*主程序*)PUSHTP,SCREEN_UP_B (*当按下触摸屏(TP),电动幕上升键(SCREEN_UP_B)执行下面的程序*)PUSHWP,SCREEN_UP_B (*当按下墙身面板(WP),电动幕上升键(SCREEN_UP_B)执行下面的程序*)CALL SCREEN UP (*用CALL命令调用电动幕上升子程序SCREEN UP*)PUSHTP,SCREEN_STOP_B (*当按下触摸屏(TP),电动幕停止键执行下面的程序*)PUSHWP,SCREEN_STOP_B (*当按下触摸屏的电动幕停止键执行下面的程序*)CALL SCREEN STOP (*用CALL命令调用电动幕停止子程序SCREEN STOP*)PUSHTP,SCREEN_DOWN_B (*当按下触摸屏的电动幕下降键执行下面的程序*)PUSHWP,SCREEN_DOWN_B (*当按下触摸屏的电动幕下降键执行下面的程序*)CALL SCREEN DOWN (*用CALL命令调用电动幕下降子程序SCREEN DOWN*)(*以下的赋值语句必须放在外面,因如放在PASH语句里面,当程序下一次扫描程序时,将无法执行里面的赋值语句,即触摸屏上的按键会全部亮起来,这是因为当按其它键时其反馈值虽然已变,但赋给触摸屏的语句无法执行所产生的。*)TP,SCREEN_DOWN_B=RELAY,SCREEN_DOWN_FB (*将继电器的电动幕下降反馈值送给触摸屏电动幕下降按钮*)TP,SCREEN_UP_B=RELAY,SCREEN_UP_FB (*将继电器的电动幕上升反馈值送给触摸屏电动幕上升按钮*)TP,SCREEN_STOP_B=RELAY,SCREEN_STOP_FB (*将继电器的电动幕停止反馈值送给触摸屏电动幕停止按钮*)WP,SCREEN_DOWN_B=RELAY,SCREEN_DOWN_FB (*将继电器的电动幕下降反馈值送给墙身面板电动幕下降按钮*)WP,SCREEN_UP_B=RELAY,SCREEN_UP_FB (*将继电器的电动幕上升反馈值送给墙身面板电动上升降按钮*)WP,SCREEN_STOP_B=RELAY,SCREEN_STOP_FB (*将继电器的电动幕停止反馈值送给墙身面板电动幕停止按钮*)(*PUSHTP,PLAY_BPULSEVCD,1PULSETP,PLAY_BPUSHTP,STOP_BPULSEVCD,2PULSETP,STOP_BPUSHTP,PAUSE_BPULSEVCD,3PULSETP,PAUSE_BPUSHTP,SKIP_FWD_BSET_PULSE_TIME(1) (*设定PULSE发送时间为0.1秒*) PULSEVCD,4SET_PULSE_TIME(5) (*设定PULSE初使状态为0.5秒*)PULSETP,SKIP_FWD_BPUSHTP,SKIP_REW_BSET_PULSE_TIME(1)PULSEVCD,5SET_PULSE_TIME(5)PULSETP,SKIP_REW_BPUSHTP,SCAN_FWD_BTOVCD,6TOTP,SCAN_FWD_BPUSHTP,SCAN_REW_BTOVCD,7TOTP,SCAN_REW_B*)(*系统调用CD2子程序(设备为VCD,从触摸屏输入,播放键,停止键,0(为无按键)*)SYSTEM_CALL CD2 (VCD,TP,PLAY_B,STOP_B,PAUSE_B, SKIP_FWD_B,SKIP_REW_B,SCAN_FWD_B,SCAN_REW_B,0)(*注:PLAY_B,STOP_B等按钮名必须在定义常量内首先定义才可使用。*) PUSHTP,POWER_B (*当按下解摸屏的电源键执行下面程序*)PULSEVCD,9 (*发送VCD端口的第9个红外码*)PULSETP,POWER_B (*反馈已接收到指令到触摸屏电源按键*)PUSHTP,VOL_UP_B (*当按下触摸屏音量上升键执行下面程序*)OFFVOL,3 (*关闭调音盒的3通道*)TOVOL,1 (*根据按下键的时间向上调节调音盒的1和2路音量*)TOTP,VOL_UP_B (*根据按下键的时间显示触摸屏音量上调按钮*)PUSHTP,VOL_DOWN_B (*当按下触摸屏音量下调键执行下面程序*)OFFVOL,3 (*关闭VOL3通道*)TOVOL,2 (*根据按下键的时间向下调节调音盒的1和2路音量*)TOTP,VOL_DOWN_B (*根据按下键的时间显示触摸屏音量下调按钮*)PUSHTP,VOL_MUTE_B (*当按下触摸屏静音键执行下面程序*)VOL,3=NOTVOL,3 (*将调音盒VOL3的值取反*)TP,VOL_MUTE_B=VOL,3 (*将VOL3的值赋给触摸屏的静音按钮*)PUSHTP,VOL_SLIDER (*当按下触摸屏的音量滑条时执行下面的程序*)OFFVOL,3 (*关闭VOL3通道*)PUSHTP,VOL_PRESET_B (*当按下触摸屏预置按时执行下面的程序*)STORE_MODE=0 (*将变量STORE_MODE置为0*)WAIT 20 STORE PRESET (*等待2秒后执行下面程序,并定义为STORE PRESET*)STORE_MODE=1 (*将变量STORE_MODE置为1*)SEND_COMMAND TP,ADBEEP (*要求触摸屏发一个声音,告知已完成命令*)RELEASETP,VOL_PRESET_B (*当长时间按下触摸屏音量重置键执行下面的程序*)CANCEL_WAIT STORE PRESET (*取消等待STORE PRESET*)IF (STORE_MODE) (*如果STORE_MODEO为真就运行下面的程序*)PRESET_VOL_LEVEL=CURRENT_VOL_LEVEL (*将变量CURRENT_VOL_LEVEL的值赋给变量PRESET_VOL_LEVEL*)ELSE (*如果STORE_MODEO为假就运行下面的程序*)OFFVOL,3 (*关闭VOL3*)SEND_COMMAND VOL,P0L,ITOA(PRESET_VOL_LEVEL),T20 (*向VOL发射指令将其设定为所需顾预置值*)(*先将变量CURRENT_VOL_LEVEL的值赋给变量PRESET_VOL_LEVEL,再将其值赋给触摸屏的VOL_PRESET_B按钮*)TP,VOL_PRESET_B=(PRESET_VOL_LEVEL=CURRENT_VOL_LEVEL) PUSHTP,PROJ_ON_B (*当按下触摸屏,投影机_开_键时执行下面的程序*)IF (NOTRELAY,PROJ_ON_FB) (*如果继电器,投影机_开_反馈按键为非开状态时执行下面的程序*)IF (NOTPROJ_BUSY) (*如果投影机处于不忙状态*)ONRELAY,PROJ_ON_FB (*将投影机开反馈键打开*)PROJ_BUSY=1 (*将投影机变量设置为忙状态*)SEND_STRING 1,C00,13 (*通过RS-232口向投影机发射关闭电源指令*)WAIT 600 (*等待60秒*)PROJ_BUSY=0 (*将投影机变量设置为不忙状态*)PUSHTP,PROJ_OFF_B (*当按下触摸屏,投影机_关_键时执行下面的程序*)IF (NOTRELAY,PROJ_OFF_FB) (*如果继电器,投影机_关_反馈按键为非开状态时执行下面的程序*)IF (NOTPROJ_BUSY) (*如果投影机处于不忙状态就执行下面的程序*)ONRELAY,PROJ_OFF_F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论