📄 max7219.lst
字号:
C51 COMPILER V8.08 MAX7219 01/23/2009 10:58:13 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAX7219
OBJECT MODULE PLACED IN MAX7219.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE MAX7219.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 #define decodemode 0x09//译码模式寄存器
6 #define intensity 0x0a//亮度寄存器
7 #define scanlimt 0x0b //扫描位数寄存器
8 #define shutdown 0x0c //低功耗模式寄存器
9 #define displaytest 0x0f //显示寄存器
10 sbit DIN=P1^0;
11 sbit LOAD=P1^1;
12 sbit CLOCK=P1^2;
13 uchar disbuf[8]={0,0,0,0,0,0,0,0};
14 /*******对于12MHZ时钟,延时1ms**********/
15 void delay(uint t)
16 {
17 1 uint i;
18 1 while(t--)
19 1 {
20 2 for(i=0;i<125;i++)
21 2 {}
22 2 }
23 1 }
24 /**********向MAX7219写入字节(8位)***************/
25 void sendchar(uchar ch)
26 {
27 1 uchar i,temp;
28 1 for(i=0;i<8;i++)
29 1 {
30 2 temp=ch&0x80;
31 2 ch=ch<<1;
32 2 if(temp)
33 2 {
34 3 DIN=1;
35 3 CLOCK=0;
36 3 CLOCK=1;
37 3 }
38 2 else
39 2 {
40 3 DIN=0;
41 3 CLOCK=0;
42 3 CLOCK=1;
43 3 }
44 2 }
45 1 }
46 /***********向MAX7219写入字(16位)*********/
47 void writeword(uchar address,uchar num)
48 {
49 1 LOAD=0;
50 1 _nop_();
51 1 sendchar(address);
52 1 _nop_();
53 1 sendchar(num);
54 1 _nop_();
55 1 LOAD=1;
C51 COMPILER V8.08 MAX7219 01/23/2009 10:58:13 PAGE 2
56 1 }
57 /***********MAX7219初始化*************/
58 void init()
59 {
60 1 //P1=0xff;
61 1 writeword(scanlimt,0x07);//扫描位数设置为8位数码管;
62 1 writeword(decodemode,0xff);//译码模式设置为BCD译码;
63 1 writeword(intensity,0x0a);//亮度级别设置;
64 1 writeword(shutdown,0x01);//低功耗模式设置为正常模式;
65 1 }
66 void main()
67 {
68 1 init();
69 1 writeword(displaytest,0x01);//开始显示测试,点亮所有LED
70 1 delay(2);
71 1 writeword(displaytest,0x00);//关显示;
72 1 while(1)
73 1 {
74 2 // uchar i,j;
75 2 //8个数码管间隔2s同时变化显示0-9的数字
76 2 // for (i=0;i<=9;i++)
77 2 // {
78 2 // delay(1000);
79 2 init();
80 2 // for(j=0;j<=7;j++)
81 2 // disbuf[j]=i;
82 2 //8个数码管分别显示1-8数字
83 2 writeword(0x01,1);//第一个数码管显示1
84 2 writeword(0x02,2);
85 2 writeword(0x03,3);
86 2 writeword(0x04,4);
87 2 writeword(0x05,5);
88 2 writeword(0x06,6);
89 2 writeword(0x07,7);
90 2 writeword(0x08,8);//第八个数码管显示8
91 2 // }
92 2 }
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 189 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -