📄 1.lst
字号:
C51 COMPILER V7.20 1 12/14/2008 03:07:06 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include<intrins.h>
3 #define SHUTDOWN 0x0c //是否关机
4 #define DECODE_MODE 0x09 //编码模式
5 #define INTENSITY 0x0a //亮度变化
6 #define SCAN_LIMIT 0x0b //开启哪些位
7 #define DISPLAYTEST 0x0f //显示测试
8
9 sbit DIN=P3^4;
10 sbit LOAD=P3^5;
11 sbit CLK=P3^6;
12 sbit ACC0=ACC^0;
13 sbit ACC7=ACC^7;
14 unsigned char code table[]={
15 0x7e,0x30,0x6D,0x79,0x33,0x5B,0x5F,0x70,0x7F,0x7B,0x00
16 };
17 unsigned char code seg[]={
18 0x01,0x02,0x03,0x04,0x05,0x06,0x07
19 };
20 unsigned char numbers[8];
21 /*void WriteMAX7219_bit(bit dat) //写入一位
22 {
23 CLK=0;
24 DIN=dat;
25 CLK=1;
26 } */
27 void WriteByte7219(unsigned char Dat)
28 {
29 1 unsigned char i;
30 1 ACC=Dat;
31 1 for(i=8;i>0;i--)
32 1 {
33 2 DIN=ACC7;
34 2 CLK=1;
35 2 _nop_();
36 2 _nop_();
37 2 CLK=0;
38 2 ACC=ACC<<1;
39 2 }
40 1 }
41 void WriteMAX7219_2bytes(unsigned char dat1,unsigned char dat2) //连续写入两个字节
42 {
43 1 unsigned char temp;
44 1 temp=0x80;
45 1 CLK=0;
46 1 DIN=0;
47 1 LOAD=0;
48 1 /* for(i=1;i<=8;i++)
49 1 {
50 1 if(temp&dat1)WriteMAX7219_bit(1);
51 1 else WriteMAX7219_bit(0);
52 1 dat1<<=1;
53 1
54 1 }
55 1 for(i=1;i<=8;i++)
C51 COMPILER V7.20 1 12/14/2008 03:07:06 PAGE 2
56 1 {
57 1 if(temp&dat2)WriteMAX7219_bit(1);
58 1 else WriteMAX7219_bit(0);
59 1 dat2<<=1;
60 1 } */
61 1 WriteByte7219(dat1);
62 1 WriteByte7219(dat2);
63 1 LOAD=1;
64 1
65 1 }
66 void InitMax7219() //初始化
67 {
68 1
69 1 WriteMAX7219_2bytes(DECODE_MODE,0xff); //设置所有数码管为B CODE编码模式
70 1 WriteMAX7219_2bytes(INTENSITY,0x08); //设置亮度为最大
71 1 WriteMAX7219_2bytes(SCAN_LIMIT,0x07); //设置7个数码管全开
72 1 WriteMAX7219_2bytes(DISPLAYTEST,0);
73 1 WriteMAX7219_2bytes(SHUTDOWN,0x01); //设置为开机
74 1 }
75 void display()
76 {
77 1 unsigned char i;
78 1 for(i=0;i<8;i++)
79 1 {
80 2 WriteMAX7219_2bytes(seg[i],i);
81 2 }
82 1 }
83 void delay()
84 {
85 1 unsigned int n;
86 1 n=30000;
87 1 while(n--);
88 1 }
89 void main()
90 {
91 1
92 1 bit a;
93 1 a=1;
94 1 // InitMax7219();display();
95 1 // WriteMAX7219_2bytes(DISPLAYTEST,0xff);
96 1 while(1){
97 2 a=!a;
98 2 P0=a;
99 2 P1=a;
100 2 P2=a;
101 2 delay();} ;
102 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 125 ----
CONSTANT SIZE = 18 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 1
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -