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