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

📄 mcu51_set.lst

📁 通过89s51实现的模拟键盘代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MCU51_SET                                                             11/03/2008 11:24:33 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MCU51_SET
OBJECT MODULE PLACED IN mcu51_set.OBJ
COMPILER INVOKED BY: D:\Program Files\uv2\C51\BIN\C51.EXE mcu51_set.c OPTIMIZE(0,SPEED) DEBUG OBJECTEXTEND CODE SYMBOLS

line level    source

   1          /*----------------------------------------------------------
   2          系统时钟取11.059M
   3          串口初始时取9600
   4          键盘按四种波特分别发修改波特的命令,总有一个是相符合的波特,
   5          键盘的波特可以用软件来实现也可由硬件来实现波特预置
   6          球机开机时访问内部的IIC存储器取波特数,本程序现在还未编IIC部分
   7          利用上电机的RAM为零可以来启动电机的转动方向,看门狗复位时各变量保持
   8          不变因些作记忆功能
   9          各口作初始设置要考虑能耗和外部的输出是否有影响
  10          ----------------------------------------------------------*/
  11          
  12          
  13          #include <general.h>
  14          void GlobalSet()
  15          {
  16   1       AUXR   = 1;
  17   1      }
  18           void WDT_cls(void)
  19          {
  20   1              WDT_CONTR=0xff;   //0xff;               启动看门狗看门狗清零
  21   1      }
  22          void INT_set(void)
  23          {
  24   1              EX0=1,EX1=1,EX2=1,EX3=1;    //中断四个外部
  25   1              IT0=1,IT1=1,IT2=1,IT3=1;
  26   1                      //脉冲方式下降触发
  27   1              ET0=1,ET1=1;ES=1;                               //两个定时器开串口开,全局后开
  28   1              IPH=0xc0;
  29   1              PX3=1,PX2=0,PX1=1;          //中断优先按外部3210顺序3最先
  30   1      }
  31          void  INT_enable(void)
  32          {
  33   1              EA=1;                                           //全局开
  34   1      }
  35          void INT_disable(void)
  36          {
  37   1              EA=0;                                           //全局关
  38   1      }
  39          void timer_set(void)
  40          {
  41   1              TMOD=0x11;                                      //定时器01工作于方式1也就是16位方式       要在中断程序中重装
  42   1              T2CON=0x30;                                     //定时器于波特率方式TCLK,RCLK=1
  43   1              //全都工作于内部计数C/T_=0
  44   1      }
  45          void SCI_set(void)
  46          {
  47   1              SCON=0x50;                                      //8位数据位的T2定时器16位重装方式
  48   1      }
  49          void baud_9600(void)
  50          {
  51   1              int x;
  52   1              TR2=0;
  53   1                                                              //为默认的最初方式,baudrate=f/32/T2溢出率
  54   1              x=-36;                                          //晶振取11.059M
  55   1              RCAP2L=(unsigned char)x;
C51 COMPILER V7.50   MCU51_SET                                                             11/03/2008 11:24:33 PAGE 2   

  56   1              RCAP2H=(unsigned char)(x>>8);
  57   1              TR2=1;
  58   1      }
  59          
  60          void baud_19200(void)
  61          {
  62   1              int x;
  63   1              TR2=0;
  64   1              x=-18;
  65   1              RCAP2L=(unsigned char)x;
  66   1              RCAP2H=(unsigned char)(x>>8);
  67   1              TR2=1;
  68   1      }
  69          void baud_4800(void)
  70          {
  71   1              int x;
  72   1              TR2=0;
  73   1              x=-72;
  74   1              RCAP2L=(unsigned char)x;
  75   1              RCAP2H=(unsigned char)(x>>8);
  76   1              TR2=1;
  77   1      }
  78          void baud_2400(void)
  79          {
  80   1              int x;
  81   1              TR2=0;
  82   1              x=-144;
  83   1              RCAP2L=(unsigned char)x;
  84   1              RCAP2H=(unsigned char)(x>>8);
  85   1              TR2=1;
  86   1      }
  87          
  88          void T0_start(void)
  89          {
  90   1              TR0=1;                                  //计数开
  91   1      }
  92          void T0_stop(void)
  93          {
  94   1              TR0=0;
  95   1              P2=0;                                   //计数关   关闭电机输出
  96   1      }
  97          void T1_start(void)
  98          {
  99   1              TR1=1;                                  
 100   1              
 101   1      }
 102          void T1_stop(void)
 103          {
 104   1              TR1=0;
 105   1              P2=0;                            //计数关   关闭电机输出
 106   1      }
 107          void T2_start(void)
 108          {
 109   1              TR2=1;
 110   1      }
 111          void T2_stop(void)
 112          {
 113   1              TR2=0;
 114   1      }
 115          /*
 116          void AutoTest(void)
 117          {
C51 COMPILER V7.50   MCU51_SET                                                             11/03/2008 11:24:33 PAGE 3   

 118           if(P1_0)
 119             {
 120                   WDT_CONTR=0xff;   //0xff;              启动看门狗看门狗清零
 121                   if(!cDirectHorizon)
 122                   cDirectHorizon=1;
 123               cAutoScan=1;    
 124                  T0_start();
 125                  if(!cDirectVertical)
 126                  cDirectVertical=1
 127                   cAutoTestVertical=1
 128                   T1_start();
 129                  }
 130                  else
 131                  {
 132                   cAutoScan=0; 
 133                   cAutoTestVertical=0;
 134                   T1_stop();
 135                   T0_stop();
 136                   CameraStop();
 137                  }
 138          }
 139          */
C51 COMPILER V7.50   MCU51_SET                                                             11/03/2008 11:24:33 PAGE 4   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION GlobalSet (BEGIN)
                                           ; SOURCE LINE # 14
                                           ; SOURCE LINE # 15
                                           ; SOURCE LINE # 16
0000 758E01            MOV     AUXR,#01H
                                           ; SOURCE LINE # 17
0003         ?C0001:
0003 22                RET     
             ; FUNCTION GlobalSet (END)

             ; FUNCTION WDT_cls (BEGIN)
                                           ; SOURCE LINE # 18
                                           ; SOURCE LINE # 19
                                           ; SOURCE LINE # 20
0000 75E1FF            MOV     WDT_CONTR,#0FFH
                                           ; SOURCE LINE # 21
0003         ?C0002:
0003 22                RET     
             ; FUNCTION WDT_cls (END)

             ; FUNCTION INT_set (BEGIN)
                                           ; SOURCE LINE # 22
                                           ; SOURCE LINE # 23
                                           ; SOURCE LINE # 24
0000 D2A8              SETB    EX0
0002 D2AA              SETB    EX1
0004 D2C2              SETB    EX2
0006 D2C6              SETB    EX3
                                           ; SOURCE LINE # 25
0008 D288              SETB    IT0
000A D28A              SETB    IT1
000C D2C0              SETB    IT2
000E D2C4              SETB    IT3
                                           ; SOURCE LINE # 27
0010 D2A9              SETB    ET0
0012 D2AB              SETB    ET1
0014 D2AC              SETB    ES
                                           ; SOURCE LINE # 28
0016 75B7C0            MOV     IPH,#0C0H
                                           ; SOURCE LINE # 29
0019 D2C7              SETB    PX3
001B C2C3              CLR     PX2
001D D2BA              SETB    PX1
                                           ; SOURCE LINE # 30
001F         ?C0003:
001F 22                RET     
             ; FUNCTION INT_set (END)

             ; FUNCTION INT_enable (BEGIN)
                                           ; SOURCE LINE # 31
                                           ; SOURCE LINE # 32
                                           ; SOURCE LINE # 33
0000 D2AF              SETB    EA
                                           ; SOURCE LINE # 34
0002         ?C0004:
0002 22                RET     
             ; FUNCTION INT_enable (END)

             ; FUNCTION INT_disable (BEGIN)
C51 COMPILER V7.50   MCU51_SET                                                             11/03/2008 11:24:33 PAGE 5   

                                           ; SOURCE LINE # 35
                                           ; SOURCE LINE # 36
                                           ; SOURCE LINE # 37
0000 C2AF              CLR     EA
                                           ; SOURCE LINE # 38
0002         ?C0005:
0002 22                RET     
             ; FUNCTION INT_disable (END)

             ; FUNCTION timer_set (BEGIN)
                                           ; SOURCE LINE # 39
                                           ; SOURCE LINE # 40
                                           ; SOURCE LINE # 41
0000 758911            MOV     TMOD,#011H
                                           ; SOURCE LINE # 42
0003 75C830            MOV     T2CON,#030H
                                           ; SOURCE LINE # 44
0006         ?C0006:
0006 22                RET     
             ; FUNCTION timer_set (END)

             ; FUNCTION SCI_set (BEGIN)
                                           ; SOURCE LINE # 45
                                           ; SOURCE LINE # 46
                                           ; SOURCE LINE # 47
0000 759850            MOV     SCON,#050H
                                           ; SOURCE LINE # 48

⌨️ 快捷键说明

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