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

📄 phone.lst

📁 拨号程序源码.利用CPU是8位单片机. 拨号芯片为HT9200.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   PHONE                                                                 09/27/2007 22:32:42 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE PHONE
OBJECT MODULE PLACED IN phone.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE phone.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //Copyright(C), 2007-2007, Whcsdc Tech. Co., Ltd.
   2          //File name:fydefine.h
   3          //Author:"杨军" 
   4          //Version:"2007版"
   5          //Date: "2007年8月1日"
   6          //Description:"定义了整个程序"
   7          
   8          #include "fymain.h"
   9          
  10          //"重量"
  11          UBDWORD gu_Val1,gu_Val2;//"全局变量
  12          //"DTMF发送"
  13          sbit DATA   = P2^4;
  14          sbit CLK    =  P2^3;
  15          sbit DTMF_CS = P2^5;
  16          //"DTMF接收"
  17          sbit DTMF_CHK = P3^5;
  18          sbit OE  = P3^3;
  19          //"响铃"
  20          sbit RING =  P2^6;
  21          sbit CP = P3^4;
  22          //"是否在线(忙音)"
  23          sbit DX_CHK = P2^7;
  24          //"摘挂机"
  25          sbit SW =  P3^7;
  26          //"无线接收信号"
  27          sbit VI =  P3^2;
  28          
  29          //"CPU控制"
  30          sbit CPU_PASS = P3^6;
  31          sbit BEEP = P0^4;
  32          
  33          uchar idata Check0 ;
  34          uchar idata Counter0 ;
  35          uchar idata Check1 ;
  36          uchar idata Counter1 ;
  37          uchar idata Counter3 ;
  38          //uchar data wireless  _at_ 0x14 ;
  39          uchar data wireless;
  40          
  41          //"bit"
  42          uchar volatile bdata flag = 0;
  43          
  44          sbit WIRELESS_FG = flag^0;
  45          
  46          
  47          uchar code Table_DTMF[] =
  48          {0x0a,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0d,0x0e,0x0f,0x00,0x0b,0x0c,0x1f};
  49          // 0 1 2 3 4 5 6 7 8 9 A B C D * #
  50          uchar code dial[] = "13720357726@";
  51          
  52          uchar code Table_Key[] = {Key1,Key2,Key3,KeyF0,Key4,Key5,Key6,KeyF1,Key7,Key8,Key9,KeyF2,\
  53          Key10,Key0,Key11,KeyF3};
  54          
  55          void SysInit(void);
C51 COMPILER V7.06   PHONE                                                                 09/27/2007 22:32:42 PAGE 2   

  56          void SoftInit(void);   
  57          void delay(uint iCnt);
  58          uchar check_DXC(void);
  59          uchar check_RING(void);
  60          uchar check_DV(void);
  61          void checkRING_Init();
  62          void checkDV_Init();
  63          void checkDXC_Init();
  64          void senddata_ht9200(uchar in);
  65          void send_ht9200(uchar in);
  66          uchar DTMF_read(void);
  67          void dial_up(uchar *dial);
  68          //"按键函数"
  69          uchar Read_KeyBoard(void);
  70          bit KeyBoard_If_Hit(void);
  71          void Beep(void);
  72          
  73          Main()
  74          {
  75   1              SysInit();
  76   1              SoftInit();
  77   1      //      dial_up(dial);
  78   1              while (1)
  79   1              {
  80   2                      
  81   2              }
  82   1              
  83   1      }
  84          
  85          void SysInit(void)
  86          {
  87   1              
  88   1      }
  89          
  90          void Beep(void)
  91          {
  92   1               uchar i;
  93   1               BEEP = 1;
  94   1      
  95   1               for (i = 0; i < 254; i++);
  96   1      
  97   1               BEEP = 0;
  98   1      }
  99          
 100          void SoftInit(void)
 101          {
 102   1              down();
 103   1              //"开中断"
 104   1              IE = 0;
 105   1              IT0 = 1;
 106   1              ET0 = 1;
 107   1              EA = 1;
 108   1              Beep(); 
 109   1          CPU_PASS = 0;
 110   1      //    P0= 0;
 111   1      }
 112          
 113          void dial_up(uchar *dial)
 114          {
 115   1              uchar len,i;
 116   1              len = strlen(dial);
 117   1              plunk();
C51 COMPILER V7.06   PHONE                                                                 09/27/2007 22:32:42 PAGE 3   

 118   1              for (i=0; i<len; i++)
 119   1              {
 120   2                      send_ht9200((dial[i]-48));
 121   2              }       
 122   1      }
 123          
 124          void delay(uint iCnt)
 125          {
 126   1              while(iCnt--);
 127   1      }
 128          
 129          
 130          void senddata_ht9200(uchar in)
 131          {
 132   1              uchar i;
 133   1              for (i=0;i<5;i++)
 134   1              {
 135   2                      if (((in>>i)&0x01) == 1)
 136   2                      {
 137   3                              DATA = 1;
 138   3                      }
 139   2                      else 
 140   2                      {
 141   3                              DATA = 0;
 142   3                      }
 143   2                      CLK = 0;
 144   2                      CLK = 1;
 145   2              }
 146   1      }
 147          
 148          /******************************************
 149          发送子程序
 150          in 为要发送的数 0-15
 151          ******************************************/
 152          void send_ht9200(uchar in)
 153          {
 154   1              uchar i;
 155   1              DTMF_CS = 0;
 156   1              CLK = 1;
 157   1              delay(6000); //delay about 6 ms
 158   1              EA = 0;
 159   1              senddata_ht9200(Table_DTMF[in]) ;
 160   1              EA = 1 ;
 161   1              for (i=0 ;i< 15;i++)
 162   1              delay(6000); //delay about 100 ms
 163   1              DTMF_CS = 1 ;
 164   1      }
 165          /*****************************************
 166          DTMF 读程序
 167          返回 DTMF值
 168          *****************************************/
 169          uchar DTMF_read(void)
 170          {
 171   1              uchar temp ;
 172   1              uchar i ;
 173   1              
 174   1              EA = 0 ;
 175   1              P0 = 0xff ;
 176   1              OE = 1 ;
 177   1              ACC = ACC ;
 178   1              temp = P0&0x0f ;
 179   1              OE = 0 ;
C51 COMPILER V7.06   PHONE                                                                 09/27/2007 22:32:42 PAGE 4   

 180   1              EA = 1 ;
 181   1              for (i=0;i<16;i++)
 182   1              {
 183   2                      if (temp == Table_DTMF[i])
 184   2                      return i ;
 185   2              }
 186   1              return(0xff) ;
 187   1      }
 188          
 189          /******************************************
 190          初始化检测程序
 191          ******************************************/
 192          void checkRING_Init()
 193          {
 194   1              Check0 = 2 ;
 195   1              Counter0 = 20 ;
 196   1      }
 197          
 198          void checkDV_Init()
 199          {
 200   1              Check1 = 2;
 201   1              Counter1 = 20;
 202   1      }
 203          
 204          void checkDXC_Init()
 205          {
 206   1      /*      Check3 = 2 ;*/
 207   1              Counter3 = 20 ;
 208   1      }
 209          
 210          /***************************************
 211          检测有无振铃RING 程序
 212          返回 TRUE :有
 213          FALSE:无
 214          ***************************************/
 215          uchar check_RING(void) //
 216          {
 217   1              uchar flag ;
 218   1              flag = RING ; //check RING

⌨️ 快捷键说明

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