📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 10/03/2005 11:17:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <regx52.h>
2 #include <stdio.h>
3 #include<intrins.h>
4 #define uchar unsigned char
5 #define uint unsigned int
6 void send(uchar outdata);
7 void write(uchar addr1,uchar num1,uchar addr2,uchar num2);
8 void init();
9 sbit din=P2^0;
10 sbit load=P2^1;
11 sbit clk=P2^2;
12 //uchar codeseg[10]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
13 void main()
14 {
15 1 write(0x0f,0x01,0x0f,0x01);
16 1 _nop_();
17 1 _nop_();
18 1 _nop_();
19 1 _nop_();
20 1 write(0x0f,0x00,0x0f,0x00); //测试显示
21 1 init(); //max7219初始化
22 1 while(1)
23 1 {
24 2 write(0x01,1,0x01,9);//先送位,再送段/先发送给第一片
25 2 write(0x02,2,0x02,2);
26 2 write(0x03,3,0x03,3);
27 2 write(0x04,4,0x04,4);
28 2 write(0x05,5,0x05,5);
29 2 write(0x06,6,0x06,6);
30 2 write(0x07,7,0x07,7);
31 2 write(0x08,8,0x08,8);
32 2 }
33 1 }
34
35 void init()
36 {write(0x09,0xff,0x09,0xff); //设置译码方式,使用bcd译码
37 1 write(0x0a,0x0a,0x0a,0x0a); //设置亮度
38 1 write(0x0b,0x07,0x0b,0x07); //设置扫描的位数
39 1 write(0x0c,0x01,0x0c,0x01); //设置待机方式
40 1 } //先设置后面一片的工作方式,在设置前面一片的工作方式
41 void write(uchar addr1,uchar num1,uchar addr2,uchar num2)
42 {
43 1 load=0; //当LOAD为低电平时,芯片接收来自DIN的数据,接收完毕,
44 1 _nop_();
45 1 send(addr1);
46 1 _nop_();
47 1 send(num1);
48 1 _nop_();
49 1 clk=0;
50 1 _nop_();
51 1 clk=1; //从DIN输入的数据经过16.5个CLK脉冲后移到DOUT引脚上。
52 1 //所以发完16个数据后必须加一个脉冲,否则数据传不到第二片
53 1 send(addr2);
54 1 _nop_();
55 1 send(num2);
C51 COMPILER V7.50 MAIN 10/03/2005 11:17:52 PAGE 2
56 1 load=1; //LOAD回到高电平时,接收的数据将被锁定
57 1 }
58 void send(uchar outdata) //写串行数据子程序
59 { uchar i,temp;
60 1 for(i=0;i<8;i++)
61 1 {
62 2 temp=outdata&0x80;
63 2 outdata=outdata<<1;
64 2
65 2 if(temp==0x80)
66 2 {
67 3 clk=0;
68 3 din=1;
69 3 _nop_();
70 3 clk=1; //提供上升沿
71 3 }
72 2 else
73 2 {
74 3 clk=0;
75 3 din=0;
76 3 _nop_();
77 3 clk=1; //提供上升沿
78 3 }
79 2 }
80 1
81 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 243 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -