?? main.lst
字號:
C51 COMPILER V7.00 MAIN 06/09/2006 21:08:03 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 # include <reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 void keyscan(void);
5 uint a,b,c,d;
6 /*a為舵機1的脈沖寬度,b為舵機2的脈沖寬度,單位1/1000 ms */
7 /*c、d為中間變量*/
8 /*以下定義輸出管腳*/
9 sbit p12=P1^2;
10 sbit P13=P1^3;
11 sbit p16=P1^6;
12 sbit p15=P1^5;
13 sbit p17=P1^7;
14 void delay(void);
15 /*以下兩個函數為定時器中斷函數*/
16 /*定時器1,控制舵機1,輸出引腳為P12,可自定義*/
17 void timer0(void) interrupt 1 using 1
18 {p12=!p12; /*輸出取反*/
19 1 c=18432-c; /*20000代表20 ms,為一個周期的時間*/
20 1 TH0=-(c/256); TL0=-(c%256); /*重新定義計數初值*/
21 1 if(c>=470&&c<=2300)c=a;
22 1 else c=18432-a; /*判斷脈寬是否在正常范圍之內*/
23 1 }
24 /*定時器2,控制舵機2,輸出引腳為P13,可自定義*/
25 void timer1(void) interrupt 3 using 1
26 {P13=!P13;
27 1 d=18432-d;
28 1 TH1=-(d/256); TL1=-(d%256);
29 1 if(d>=470&&d<=2304)d=b;
30 1 else d=18432-b;
31 1 }
32 /*主程序*/
33 void main(void)
34 {TMOD=0x11; /*設初值*/
35 1 p12=1;
36 1 P13=1;p17=1;
37 1 a=2000;
38 1 b=566; /*數值1500即對應1.5ms,為舵機的中間90度的位置*/
39 1 c=a;d=b;
40 1 TH0=-(a/256); TL0=-(a%256);
41 1 TH1=-(b/256); TL1=-(b%256); /*設定定時器初始計數值*/
42 1 EA=1;
43 1 ET0=1; TR0=1;EX0=1;EX1=1;
44 1 ET1=1; TR1=1;
45 1 PX0=0;PX1=0;PT1=1;PT0=1;/*設定中斷優先級*/
46 1 for(;;)
47 1 {
48 2 keyscan();
49 2
50 2 }
51 1 }
52 /*在這個for循環中,可以根據程序需要
53 在任何時間改變a、b值來改變脈寬的輸
54 出時間,從而控制舵機*/
55 void keyscan(void)
C51 COMPILER V7.00 MAIN 06/09/2006 21:08:03 PAGE 2
56 {
57 1 if(p16==0)
58 1 {
59 2 delay();
60 2 if(p16==0)
61 2 {
62 3 if(500<=a&&a<=2100)a+=50;
63 3 p17=!p17;
64 3 while(p16==0);
65 3 }
66 2 }
67 1 if(p15==0)
68 1 {
69 2 delay();
70 2 if(p15==0)
71 2 {
72 3 if(550<=a&&a<=2150)a-=30;
73 3 p17=!p17;
74 3 while(p15==0);
75 3 }
76 2 }
77 1 }
78 void delay (void)
79 {
80 1 uint uidata;
81 1 for(uidata=1;uidata<=500;uidata++);
82 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 344 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -