📄 yao.lst
字号:
C51 COMPILER V6.02 YAO 11/07/2005 16:30:45 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE YAO
OBJECT MODULE PLACED IN G:\MAJOR\DESIGN\摇棒\YAO.OBJ
COMPILER INVOKED BY: C:\comp51v6\C51.EXE G:\MAJOR\DESIGN\摇棒\YAO.C DB SB OE
stmt level source
1
2 /******************************/
3 // ---------------
4 // LED显示摇棒
5 // ---------------
6 /******************************/
7 #include <reg51.h>
8 #define SEG 17 //每幅图片分成17列来显示
9 #define INTERVAL 20 //每幅图片在左右摇摆20
10 //次后换下一幅
11
12 typedef unsigned char uchar;
13 typedef unsigned int uint;
14
15 code char pattern[17][3]={ //3幅图片的字模
16 {0xff,0xff,0xff}, //在长沙的时候教过你怎么算,所以我就不多说了
17 {0xff,0xff,0xff},
18 {0xff,0xff,0xff},
19 {0xff,0xf9,0xff},
20 {0xff,0xf6,0x9f},
21 {0xff,0xee,0xa6},
22 {0xfe,0xdd,0x78},
23 {0x7e,0xbb,0x7f},
24 {0x00,0x77,0x7f},
25 {0x7e,0xbb,0x7f},
26 {0xfe,0xdd,0x78},
27 {0xff,0xee,0xa6},
28 {0xff,0xf6,0x9f},
29 {0xff,0xf9,0xff},
30 {0xff,0xff,0xff},
31 {0xff,0xff,0xff},
32 {0xff,0xff,0xff},
33 /*{0xff,0xff,0xff},//这是我注释掉的图片,你可以自己写了看看,到底是什么
34 {0xff,0xff,0xff},
35 {0xff,0xff,0xff},
36 {0xff,0xf9,0xe7},
37 {0xff,0xf6,0xdb},
38 {0xff,0xee,0xbd},
39 {0xfe,0xdd,0xd7},
40 {0x7e,0xbb,0x5a},
41 {0x00,0x77,0xd7},
42 {0x7e,0xbb,0x5a},
43 {0xfe,0xdd,0xff},
44 {0xff,0xee,0xbd},
45 {0xff,0xf6,0xdb},
46 {0xff,0xf9,0xe7},
47 {0xff,0xff,0xff},
48 {0xff,0xff,0xff},
49 {0xff,0xff,0xff}, */
50 };
51 uchar phase,th1,tl1,index,count;
52
53 /*注释1*/
54 /*51共有4个中断,两个外部中断,两个内部时钟中断分别又相应的寄存器控制其是否有效*/
55 /*四个中断又有优先级别之分,也有不同的寄存器控制*/
C51 COMPILER V6.02 YAO 11/07/2005 16:30:45 PAGE 2
56
57 main()
58 {
59 1 EA=0; //中断总使能,高电平有效,他为高时,各中断自行使能,他为低,中断无效
60 1 EX1=1; //外部中断1使能,高电平有效
61 1 ET1=1; //内部时钟中断1使能,高有效
62 1 PX0=1; //外部中断优先级别设置
63 1 IT1=1; //外部中段1工作模式选择,为1是下降沿为中断信号,0时低电平为中断信号
64 1 TMOD=0x11;//内部时钟中断模式设定,共有三种模式,不同模式,产生中断的时间长短的最大值有不同,
65 1 //工作状态也不同,这里采用的是模式3
66 1 index=0;
67 1 EA=1; //初始化完成,中断使能,程序有此时正式开始处理
68 1 while(1)
69 1 {
70 2 }
71 1 }
72
73 void Int0_Handle(void) interrupt 2 using 2
74 {
75 1 uint t0_time;
76 1 TR0=0;
77 1 TR1=0;
78 1 TF1=0;
79 1 t0_time=TH0<<8|TL0;
80 1 TL0=0;
81 1 TH0=0;
82 1 TR0=1;
83 1 t0_time=65535-t0_time/SEG;
84 1 th1=t0_time/256;
85 1 TH1=th1;
86 1 tl1=t0_time % 256;
87 1 TL1=tl1;
88 1 if (count<3*INTERVAL){ //3幅图片循环
89 2 count++;
90 2 }
91 1 else{
92 2 count=0;
93 2 }
94 1 index=count/INTERVAL;
95 1 if (th1!=0xff || tl1!=0xff){ //如果摆动特别慢,
96 2 //定时器溢出就不显示
97 2 phase=0;
98 2 TR1=1;
99 2 }
100 1 else{
101 2 TR1=0;
102 2 }
103 1 }
104
105 void Timer1(void) interrupt 3 using 3
106 {
107 1 if (phase<SEG) //17段依次显示
108 1 {
109 2 P0=pattern[phase][index];
110 2 phase++;
111 2 TH1=th1;
112 2 TL1=tl1;
113 2 }
114 1 }
115
116
C51 COMPILER V6.02 YAO 11/07/2005 16:30:45 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
pattern. . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 51
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
Int0_Handle. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
t0_time. . . . . . . . . . . . . . . * REG * DATA U_INT 0012H 2
th1. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
tl1. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
phase. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
uchar. . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
index. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
count. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0004H 1
Timer1 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
uint . . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
C51 COMPILER V6.02 YAO 11/07/2005 16:30:45 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 197 ----
CONSTANT SIZE = 51 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -