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

📄 800.lst

📁 市面上的车载GPS定位器源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 664          //void AT_T(void)
 665          //        {
 666                          
 667          //      }          
 668          /*************************************************************
 669          发送短信
 670          dat: 目的地号码指针地址 
 671          *************************************************************/
C51 COMPILER V7.00  800                                                                    08/08/2006 18:57:28 PAGE 12  

 672          void Send_CMGS(uchar *dat)
 673               {
 674   1              Send_AA(AT_CMGS_,10);
 675   1              Send_AA(dat,11);
 676   1                }  
 677          /*************************************************************
 678          查找字符串,号
 679          **************************************************************/
 680          uchar Lookup(uchar *dat,uchar len)
 681               {
 682   1              uchar i,j;
 683   1              i=0;
 684   1              j=0;
 685   1              do
 686   1               {
 687   2                 if(*(dat+i)==0x2C)
 688   2                    {
 689   3                      j+=1;   
 690   3                        }
 691   2                        i++;
 692   2                        }
 693   1                while(j!=len);
 694   1                return(i);      
 695   1              }
 696          /***************************************************************
 697          
 698          ****************************************************************/       
 699          /* 打开 ISP,IAP 功能 */
 700          void ISP_IAP_enable(void)
 701          {
 702   1              EA      =       0;      /* 关中断 */
 703   1              ISP_CONTR       =       ISP_CONTR & 0x18;       /* 0001,1000 */
 704   1              ISP_CONTR       =       ISP_CONTR | WAIT_TIME;
 705   1              ISP_CONTR       =       ISP_CONTR | 0x80;       /* 1000,0000 */
 706   1      }
 707          
 708          /**********************************************************
 709          关闭 ISP,IAP 功能
 710          ************************************************************/
 711          void ISP_IAP_disable(void)
 712          {
 713   1              ISP_CONTR       =       ISP_CONTR & 0x7f;       /* 0111,1111 */
 714   1              ISP_TRIG        =       0x00;
 715   1              EA                      =   1;                  /* 开中断 */
 716   1      }
 717          
 718          /***********************************************************
 719           字节读
 720          ***********************************************************/
 721          uchar byte_read(uint byte_addr)
 722          {
 723   1              ISP_ADDRH       =       (uchar)(byte_addr >> 8);
 724   1              ISP_ADDRL       =       (uchar)(byte_addr & 0x00ff);
 725   1      
 726   1              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
 727   1              ISP_CMD         =       ISP_CMD |       0x01;        /* 0000,0001 */
 728   1      
 729   1              ISP_IAP_enable();
 730   1      
 731   1              ISP_TRIG        =       0x46;
 732   1              ISP_TRIG        =       0xb9;
 733   1              _nop_();
C51 COMPILER V7.00  800                                                                    08/08/2006 18:57:28 PAGE 13  

 734   1      
 735   1              ISP_IAP_disable();
 736   1              return (ISP_DATA);
 737   1      }
 738          
 739          /* 扇区擦除 */
 740          void sector_erase(uint sector_addr)
 741          {
 742   1              uint get_sector_addr    =       0;
 743   1              get_sector_addr                 =       (sector_addr & 0xfe00); /* 1111,1110,0000,0000; 取扇区地址 */
 744   1              ISP_ADDRH                       =       (uchar)(get_sector_addr >> 8);
 745   1              ISP_ADDRL                       =       0x00;
 746   1      
 747   1              ISP_CMD =       ISP_CMD &       0xf8;   /* 1111,1000 */
 748   1              ISP_CMD =       ISP_CMD |       0x03;   /* 0000,0011 */
 749   1      
 750   1              ISP_IAP_enable();
 751   1              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
 752   1              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
 753   1               _nop_();
 754   1      
 755   1              ISP_IAP_disable();
 756   1      //      return OK;
 757   1      }
 758          
 759          /* 字节编程 */
 760          void byte_program(uint byte_addr, uchar original_data)
 761          {
 762   1              ISP_ADDRH       =       (uchar)(byte_addr >> 8);
 763   1              ISP_ADDRL       =       (uchar)(byte_addr & 0x00ff);
 764   1      
 765   1              ISP_CMD         =       ISP_CMD &       0xf8;        /* 1111,1000 */
 766   1              ISP_CMD         =       ISP_CMD |       0x02;           /* 0000,0010 */
 767   1              ISP_DATA        =       original_data;
 768   1      
 769   1              ISP_IAP_enable();
 770   1              ISP_TRIG        =       0x46;        /* 触发ISP_IAP命令 */
 771   1              ISP_TRIG        =       0xb9;        /* 触发ISP_IAP命令 */
 772   1              _nop_();
 773   1      
 774   1              ISP_IAP_disable();
 775   1      //      return  OK;
 776   1      } 
 777          /***********************************************************
 778          写密码
 779          ************************************************************/ 
 780          bit Write_SN(uchar *dat,uchar *SN_)
 781          {
 782   1              uchar i;
 783   1              bit num=1;
 784   1      
 785   1               sector_erase(0x2800);      //
 786   1               delay_ms(50);
 787   1              for(i=0;i<6;i++)            //写入密码=》EEPROM
 788   1                 {
 789   2                      byte_program((0x2800+i),*(dat+i));
 790   2                      delay_ms(50);
 791   2                 }
 792   1              for(i=0;i<6;i++)             //写入密码=》RAM
 793   1                 {
 794   2                      *(SN_+i)=byte_read(0x2800+i);
 795   2                      delay_ms(50);
C51 COMPILER V7.00  800                                                                    08/08/2006 18:57:28 PAGE 14  

 796   2                 }
 797   1              for(i=0;i<6;i++)
 798   1                 {
 799   2                       if(byte_read(0x2800+i)!=*(SN_+i))
 800   2                         {
 801   3                              num=0;
 802   3                         }
 803   2                 } 
 804   1                 if(num==0)
 805   1                   {
 806   2                     return(0); 
 807   2               }
 808   1            else
 809   1              return(1);                 
 810   1       }
 811          /*************************************************************
 812          写电话号码入EEPROM
 813          **************************************************************/ 
 814          bit Write_ATT(uchar *dat,uint addr)
 815              {
 816   1           uchar i;
 817   1               bit num=1;
 818   1               sector_erase(addr);       //
 819   1               delay_ms(50);
 820   1               for(i=0;i<11;i++)            //写入密码=》EEPROM
 821   1                 {
 822   2                      byte_program((addr+i),*(dat+i));
 823   2                      delay_ms(50);
 824   2                 }
 825   1               for(i=0;i<11;i++)
 826   1                 {
 827   2                       if(byte_read(addr+i)!=*(dat+i))
 828   2                         {
 829   3                               num=0;
 830   3                         }
 831   2                  } 
 832   1                 if(num==0)
 833   1                   {
 834   2                     return(0); 
 835   2               }
 836   1            else
 837   1              return(1);              
 838   1              }      
 839          /***************************************************************
 840          ADC0,ADC1
 841          P1.0,P1.1  为开漏模式
 842          ****************************************************************/
 843          /*
 844          void ADC_inp(void)
 845               {
 846                  P1M0=0x03;
 847                  P1M1=0x03;
 848                   }
 849          /***************************************************************
 850          P1.0,P1.1 为51标准模式
 851          ****************************************************************/        
 852          /*
 853          void ADC_io(void)
 854               {
 855                  P1M0=0x00;
 856                  P1M1=0x00;
 857                   }
C51 COMPILER V7.00  800                                                                    08/08/2006 18:57:28 PAGE 15  

 858          /***************************************************************
 859          ****************************************************************/ 
 860          /*
 861          void ADC_read(uchar dat)
 862               {
 863                  ADC_CONTR=ADC_CONTR|dat;    /*选举AD输入通道
 864                  delay_ms(2);    
 865                  ADC_CONTR=ADC_CONTR|0x08;   /*起动AD转换器
 866                   delay_us(100); 
 867                  while((ADC_CONTR&0x10)==0);     
 868                //  delay_ms(10);
 869                  ADC_CONTR=ADC_CONTR&0xE7;   
 870                  delay_ms(600);
 871                  ADCdata=ADC_DATA;
 872                  Send_one_Byte(ADCdata);
 873                       initial_UART();
 874                    }     */
 875          /****************************************************************
 876          *****************************************************************/      
 877                                                                            
C51 COMPILER V7.00  800                                                                    08/08/2006 18:57:28 PAGE 16  

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


CCF2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00DAH  1
DC_IO. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
AT_CMGR_ . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    005CH  11
CCF3 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00DBH  1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -