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

📄 text1.lst

📁 个人单片机入门程序集合 。很适合刚学单片机的人。用的是keil proteus
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.20   TEXT1                                                                 07/19/2007 09:52:58 PAGE 1   


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

line level    source

   1          #include<reg51.h>
   2          #include<intrins.h>
   3          #define uchar unsigned char
   4          
   5          //数据口定义
   6          #define lcd1602_bus P0
   7          
   8          /******************tlc549 port*********************/
   9          
  10          sbit cs_0838=P1^3;
  11          sbit sda_0838=P1^0;
  12          sbit scl_0838=P1^1;
  13          
  14          /*******************tlc5620 port***********************/
  15          sbit load_5620=P1^5;
  16          sbit clk_5620=P1^6;
  17          sbit data_5620=P1^7;
  18          
  19          /***************lcd1602 port******************************/
  20                          
  21          //引脚定义
  22          
  23          sbit rs_1602=P2^5;           
  24          sbit rw_1602=P2^6;
  25          sbit e_1602=P2^7;
  26          
  27          uchar set[3];   //setting 
  28          uchar mea[4];   //measure
  29          uchar j;
  30          bit b;
  31          uchar data5620;
  32          
  33          unsigned char bdata adc_0838;  //bdata  //bit data area
  34          sbit  adc_0838low=adc_0838^0;   //最低位
  35          
  36          uchar bdata u;
  37          sbit us=u^7;
  38          
  39          uchar code table[10]=
  40          {0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
  41          
  42          
  43          /**************adc_549convert*******************/
  44          unsigned char adc_0838convert()
  45          {  
  46   1         uchar i;
  47   1         u=0x80;
  48   1         scl_0838=0;
  49   1         sda_0838=1;
  50   1         cs_0838=0;
  51   1         _nop_();
  52   1         _nop_();
  53   1         scl_0838=1;
  54   1         _nop_();
  55   1         _nop_();
C51 COMPILER V7.20   TEXT1                                                                 07/19/2007 09:52:58 PAGE 2   

  56   1         for(i=0;i<4;i++)
  57   1         {
  58   2           scl_0838=0;
  59   2           sda_0838=us;
  60   2               _nop_();
  61   2               _nop_();
  62   2               scl_0838=1;
  63   2               u=u<<1;
  64   2         }
  65   1         sda_0838=1;
  66   1         _nop_();
  67   1         _nop_();
  68   1         scl_0838=0;
  69   1         _nop_();
  70   1         _nop_();
  71   1         adc_0838=0;
  72   1         for(i=0;i<8;i++)
  73   1         {
  74   2           adc_0838=adc_0838<<1;
  75   2           scl_0838=1;
  76   2               _nop_();
  77   2               _nop_();
  78   2               scl_0838=0;
  79   2           _nop_();
  80   2               _nop_();
  81   2           adc_0838low=sda_0838;
  82   2         }
  83   1         return(adc_0838);
  84   1      }
  85          
  86          
  87          void dac_5620(unsigned char dataa,unsigned char datab,
  88                        unsigned char datac,unsigned char datad)
  89          {
  90   1       unsigned char i;
  91   1      
  92   1      
  93   1       /****************dataa************/
  94   1      
  95   1       load_5620=1; 
  96   1       clk_5620=1; data_5620=0; clk_5620=0;
  97   1       clk_5620=1; data_5620=0; clk_5620=0;
  98   1       clk_5620=1; data_5620=0; clk_5620=0;
  99   1       for(i=0;i<8;i++)
 100   1         {
 101   2          clk_5620=1;
 102   2          if(dataa & 0x80) data_5620=1;  
 103   2             else data_5620=0;
 104   2           clk_5620=0;
 105   2          dataa=dataa<<1;
 106   2          }
 107   1       load_5620=0;
 108   1       _nop_();
 109   1       load_5620=1;
 110   1      
 111   1      
 112   1       /************datab*************/
 113   1      
 114   1       load_5620=1; 
 115   1       clk_5620=1; data_5620=0; clk_5620=0;
 116   1       clk_5620=1; data_5620=1; clk_5620=0;
 117   1       clk_5620=1; data_5620=0; clk_5620=0;
C51 COMPILER V7.20   TEXT1                                                                 07/19/2007 09:52:58 PAGE 3   

 118   1       for(i=0;i<8;i++)
 119   1         {
 120   2          clk_5620=1;
 121   2          if(datab & 0x80) data_5620=1;  
 122   2             else data_5620=0;
 123   2           clk_5620=0;
 124   2          datab=datab<<1;
 125   2          }
 126   1       load_5620=0;
 127   1       _nop_();
 128   1       load_5620=1;
 129   1      
 130   1      
 131   1      /************datac*******************/
 132   1      
 133   1       load_5620=1; 
 134   1       clk_5620=1; data_5620=1; clk_5620=0;
 135   1       clk_5620=1; data_5620=0; clk_5620=0;
 136   1        clk_5620=1;data_5620=0; clk_5620=0;
 137   1       for(i=0;i<8;i++)
 138   1         {
 139   2          clk_5620=1;
 140   2          if(datac & 0x80) data_5620=1;  
 141   2             else data_5620=0;
 142   2           clk_5620=0;
 143   2          datac=datac<<1;
 144   2          }
 145   1       load_5620=0;
 146   1       _nop_();
 147   1       load_5620=1;
 148   1      
 149   1      
 150   1      /***************datad***************/
 151   1      
 152   1       load_5620=1; 
 153   1       clk_5620=1; data_5620=1; clk_5620=0;
 154   1       clk_5620=1; data_5620=1; clk_5620=0;
 155   1       clk_5620=1; data_5620=0; clk_5620=0;
 156   1       for(i=0;i<8;i++)
 157   1         {
 158   2          clk_5620=1;
 159   2          if(datad & 0x80) data_5620=1;  
 160   2             else data_5620=0;
 161   2           clk_5620=0;
 162   2          datad=datad<<1;
 163   2          }
 164   1       load_5620=0;
 165   1       _nop_();
 166   1       load_5620=1;
 167   1       
 168   1      }
 169          
 170          
 171          /*********延时子程序**********/
 172          void delay_1602(uchar dy)
 173          {
 174   1        while(--dy);
 175   1      } 
 176          
 177          /***********忙判断标志,返回一个位BF********************/
 178          
 179          bit lcd1602_busy(void)
C51 COMPILER V7.20   TEXT1                                                                 07/19/2007 09:52:58 PAGE 4   

 180          {
 181   1              unsigned char busy_flag;
 182   1              rs_1602=0;
 183   1              rw_1602=1;
 184   1              _nop_();
 185   1              e_1602=1;
 186   1              _nop_();
 187   1              lcd1602_bus=0xff;
 188   1              busy_flag=lcd1602_bus;   //e在高电平时读 
 189   1              e_1602=0;
 190   1              return (bit)(busy_flag&0x80);    //BF=1; BUSY  返回一个位
 191   1      }
 192          
 193          
 194          /********写命令,有两个参数,一个是要写的命令控制字,
 195          第二个是用来控制是否进行忙标志的判断。
 196          
 197          busyflag=1;
 198          
 199          判断: 为0 

⌨️ 快捷键说明

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