📄 commrs232.lst
字号:
850 1 while (rs_f_TI == 0); //等待最后一个字节发送完毕
851 1 }
852 /********************************************************************************************************
853 ** 函数名称: void Comm_rs232_write_vconfig(void)
854 ** 功能描述:
855 ** 输 入: 无
856 ** 输 出: 无
857 ** 全局变量:
858 ** 调用模块:
859 **
860 ** 作 者: 李伟
861 ** 日 期: 2008年12月20日
C51 COMPILER V7.06 COMMRS232 10/30/2008 13:20:06 PAGE 15
862 **-------------------------------------------------------------------------------------------------------
863 ** 修 改 人:
864 ** 日 期:
865 **-------------------------------------------------------------------------------------------------------
866 ********************************************************************************************************/
867 //void Comm_rs232_write_vconfig(void) //电压限值存储在第一扇区
868 //{
869 // uint8 i,c;
870 // uint16 address;
871 // c = 0;
872 // address = 0x2800;
873 // for(i = 1;i < 17;)
874 // {
875 // MoveVXdata[c] = ((CommRxBuf[i] << 8)|CommRxBuf[i+1]);
876 // i++;
877 // i++;
878 // c++;
879 // }
880 // EepSectotErase(address);
881 // for(i = 0;i < 8;i++)
882 // {
883 // EepWriteWord(MoveVXdata[i],address);
884 // address++;
885 // address++;
886 // }
887 // for(i = 0;i < 8;i++) //将修正值赋给动作变量
888 // {
889 // ModeSysConfig[i] = EepReadWord(address);
890 // }
891 // rs232_commright();
892 //}
893 /********************************************************************************************************
894 ** 函数名称: void Comm_rs232_write_tconfig(void)
895 ** 功能描述:
896 ** 输 入: 无
897 ** 输 出: 无
898 ** 全局变量:
899 ** 调用模块:
900 **
901 ** 作 者: 李伟
902 ** 日 期: 2008年12月20日
903 **-------------------------------------------------------------------------------------------------------
904 ** 修 改 人:
905 ** 日 期:
906 **-------------------------------------------------------------------------------------------------------
907 ********************************************************************************************************/
908 //void Comm_rs232_write_tconfig(void) //温度限值存储在第二扇区
909 //{
910 // uint8 i;
911 // uint16 address;
912 // address = 0x2A00;
913 // for(i = 1;i < 13;i++)
914 // {
915 // MoveTdata[i] = CommRxBuf[i];
916 // }
917 // EepSectotErase(address);
918 // for(i = 0;i < 12;i++)
919 // {
920 // EepWriteByte(MoveTdata[i],address);
921 // address++;
922 // }
923 // for(i = 0;i < 12;i++) //将修正值赋给动作变量
C51 COMPILER V7.06 COMMRS232 10/30/2008 13:20:06 PAGE 16
924 // {
925 // ModeTempCofing[i] = EepReadByte(address);
926 // }
927 // rs232_commright();
928 //}
929 /********************************************************************************************************
930 ** 函数名称: void Comm_rs232_write_xconfig(void)
931 ** 功能描述:
932 ** 输 入: 无
933 ** 输 出: 无
934 ** 全局变量:
935 ** 调用模块:
936 **
937 ** 作 者: 李伟
938 ** 日 期: 2008年12月20日
939 **-------------------------------------------------------------------------------------------------------
940 ** 修 改 人:
941 ** 日 期:
942 **-------------------------------------------------------------------------------------------------------
943 ********************************************************************************************************/
944 void Comm_rs232_write_xconfig(void) //系数存储在第三扇区
945 {
946 1 uint8 i,c,j;
947 1 uint16 address;
948 1 c = 0;
949 1 j = 0;
950 1 address = 0x2C00;
951 1 for(i = 1;i < 7;)
952 1 {
953 2 MoveVXdata[c] = ((rs232buffer[i] << 8)|rs232buffer[i+1]);
954 2 i++;
955 2 i++;
956 2 c++;
957 2 }
958 1 for(i = 0;i < 3;i++)
959 1 {
960 2 if((MoveVXdata[i] > 6000) && (MoveVXdata[i] < 15000))j++;
961 2 }
962 1 if(j == 3)
963 1 {
964 2 j = 0;
965 2 EepSectotErase(address);
966 2 for(i = 0;i < 3;i++)
967 2 {
968 3 EepWriteWord(MoveVXdata[i],address);
969 3 address++;
970 3 address++;
971 3 }
972 2 CUK = EepReadWord(address);
973 2 CTK = EepReadWord(address+2);
974 2 OTK = EepReadWord(address+4);
975 2 rs232_commright();
976 2 }
977 1 else
978 1 {
979 2 j = 0;
980 2 rs232_commwrong();
981 2 }
982 1 }
983 /********************************************************************************************************
984 ** 函数名称: void Rs232CommManage(void)
985 ** 功能描述:
C51 COMPILER V7.06 COMMRS232 10/30/2008 13:20:06 PAGE 17
986 ** 输 入: 无
987 ** 输 出: 无
988 ** 全局变量:
989 ** 调用模块:
990 **
991 ** 作 者: 李伟
992 ** 日 期: 2008年12月20日
993 **-------------------------------------------------------------------------------------------------------
994 ** 修 改 人:
995 ** 日 期:
996 **-------------------------------------------------------------------------------------------------------
997 ********************************************************************************************************/
998 void Rs232CommManage(void)
999 {
1000 1 switch(Rs232CommCid)
1001 1 {
1002 2 case RS232_HAND_SHAKE: //握手命令 1
1003 2 {
1004 3 Comm_rs232_handshake();
1005 3 }break;
1006 2 case RS232_READ_ANALOG: //读模拟量 2
1007 2 {
1008 3 Comm_rs232_readanalog();
1009 3 }break;
1010 2 case RS232_READ_DIGITAL: //读数字量 3
1011 2 {
1012 3 Comm_rs232_read_digital();
1013 3 }break;
1014 2 case RS232_READ_CONFIG: //读配置 4
1015 2 {
1016 3 Comm_rs232_read_config();
1017 3 }break;
1018 2 case RS232_WRITE_VCONFIG: //电压限值配置 5
1019 2 {
1020 3 // Comm_rs232_write_vconfig();
1021 3 }break;
1022 2 case RS232_WRITE_TCONFIG: //电压限值配置 6
1023 2 {
1024 3 // Comm_rs232_write_tconfig();
1025 3 }break;
1026 2 case RS232_WRITE_XCONFIG: //电压限值配置 7
1027 2 {
1028 3 Comm_rs232_write_xconfig();
1029 3 }break;
1030 2 default: break;
1031 2 }
1032 1 }
1033 /********************************************************************************************************
1034 End of file
1035 ********************************************************************************************************/
1036 //void main (void)
1037 //{
1038 ////首先发送 128 个字节 00H--7FH, 然后等待 PC 机发送的数据。当收到 128
1039 ////个字节后,立刻将收到的 128 个数据回发送给 PC 机,然后继续等待下一个
1040 ////数据块。
1041 //
1042 // uint8 i;
1043 // initiate_MCU(); //系统初始化
1044 //
1045 // soft_send_enable (); //允许发送,禁止接收
1046 // for (i=0; i < rs_RECEIVE_MAX; i++ )
1047 // {
C51 COMPILER V7.06 COMMRS232 10/30/2008 13:20:06 PAGE 18
1048 // COMEN = CommTxden;
1049 // rs_send_byte(i);
1050 // }
1051 // while ( rs_f_TI == 0) ; // 等待最后一个字节发送完毕
1052 //
1053 // while(1)
1054 // {
1055 // COMEN = CommRxden;
1056 // soft_receive_enable (); //启动并开始接收,禁止发送
1057 // while (ReceivePoint < rs_RECEIVE_MAX); // 等待接收缓冲区满
1058 //
1059 // soft_send_enable (); //允许发送,禁止接收
1060 // for (i=0; i < rs_RECEIVE_MAX; i++ )
1061 //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -