?? 222.lst
字號:
C51 COMPILER V8.08 222 04/18/2008 21:53:47 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE 222
OBJECT MODULE PLACED IN C:\222\222.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\222\222.C DB SB OE
line level source
1 #include<intrins.h>
2 #include<reg51.h>
3 #include<1602.h>
4 unsigned char code xiaoche[] = {"xiaoche"};
5 unsigned char code mm[] = {"mm"};
6 unsigned char code distance[]={"distance"};
7 unsigned char code time[]={"time"};
8 unsigned char zkbz=0 ; /*占空比*/
9 unsigned char zkby=0 ;
10 unsigned char t=0; /* 定時器中斷計數(shù)器 */
11 unsigned int juli=0; /*距離*/
12 unsigned char a=0;
13 unsigned char sl=0; /*時間秒*/
14 unsigned char sh=0; /*時間秒*/
15 unsigned char fl=0; /*時間分*/
16 unsigned char fh=0; /*時間分*/
17 unsigned int dis=0; /*實際距離*/
18 bit flag=0; /*標(biāo)志位*/
19 sbit gm=P2^3; /*光敏*/
20
21 /********************************************************
22 控制口定義
23 *********************************************************/
24 sbit en1 =P1^1; /* L298的Enable A */
25 sbit s1 =P1^0; /* L298的Input 1 */
26 sbit s2 =P1^2; /* L298的Input 2 */
27 sbit en2 =P1^4; /* L298的Enable A */
28 sbit s3 =P1^3; /* L298的Input 1 */
29 sbit s4 =P1^5; /* L298的Input 2 */
30 sbit Guandian0=P2^0;
31 sbit Guandian1=P2^1;
32 sbit Guandian2=P2^2;
33
34
35 /*******************************************************
36 外部中斷 計算路程
37 ********************************************************/
38 void service_int0() interrupt 0
39 {
40 1 EX0=0;
41 1 if(flag==0)juli++;
42 1 else juli--;
43 1 dis=juli*5;
44 1 DispOneChar(9,1,dis/10000);
45 1 DispOneChar(11,1,dis/1000%10);
46 1 DispOneChar(12,1,dis/100%10);
47 1 EX0=1;
48 1 }
49
50 /*************************************************************
51 定時器0服務(wù)程序
52 *************************************************************/
53
54 void timer0() interrupt 1 /* T0中斷服務(wù)程序 */
55 {
C51 COMPILER V8.08 222 04/18/2008 21:53:47 PAGE 2
56 1 if(t<zkbz) en1=1; else en1=0; /* 產(chǎn)生電機1的PWM信號 */
57 1 if(t<zkby) en2=1; else en2=0;/* 產(chǎn)生電機1的PWM信號 */
58 1 t++;
59 1 if(t>=100) t=0; /* 1個PWM信號由100次中斷產(chǎn)生 */
60 1 }
61
62 /*************************************************************
63 定時器1服務(wù)程序
64 *************************************************************/
65 void timer1() interrupt 3
66 {
67 1 unsigned char cnt;
68 1 TH1=(65536-50000)/256;
69 1 TL1=(65536-50000)%256;
70 1 cnt++;
71 1 if(cnt>=20)
72 1 {
73 2 cnt=0;
74 2 ++sl;
75 2 if(sl==10)
76 2 {
77 3 sl=0;
78 3 ++sh;
79 3 if(sh==6)
80 3 {
81 4 sh=0;
82 4 ++fl;
83 4 if(fl==10)
84 4 {
85 5 fl=0;
86 5 ++fh;
87 5 }
88 4 }
89 3 }
90 2 }
91 1 }
92
93 /*************************************************************
94 循跡程序
95 *************************************************************/
96 void xunji(void)
97 {
98 1 switch(a)
99 1 {
100 2 case 0x02:flag=0;s1=0;s2=1;s3=0;s4=1;zkbz=40;zkby=40;break;
101 2 case 0x01:flag=0;s1=0;s2=1;s3=1;s4=0;zkbz=70;zkby=15;break;
102 2 case 0x04:flag=0;s1=1;s2=0;s3=0;s4=1;zkbz=15;zkby=70;break;
103 2 case 0x03:flag=0;s1=0;s2=1;s3=0;s4=1;zkbz=65;zkby=15;break;
104 2 case 0x06:flag=0;s1=0;s2=1;s3=0;s4=1;zkbz=15;zkby=75;break;
105 2 case 0x00:flag=1;s1=1;s2=0;s3=1;s4=0;zkbz=30;zkby=30;break;
106 2 default:break;
107 2 }
108 1 Delay5Ms();
109 1 }
110
111
112 /**************************************************************
113 內(nèi)部資源初始化
114 *******************************************************************/
115 void Init(void)
116 {
117 1 TMOD=0x12; /* 設(shè)定T0的工作模式為2,設(shè)定T0的工作模式為1 */
C51 COMPILER V8.08 222 04/18/2008 21:53:47 PAGE 3
118 1 TH0=0xB6; /* 裝入定時器的初值 */
119 1 TL0=0xB6;
120 1 TH1=(65536-50000)/256;
121 1 TL1=(65536-50000)%256;
122 1 IT0=1;
123 1 IP=0x03;
124 1 EA=1; /* 開總中斷 */
125 1 ET0=1; /* 定時器0允許中斷 */
126 1 ET1=1; /* 定時器1允許中斷 */
127 1 TR1=1; /* 啟動定時器1 */
128 1 TR0=1; /* 啟動定時器0 */
129 1 EX0=1; /*開中斷0*/
130 1 }
131
132
133 void main(void)
134 {
135 1 Init(); /*系統(tǒng)初始化*/
136 1 LcdReset(); /*液晶初始化*/
137 1 DisplayListChar(0,0,"time",4) ;
138 1 DispOneChar(7,0,':');
139 1 DisplayListChar(0,1,"distance",8) ;
140 1 DispOneChar(10,1,':');
141 1
142 1 zkbz=40;
143 1 zkby=40;
144 1 s1=0;s2=1;s3=0;s4=1;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -