📄 max7219.lst
字号:
C51 COMPILER V7.02a MAX7219 01/24/2007 13:08:21 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE MAX7219
OBJECT MODULE PLACED IN max7219.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE max7219.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //max7219 led drive program
2 //for 51 mcu
3 //designed by zhaoliang
4 //2005-6-12 13:52
5 #include <reg51.h>
6 /***********************************************************************/
7 //common part
8 #define HIGH 1
9 #define LOW 0
10 #define TRUE 1
11 #define FALSE 0
12 #define ZERO 0
13 #define MSB 0x80
14 #define LSB 0x01
15 //max7219 part
16 #define DECODE_MODE 0x09
17 #define INTENSITY 0x0A
18 #define SCAN_LIMIT 0x0B
19 #define SHUT_DOWN 0x0C
20 #define DISPLAY_TEST 0x0F
21
22 //pin defined
23 /***********************************************************************/
24 //change this part at different board
25 sbit LOAD=P1^2; //MAX7219 Load-Data Input: rising edge pin 12
26 sbit DIN=P1^1; //MAX7219 Serial-Data Input: rising edge pin 1
27 sbit CLK=P1^0; //MAX7219 Serial-Clock Input: maximum 10MHz pin 13
28
29 //function define
30 /***********************************************************************/
31 void Write_Max7219_byte(unsigned char temp);//write max7219 a byte
32 void Write_Max7219(unsigned char address,unsigned char dat);//write max7219 command and data
33 void Init_Max7219(void);//Initize max7219
34
35 //test program display from 1~8
36 /***********************************************************************/
37 void main(void)
38 {
39 1 unsigned char i;
40 1 Init_Max7219();
41 1 while(TRUE)
42 1 {
43 2 for(i=1;i<9;i++)
44 2 {
45 3 Write_Max7219(i,i);
46 3 }
47 2 }
48 1 }
49 /***********************************************************************/
50 void Write_Max7219_byte(unsigned char temp)
51 {
52 1 unsigned char i;
53 1 for (i=0;i<8;i++)
54 1 {
55 2 CLK=LOW;
C51 COMPILER V7.02a MAX7219 01/24/2007 13:08:21 PAGE 2
56 2 DIN=(bit)(temp&MSB);
57 2 temp<<=1;
58 2 CLK=HIGH;
59 2 }
60 1 }
61 /***********************************************************************/
62 void Write_Max7219(unsigned char address,unsigned char dat)
63 {
64 1 LOAD=LOW;
65 1 Write_Max7219_byte(address);
66 1 Write_Max7219_byte(dat);
67 1 LOAD=HIGH;
68 1 }
69 /***********************************************************************/
70 void Init_Max7219(void)
71 {
72 1 Write_Max7219(SHUT_DOWN, 0x01); //Normal Operation XXXXXXX1 Shutdown Mode XXXXXXXX0
73 1 Write_Max7219(DISPLAY_TEST, 0x00); //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1
74 1 Write_Max7219(DECODE_MODE, 0xff); //Decode Mode Select D7~D0 1 B decode 0 No decode
75 1 Write_Max7219(SCAN_LIMIT, 0x07); //SCAN LIMIT 0~7 0xX0~0xX7
76 1 Write_Max7219(INTENSITY, 0x04); //Set Intensity 0xX0~0xXf
77 1 }
78
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 90 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -