?? max7219.lst
字號:
C51 COMPILER V7.02a MAX7219 03/27/2007 10:28:09 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 /*
2 max7219 驅動程序 基于51單片機
3
4 zhaoliang_0801@dl.cn
5 07-3-27
6
7 */
8
9 #include <reg51.h>
10 /*****************************
11 宏定義聲明
12 *****************************/
13 //common part
14 #define HIGH 1
15 #define LOW 0
16 #define TRUE 1
17 #define FALSE 0
18 #define ZERO 0
19 #define MSB 0x80
20 #define LSB 0x01
21 //max7219 part
22 #define DECODE_MODE 0x09
23 #define INTENSITY 0x0A
24 #define SCAN_LIMIT 0x0B
25 #define SHUT_DOWN 0x0C
26 #define DISPLAY_TEST 0x0F
27
28 /*************************************************************************
29 管腳定義:
30 不同的電路板上,改變這里的定義,
31 *************************************************************************/
32 sbit LOAD = P3^5; //MAX7219 Load-Data Input: rising edge pin 12
33 sbit DIN = P3^6; //MAX7219 Serial-Data Input: rising edge pin 1
34 sbit CLK = P3^7; //MAX7219 Serial-Clock Input: maximum 10MHz pin 13
35
36 /***********************************************************
37 函數聲明
38 ***********************************************************/
39 void Write_Max7219_byte(unsigned char temp);
40 void Write_Max7219(unsigned char address,unsigned char dat);
41 void Init_Max7219(void);
42
43 /***************
44 測試程序,
45 顯示1~8
46 ***************/
47 void main(void)
48 {
49 1 unsigned char i;
50 1 Init_Max7219();
51 1 while(TRUE)
52 1 {
53 2 for(i=1; i<9; i++)
54 2 {
55 3 Write_Max7219(i,i);
C51 COMPILER V7.02a MAX7219 03/27/2007 10:28:09 PAGE 2
56 3 }
57 2 }
58 1 }
59 /******************************************
60 發送一個字節的子程序:
61 上升沿發送數據,
62 MSB first
63 ******************************************/
64 void Write_Max7219_byte(unsigned char temp)
65 {
66 1 unsigned char i;
67 1 for (i=0; i<8; i++)
68 1 {
69 2 CLK = LOW;
70 2 DIN = (bit)(temp&MSB);
71 2 temp <<=1;
72 2 CLK = HIGH;
73 2 }
74 1 }
75 /**********************************************************
76 向寄存器中寫入一個數據
77 先寫地址,后寫數據
78 load 上升沿鎖存數據
79 **********************************************************/
80 void Write_Max7219(unsigned char address,unsigned char dat)
81 {
82 1 LOAD = LOW;
83 1 Write_Max7219_byte(address);
84 1 Write_Max7219_byte(dat);
85 1 LOAD = HIGH;
86 1 }
87 /**********************
88 初始化max7219 子函數
89 設置工作寄存器
90 需要查看芯片手冊
91 **********************/
92 void Init_Max7219(void)
93 {
94 1 Write_Max7219(SHUT_DOWN, 0x01); //Normal Operation XXXXXXX1 Shutdown Mode XXXXXXXX0
95 1 Write_Max7219(DISPLAY_TEST, 0x00); //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1
96 1 Write_Max7219(DECODE_MODE, 0xff); //Decode Mode Select D7~D0 1 B decode 0 No decode
97 1 Write_Max7219(SCAN_LIMIT, 0x07); //SCAN LIMIT 0~7 0xX0~0xX7
98 1 Write_Max7219(INTENSITY, 0x04); //Set Intensity 0xX0~0xXf
99 1 }
100
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 + -