📄 sms.lst
字号:
839 4 send(data1);
840 4 }
841 3 }
842 2 for(j=2;j<4;j++)
843 2 {
844 3 for(i=0;i<16;i++)
845 3 {
846 4 wr_zb(0xf3,i,k+j);
847 4 send(data2);
848 4 }
849 3 }
850 2 }
851 1 }
852 /*-----------------display image-----------------*/
853 void disp_img (UCHAR code *img)
854 {
855 1 UCHAR i,j;
C51 COMPILER V7.02a SMS 08/28/2005 17:10:47 PAGE 15
856 1 for(j=0;j<32;j++)
857 1 {
858 2 for(i=0;i<16;i++)
859 2 {
860 3 wr_zb(0xf3,i,j);
861 3 send(img[j*16+i]);
862 3 }
863 2 }
864 1 }
865 /*
866 //--------------display Chinese------------------
867 void disp_chn (UCHAR code *chn)
868 {
869 UCHAR i,j;
870 for(j=0;j<2;j++)
871 {
872 for(i=0;i<8;i++)
873 {
874 wr_zb(0xf0,i,j);
875 send(chn[j*16+i*2]-0xa0);
876 send(chn[j*16+i*2+1]-0xa0);
877 }
878 }
879 }
880 */
881 void disp_chn (UCHAR *chn,UCHAR gb_length)
882 {
883 1 UCHAR i,j;
884 1 if(gb_length<=8)
885 1 {
886 2 for(i=0;i<gb_length;i++)
887 2 {
888 3 if(chn[i*2]==0xa3)
889 3 {
890 4 wr_zb(0xf9,i*2,0);
891 4 send(chn[i*2+1]-0x80);
892 4 }
893 3 else
894 3 {
895 4 wr_zb(0xf0,i,0);
896 4 send(chn[i*2]-0xa0);
897 4 send(chn[i*2+1]-0xa0);
898 4 }
899 3 }
900 2 }
901 1 else
902 1 if(gb_length<=16)
903 1 {
904 2 for(i=0;i<8;i++)
905 2 {
906 3 if(chn[i*2]==0xa3)
907 3 {
908 4 wr_zb(0xf9,i*2,0);
909 4 send(chn[i*2+1]-0x80);
910 4 }
911 3 else
912 3 {
913 4 wr_zb(0xf0,i,0);
914 4 send(chn[i*2]-0xa0);
915 4 send(chn[i*2+1]-0xa0);
916 4 }
917 3 }
C51 COMPILER V7.02a SMS 08/28/2005 17:10:47 PAGE 16
918 2 for(i=0;i<(gb_length-8);i++)
919 2 {
920 3 if(chn[i*2+16]==0xa3)
921 3 {
922 4 wr_zb(0xf9,i*2,16);
923 4 send(chn[i*2+17]-0x80);
924 4 }
925 3 else
926 3 {
927 4 wr_zb(0xf0,i,1);
928 4 send(chn[i*2+16]-0xa0);
929 4 send(chn[i*2+17]-0xa0);
930 4 }
931 3 }
932 2 }
933 1 else
934 1 for(j=0;j<2;j++)
935 1 {
936 2 for(i=0;i<8;i++)
937 2 {
938 3 if(chn[j*16+i*2]==0xa3)
939 3 {
940 4 wr_zb(0xf9,i*2,j*16);
941 4 send(chn[j*16+i*2+1]-0x80);
942 4 }
943 3 else
944 3 {
945 4 wr_zb(0xf0,i,j);
946 4 send(chn[j*16+i*2]-0xa0);
947 4 send(chn[j*16+i*2+1]-0xa0);
948 4 }
949 3 }
950 2 }
951 1 }
952
953 /*--------------display English------------------*/
954 void disp_eng (UCHAR code *eng)
955 {
956 1 UCHAR i,j;
957 1 for(j=0;j<4;j++)
958 1 {
959 2 for(i=0;i<16;i++)
960 2 {
961 3 wr_zb(0xf1,i,j*8);
962 3 send(eng[j*16+i]);
963 3 }
964 2 }
965 1 }
966
967 void test_lcd(void)
968 {
969 1 UCHAR i;
970 1 LCD_REQ=0; //as output
971 1 LCD_BUSY=1;//as input
972 1 while(1)
973 1 {
974 2 send(0xf4);//clear screen
975 2 disp_lat(0xf0,0xf0);
976 2 for(i=0;i<2;i++)
977 2 Delay_1S();
978 2 send(0xf4);
979 2 disp_chn(tab2);
C51 COMPILER V7.02a SMS 08/28/2005 17:10:47 PAGE 17
*** WARNING C209 IN LINE 979 OF SMS.C: '_disp_chn': too few actual parameters
980 2 for(i=0;i<2;i++)
981 2 Delay_1S();
982 2 send(0xf4);
983 2 disp_lat(0xff,0x00);
984 2 for(i=0;i<2;i++)
985 2 Delay_1S();
986 2 send(0xf4);
987 2 disp_eng(tab4);
988 2 for(i=0;i<2;i++)
989 2 Delay_1S();
990 2 send(0xf4);
991 2 disp_lat(0xcc,0xcc);
992 2 for(i=0;i<2;i++)
993 2 Delay_1S();
994 2 send(0xf4);
995 2 disp_img(tab6);
996 2 for(i=0;i<2;i++)
997 2 Delay_1S();
998 2 }
999 1 }
1000
1001 /************************************************************************************
1002 end of LCD module
1003 ***********************************************************************************/
1004
1005 /****************************sound module******************************************/
1006
1007 void sound_ini(void)
1008 {
1009 1 sound_par1=Par1_Default;
1010 1 sound_par2=Par2_Default;
1011 1 sound_par3=Par3_Default;
1012 1 sound_buffer[0]=Frame_Head;//01
1013 1 sound_buffer[1]=0x80;//0x80
1014 1 sound_buffer[2]=0x80;//0x80
1015 1 sound_buffer[3]=0xc5;//0xc0
1016 1 sound_buffer[4]=Frame_End; //0x04
1017 1 sound_buffer[5]=check_sum(sound_buffer,5);
1018 1 buffer_len=0x06; //close Timer4
1019 1 // while(SOUND_READY);
1020 1 uart1_send(sound_buffer,buffer_len);
1021 1 //wait for several hundred ms
1022 1 Delay_1S();
1023 1 Delay_1S();
1024 1 Delay_1S();
1025 1 /*
1026 1 //uart1 baudrate reset
1027 1 T4CON &= 0xfb;
1028 1 T4CON = 0x30; //Set Timer4 Mode 2 (Auto Reload Byte)
1029 1 RCAP4H = 0xff; //Set Reload High Byte
1030 1 RCAP4L = 0xc4; //Set Reload Low Byte=9600bps
1031 1 SCON1 = 0x50; //Set UART1 Mode 1 (1 Start Bit ,8 Data Bit ,1 Stop Bit) and Enable Receive
1032 1 EIE2 &= 0xfb; //Disable Timer4 Interrupt
1033 1 T4CON |= 0x04; //Start Timer4
1034 1 */
1035 1 }
1036
1037 unsigned char check_sum(unsigned char data_buffer[],unsigned char data_len)
1038 {
1039 1 unsigned char i;
1040 1 unsigned char sum=0;
C51 COMPILER V7.02a SMS 08/28/2005 17:10:47 PAGE 18
1041 1 for(i=0;i<data_len;i++)
1042 1 {
1043 2 sum=sum^data_buffer[i];
1044 2 }
1045 1 return sum;
1046 1 }
1047 void uart1_send(unsigned char data_buffer[],unsigned char data_len)
1048 {
1049 1 unsigned char i;
1050 1 SCON1 &= 0xFD; //clear send flag
1051 1 for(i=0;i<data_len;i++)
1052 1 {
1053 2 SBUF1 = data_buffer[i];
1054 2 while(TI1==0);
1055 2 SCON1 &= 0xFD;
1056 2 }
1057 1 }
1058
1059
1060 void sound_test(void)
1061 {
1062 1 chn_data[0]=0x60;
1063 1 chn_data[1]=0xA0;
1064 1 sound_send(chn_data,0x02);
1065 1 }
1066
1067 void sound_send(unsigned char data_buffer[],unsigned char data_len)
1068 {
1069 1 unsigned char i;
1070 1 unsigned char RxBuf1[3];
1071 1 sound_buffer[0]=Frame_Head;//01
1072 1 sound_buffer[1]=sound_par1;//0x80
1073 1 sound_buffer[2]=sound_par2;//0x80
1074 1 sound_buffer[3]=sound_par3;//0xC8
1075 1 for(i=0;i<data_len;i++)
1076 1 sound_buffer[i+4]=data_buffer[i];
1077 1 sound_buffer[data_len+4]=Frame_End;
1078 1 sound_buffer[data_len+5]=check_sum(sound_buffer,data_len+5);
1079 1 buffer_len=data_len+6;
1080 1 // while(SOUND_READY);
1081 1 uart1_send(sound_buffer,buffer_len);
1082 1 sound_flag=0;
1083 1 while(!sound_flag);
1084 1 sound_flag=0;
1085 1 com_flag=0;
1086 1 while(!com_flag);
1087 1 com_flag=0;
1088 1 }
*** WARNING C280 IN LINE 1070 OF SMS.C: 'RxBuf1': unreferenced local variable
1089
1090 void Serial1_Service(void) interrupt 20
1091 {
1092 1 unsigned char temp;
1093 1 if(RI1)
1094 1 {
1095 2 temp=SBUF1;
1096 2 SCON1 &= 0xFE; //清接收标志
1097 2 if(temp==0x11)
1098 2 sound_flag=1;
1099 2 if(temp==0x12)
1100 2 com_flag=1;
1101 2 }
C51 COMPILER V7.02a SMS 08/28/2005 17:10:47 PAGE 19
1102 1 }
1103
1104
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 4031 ----
CONSTANT SIZE = 14552 ----
XDATA SIZE = 999 417
PDATA SIZE = ---- ----
DATA SIZE = 9 92
IDATA SIZE = ---- 18
BIT SIZE = 2 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 3 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -