📄 led_loopon.lst
字号:
C51 COMPILER V7.06 LED_LOOPON 11/06/2008 01:10:12 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LED_LOOPON
OBJECT MODULE PLACED IN led_LoopON.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c51\led_LoopON.c INCDIR(.\Target\INC\) DEBUG OBJECTEXTEND PRINT(.\led_LoopO
-N.lst) OBJECT(led_LoopON.obj)
stmt level source
1
2 #include "AT89X52.h"
3 #include "ES51_II.h"
4 #include "ES51_II_LIB.h"
5
6
7
8 unsigned char code LEDTABLE[4][8] = {
9 {0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff}, // 全亮->全灭
10 {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}, // 自右向左
11 {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}, // 自左向右
12 {0xe7,0xdb,0xbd,0x7e,0xbd,0xdb} // 中间散开->向中间靠拢
13 };
14
15 // 流水灯样式选择
16 static unsigned char data LoopLEDType;
17
18 // 流水的灯的间隔时间,50毫秒单位
19 static unsigned char data LoopDelay;
20
21 // 列索引值
22 static unsigned char Index;
23
24 // 用定时器0实现流水灯
25 // delay100ms: 100毫秒单位
26 void LoopLEDON(unsigned char type,unsigned char delay100ms)
27 {
28 1 if( type < 4 ) // 判断是否在合法范围内
29 1 LoopLEDType = type;
30 1 else // 若不在合法范围内跑马灯类型为LEDALLLOOP
31 1 LoopLEDType = LEDALLLOOP;
32 1 LoopDelay = delay100ms*2; //
33 1
34 1 Index = 0; // 执行新的跑马灯,清列索引值,
35 1
36 1 TMOD &= 0xf0; // Timer0 方式1,定时
37 1 TMOD |= 0x01; // 保持T1状态不变
38 1
39 1 TH0 = 0x3c; // 定时初值50ms/12MHZ
40 1 TL0 = 0xb0;
41 1 //EA = 1;
42 1 ET0 = 1; // 允许T0溢出中断
43 1 TR0 = 1; // 启动T0
44 1 }
45
46
47 // T0中断函数
48 // 假设时钟为12MHZ
49 void Timer0LoopLED(void) interrupt 1 using 0
50 {
51 1 static unsigned char count50ms;
52 1
53 1 TH0 = 0x3c; // 重装定时初值
54 1 TL0 = 0xb0;
C51 COMPILER V7.06 LED_LOOPON 11/06/2008 01:10:12 PAGE 2
55 1
56 1 if( count50ms == LoopDelay ) // 延时
57 1 {
58 2 count50ms = 0;
59 2 LEDPORT = LEDTABLE[LoopLEDType][Index];
60 2 Index++;
61 2 if( (LoopLEDType == 3) && (Index > 5) )
62 2 Index = 0;
63 2 else if( Index > 7)
64 2 Index = 0;
65 2 }
66 1 count50ms++; // 定时累加
67 1 }
68
69
70
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = 32 ----
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 + -