📄 board_type.lst
字号:
686
687 void report_loss_OTB(void){
688 1 //F02上报MCP OTB盘丢失
689 1 report_loss_board(4,4);
690 1 }
691
692 void read_soft_version(void){
693 1 //V00读取MCU软件版本号
694 1 if (!GetResRdyTbl(50))
695 1 SetResRdyTbl(50);
696 1 }
697
698 void report_soft_version(void){
699 1 //V00回复命令
700 1 tx_buf[0] = '$';
701 1 tx_buf[1] = '2';
702 1 tx_buf[2] = '1';
703 1 tx_buf[3] = 0x56;
704 1 tx_buf[4] = 0x30;
705 1 tx_buf[5] = 0x30;
706 1 tx_buf[6] = '0';
707 1 tx_buf[7] = '0';
708 1 tx_buf[8] = '0';
709 1 tx_buf[9] = '7';
710 1 tx_buf[10] = '0';
711 1 tx_buf[11] = '0';
712 1 tx_buf[12] = '1';
713 1 tx_buf[13] = '0';
714 1 tx_buf[14] = '1';
715 1 tx_buf[15] = '0';
716 1 tx_buf[16] = '3';
717 1 tx_buf[17] = '*';
718 1 tx_buf_pointer = 0;
719 1 while(tx_buf[tx_buf_pointer] != '*'){
720 2 SBUF = tx_buf[tx_buf_pointer];
721 2 while(tx_done == 0);
722 2 tx_done = 0;
723 2 tx_buf_pointer++;
724 2 }
725 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
726 1 while(tx_done == 0);
727 1 tx_done = 0;
728 1 }
729
730 void read_hard_version(void){
731 1 //V01读取MCU硬件版本号
732 1 if (!GetResRdyTbl(51))
733 1 SetResRdyTbl(51);
734 1 }
735
736 void report_hard_version(void){
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 13
737 1 //V01回复命令
738 1 tx_buf[0] = '$';
739 1 tx_buf[1] = '2';
740 1 tx_buf[2] = '1';
741 1 tx_buf[3] = 0x56;
742 1 tx_buf[4] = 0x30;
743 1 tx_buf[5] = 0x31;
744 1 tx_buf[6] = '0';
745 1 tx_buf[7] = '0';
746 1 tx_buf[8] = '0';
747 1 tx_buf[9] = '7';
748 1 tx_buf[10] = '0';
749 1 tx_buf[11] = '0';
750 1 tx_buf[12] = '1';
751 1 tx_buf[13] = '0';
752 1 tx_buf[14] = '0';
753 1 tx_buf[15] = '0';
754 1 tx_buf[16] = '2';
755 1 tx_buf[17] = '*';
756 1 tx_buf_pointer = 0;
757 1 while(tx_buf[tx_buf_pointer] != '*'){
758 2 SBUF = tx_buf[tx_buf_pointer];
759 2 while(tx_done == 0);
760 2 tx_done = 0;
761 2 tx_buf_pointer++;
762 2 }
763 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
764 1 while(tx_done == 0);
765 1 tx_done = 0;
766 1 }
767
768
769 unsigned char read_register(struct cmd_para_save *read_reg){
770 1 //T00专为读取寄存器值的命令
771 1 unsigned char xdata read_board;
772 1 unsigned int xdata read_address;
773 1 unsigned char xdata *point;
774 1 unsigned char xdata porth;
775 1 unsigned char xdata portl;
776 1 unsigned char xdata return_value;
777 1
778 1 read_board = read_reg -> test_read_board;
779 1 read_address = read_reg -> test_read_address;
780 1 point = read_address;
781 1 porth = (unsigned char) (read_address >> 8);
782 1 portl = (unsigned char) (read_address & 0x00FF);
783 1
784 1 switch (read_board){
785 2 case 5: return_value = *point;
786 2 break;
787 2 case 4: if (porth >= 0x10){
788 3 read_address &= 0x0FFF;
789 3 return_value = f2rc7860_rd(read_address);
790 3 }
791 2 else
792 2 return_value = f2rc7820_rd(portl);
793 2 break;
794 2 case 3:
795 2 case 2:
796 2 case 1: if (porth < 0x80)
797 2 return_value = se0111_reg_rd(porth,portl,read_board);
798 2 else if (porth == 0xA4)
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 14
799 2 {
800 3 switch(read_board)
801 3 {
802 4 case 1: P1 = 0x20;
803 4 break;
804 4 case 2: P1 = 0x60;
805 4 break;
806 4 case 3: P1 = 0x40;
807 4 break;
808 4 default:break;
809 4 }
810 3 return_value = XBYTE[0xA400];
811 3 P1 = 0xFF;
812 3 }
813 2 else return_value = se0121_reg_rd(portl,read_board);
814 2 break;
815 2 default:return_value = 2;
816 2 break;
817 2 }
818 1 if (!GetResRdyTbl(40))
819 1 SetResRdyTbl(40);
820 1 return (return_value);
821 1 }
822
823 void report_regiester_value(unsigned char value){
824 1 unsigned char xdata temp;
825 1
826 1 tx_buf[0] = '$';
827 1 tx_buf[1] = '2';
828 1 tx_buf[2] = '1';
829 1 tx_buf[3] = 0x54;
830 1 tx_buf[4] = 0x30;
831 1 tx_buf[5] = 0x30;
832 1 tx_buf[6] = '0';
833 1 tx_buf[7] = '0';
834 1 tx_buf[8] = '0';
835 1 tx_buf[9] = '2';
836 1 temp = value >> 4;
837 1 if (temp > 9)
838 1 tx_buf[10] = temp + 0x37;
839 1 else tx_buf[10] = temp + 0x30;
840 1 temp = value & 0x0F;
841 1 if (temp > 9)
842 1 tx_buf[11] = temp + 0x37;
843 1 else tx_buf[11] = temp + 0x30;
844 1 tx_buf[12] = '*';
845 1 tx_buf_pointer = 0;
846 1 while(tx_buf[tx_buf_pointer] != '*'){
847 2 SBUF = tx_buf[tx_buf_pointer];
848 2 while(tx_done == 0);
849 2 tx_done = 0;
850 2 tx_buf_pointer++;
851 2 }
852 1 SBUF = tx_buf[tx_buf_pointer]; //发送最后一个字符'*'
853 1 while(tx_done == 0);
854 1 tx_done = 0;
855 1 }
856
857
858 unsigned char write_register(struct cmd_para_save *write_reg){
859 1 //T01专为写寄存器值的命令
860 1 unsigned char xdata write_board;
C51 COMPILER V7.50 BOARD_TYPE 03/10/2006 16:35:30 PAGE 15
861 1 unsigned int xdata write_address;
862 1 unsigned char xdata write_value;
863 1 unsigned char xdata *point;
864 1 unsigned char xdata porth;
865 1 unsigned char xdata portl;
866 1 unsigned char xdata return_value;
867 1
868 1 commandid = 0x00543031;
869 1 write_board = write_reg -> test_write_board;
870 1 write_address = write_reg -> test_write_address;
871 1 write_value = write_reg -> test_write_value;
872 1 point = write_address;
873 1 porth = (unsigned char) (write_address >> 8);
874 1 portl = (unsigned char) (write_address & 0x00FF);
875 1
876 1 switch (write_board){
877 2 case 5: *point = write_value;
878 2 return_value = 0;
879 2 break;
880 2 case 4: if (porth >= 0x10){
881 3 write_address &= 0x0FFF;
882 3 f2rc7860_wr(write_address,write_value);
883 3 return_value = 0;
884 3 }
885 2 else
886 2 f2rc7820_wr(portl,write_value);
887 2 return_value = 0;
888 2 break;
889 2 case 3:
890 2 case 2:
891 2 case 1: if (porth < 0x80)
892 2 se0111_reg_wr(porth,portl,write_value,write_board);
893 2 else se0121_reg_wr(portl,write_value,write_board);
894 2 return_value = 0;
895 2 break;
896 2 default:return_value = 2;
897 2 break;
898 2 }
899 1 if (!GetResRdyTbl(1))
900 1 SetResRdyTbl(1);
901 1 return (return_value);
902 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3528 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 24 17
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -