⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sms.lst

📁 这是一个单片机控制TC35I无线通信模块源程序。通过短信通讯。
💻 LST
📖 第 1 页 / 共 4 页
字号:
 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 + -