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

📄 7279.lst

📁 AT89c51单片机7279驱动键盘数码管程序
💻 LST
字号:
C51 COMPILER V8.02   7279                                                                  12/03/2007 20:50:56 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE 7279
OBJECT MODULE PLACED IN D:\将要制~1\单片机~2\高级\7279\7279.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\将要制~1\单片机~2\高级\7279\7279.C DB SB OE OT(0)

line level    source

   1          /*******************************
   2          模块名称:7279显示
   3          创建人:  田本武 修改人:  田本武 修改时间:2007-10-16
   4          功能描述:键盘显示管理
   5          版本号:     2.0版本
   6          ********************************/
   7          #include "reg51.h "
   8          #define uchar  unsigned char
   9          #define uint  unsigned int
  10          /******************
  11          函数声明
  12          *****************/
  13          void long_delay(void); //长延时
  14          void short_delay(void);//短延时
  15          void write7279_byte(uchar ,uchar );//写7279
  16          void send_byte(uchar);//发送一字节
  17          //uchar receive_byte(void);//接收一字节
  18          void HD7279_LongDelay(void);  //长延时函数
  19          void HD7279_ShortDelay(void); //短延时函数
  20          
  21          
  22          /************************
  23          I/O  定义
  24          ************************/
  25          sbit key_7279=P2^0;
  26          sbit da_7279=P3^7;
  27          sbit clk_7279=P3^3;
  28          sbit A_74138=P2^4;
  29          sbit B_74138=P2^3;
  30          sbit C_74138=P2^2;
  31          /************************
  32          定义全局变量
  33          ***********************/
  34          uchar key=0;
  35          /****************************
  36          显示数组
  37          ****************************/
  38          uchar code disp[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
  39          /*************************
  40          7279指令定义
  41          **************************/
  42          #define readkey  0x15      //读键值指令
  43          #define reset 0xa4         //复位指令
  44          #define try   0xbf         //测试指令
  45          #define decode1 0xc8       //方式1译码
  46          
  47          /************************
  48          函数名: HD7279_LongDelay
  49          功能描述:长延时函数
  50          *************************/
  51          void HD7279_LongDelay(void)
  52          {
  53   1      unsigned char i;
  54   1      for (i=0;i<6;i++);
  55   1      }
C51 COMPILER V8.02   7279                                                                  12/03/2007 20:50:56 PAGE 2   

  56          
  57          /************************
  58          函数名: HD7279_shortDelay
  59          功能描述:长延时函数
  60          *************************/
  61          void HD7279_ShortDelay(void)
  62          {;}
  63          
  64          
  65          /************************
  66          函数名: send_byte
  67          功能描述:向7279中写入一个字节的数据
  68          函数说明:
  69          调用函数:
  70          全局变量:
  71          输入:  k
  72          输出:  无
  73          返回:  无
  74          
  75          *************************/
  76          void send_byte(uchar k)
  77          {
  78   1       uchar i,j;
  79   1       A_74138=0;
  80   1       B_74138=0;
  81   1       C_74138=1;
  82   1       clk_7279=0;
  83   1      
  84   1       HD7279_LongDelay();
  85   1      
  86   1       for(i=0;i<8;i++)          //产生8个脉冲
  87   1        {
  88   2         da_7279=(bit)(0x80&k);//十进制数转化成位数据
  89   2         clk_7279=1;
  90   2        HD7279_ShortDelay();
  91   2          k=k<<1;
  92   2         clk_7279=0 ;
  93   2         HD7279_ShortDelay();
  94   2      
  95   2         }
  96   1        da_7279=0;
  97   1      }
*** WARNING C280 IN LINE 78 OF D:\将要制~1\单片机~2\高级\7279\7279.C: 'j': unreferenced local variable
  98          
  99          /************************
 100          函数名: write_byte
 101          功能描述:向7279中写入两个字节的数据
 102          函数说明:
 103          调用函数:send_byte()
 104          全局变量:
 105          输入:  comd dta
 106          输出:  无
 107          返回:  无
 108          
 109          *************************/
 110          void write7279_byte(uchar comod ,uchar dta)
 111          { send_byte(comod);
 112   1        send_byte(dta);
 113   1       }
 114          
 115          /************************
 116          函数名: receive()
C51 COMPILER V8.02   7279                                                                  12/03/2007 20:50:56 PAGE 3   

 117          功能描述: 接受从7279传回的按键值
 118          
 119          *************************/
 120          uchar receive()
 121          {uchar i,in_byte;
 122   1       da_7279=1;
 123   1        for(i=0;i<8;i++)
 124   1          {  clk_7279=1;
 125   2             HD7279_ShortDelay();
 126   2              in_byte<<=1;//初始值是0
 127   2      
 128   2            if(da_7279)
 129   2              {in_byte|=0x01;}
 130   2      
 131   2              clk_7279=0;
 132   2              HD7279_ShortDelay();
 133   2           }
 134   1          da_7279=0;
 135   1          return(in_byte);
 136   1      
 137   1      }
 138          /************************
 139          函数名: read7279()
 140          功能描述:从7279中读出键盘值
 141          函数说明:
 142          调用函数: send_byte(); receive();
 143          全局变量:
 144          输入:  k
 145          输出:  无
 146          返回:  键值
 147          
 148          *************************/
 149          uchar read7279(uchar k)
 150          {send_byte(k);
 151   1       return(receive());
 152   1      }
 153          
 154          void main(void)
 155          {uchar t,num;
 156   1       uchar *p;
 157   1       p=disp;
 158   1       send_byte(reset); //7279复位
 159   1      
 160   1      
 161   1       //send_byte(try);//测试7279,调试用
 162   1        //while(1);
 163   1      
 164   1       //write7279_byte(decode1,0x00);
 165   1      
 166   1       while(1)
 167   1        {
 168   2          if(!key_7279)
 169   2           {
 170   3            if(key<8)
 171   3              goto loop;
 172   3              else key=0;
 173   3          loop:num=read7279(readkey);
 174   3               write7279_byte(decode1+key,num);
 175   3               key++;               //修改
 176   3               while(!key_7279);
 177   3           }
 178   2         }
C51 COMPILER V8.02   7279                                                                  12/03/2007 20:50:56 PAGE 4   

 179   1        while(1);
 180   1       for(t=0;t<8;t++)
 181   1         {
 182   2       write7279_byte(decode1+t,disp+t);
*** WARNING C214 IN LINE 182 OF D:\将要制~1\单片机~2\高级\7279\7279.C: 'Argument': conversion: pointer to non-pointer
 183   2          }
 184   1      
 185   1      }
 186          
 187          
 188          
 189          
 190          
 191          
C51 COMPILER V8.02   7279                                                                  12/03/2007 20:50:56 PAGE 5   

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


da_7279. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
_write7279_byte. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  comod. . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  dta. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
key_7279 . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
_send_byte . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0002H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  t. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  num. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  p. . . . . . . . . . . . . . . . . .  AUTO     DATA   PTR      0002H  3
  loop . . . . . . . . . . . . . . . .  LABEL    CODE   LABEL    -----  -----
A_74138. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A4H  1
B_74138. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
C_74138. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
disp . . . . . . . . . . . . . . . . .  PUBLIC   CODE   ARRAY    0000H  8
key. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
HD7279_LongDelay . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
HD7279_ShortDelay. . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_read7279. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  k. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
receive. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  in_byte. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
clk_7279 . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B3H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    235    ----
   CONSTANT SIZE    =      8    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     15    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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