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

📄 main.lst

📁 这个文档程序主要应用了单片机的串行通讯部分
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /********************************工程文件说明*******************************/
   2          /*FileName:main.c                                                                                                                 */
   3          /*Author:烛光                                                                                                                     */
   4          /*Version:v1.0                                                                                                                    */
   5          /*Data:2008年07月11日                                                                                                     */
   6          /*Description:工程主程序文件,包含状态机制和时间机制两条主线。                    */
   7          /*Function List:                                                                                                                  */
   8          /*    1.main  主程序,状态机制                                                                                     */
   9          /*        2.scrfresh  状态辅助程序,刷新屏幕                                                               */
  10          /*        3.time_manager  时间控制程序,时间机制                                                           */
  11          /*        4.……                                                                                                                           */
  12          /*History:                                                                                                                                */
  13          /*        3.烛光  2008.09.13  v1.0  初步完成设计                                                           */
  14          /*        2.烛光  2008.09.13  v1.0  初步完成设计                                                           */
  15          /*        1.烛光  2008.07.11  v0.0  开始设计                                                               */
  16          /*Copyright (c) 2008 烛光 All Rights Reserved                                                      */
  17          /***************************************************************************/
  18          
  19          /***********************************硬件接口说明****************************/
  20          /*MCU
  21          1、STC89C58RD+
  22          /*LM19264A接口说明
  23          1、DB7--P0^7   5、DB3--P0^3   9、 EN--P2^5   13、VDD--VDD    17、VOUT--RP3 
  24          2、DB6--P0^6   6、DB2--P0^2   10、RW--P2^4   14、VSS--GND    18、RSTB--P2^0  
  25          3、DB5--P0^5   7、DB1--P0^1   11、RS--P2^3   15、CSA--P2^2   19、BLA--VDD  
  26          4、DB4--P0^4   8、DB0--P0^0   12、VO--RP2    16、CSB--P2^1   20、BLK--GND
  27          /*键盘接口说明
  28          1、JP6.1--P2.6  2、JP6.2--P.7   JP2.3--GND
  29          
  30          /***********************************头文件包含******************************/
  31          #include <intrins.h>
  32          
  33          #include "hardware.h"
  34          #include "software.h"
  35          #include "keyboard.h"
  36          #include "lm19264.h"
  37          #include "serial.h"
  38          #include "eeprom.h"
  39          
  40          /************************************符号定义*******************************/
  41          //使用接口定义
  42          //见其他各头文件
  43          
  44          //使用寄存器定义
  45          #define startclk TR0
  46          
  47          /************************************变量定义*******************************/
  48          
  49          bit scrfreshf=1;//刷新屏幕标志
  50          bit mlimitf=0;//分限制标志
  51          bit slimitf=0;//秒限制标志
  52          bit newnewsf=0;//收到新消息
  53          bit newnewsf0=0;//新消息0
  54          bit newnewsf1=0;//新消息1
  55          bit newnewsf2=0;//新消息2 
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 2   

  56          bit oldnewsf=0;//旧消息标志
  57          bit oldnewsf0=0;//旧消息0
  58          bit oldnewsf1=0;//旧消息1
  59          bit oldnewsf2=0;//旧消息2
  60          bit newsoverf=0;//显示消息结束标志
  61          bit statefinish=0;//状态任务完成标志
  62          bit gprscarryf=0;//gprs传送位
  63          bit gprsresf=0;//gprs回复标志位
  64          bit gprslostf=0;//gprs回复丢失标志位
  65          bit contraf=0;
  66          bit tiaoshi=0;//调试程序标志
  67          
  68          uchar timer=0;
  69          uchar second=0;
  70          uchar minute=0;
  71          uchar hour=0;
  72          uchar state=0;
  73          uchar minutecopy=0;
  74          uchar secondcopy=0;
  75          uchar storeturn=0;//eep消息存储顺序
  76          uchar gprssendtime=0;
  77          uchar gprscode=0;
  78          uchar gprsturner=0;
  79          uchar gprsharth=0;
  80          uchar ti=0;//测试计数标志
  81          
  82          /************************************函数声明*******************************/
  83          void scrfresh(void);
  84          void time_manager(void);
  85          void getdata(void);
  86          void displaynews(uchar startstr);
  87          void storenews(void);
  88          void loadnews(uchar m);
  89          void showoldnews(void);
  90          void rectify(void);
  91          void device_init(void);
  92          void displaygprs(void);
  93          void displaycdma(void);
  94                                                     
  95          /***************************************************************************/
  96          ////////////////////////////////////主程序///////////////////////////////////
  97          /***************************************************************************/
  98          /**********************************状态机制*********************************/
  99          void main(void)
 100          {       
 101   1      
 102   1              device_init();
 103   1      
 104   1              while(1)
 105   1              {               
 106   2                      //第一喂狗
 107   2                      WDT_CONTR=0x3f;
 108   2                      //第二优先处理
 109   2                      if(TF0)time_manager();          
 110   2                      //第三状态处理
 111   2      /*0000000000000000000000000000000000000000000000000000000000000000000000000*/
 112   2                      if(state<0x10)//〇.总界面
 113   2                      { 
 114   3                              switch(state)
 115   3                              {
 116   4                                      case 0x00:if(scrfreshf){scrfreshf=0;scrfresh();break;}break;
 117   4                                      case 0x01:break;
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 3   

 118   4                                      case 0x02:break;
 119   4                                      case 0x03:break;
 120   4                                      default:break;
 121   4      
 122   4                              }
 123   3                      }
 124   2      /*1111111111111111111111111111111111111111111111111111111111111111111111111*/
 125   2                      if(state>=0x10&&state<0x20)//I.旧消息
 126   2                      {
 127   3                              switch(state)
 128   3                              {
 129   4                                      case 0x10:if(statefinish==0){statefinish=1;mlimitf=1;showoldnews();break;}break;
 130   4                                      case 0x11:if(statefinish==0){statefinish=1;;break;}break;
 131   4                                      case 0x12:if(statefinish==0){statefinish=1;;break;}break;
 132   4                                      case 0x13:if(statefinish==0){statefinish=1;;break;}break;
 133   4                                      case 0x14:if(statefinish==0){statefinish=1;;break;}break;
 134   4                                      case 0x15:if(statefinish==0){statefinish=1;;break;}break;
 135   4                                      default:break;
 136   4                              }
 137   3                      }
 138   2      /*2222222222222222222222222222222222222222222222222222222222222222222222222*/
 139   2                      if(state>=0x20&&state<0x30)//II.显示消息
 140   2                      {
 141   3                              switch(state)
 142   3                              {
 143   4                                      case 0x20:
 144   4                                              if(statefinish==0)
 145   4                                              {
 146   5                                                      mlimitf=1;//一分钟倒计时开始
 147   5                                                      statefinish=1;//任务完成
 148   5                                                      displaynews(0);                                         
 149   5                                                      break;
 150   5                                              }
 151   4                                              else break;
 152   4                                      case 0x21:
 153   4                                              if(statefinish==0)
 154   4                                              {
 155   5                                                      statefinish=1;mlimitf=1;
 156   5                                                      displaynews(32);lcd_prt_letter(23,0x2c,0);
 157   5                                                      break;
 158   5                                              }break;
 159   4                                      case 0x22:
 160   4                                              if(statefinish==0)
 161   4                                              {
 162   5                                                      statefinish=1;mlimitf=1;
 163   5                                                      displaynews(64);lcd_prt_letter(23,0x2c,0);
 164   5                                                      break;
 165   5                                              }break;
 166   4                                      case 0x23:
 167   4                                              if(statefinish==0)
 168   4                                              {
 169   5                                                      statefinish=1;mlimitf=1;
 170   5                                                      displaynews(96);lcd_prt_letter(23,0x2c,0);
 171   5                                                      break;
 172   5                                              }break;
 173   4                                      case 0x24:
 174   4                                              if(statefinish==0)
 175   4                                              {
 176   5                                                      statefinish=1;mlimitf=1;
 177   5                                                      displaynews(128);lcd_prt_letter(23,0x2c,0);
 178   5                                                      break;
 179   5                                              }break;
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 4   

 180   4                                      case 0x25:
 181   4                                              if(statefinish==0)
 182   4                                              {
 183   5                                                      statefinish=1;mlimitf=1;
 184   5                                                      displaynews(160);lcd_prt_letter(23,0x2c,0);
 185   5                                                      break;
 186   5                                              }break;
 187   4                                      case 0x26:
 188   4                                              if(statefinish==0)
 189   4                                              {
 190   5                                                      statefinish=1;mlimitf=1;
 191   5                                                      displaynews(192);lcd_prt_letter(23,0x2c,0);
 192   5                                                      break;
 193   5                                              }break;
 194   4                                      case 0x27:
 195   4                                              if(statefinish==0)
 196   4                                              {
 197   5                                                      statefinish=1;mlimitf=1;
 198   5                                                      displaynews(224);lcd_prt_letter(23,0x2c,0);
 199   5                                                      break;
 200   5                                              }break;
 201   4                                      case 0x28:
 202   4                                              if(statefinish==0)
 203   4                                              {
 204   5                                                      statefinish=1;//状态收到
 205   5                                                      mlimitf=1;//一分钟倒计时开始                                                                                            

⌨️ 快捷键说明

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