📄 zls_0001.lst
字号:
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 + -