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

📄 testda.lst

📁 dac0832接口程序
💻 LST
字号:
C51 COMPILER V8.04b   TESTDA                                                               04/28/2009 14:53:23 PAGE 1   


C51 COMPILER V8.04b, COMPILATION OF MODULE TESTDA
OBJECT MODULE PLACED IN testDA.OBJ
COMPILER INVOKED BY: E:\Program Files\Keil c51\C51\BIN\C51.EXE testDA.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          # include < reg52.h >
   2          # include < stido.h >
*** WARNING C318 IN LINE 2 OF testDA.c: can't open file 'stido.h'
   3          # include < absacc.h >
   4          # include < stdlib.h >
   5          # define TRUE 1
   6          # define FALSE 0
   7          # define DELAY_VALUE 3
   8          
   9          sbit P0_0=P0^0;
  10          sbit P0_1=P0^1;
  11          sbit P0_2=P0^2;
  12          sbit P0_3=P0^3;
  13          sbit P0_4=P0^4;
  14          sbit P0_5=P0^5;
  15          sbit P0_6=P0^6;
  16          sbit P0_7=P0^7;
  17          
  18          sbit P1_0=P1^0;
  19          sbit P1_1=P1^1;
  20          sbit P1_2=P1^2;
  21          sbit P1_3=P1^3;
  22          sbit P1_4=P1^4;
  23          sbit P1_5=P1^5;
  24          sbit P1_6=P1^6;
  25          sbit P1_7=P1^7;
  26          
  27          sbit P2_0=P2^0;
  28          sbit P2_1=P2^1;
  29          sbit P2_2=P2^2;
  30          sbit P2_3=P2^3;
  31          sbit P2_4=P2^4;
  32          sbit P2_5=P2^5;
  33          sbit P2_6=P2^6;
  34          sbit P2_7=P2^7;
  35          
  36          sbit P3_0=P3^0;
  37          sbit P3_1=P3^1;
  38          sbit P3_2=P3^2;
  39          sbit P3_3=P3^3;
  40          sbit P3_4=P3^4;
  41          sbit P3_5=P3^5;
  42          sbit P3_6=P3^6;
  43          sbit P3_7=P3^7;
  44          
  45          unsigned char mark_0=0;   //中断判别
  46          bit mark_1=0;
  47          bit mark_2=0;
  48          
  49          void initial();
  50          void keyscan();
  51          void AD_scan();
  52          void DA_scan();
  53          
  54          //中断
C51 COMPILER V8.04b   TESTDA                                                               04/28/2009 14:53:23 PAGE 2   

  55          void int_0();   //int0中断
  56          void int_1();
  57          void timer_0();   //定时器0中断
  58          void timer_1();
  59           
  60          
  61          void main(void)
  62          {
  63   1              initial();
  64   1              //选通
  65   1               P3_5=1;
  66   1               P2_7=1;
  67   1               P2_6=1;
  68   1               P2_5=0;
  69   1              //读写信号
  70   1               P3_6=0;
  71   1               P3_7=0;
  72   1              while(1)
  73   1              {
  74   2                      P0=0x01;   //移位正确否???
  75   2                      P0=P0>>1;
  76   2              }
  77   1      
  78   1      
  79   1      }
  80          void initial()
  81          {
  82   1      //串行口寄存器设置///////////////////////////////////
  83   1         //SCON       
  84   1              SM0=0;   
  85   1              SM1=1;          //      工作模式: 1  ;10步异步收发,每一帧10位。
  86   1              SM2=1;     //????模式一中,若sm2=1,则只有接收到有效停止位时,RI才置1
  87   1              REN=1;     //为一时,串口允许接收数据,由软件置位或清零
  88   1              TB8=0;     //工作于方式2、3时
  89   1          RB8=0;     //同上
  90   1              TI=0;      //发送和接收完一帧数据后,由硬件使TI/RI置位申请中断,须由软件清零
  91   1              RI=0;           //TI\RI发送和接收中断标志位
  92   1      
  93   1              //SCON=0x70;                    
  94   1      //电源控制寄存器PCON中 只有SMOD与串口有关,SMOD=1,波特率加倍,否则不加倍
  95   1              PCON=0;    //SMOD=1; 11M晶振
  96   1      ////////////////////////////////////////////////////////////////////////////////////
  97   1      
  98   1      //中断系统/////////////////////////////////////////////
  99   1           //TCON定时器控制寄存器
 100   1               TF1=0; //定时器T1和T0 溢出标志位
 101   1               //空
 102   1               TF0=0;
 103   1               //空
 104   1               IE1=0; 
 105   1               IT1=1;
 106   1               IE0=0; //外部中断int0和Int1请求中断标志位   当为1 时,请求中断
 107   1               IT0=1; //外部中断0、1为边沿触发                                                                                                
 108   1               //TCON=0X05;//定义外部中断int0和int1的触发方式为 边沿触发  剩余两位无关
 109   1               //SCON最后两位与中断有关  见串口寄存器SCON的设置
 110   1               //IE中断允许寄存器
 111   1               EA=1;  //不屏蔽所有中断
 112   1               //空
 113   1               ET2=0;
 114   1               ES=0;  //允许串行口中断
 115   1               ET1=0; //允许定时/计数器中断 
 116   1               EX1=1;  //允许外部中断int1
C51 COMPILER V8.04b   TESTDA                                                               04/28/2009 14:53:23 PAGE 3   

 117   1               ET0=0;
 118   1               EX0=1;  //允许外部中断int0
 119   1               //IE=0X81;
 120   1               //IP中断优先级寄存器
 121   1               //空    
 122   1               //空
 123   1               PT2=0; //定时器T2 为1时,则是高优先级
 124   1               PS=1;  //串口
 125   1               PT1=0;
 126   1               PX1=0; //外部中断
 127   1               PT0=0;
 128   1               PX0=0;
 129   1               //IP=0x01;
 130   1      //////////////////////////////////////////////////////////////////////////////////
 131   1      //定时/计数器的设置///////////////////////////////
 132   1         //工作方式寄存器TMOD的设置,高四位用于定时器1,低四位用于定时器0
 133   1         TMOD=0x01;
 134   1         //控制寄存器TCON参见中断系统
 135   1      
 136   1              //定时器 的四种工作模式    初值设定???????
 137   1      
 138   1      
 139   1      }
 140          //延时子函数////////////////////////////////////////////////
 141          void delay(DEFINE_VALUE)
 142          {       
 143   1              unsigned char i,j;
 144   1              for(i=0;i<20;i++)
 145   1              for(j=0;j<250;j++);
 146   1      }
 147          ////////////////////////////////////////////////////////////////////////////////////
 148          
 149          
 150          void int_0() interrupt 0 using 0        //int0中断        含义?????
 151          {
 152   1      //此处为键盘的中断,读P1口
 153   1       mark_0=1;
 154   1      }
 155          void int_1() interrupt 2 using 1        //int1中断        含义?????
 156          {
 157   1       mark_0=2;
 158   1      }
 159          void timer_0() interrupt 1 using 2        //定时器0中断
 160          {
 161   1       mark_0=3;
 162   1      }
 163          void timer_1() interrupt 3 using 3
 164          {
 165   1       mark_0=4;
 166   1      }
 167          
 168          
 169          ////////////////////////////////////////////////////////////////////////////////////


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    120    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       2
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.04b   TESTDA                                                               04/28/2009 14:53:23 PAGE 4   

   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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