📄 text1.lst
字号:
C51 COMPILER V6.12 TEXT1 06/29/2004 10:09:24 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN .\Text1.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE .\Text1.c DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2
3 //*** oˉêy?¨ò? ***
4 void long_delay(void); //延时程序1
5 void short_delay(void); // ?ì?Y?óê±
6 void delay10ms(unsigned char); // ?óê±10MS
7 void write7279(unsigned char, unsigned char); // 写入到HD7279
8 unsigned char read7279(unsigned char); // 从7279读出
9 void send_byte(unsigned char); // 写入一个字节
10 unsigned char receive_byte(void); //读出一个字节
11
12 //*** ±?á??°I/O?ú?¨ò? ***
13 unsigned char digit[5];
14 unsigned char key_number, j, k;
15 unsigned int tmr;
16 unsigned long wait_cnter;
17 //****************************
18 sbit cs=P1^5; // 6cs at P1.4
19 sbit clk=P1^6; // 7clk á??óóú P1.5
20 sbit dat=P1^7; // 8dat á??óóú P1.2
21 sbit key=P1^4; // 9key á??óóú
22 //****** HD7279A ??á? ******
23 #define CMD_RESET 0xa4
24 #define CMD_TEST 0xbf
25 #define DECODE0 0x80
26 #define DECODE1 0xc8
27 #define CMD_READ 0x15
28 #define UNDECODE 0x90
29 #define RTL_CYCLE 0xa3
30 #define RTR_CYCLE 0xa2
31 #define RTL_UNCYL 0xa1
32 #define RTR_UNCYL 0xa0
33 #define ACTCTL 0x98
34 #define SEGON 0xe0
35 #define SEGOFF 0xc0
36 #define BLINKCTL 0x88
37
38 //*** ?÷3ìDò ***
39 main()
40 {
41 1 while (1)
42 1 {
43 2 for (tmr=0;tmr<0x2000;tmr++); //上电延时
44 2 send_byte(CMD_RESET); //复位HD7279
45 2
46 2 //******************************************
47 2 // 2aê???á??Yê?
48 2 //******************************************
49 2 send_byte(CMD_TEST); //测试指令
50 2 for (j=0;j<3;j++) //延时约3秒
51 2 {
52 3 delay10ms(100);
53 3 }
54 2 send_byte(CMD_RESET); //清除显示
55 2 write7279(144,1); //第一位G亮
C51 COMPILER V6.12 TEXT1 06/29/2004 10:09:24 PAGE 2
56 2 write7279(144,2); //第一位F亮
57 2 write7279(144,4); //第一位E亮
58 2 }
59 1 }
60
61 void write7279(unsigned char cmd, unsigned char dta)
62 {
63 1 send_byte (cmd);
64 1 send_byte (dta);
65 1 }
66
67 unsigned char read7279(unsigned char command)
68 {
69 1 send_byte(command);
70 1 return(receive_byte());
71 1 }
72
73 void send_byte( unsigned char out_byte)
74 {
75 1 unsigned char i;
76 1 cs=0;
77 1 long_delay();
78 1 for (i=0;i<8;i++)
79 1 {
80 2 if (out_byte&0x80)
81 2 {
82 3 dat=1;
83 3 }
84 2 else
85 2 {
86 3 dat=0;
87 3 }
88 2 clk=1;
89 2 short_delay();
90 2 clk=0;
91 2 short_delay();
92 2 out_byte=out_byte*2;
93 2 }
94 1 dat=0;
95 1 }
96
97 unsigned char receive_byte(void)
98 {
99 1 unsigned char i, in_byte;
100 1 dat=1; // set to input mode
101 1 long_delay();
102 1 for (i=0;i<8;i++)
103 1 {
104 2 clk=1;
105 2 short_delay();
106 2 in_byte=in_byte*2;
107 2 if (dat)
108 2 {
109 3 in_byte=in_byte|0x01;
110 3 }
111 2 clk=0;
112 2 short_delay();
113 2 }
114 1 dat=0;
115 1 return (in_byte);
116 1 }
117
C51 COMPILER V6.12 TEXT1 06/29/2004 10:09:24 PAGE 3
118 void long_delay(void)
119 {
120 1 unsigned char i;
121 1 for (i=0;i<0x30;i++);
122 1 }
123
124 void short_delay(void)
125 {
126 1 unsigned char i;
127 1 for (i=0;i<8;i++);
128 1 }
129
130 // ************************* ?óê± n*10ms *************************
131 void delay10ms(unsigned char time)
132 {
133 1 unsigned char i;
134 1 unsigned int j;
135 1 for (i=0;i<time;i++)
136 1 {
137 2 for(j=0;j<0x390;j++)
138 2 {
139 3 }
140 2 }
141 1 }
142
143
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 225 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 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 + -