📄 max7219.lst
字号:
C51 COMPILER V7.08 MAX7219 04/08/2007 10:50:40 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAX7219
OBJECT MODULE PLACED IN max7219.OBJ
COMPILER INVOKED BY: E:\Program Files\keil\C51\BIN\C51.EXE max7219.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<intrins.h>
3 //
4 sbit DIN = P2^7; // 串行数据输入
5 sbit CLK = P2^5; // 串行时钟
6 sbit LOAD = P2^6; // 显示数据锁存控制
7 /*
8 sbit DIN = P0^0; // 串行数据输入
9 sbit CLK = P0^2; // 串行时钟
10 sbit LOAD = P0^1; // 显示数据锁存控制
11 */
12 #ifndef uchar
13 #define uchar unsigned char
14 #define uint unsigned int
15 #endif
16
17 #define NoOp 0x00 // 空操作寄存器
18 #define Digit0 0x01 // 数码管1寄存器
19 #define Digit1 0x02 // 数码管2寄存器
20 #define Digit2 0x03 // 数码管3寄存器
21 #define Digit3 0x04 // 数码管4寄存器
22 #define Digit4 0x05 // 数码管5寄存器
23 #define Digit5 0x06 // 数码管6寄存器
24 #define Digit6 0x07 // 数码管7寄存器
25 #define Digit7 0x08 // 数码管8寄存器
26
27 #define DecodeMode 0x09 // 译码模式寄存器
28 #define Intensity 0x0a // 亮度寄存器
29 #define ScanLimit 0x0b // 扫描位数寄存器
30 #define ShutDown 0x0c // 低功耗模式寄存器
31 #define DisplayTest 0x0f // 显示测试寄存器
32
33 #define ShutdownMode 0x00 // 低功耗方式
34 #define NormalOperation 0x01 // 正常操作方式
35
36 #define ScanDigit 0x07 // 扫描位数设置,显示8位数码管
37 #define DecodeDigit 0xff // 译码设置,8位均为BCD码
38 #define IntensityGrade 0x0a // 亮度级别设置
39
40 #define TestMode 0x01 // 显示测试模式
41 #define TextEnd 0x00 // 显示测试结束,恢复正常工作模式
42
43 /* 向MAX7219写入字节(8位)*/
44 void SendChar (uchar ch)
45 {
46 1 uchar i,temp;
47 1 _nop_();
48 1 for (i=0;i<8;i++)
49 1 {
50 2 temp=ch&0x80;
51 2 ch=ch<<1;
52 2 if(temp)
53 2 {
54 3 DIN=1;
55 3 CLK=0;
C51 COMPILER V7.08 MAX7219 04/08/2007 10:50:40 PAGE 2
56 3 CLK=1;
57 3 }
58 2 else
59 2 {
60 3 DIN=0;
61 3 CLK=0;
62 3 CLK=1;
63 3 }
64 2 }
65 1 }
66
67 /* 向MAX7219的寄存器写入字节(8位)*/
68 void WriteWord(uchar addr,uchar num)
69 {
70 1 LOAD=0;
71 1 _nop_();
72 1 SendChar(addr);
73 1 _nop_();
74 1 SendChar(num);
75 1 _nop_();
76 1 LOAD=1; // 锁存进相应寄存器
77 1 }
78
79 /* MAX7219初始化 */
80 void InitDisplay (void)
81 {
82 1 WriteWord(ScanLimit,ScanDigit); // 设置扫描界限
83 1 WriteWord(DecodeMode,DecodeDigit); // 设置译码模式
84 1 WriteWord(Intensity,IntensityGrade); // 设置亮度
85 1 WriteWord(ShutDown,NormalOperation); // 设置为正常工作模式
86 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 75 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -