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

📄 shumaguan4.lst

📁 串行口的设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V8.02   SHUMAGUAN4                                                            12/01/2006 21:14:03 PAGE 1   


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

line level    source

   1          /**********************************************************************
   2          **文件名:shumaguan4.c                                                                                           **
   3          **功能:实现键盘(或串口输入)、数码管显示,实现计算器功能                        **
   4          **创建人:xingyuegu                                                                                                      **
   5          **创建日期:2006-9-10                                                                                            **
   6          **版本:1.0                                                                                                                      **
   7          **修改日期:2006-10-17                                                                                           **
   8          **版本:2.0                                                                                                                      **
   9          **修改日期:2006-10-20                                                                                           **
  10          **版本:3.0                                                                                                                      **
  11          **修改日期:2006-10-27                                                                                           **
  12          **版本:4.0                                                                                                                      **
  13          **********************************************************************/
  14          
  15          #include <reg51.h>
  16          
  17          #define uchar unsigned char
  18          #define uint  unsigned int
  19          
  20          /**********************************************************************
  21          **                                                              函数申明                                                         **
  22          **********************************************************************/
  23          
  24          void delay(unsigned int);
  25          void display(int );
  26          unsigned char key_scan(void);
  27          unsigned char transition(unsigned char);
  28          void time_set();
  29          void time0_int();
  30          bit isdigit(unsigned char );
  31          unsigned int process(unsigned char );
  32          void init(void);
  33          void Int_UART(void);
  34          
  35          
  36          /**********************************************************************
  37          **                                                              变量定义                                                         **
  38          **********************************************************************/
  39          unsigned int result=0;
  40          unsigned int currentvalue=0,lastvalue;
  41          unsigned char lastop;
  42          volatile bit flag=0; 
  43          unsigned char keyvalue;         
  44          uchar *TX232,*RX232;
  45          int code num_tab1[4]=
  46          {0x88,0x84,0x82,0x81}
  47          ;
  48          int code num_tab2[11]=
  49          {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}
  50          ;
  51          unsigned  char code keypadvalue[][4]={
  52          {'7','8','9','/'},
  53          {'4','5','6','*'},
  54          {'1','2','3','-'},
  55          {'o','0','=','+'}
C51 COMPILER V8.02   SHUMAGUAN4                                                            12/01/2006 21:14:03 PAGE 2   

  56          };
  57          /**********************************************************************
  58          **函数功能:主函数                                                                                                       **
  59          **参数:无                                                                                                                       **
  60          **返回:无                                                                                                                       **
  61          **********************************************************************/
  62          void main()
  63          {
  64   1      
  65   1              uchar *str="Please collect operation mode :1 (pc) ,2 (not for pc)\n";
  66   1              init();
  67   1              Int_UART();
  68   1              TX232=str;
  69   1              SBUF=*TX232;    
  70   1                       while(1)
  71   1                      {
  72   2                              if(keyvalue=='1')
  73   2                              {
  74   3                                      while(1)
  75   3                                      {
  76   4      
  77   4                                              if(flag)
  78   4                                              {
  79   5                                      
  80   5                                                      keyvalue=key_scan();  
  81   5                                                      init(); 
  82   5                                                      flag=0;
  83   5                                                      //if(keyvalue!=0)
  84   5                                                      result=process(keyvalue);
  85   5                                              }
  86   4                                              if(result<=9999)
  87   4                                              {
  88   5                                                      display(result);
  89   5                                              
  90   5                                              }
  91   4                                              else
  92   4                                              {
  93   5                                                      display(0);
  94   5                                      
  95   5                                              }
  96   4                                      }
  97   3                              }
  98   2                              else if(keyvalue=='2')
  99   2                              {       
 100   3                                      keyvalue=0;
 101   3                                      while(1)
 102   3                                      {
 103   4                                              if(flag)
 104   4                                              {                               
 105   5                                                      init(); 
 106   5                                                      flag=0;
 107   5                                                      //if(keyvalue!=0)
 108   5                                                      result=process(keyvalue);
 109   5                                              }
 110   4                                              if(result<=9999)
 111   4                                              {
 112   5                                                      display(result);
 113   5                                              
 114   5                                              }
 115   4                                              else
 116   4                                              {
 117   5                                                      display(0);
C51 COMPILER V8.02   SHUMAGUAN4                                                            12/01/2006 21:14:03 PAGE 3   

 118   5                                      
 119   5                                              }
 120   4                                      }
 121   3                              }                                                               
 122   2                                      
 123   2                              
 124   2                      }
 125   1      
 126   1      }
 127          
 128          /**********************************************************************
 129          **函数功能:初始化函数(包括中断初始化)                                                         **
 130          **参数:无                                                                                                                       **
 131          **返回:无                                                                                                                       **
 132          **********************************************************************/
 133          void init(void)
 134          {
 135   1              EA=1;
 136   1              EX0=1;
 137   1              IT0=1;
 138   1              P1=0xf0;
 139   1      }
 140          /**********************************************************************
 141          **函数功能:初始化串口函数(包括波特率设置)                                             **
 142          **参数:无                                                                                                                       **
 143          **返回:无                                                                                                                       **
 144          **********************************************************************/
 145          void Int_UART(void)
 146          //功能: 串口初始化
 147          {
 148   1              SCON = 0x50 ;   //SCON: serail mode 1, 8-bit UART, enable ucvr  
 149   1              TMOD |= 0x20 ;  //TMOD: timer 1, mode 2, 8-bit reload  
 150   1              PCON |= 0x80 ;  //SMOD=1;  
 151   1              TH1 = 0xFA ;    //Baud:4800 fosc=11.0592MHz  
 152   1              IE |= 0x90 ;    //Enable Serial Interrupt  
 153   1              TR1 = 1 ;               // timer 1 run  
 154   1      }
 155          /**********************************************************************

⌨️ 快捷键说明

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