📄 gbw.lst
字号:
C51 COMPILER V7.50 GBW 03/14/2007 09:41:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE GBW
OBJECT MODULE PLACED IN gbw.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE gbw.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REGX51.H>
2 //#include <AT89X55.H>
3 #include <absacc.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 #define ulong unsigned long
7
8 //for key
9 sbit dio=P1^0;
10 sbit clk=P1^1;
11 sbit cs=P1^2;
12 sbit key=P3^2;
13 bit ctr = 0;
14
15 //for moto
16 sbit direct=P0^5;
17 sbit pulse=P0^4;
18
19 //for light
20 sbit led=P3^5;
21
22 void removedlms(void) //去抖动
23 {
24 1 uchar i;
25 1 for(i=200;i>0;i--)
26 1 {}
27 1 }
28
29 void delay(ulong count) //延时函数
30 {
31 1 for(;count>0;count--)
32 1 {}
33 1 }
34
35 void send(unsigned char send_buf,bit cs_sign) //按位发送数据函数
36 {
37 1 unsigned char i;
38 1 cs=0;
39 1 delay(25);
40 1 for(i=0;i<8;i++,send_buf<<=1)
41 1 {
42 2 dio=(send_buf&0x80)?1:0;
43 2 clk=1;
44 2 delay(5);
45 2 clk=0;
46 2 delay(5);
47 2 }
48 1 delay(10);
49 1 cs=cs_sign;
50 1 delay(25);
51 1 }
52
53 unsigned char receive() //接收键码函数
54 {
55 1 unsigned char rece_buf=0;
C51 COMPILER V7.50 GBW 03/14/2007 09:41:41 PAGE 2
56 1 unsigned char j;
57 1 clk=0;
58 1 dio=1;
59 1 delay(25);
60 1 for(j=0;j<8;j++)
61 1 {
62 2 clk=1;
63 2 delay(5);
64 2 rece_buf=(rece_buf<<1)|dio;
65 2 clk=0;
66 2 delay(5);
67 2 }
68 1 dio=0;
69 1 cs=1;
70 1 delay(25);
71 1 return rece_buf;
72 1 }
73 void zhuan(uchar step)
74 {
75 1 ulong i;
76 1 for(i=0;i<2000;i++)//改变转动的角度
77 1 {
78 2 delay(step);
79 2 pulse=!pulse;
80 2 }
81 1 }
82
83 main() //主函数
84 {
85 1 uchar step;
86 1 uchar reled;
87 1 uchar rekey;
88 1 uchar num = 0,num1 =0,num2=0;
89 1 send(0xA4,1); //ZLG7289复位
90 1 step=4500;
91 1 direct=0;
92 1 pulse=0;
93 1 while(1)
94 1 {
95 2 reled=led;
96 2
97 2 if(reled!=led&&led==0)
98 2 {
99 3 direct=!direct;
100 3 num = num+1;
101 3 zhuan(step);
102 3 delay(50000);//改变数值改变延时时间
103 3 direct=!direct;
104 3 //反转
105 3 zhuan(step);
106 3 num1=num/10;
107 3 num2=num%10;
108 3 send(0x86,0);
109 3 send(num1,1);
110 3 delay(25);
111 3 send(0x87,0);
112 3 send(num2,1);
113 3 delay(25);
114 3
115 3 }
116 2
117 2 if(key==0)
C51 COMPILER V7.50 GBW 03/14/2007 09:41:41 PAGE 3
118 2 {
119 3 removedlms();
120 3 send(0x15,0);
121 3 rekey=receive();
122 3 while(key==0);
123 3 switch(rekey)
124 3 {
125 4
126 4 case 36:
127 4 num = 0;
128 4 send(0x86,0);
129 4 send(0,1);
130 4 delay(25);
131 4 send(0x87,0);
132 4 send(0,1);
133 4 delay(25);
134 4 break;
135 4 default:
136 4 break;
137 4 }
138 3 }
139 2
140 2
141 2 }
142 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 445 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 18
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -