📄 ding.lst
字号:
C51 COMPILER V8.02 DING 04/16/2008 13:31:13 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DING
OBJECT MODULE PLACED IN ding.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ding.c BROWSE INCDIR(C:\Documents and Settings\Han Yong\桌面\定时器) DEBUG
-OBJECTEXTEND
line level source
1 #include"reg51.h"
2 #include"intrins.h"
3 #include"lcd.h"
4
5 #define uchar unsigned char
6 #define uint unsigned int
7
8 sbit P20=P2^0;
9 sbit P21=P2^1;
10
11 uchar flag=0;/***高低电平标志***/
12 bit direction=0;/***方向标志***/
13 static uchar constant=5;//可以改变占空比
14
15 /****函数声明****/
16 void delay(uchar i);
17 void reverse(void);
18
19
20 /***定时器t0***/
21 void time0(void) interrupt 1 using 1
22 {
23 1 static uchar i;
24 1 i++;
25 1 /**频率为固定的1kHZ左右,只是占空比发生变化**/
26 1 if(i<=constant)
27 1 flag=1;
28 1 if(i<=10&&i>constant)
29 1 flag=2;
30 1 if(i==10)
31 1 i=0;
32 1 TH0=0xff;
33 1 TL0=0xe7;
34 1 }
35
36 /****改变转向标志*****/
37 void int1_srv (void) interrupt 2 using 2
38 {
39 1 if(INT1==0)
40 1 {
41 2 while(!INT1);
42 2 direction=!direction;
43 2 }
44 1 }
45
46 /*******中断,调节占空比********/
47 void change(void) interrupt 0 using 0
48 {
49 1 if(INT0==0)
50 1 {
51 2 while(!INT0);
52 2 constant++;
53 2 /***************************/
54 2 LCD_Write(0,LCD_CLEAR_SCREEN);
C51 COMPILER V8.02 DING 04/16/2008 13:31:13 PAGE 2
55 2 GotoXY(0,0);
56 2 delay(10);
57 2 Print(" Duty cycle ! ");
58 2 GotoXY(5,1);
59 2 delay(10);
60 2 if(constant==10)
61 2 {
62 3 LCD_Write(LCD_DATA,0+'0');
63 3 }
64 2 else
65 2 LCD_Write(LCD_DATA,constant+'0');
66 2
67 2 delay(10);
68 2 Print(":");
69 2 delay(10);
70 2
71 2 if(constant!=10)
72 2 LCD_Write(LCD_DATA,10-constant+'0');
73 2 else
74 2 { LCD_Write(LCD_DATA,1+'0');
75 3 delay(10);
76 3 LCD_Write(LCD_DATA,0+'0');
77 3 }
78 2 /********************************/
79 2 if(constant==10)
80 2 constant=0;
81 2 }
82 1 }
83
84 /****延时****/
85 void delay(uchar i)
86 {
87 1 while(i--)
88 1 _nop_();
89 1 }
90
91 /*************************/
92
93 void main()
94 {
95 1 EA=1;
96 1 TMOD=0x01;
97 1 ET0=1;
98 1 TR0=1;
99 1
100 1 EX0=1;
101 1 IT0=1;
102 1
103 1 EX1=1;
104 1 IT1=1;
105 1
106 1 TH0=0xff;
107 1 TL0=0xe7;
108 1 /************/
109 1 LCD_Initial();
110 1 delay(10);
111 1 GotoXY(0,0);
112 1 delay(10);
113 1 Print(" Duty cycle(5:5)! ");
114 1 GotoXY(0,1);
115 1 delay(10);
116 1 Print(" please press !");
C51 COMPILER V8.02 DING 04/16/2008 13:31:13 PAGE 3
117 1 /*************/
118 1 while(1)
119 1 {
120 2 reverse();
121 2 }
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 452 ----
CONSTANT SIZE = 52 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 1
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 + -