📄 hc595drv.lst
字号:
C51 COMPILER V6.12 HC595DRV 09/11/2005 14:16:34 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE HC595DRV
OBJECT MODULE PLACED IN E:\C51PRJ\LUMINLED\HC595DRV.OBJ
COMPILER INVOKED BY: d:\keil\c51\BIN\C51.EXE E:\C51PRJ\LUMINLED\HC595DRV.C DB SB OE
stmt level source
1 /****************************************************************************/
2 /* */
3 /* Copyright (c) 2005, 老树工作室 */
4 /* All rights reserved. */
5 /* */
6 /* http://www.saintone.net Email:hxm0902@163.com */
7 /* QQ:112431149 Tel:010-62966630 */
8 /* */
9 /****************************************************************************/
10 /****************************************************************************/
11 /* 文件名:hc595drv.c */
12 /* 版 本:Version 1.0 */
13 /* 描 述:hc595驱动代码 */
14 /* 作 者:spot */
15 /* 函 数: */
16 /* load_number */
17 /* send_shift_clock */
18 /* send_latch_clock */
19 /* display_number */
20 /* */
21 /* 历史记录: */
22 /* spot 2005-07-10 Creat Inital version. (Version 1.0) */
23 /****************************************************************************/
24
25 #include <reg52.h>
26 #include <absacc.h>
27 #include <intrins.h>
28 #include "../includes/types.h"
29
30 sbit DS = P0^2; /* 串行数据输入 */
31 sbit SHCP = P0^0; /* 移位时钟输入 */
32 sbit STCP = P0^1; /* 锁存时钟输入 */
33
34 /* 显示数据编码,按共阴极数码管编码 */
35 u_char number_code[11] = {
36 0x3f, /* 0 */
37 0x06, /* 1 */
38 0x5b, /* 2 */
39 0x4f, /* 3 */
40 0x66, /* 4 */
41 0x6d, /* 5 */
42 0x7d, /* 6 */
43 0x07, /* 7 */
44 0x7f, /* 8 */
45 0x67, /* 9 */
46 0x00 /* 灭*/
47 };
48
49 void load_number(u_char number, bit dp);
50 void send_shift_clock(void);
51 void send_latch_clock(void);
52 void clear_led(void);
53 void display_number(void);
54
55 /* 加载将要显示的数据,num-显示数据,dp:1显示小数点,0不显示小数点 */
C51 COMPILER V6.12 HC595DRV 09/11/2005 14:16:34 PAGE 2
56 void load_number(u_char number, bit dp)
57 {
58 1 u_char i;
59 1 u_char temp;
60 1
61 1 temp = ~number_code[number]; /* 使用共阳极数码管,所以编码取反 */
62 1 if (dp)
63 1 {
64 2 temp &= 0x7f;
65 2 }
66 1 for (i=0; i<8; i++)
67 1 {
68 2 if ( (temp & 0x80) == 0x80)
69 2 {
70 3 DS = 1;
71 3 }
72 2 else
73 2 {
74 3 DS = 0;
75 3 }
76 2
77 2 temp <<= 1;
78 2
79 2 send_shift_clock(); /* 发移位脉冲信号 */
80 2 }
81 1 }
82
83 /* 发送移位时钟脉冲信号 */
84 void send_shift_clock(void)
85 {
86 1 SHCP = 1;
87 1 _nop_();
88 1 SHCP = 0;
89 1 }
90
91 /* 发送锁存脉冲信号 */
92 void send_latch_clock(void)
93 {
94 1 STCP = 1;
95 1 _nop_();
96 1 STCP = 0;
97 1 }
98
99 /* 清除4位数码管显示 */
100 void clear_led(void)
101 {
102 1 u_char i;
103 1
104 1 for (i=0; i<32; i++)
105 1 {
106 2 DS = 1;
107 2 send_shift_clock();
108 2 }
109 1 send_latch_clock();
110 1
111 1 }
112
113
C51 COMPILER V6.12 HC595DRV 09/11/2005 14:16:34 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
u_long . . . . . . . . . . . . . . . . TYPEDEF ----- U_LONG ----- 4
u_short. . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
number_code. . . . . . . . . . . . . . PUBLIC DATA ARRAY 0000H 11
send_latch_clock . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
DS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0082H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 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
send_shift_clock . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
clear_led. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
u_int. . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
SHCP . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
STCP . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0081H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 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
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
C51 COMPILER V6.12 HC595DRV 09/11/2005 14:16:34 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
_load_number . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
number . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
dp . . . . . . . . . . . . . . . . . AUTO DATA BIT 0000H 1
i. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
temp . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
u_char . . . . . . . . . . . . . . . . TYPEDEF ----- U_CHAR ----- 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 73 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 2
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -