📄 liushui.lst
字号:
C51 COMPILER V8.02 LIUSHUI 12/13/2006 16:01:51 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LIUSHUI
OBJECT MODULE PLACED IN liushui.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE liushui.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************/
2 /* */
3 /* ME500单片机开发系统演示程序 - 流水灯 (双定时中断) */
4 /* */
5 /* P0、P2 LED显示 */
6 /* */
7 /* 版本: V1.0 (2006/11/20) */
8 /* 作者: gguoqing (Email: gguoqing@willar.com) */
9 /* 网站: www.willar.com(伟纳电子) www.mcusj.com(伟纳单片机世界) */
10 /* 时间: 2006/12/13 */
11 /* */
12 /*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved */
13 /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */
14 /* */
15 /*******************************************************************/
16
17 #include < reg51.h >
18 #include <intrins.h>
19
20 #define uchar unsigned char
21 #define uint unsigned int
22 uchar time0count,time1count,move1,move2;
23
24 /*********************************************************
25
26 主函数
27
28 **********************************************************/
29 void main()
30 {
31 1 P0=0xff; //关所有灯
32 1 P2=0xff;
33 1
34 1 TMOD=0x11; //定时/计数器1工作于方式1
35 1 TH0=0xa6;
36 1 TL0=0x00; //25ms定时常数
37 1 TH1=0x4c;
38 1 TL1=0x00; //50ms定时常数
39 1 PT0=1; //定义TIMER0优先
40 1 EA=1; //开总中断
41 1 ET0=1; //允许定时/计数器0 中断
42 1 ET1=1; //允许定时/计数器1 中断
43 1 TR0=1; //启动定时/计数器0 中断
44 1 TR1=1; //启动定时/计数器1 中断
45 1 move1=0xfe;
46 1 move2=0xfe;
47 1 while(1);
48 1
49 1 }
50
51 /*********************************************************
52
53 TIMER0中断服务函数
54
55 **********************************************************/
C51 COMPILER V8.02 LIUSHUI 12/13/2006 16:01:51 PAGE 2
56 void Time0(void) interrupt 1
57 {
58 1 TH0=0xa6; //25ms定时
59 1 TL0=0x00;
60 1 time0count++;
61 1 if(time0count==10)
62 1 {
63 2 time0count=0;
64 2 P0=move1;
65 2 move1=(move1 <<1)|0x01;
66 2 if(move1==0xff)
67 2 move1=0xfe;
68 2 }
69 1 }
70
71 /*********************************************************
72
73 TIMER1中断服务函数
74
75 **********************************************************/
76 void Time1(void) interrupt 3
77 {
78 1 TH1=0x4c; //50ms定时
79 1 TL1=0x00;
80 1 time1count++;
81 1 if(time1count==10)
82 1 {
83 2 time1count=0;
84 2 P2=move2;
85 2 move2=(move2 <<1)|0x01;
86 2 if(move2==0xff)
87 2 move2=0xfe;
88 2 }
89 1 }
90
91 /*********************************************************/
92
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 124 ----
CONSTANT SIZE = ---- ----
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 + -