📄 liushui.lst
字号:
C51 COMPILER V8.02 LIUSHUI 12/13/2006 11:23:10 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 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 //采用软件模拟计数脉冲进行计数
18
19 //定时器0定时,中断溢出一次,T1计数器加1。
20
21 //T1计数器计满10次,LED灯右移一位。(流水灯)
22
23 //*****************************************************************
24
25
26 #include < reg51.h >
27 #include <intrins.h>
28
29 #define uchar unsigned char
30 #define uint unsigned int
31
32 sbit T1_pulse=P3^5;
33
34 uchar move;
35
36 /*********************************************************
37
38 主函数
39
40 **********************************************************/
41 void main()
42 {
43 1 P0=0xff; //关所有灯
44 1 P2=0xff;
45 1
46 1 TMOD=0x51; //TIMER0定时,TIMER1计数
47 1 TH0=0x4c;
48 1 TL0=0x00; //50ms定时常数
49 1 TH1=0xff;
50 1 TL1=0xf6;
51 1 EA=1; //开总中断
52 1 ET0=1; //允许定时/计数器0 中断
53 1 ET1=1; //允许定时/计数器1 中断
54 1 TR0=1; //启动定时/计数器0 中断
55 1 TR1=1; //启动定时/计数器1 中断
C51 COMPILER V8.02 LIUSHUI 12/13/2006 11:23:10 PAGE 2
56 1 move=0xfe; //扫描初值
57 1
58 1 while(1);
59 1
60 1 }
61
62 /*********************************************************
63
64 Time0 中断服务函数
65
66 **********************************************************/
67 void Time0(void) interrupt 1 // using 0
68 {
69 1 TR0=0;
70 1 TH0=0x4c; //50ms定时
71 1 TL0=0x00;
72 1 T1_pulse=1;
73 1 _nop_();
74 1 _nop_();
75 1 T1_pulse=0;
76 1 TR0=1;
77 1 }
78
79 /*********************************************************
80
81 Time1 中断服务函数
82
83 *********************************************************/
84 void Time1(void) interrupt 3
85 {
86 1 EA=0;
87 1 TH1=0xff;
88 1 TL1=0xf6;
89 1 P0=move;
90 1 move=(move <<1)|0x01;
91 1 if(move==0xff)
92 1 move=0xfe;
93 1 EA=1;
94 1 }
95
96 //*********************************************************
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 89 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
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 + -