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

📄 zls_0001.lst

📁 我做的按摸椅RS001的键盘部分的C51程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.10   ZLS_0001                                                              07/04/2004 13:24:11 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE ZLS_0001
OBJECT MODULE PLACED IN Zls_0001.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Zls_0001.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include <reg51.h>
   3          #include<intrins.h>
   4          bit  free;
   5          bit  keydown;
   6          sbit MAX =P1^0;
   7          sbit MID =P0^1;
   8          sbit MIN =P0^2;
   9          sbit CS  =P0^3;
  10          sbit CLK =P0^4;
  11          sbit DATA=P0^5;
  12          sbit WARN=P0^6;
  13          sbit ZERO=P0^7;//过零检测脚
  14          /*键盘扫描端口*/
  15          sbit D0 =P3^0;//行扫描线
  16          sbit D1 =P3^1;
  17          sbit D2 =P3^2;
  18          sbit D3 =P3^3;
  19          sbit D4 =P3^4;
  20          sbit CS0=P3^5;//列扫描线
  21          sbit CS1=P3^6;
  22          sbit CS2=P3^7;
  23          /*检测/控制端口*/
  24          sbit REL_UPDW=P2^0;
  25          sbit REL_C   =P2^1;
  26          sbit P_UPDW  =P2^2;
  27          sbit TRI_C   =P2^3;
  28          sbit WDI     =P2^4;
  29          sbit Q_DW    =P2^5;
  30          sbit Q_UP    =P2^6;
  31          sbit T_UPDW  =P2^7;
  32          
  33          sbit  PD     =P0^0;
  34          sbit  PC     =P0^1;
  35          sbit  PB     =P0^2;
  36          sbit  PA     =P0^3;
  37          sbit  XXC    =P0^4;
  38          sbit  SXC    =P0^5;
  39          sbit  TT1    =P0^6;
  40          sbit  TT2    =P0^7;
  41          unsigned char key;
  42          unsigned char keynumber;
  43          unsigned char x,y;
  44          #define NOP()  _nop_()
  45                                                                                                                    
             -                                                                                                                        
             -                                                        
  46           
  47           void process_knock();            //揉压敲击开关
  48           void whith();                            //宽度
  49           void top();                              //靠背起
  50           void vertical_knock();           //捶击
  51           void roll();                             //滚压
  52           void mode();                             //模式
  53           void fixed_position();           //定位
C51 COMPILER V7.10   ZLS_0001                                                              07/04/2004 13:24:11 PAGE 2   

  54           void bottom();                           //靠背落
  55           void strength();                         //强度
  56           void speed();                            //速度
  57           void power();                            //总开关
  58           void timer();                            //定时
  59           void fullautomatic();            //全自动
  60           void rising();                           //小腿起
  61           void descent();                          //小腿落
  62           void(*pfunction)();     //------------函数指针
  63          
  64           void(*code tab[])()={  process_knock, whith, top, vertical_knock, roll,
  65                                  mode, fixed_position,bottom,strength,  speed,
  66                                          power,timer,fullautomatic, rising, descent
  67                                                                                       };//------函数数组
  68          /*----------------------------WATCHDOG---------------------------------------*/
  69          /*              #pragma asm
  70                     CSEG AT 400h
  71                     LJMP main
  72          #pragma endasm
  73          -----------------------------------------------------------------------------*/
  74          void watchdog()
  75          {
  76   1        WDI=0;
  77   1        NOP();NOP();
  78   1        WDI=1;
  79   1        NOP();NOP();
  80   1        WDI=0;
  81   1      }
  82          /*----------------------------delay()----------------------------------------*/
  83          void delay(unsigned char m,unsigned char n)
  84          {
  85   1        unsigned char i,j;
  86   1        watchdog();
  87   1        for(i=0;i<m;i++)
  88   1        { for(j=0;j<n;j++);}
  89   1      }
  90          
  91          /*-------------------------Key Scan  Procedure-------------------------------*/
  92          char scan()
  93          { float o,q;
  94   1        switch(keynumber)
  95   1          {
  96   2                case 0x21 :
  97   2                          return (key=0);      //揉捏/敲打
  98   2                                      break;
  99   2                case 0x22 :
 100   2                          return(key=1);       //宽度调节
 101   2                                      break;
 102   2                case 0x24 :
 103   2                          return(key=2);    //上
 104   2                                      break;
 105   2                case 0x28 :
 106   2                          return(key=3);       //捶击开关
 107   2                                      break;
 108   2                case 0x30 :
 109   2                          return(key=4);       //滚压
 110   2                                      break;
 111   2                case 0x41 :
 112   2                          return(key=5);       //模式
 113   2                                      break;
 114   2                case 0x42 :
 115   2                          return(key=6);    //定位
C51 COMPILER V7.10   ZLS_0001                                                              07/04/2004 13:24:11 PAGE 3   

 116   2                                      break;
 117   2                case 0x44 :
 118   2                          return(key=7);       //下
 119   2                                      break;
 120   2                case 0x48 :
 121   2                              return(key=8);   //强度
 122   2                                      break;
 123   2                case 0x50 :
 124   2                          return(key=9);       //速度
 125   2                                      break;
 126   2                case 0x81 :
 127   2                          return(key=10);      //总开关
 128   2                                      break;
 129   2                case 0x82 :
 130   2                     
 131   2                          return(key=11);      //定时
 132   2                                      break;
 133   2      
 134   2                case 0x84 :
 135   2                          return(key=12);      //全自动
 136   2                                      break;
 137   2                case 0x88 :
 138   2                          return(key=13);      //上升
 139   2                                      break;
 140   2                    
 141   2            case 0x90:
 142   2                          return(key=14);    //下降
 143   2                                      break;
 144   2                default:
 145   2                         return(key=16); 
 146   2                          break;
 147   2               }
 148   1      }
*** WARNING C280 IN LINE 93 OF ZLS_0001.C: 'o': unreferenced local variable
*** WARNING C280 IN LINE 93 OF ZLS_0001.C: 'q': unreferenced local variable
 149          /*----------------------------取函数--------------------------------*/
 150          void takefunc()
 151          {
 152   1        pfunction=tab[key];
 153   1        if(key!=16)
 154   1        (*pfunction)();
 155   1        return;
 156   1      }
 157          
 158          
 159          
 160          /*----------------------------串口中断接收初始化-------------------------------------*/
 161          
 162          #define uchar unsigned char
 163          #define SLAVE 0x00
 164          #define BN 16
 165          
 166          uchar idata tdata[16];
 167          uchar idata rdata[16];
 168          bit trdy;
 169          bit rrdy;
 170          void serial_init(void)
 171          {
 172   1        TMOD=0x20;                                            //定时器T1为模式2
 173   1        TL1=0xfd;                                             //定时器初值
 174   1        TH1=0xfd;
 175   1        PCON=0x00;
C51 COMPILER V7.10   ZLS_0001                                                              07/04/2004 13:24:11 PAGE 4   

 176   1        TR1=1;
 177   1        SCON=0xf0;                                            //串行口方式3
 178   1        ES=1;EA=1;                                            //开串行口中断
 179   1        trdy=1;rrdy=1;                                //准备好发送和接收
 180   1      }
 181          
 182          
 183          
 184          
 185          
 186          /*-----------------------------main---------------------------------*/                    
 187          

⌨️ 快捷键说明

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