📄 ledm3.lst
字号:
C51 COMPILER V8.02 LEDM3 09/16/2008 18:32:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LEDM3
OBJECT MODULE PLACED IN ledm3.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ledm3.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #define time (65536-10000)
4 typedef unsigned int uint;
5 typedef unsigned char uchar;
6
7 sbit A_138=P1^0;
8 sbit B_138=P1^1;
9 sbit C_138=P1^2;
10 sbit D_138=P1^3;
11 sbit G1_SD=P1^4;
12 sbit G2_SD=P1^5;
13 sbit ST_CP=P1^6; //595的锁存脉冲,上升沿有效。
14 sbit SH_CP=P1^7; //595的移位时钟,在上升沿发生移位。
15 sbit EN_138=P3^5; //138组成4线16线译码器的使能端,低电平有效。
16 sbit R1_SD=P3^6; //595的数据端
17 sbit R2_SD=P3^7;
18
19 uchar to_second_cnd=50; //50ms*second_cnd,所以大概2.5s
20 uchar second_flag=0;
21 uchar up_down_flag=1; //为1,down;为0,up。
22 uchar i=0;
23 uchar cnt =0;
24 uchar hc138_inport=0;
25 uchar const ziku[][32]=
26 {
27 {0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0x80,0x83,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xF6,0xBB,0xEE,0xBB,0xEE,0xBB,0xEE,
-0xBB,0xDE,0xBB,0xDE,0x83,0xBA,0xBB,0x7D,0xBF,0xFF,0xFF},/*"加",0*/
28
29 {0xBF,0xBF,0xDF,0xBF,0xDF,0xBF,0xFF,0xBF,0x68,0x03,0xAB,0xBB,0xAB,0xBB,0xEB,0xBB,0xDB,0xBB,0xD8,0x03,0x1B,
-0xBB,0xDB,0xBB,0xDB,0xBB,0xDB,0xBB,0xD8,0x03,0xDB,0xFB},/*"油",1*/
30
31 {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFE,0x7F,0xFF,
-0xFF,0xFF,0xFF,0xFE,0x3F,0xFE,0x3F,0xFF,0xFF,0xFF,0xFF},/*"!",0*/
32 //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
-B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",0*/
33
34 //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
-B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",1*/
35
36 //{0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0x7F,0xFD,0xBF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xDF,0xF
-B,0xDF,0xFB,0xDF,0xFD,0xBF,0xFE,0x7F,0xFF,0xFF,0xFF,0xFF},/*"0",2*/
37
38
39 //{0xF9,0xBF,0xC7,0xAF,0xF7,0xB7,0xF7,0xB7,0xF7,0xBF,0x00,0x01,0xF7,0xBF,0xF7,0xB7,0xF1,0xD7,0xC7,0xCF,0x3
-7,0xDF,0xF7,0xAF,0xF6,0x6D,0xF7,0xF5,0xD7,0xF9,0xEF,0xFD},/*"我",0*/
40
41 //{0xFF,0xFF,0xF8,0xFF,0x87,0xFF,0xF7,0x83,0xF7,0xBB,0x80,0xBB,0xF7,0xBB,0xE7,0xBB,0xE3,0xBB,0xD5,0xBB,0xD
-4,0xBB,0xB5,0xBB,0x77,0x83,0xF7,0xBB,0xF7,0xFF,0xF7,0xFF},/*"和",1*/
42
43 //{0xF6,0xFF,0xF6,0x7F,0xEE,0xFB,0xEC,0x01,0xDD,0xFB,0xCB,0xB7,0x97,0xBF,0x5D,0xAF,0xDC,0xB7,0xDD,0xB7,0xD
-B,0xBB,0xDB,0xB9,0xD7,0xBB,0xDE,0xBF,0xDF,0x7F,0xFF,0xFF},/*"你",2*/
44
45 //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
-f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
C51 COMPILER V8.02 LEDM3 09/16/2008 18:32:19 PAGE 2
46 //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
-f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
47 //{0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf
-f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff},
48 //{0xAA,0xA0,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
-0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
49 //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
-0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
50 //{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0
-0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
51 //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
-e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
52 //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
-e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
53 //{0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xf
-e,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe},
54 //{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
-a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
55 //{0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
-a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
56 //{0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa
-a,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa},
57
58 };
59
60
61
62
63 void delay_s(uint x)
64 {
65 1 while(x--);
66 1 }
67
68
69 void hc595( uchar temp)
70 {
71 1 uchar count=0;
72 1
73 1 for(; count<8; count++)
74 1 {
75 2 SH_CP=0;
76 2 R1_SD=temp&0x80;
77 2 temp<<=1;
78 2 SH_CP=1;
79 2 _nop_();
80 2 SH_CP=0;
81 2 }
82 1
83 1
84 1 }
85
86 void timer0(void) interrupt 1
87 {
88 1 EA=0;
89 1 TH0=time>>8;
90 1 TL0=time&0xff;
91 1 if(!(to_second_cnd--))
92 1 {
93 2 second_flag=1;
94 2 to_second_cnd=50;
95 2 }
96 1
C51 COMPILER V8.02 LEDM3 09/16/2008 18:32:19 PAGE 3
97 1 EA=1;
98 1 }
99
100
101 void up_down(void)
102 {
103 1 if(second_flag)
104 1 {
105 2 if (up_down_flag)
106 2 hc138_inport++; //down
107 2 else //up
108 2 {
109 3 if(hc138_inport==0)
110 3 hc138_inport=15;
111 3 else
112 3 hc138_inport--;
113 3 }
114 2 second_flag=0;
115 2 }
116 1
117 1 }
118
119 void intrrupt_t0_ini()
120 {
121 1 TH0=time>>8;
122 1 TL0=time&0xff;
123 1 TMOD=0X01;
124 1 TR0=1;
125 1 ET0=1;
126 1 EA=1;
127 1 }
128
129
130 void led_m_dis()
131 {
132 1 for(;i<16;i++,hc138_inport++)
133 1 {
134 2 for(;cnt<3;cnt++)
135 2 {
136 3 hc595(ziku[cnt][2*i]);
137 3 hc595(ziku[cnt][2*i+1]);
138 3 }
139 2
140 2
141 2 ST_CP=0;
142 2 _nop_();
143 2 ST_CP=1;
144 2 ST_CP=0;
145 2 delay_s(10);
146 2
147 2 if(hc138_inport==16)
148 2 hc138_inport=0;
149 2
150 2 EN_138=1;
151 2 A_138=hc138_inport&0x01;
152 2 B_138=hc138_inport&0x02;
153 2 C_138=hc138_inport&0x04;
154 2 D_138=hc138_inport&0x08;
155 2 EN_138=0;
156 2 delay_s(100);
157 2 EN_138=1;
158 2 cnt=0;
C51 COMPILER V8.02 LEDM3 09/16/2008 18:32:19 PAGE 4
159 2 }
160 1 i=0;
161 1 }
162
163 void main()
164 {
165 1 intrrupt_t0_ini();
166 1 for(;;)
167 1 {
168 2 up_down();
169 2 led_m_dis();
170 2 }
171 1 }
172
173
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 102 ----
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 + -