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

📄 7279clailai.lst

📁 本系统的控制部分是以89C51为核心
💻 LST
字号:
C51 COMPILER V7.50   7279CLAILAI                                                           04/04/2007 08:24:13 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 7279CLAILAI
OBJECT MODULE PLACED IN I:\7279C发送接收程序\7279CLAILAI.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE I:\7279C发送接收程序\7279CLAILAI.C DB SB OE OT(0)

line level    source

   1          #include<reg51.h>
   2          //***函数定义***
   3          void long_delay(void); //***长延时***
   4          void short_delay(void); //***短延时***
   5          void delay10ms(unsigned char); //延时10MS
   6          void write7279(unsigned char, unsigned char);// 写入到HD7279
   7          unsigned char read7279(unsigned char);// 从HD7279读出
   8          void send_byte(unsigned char); //发送一个字节
   9          unsigned char receive_byte(void); //接收一个字节
  10          
  11          //**定义变量及I/O口**
  12          
  13          unsigned char digit[5];
  14          unsigned char key_number, j, k;
  15          unsigned int tmr,sum=0;
  16          unsigned char  cnter=1;
  17          
  18          sbit cs=P2^3; // cs at P1.0
  19          sbit clk=P2^2; // clk 连接于P1.1
  20          sbit dat=P2^1; // data 连接于P1.2
  21          sbit key=P2^0; // key 连接于P1.3
  22          
  23           //****** HD7279A指令 ******
  24          #define CMD_RESET 0xa4  //复位(清除)指令
  25          #define CMD_TEST 0xbf   //测试指令
  26          #define DECODE0 0x80
  27          #define DECODE1 0xc8
  28          #define CMD_READ 0x15
  29          #define UNDECODE 0x90
  30          #define RTL_CYCLE 0xa3
  31          #define RTR_CYCLE 0xa2
  32          #define RTL_UNCYL 0xa1
  33          #define RTR_UNCYL 0xa0
  34          #define ACTCTL 0x98
  35          #define SEGON 0xe0
  36          #define SEGOFF 0xc0
  37          #define BLINKCTL 0x88
  38          
  39          //***主程序***
  40          void main()
  41          {
  42   1        while(1)
  43   1        {
  44   2       for (tmr=0;tmr<0x2000;tmr++); //上电延时
  45   2      send_byte(CMD_RESET); // 复位HD7279A
  46   2        while (1)
  47   2          {
  48   3            if (!key) //如果有键按下
  49   3              {
  50   4               key_number=read7279(CMD_READ);//读出键码
  51   4               //P0=key_number;
  52   4               //sum=sum+cnter*key_number;
  53   4               //cnter=cnter*10;
  54   4               write7279(DECODE1+7,key_number&0x0F);//显示键码
  55   4               send_byte(RTL_CYCLE); // 循环左移
C51 COMPILER V7.50   7279CLAILAI                                                           04/04/2007 08:24:13 PAGE 2   

  56   4               delay10ms(12);
  57   4               while (!key); //等待按键放开
  58   4               cnter+=1;
  59   4               }
  60   3            }
  61   2      cnter=0;
  62   2        }
  63   1      }
  64          
  65          
  66          
  67          
  68          
  69          
  70          
  71          
  72          
  73          
  74          
  75          //**********************************************
  76          //****写****
  77          void write7279(unsigned char cmd, unsigned char dta)
  78          {
  79   1      send_byte (cmd);
  80   1      send_byte (dta);
  81   1      }
  82          
  83          //*********读出********
  84          unsigned char read7279(unsigned char command)
  85          {
  86   1      send_byte(command);
  87   1      return(receive_byte());
  88   1      }
  89          
  90          //***发送***
  91          void send_byte( unsigned char out_byte)
  92          {
  93   1      unsigned char i;
  94   1      cs=0;
  95   1      long_delay();
  96   1      for (i=0;i<8;i++)
  97   1        {
  98   2        if (out_byte&0x80)
  99   2          {dat=1;}
 100   2        else
 101   2         {dat=0;}
 102   2        clk=1;
 103   2        short_delay();
 104   2        clk=0;
 105   2        short_delay();
 106   2        out_byte=out_byte*2;
 107   2        }
 108   1      dat=0;
 109   1      }
 110          
 111          //***接收***
 112          unsigned char receive_byte(void)
 113          {
 114   1        unsigned char i, in_byte;
 115   1        dat=1;             //设为输入状态
 116   1        long_delay();
 117   1        for (i=0;i<8;i++)
C51 COMPILER V7.50   7279CLAILAI                                                           04/04/2007 08:24:13 PAGE 3   

 118   1        {
 119   2        clk=1;
 120   2        short_delay();
 121   2        in_byte=in_byte*2;
 122   2        if (dat)
 123   2          {in_byte=in_byte|0x01;}
 124   2        clk=0;
 125   2        short_delay();
 126   2        }
 127   1      dat=0;
 128   1      return (in_byte);
 129   1      }
 130          
 131          //***长延时***
 132          void long_delay(void)
 133          {
 134   1      unsigned char i;
 135   1      for (i=0;i<0x30;i++);
 136   1      }
 137          
 138          //***短延时***
 139          void short_delay(void)
 140          {
 141   1      unsigned char i;
 142   1      for (i=0;i<8;i++);
 143   1      }
 144          // ********************* 延时n*10ms **********************
 145          void delay10ms(unsigned char time)
 146          {
 147   1      unsigned char i;
 148   1      unsigned int j;
 149   1      for (i=0;i<time;i++)
 150   1      {
 151   2      for(j=0;j<0x390;j++)
 152   2      {
 153   3      if (!key)
 154   3      {
 155   4      //key_int();
 156   4      }
 157   3      }
 158   2      }
 159   1      }
 160          
 161          
 162          
C51 COMPILER V7.50   7279CLAILAI                                                           04/04/2007 08:24:13 PAGE 4   

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


receive_byte . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  in_byte. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
digit. . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  5
cnter. . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0005H  1
_send_byte . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  out_byte . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
long_delay . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
short_delay. . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_delay10ms . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  time . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  i. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
  j. . . . . . . . . . . . . . . . . .  AUTO     DATA   U_INT    0002H  2
key_number . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0006H  1
dat. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A1H  1
clk. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A2H  1
key. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A0H  1
tmr. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0007H  2
cs . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A3H  1
sum. . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_INT    0009H  2
_read7279. . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  command. . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
_write7279 . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  cmd. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
  dta. . . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0001H  1
j. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000BH  1
k. . . . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   000CH  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    268    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     26    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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