📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 01/04/2007 15:44:40 PAGE 1
C51 COMPILER V8.02, 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,0x00,0);//先送位,再送段/先发送给第一片
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 {
37 1 write(0x00,0x01,0x00,0x00); //无效
38 1 write(0x09,0xff,0x09,0xff); //设置译码方式,使用bcd译码
39 1 write(0x0a,0x0a,0x0a,0x0a); //设置亮度
40 1 write(0x0b,0x07,0x0b,0x07); //设置扫描的位数
41 1 write(0x0c,0x01,0x0c,0x01); //设置待机方式
42 1 } //先设置后面一片的工作方式,在设置前面一片的工作方式
43 void write(uchar addr1,uchar num1,uchar addr2,uchar num2)
44 {
45 1 load=0; //当LOAD为低电平时,芯片接收来自DIN的数据,接收完毕,
46 1 _nop_();
47 1 send(addr1);
48 1 _nop_();
49 1 send(num1);
50 1 _nop_();
51 1 clk=1;
52 1 _nop_();
53 1 clk=0; //从DIN输入的数据经过16.5个CLK脉冲后移到DOUT引脚上。
54 1 //所以发完16个数据后必须加一个脉冲,否则数据传不到第二片
55 1 send(addr2);
C51 COMPILER V8.02 MAIN 01/04/2007 15:44:40 PAGE 2
56 1 _nop_();
57 1 send(num2);
58 1 load=1; //LOAD回到高电平时,接收的数据将被锁定
59 1 }
60 void send(uchar outdata) //写串行数据子程序
61 { uchar i,temp;
62 1 for(i=0;i<8;i++)
63 1 {
64 2 temp=outdata&0x80;
65 2 outdata=outdata<<1;
66 2
67 2 if(temp==0x80)
68 2 {
69 3 clk=1;
70 3 din=1;
71 3 _nop_();
72 3 clk=0; //提供上升沿
73 3 }
74 2 else
75 2 {
76 3 clk=1;
77 3 din=0;
78 3 _nop_();
79 3 clk=0; //提供上升沿
80 3 }
81 2 }
82 1
83 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 252 ----
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 + -