📄 ex5-5.lst
字号:
C51 COMPILER V8.02 EX5_5 04/30/2008 20:13:16 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE EX5_5
OBJECT MODULE PLACED IN ex5-5.OBJ
COMPILER INVOKED BY: D:\Keil破解版\C51\BIN\C51.EXE ex5-5.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REGX51.H>
2 #define TIMER0_COUNT 0xEE11/*10000h-((12,000,000/(12*FREQ))*/
3 #define STOP 0
4 #define FORWARD 1
5 #define BACKWARD 2
6
7 char gotkey(); //声明函数
8
9 code forward[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6};//{0XFE,0XFD,0XFB,0X07};
10 //提高转速旋转度
11
12 unsigned char timer0_tick=0,i=0,times=40,status=1;
13
14 static void timer0_isr(void) interrupt TF0_VECTOR using 1
15 {
16 1 TR0=0;
17 1 TL0=(TIMER0_COUNT & 0x00FF);
18 1 TH0=(TIMER0_COUNT >> 8);
19 1 TR0=1;
20 1 timer0_tick++;
21 1 if (timer0_tick==times)
22 1 {
23 2 timer0_tick=0;
24 2 i++;
25 2 if(i==8) i=0;
26 2 if (status==FORWARD)
27 2 P2=forward[i];
28 2 if (status==BACKWARD)
29 2 {
30 3 P2=forward[7-i];//反转时逆向取数。
31 3
32 3 }
33 2 }
34 1 }
35 static void timer0_initialize(void)
36 {
37 1 EA=0;
38 1 timer0_tick=0;
39 1 TR0=0;
40 1 TMOD=0x01;
41 1 TL0=(TIMER0_COUNT & 0x00FF);
42 1 TH0=(TIMER0_COUNT >> 8);
43 1 PT0=1;
44 1 ET0=1;
45 1 TR0=1;
46 1 EA=1;
47 1 }
48 void main (void)
49 {
50 1 unsigned char command;
51 1 timer0_initialize();
52 1 do
53 1 {
54 2 command=gotkey();
55 2 if(command==15) status=FORWARD; //按下F键
C51 COMPILER V8.02 EX5_5 04/30/2008 20:13:16 PAGE 2
56 2 if(command==11) status=BACKWARD; //按下B键
57 2 if(command==12) status=STOP; //按下C键
58 2 if((command==10) && (times>0))
59 2 times/=2;
60 2 //按下A键
61 2 if(command==13)
62 2 times*=2; //按下D键
63 2 } while (1); //无穷循环
64 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 171 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -