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

📄 main_b.lst

📁 IC卡购电软件实现
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.08   MAIN_B                                                                09/27/2006 09:14:00 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE MAIN_B
OBJECT MODULE PLACED IN MAIN_B.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAIN_B.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*******************************************************************************
   2          *  标题:  北京蓝海微芯LJD-SY-5200单片机开发系统演示程序                        *
   3          *  文件:  MAIN.C                                                               *
   4          *  日期:  2006-8-9                                                             *
   5          *  版本:  1.0                                                                  *
   6          *  作者:  蓝海微芯                                                             *
   7          *  网站: http://www.ljd-2008.com                                              *
   8          ********************************************************************************
   9          *  描述:                                                                       *
  10          *           模拟房间购电,把IC卡内的金额写到24C02中                            *        
  11          *                                                                              *
  12          *                                                                              *
  13          ********************************************************************************
  14          * 【版权】 Copyright(C)微芯科技 http://www.bluemcu.com    All Rights Reserved  *          
  15          * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
  16          *******************************************************************************/
  17          #include  <reg51.h>                         /*=== 头文件包含 ===*/
  18          #include  <absacc.h>
  19          #include  <intrins.h>
  20          #include  <IC_CARD_B.h>
  21          
  22          #define  uchar  unsigned  char
  23          #define  uint   unsigned  int
  24            
  25          uchar pdata hz_ts1[14]="电量不足请购电";
  26          uchar pdata hz_ts2[15]="剩余电量:XXX度";
  27          uchar pdata hz_ts3[28]="购电金额超过卡内余额无法购电";
  28          uchar pdata hz_ts4[8 ]="购电成功";
  29          uchar pdata hz_ts5[13]="购电量:XXXX度";
  30          uchar pdata hz_ts6[15]="卡内余额:XXXX元";
  31          uchar pdata hz_ts7[12]="  插卡有误  ";
  32          uchar pdata hz_ts8[14]="  请重新插卡  ";
  33          uchar pdata hz_ts9[15]="请输入购电金额:";
  34          uchar pdata hz_ts10[23]="输入金额太大 请重新输入";
  35          
  36          uchar count;
  37          bit   flag_count;
  38          uint  K;
  39          uchar i;
  40          uint  N;
  41          uchar k0;
  42          uchar k1;
  43          uchar k2;
  44          uchar n0;
  45          uchar n1;
  46          uchar n2;
  47          uchar EOC;
  48          
  49          uchar read_num[2];  
  50          uchar RST_CODE[4]={0xA2,0x13,0x10,0x91};
  51          /********************************************************************
  52          函 数 名:delay_1s()
  53          功    能:延时1s
  54          说    明:
  55          调    用:
C51 COMPILER V7.08   MAIN_B                                                                09/27/2006 09:14:00 PAGE 2   

  56          入口参数:
  57          出口参数:
  58          ***********************************************************************/
  59          void delay_1s(void)
  60          {
  61   1        uint p;
  62   1        uint r;
  63   1      
  64   1        for(r=0;r<100;r++)
  65   1        for(p=0;p<1500;p++);
  66   1      }
  67          /********************************************************************
  68          函 数 名:buy_power()
  69          功    能:购买电量调用子程序模块
  70          说    明:
  71          调    用:
  72          入口参数:
  73          出口参数:
  74          ***********************************************************************/
  75          void buy_power(void)
  76          {
  77   1        EOC=rdsm_ec();                     /*读错误计数器*/
  78   1        EOC=verifi();                      /*校验密码*/
  79   1        EOC=rdsm_ec();
  80   1        ICDATA[0]=N;
  81   1        wrmm();                            /*把余额写入到IC卡*/
  82   1        read_num[0]=K+M;                          
  83   1        write_iic_data(read_num,0,1);      /*把剩余电量写入到24C02中*/
  84   1        initial_GLCD();
  85   1        command_GLCD(0x80);
  86   1        for(i=0;i<8;i++)
  87   1        {
  88   2          write_GLCD(hz_ts4[i]);           /*显示购电成功*/
  89   2        }
  90   1        delay_1s();
  91   1        delay_1s();
  92   1        initial_GLCD();
  93   1        command_GLCD(0x80);
  94   1        for(i=0;i<7;i++)
  95   1        {
  96   2          write_GLCD(hz_ts5[i]);           /*显示购电量*/
  97   2        }
  98   1        m1=M/100;
  99   1        m2=M%100/10;
 100   1        m3=M%100%10;
 101   1        M=0;
 102   1        write_GLCD(ds_num[m1]);
 103   1        write_GLCD(ds_num[m2]);
 104   1        write_GLCD(ds_num[m3]);
 105   1        write_GLCD(hz_ts5[11]);
 106   1        write_GLCD(hz_ts5[12]);
 107   1        delay_1s();
 108   1        delay_1s();
 109   1        initial_GLCD();
 110   1        command_GLCD(0x80);
 111   1        for(i=0;i<9;i++)
 112   1        {
 113   2          write_GLCD(hz_ts6[i]);          /*显示卡内余额*/
 114   2        }
 115   1        n0=N/100;
 116   1        n1=N%100/10;
 117   1        n2=N%100%10;
C51 COMPILER V7.08   MAIN_B                                                                09/27/2006 09:14:00 PAGE 3   

 118   1        write_GLCD(ds_num[n0]);
 119   1        write_GLCD(ds_num[n1]);
 120   1        write_GLCD(ds_num[n2]);
 121   1        write_GLCD(hz_ts6[13]);
 122   1        write_GLCD(hz_ts6[14]);
 123   1      }
 124          /********************************************************************
 125          函 数 名:no_enough()
 126          功    能:提示卡内余额不足
 127          说    明:
 128          调    用:
 129          入口参数:
 130          出口参数:
 131          ***********************************************************************/
 132          void no_enough(void)
 133          {
 134   1        initial_GLCD();
 135   1        command_GLCD(0x80);
 136   1        for(i=0;i<14;i++)
 137   1        {
 138   2          write_GLCD(hz_ts3[i]);       /*提示卡内余额不足*/
 139   2        }
 140   1        command_GLCD(0x90);
 141   1        for(i=14;i<28;i++)
 142   1        {
 143   2          write_GLCD(hz_ts3[i]);
 144   2        }
 145   1      }
 146          /********************************************************************
 147          函 数 名:IC_right()
 148          功    能:判断插卡正确后调用子程序模块
 149          说    明:
 150          调    用:
 151          入口参数:
 152          出口参数:
 153          ***********************************************************************/
 154          void IC_right(void)
 155          {
 156   1        initial_GLCD();
 157   1        command_GLCD(0x80);
 158   1        for(i=0;i<15;i++)
 159   1        {
 160   2          write_GLCD(hz_ts9[i]);           /*提示输入购电金额*/
 161   2        }
 162   1        command_GLCD(0x90);
 163   1        while(flag_enter==0);              /*等待确认按键按下*/
 164   1        input_money();                     /*获取由键盘输入的购电金额*/
 165   1        flag_cnt=0;
 166   1        flag_enter=0;                      /*读主存储区*/
 167   1        N=ICDATA[0];
 168   1        while(M>255)                       /*当购电金额超过255时提示,输入购电金额太大*/
 169   1        {
 170   2          initial_GLCD();
 171   2          command_GLCD(0x80);
 172   2          for(i=0;i<13;i++)
 173   2          {
 174   3            write_GLCD(hz_ts10[i]);
 175   3          }
 176   2          command_GLCD(0x90);
 177   2          for(i=13;i<23;i++)
 178   2          {
 179   3            write_GLCD(hz_ts10[i]);
C51 COMPILER V7.08   MAIN_B                                                                09/27/2006 09:14:00 PAGE 4   

⌨️ 快捷键说明

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