?? ad7890.lst
字號:
C51 COMPILER V7.06 AD7890 04/29/2004 19:11:30 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE AD7890
OBJECT MODULE PLACED IN AD7890.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE AD7890.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "intrins.h"
2 #include "At89x51.h"
3 ////////////////////////////////////
4 //晶體為11.0592MHz
5 ///////////////////////////////////
6 #define CLK7219 P2_6
7 #define DIN7219 P2_5
8 #define CS7219 P2_7
9 ////////////////////////////////////
10 /*#define SCLK7890 P1_0
11 #define DI7890 P1_1
12 #define DO7890 P1_1
13 #define TFS7890 P1_3
14 #define RFS7890 P1_4*/
15 #define SCLK7890 P1_1
16 #define DI7890 P1_2
17 #define DO7890 P1_2
18 #define TFS7890 P1_3
19 #define RFS7890 P1_4
20 ////////////////////////////////////
21 void max7219(unsigned char ctr,unsigned char dat)
22 {
23 1 char i;
24 1 CS7219=0;
25 1 _nop_();
26 1
27 1 for(i=0;i<8;i++)
28 1 {
29 2 if(ctr&0x80)
30 2 DIN7219=1;
31 2 else
32 2 DIN7219=0;
33 2 CLK7219=1;
34 2 ctr<<=1;
35 2 CLK7219=0;
36 2 }
37 1 for(i=0;i<8;i++)
38 1 {
39 2 if(dat&0x80)
40 2 DIN7219=1;
41 2 else
42 2 DIN7219=0;
43 2 CLK7219=1;
44 2 dat<<=1;
45 2 CLK7219=0;
46 2 }
47 1
48 1 CS7219=1;
49 1 P1_0=~P1_0;
50 1 }
51 void Max7219Init()
52 {
53 1 ///////////////////////////////////////////////////////
54 1 //7219初始化
55 1 max7219(0x0C,0x01); //shutdown register format
C51 COMPILER V7.06 AD7890 04/29/2004 19:11:30 PAGE 2
56 1 max7219(0x09,0xFF); //decode mode code B 7-0
57 1 max7219(0x0A,0x0F); //intensity register format
58 1 max7219(0x0B,0x07); //sacan limit register format
59 1 max7219(0x0F,0x00); //display test register format
60 1 }
61 unsigned int AD7890(unsigned char chan)
62 {
63 1 unsigned char ctr;
64 1 unsigned int result;
65 1 char i;
66 1 ctr=chan<<5;
67 1 ctr&=0xE0;
68 1 ctr|=0x10;
69 1 TFS7890=0;
70 1 for(i=0;i<8;i++)
71 1 {
72 2 SCLK7890=1;
73 2 if(ctr&0x80)
74 2 DI7890=1;
75 2 else
76 2 DI7890=0;
77 2 SCLK7890=0;
78 2 ctr<<=1;
79 2 }
80 1 TFS7890=1;
81 1 for(i=0;i<20;i++)
82 1 _nop_();
83 1 result=0;
84 1 DO7890=1;
85 1 RFS7890=0;
86 1 SCLK7890=1;
87 1 for(i=0;i<16;i++)
88 1 {
89 2 SCLK7890=0;
90 2 if(DO7890)
91 2 result|=0x01;
92 2 SCLK7890=1;
93 2 if(i!=15)
94 2 result<<=1;
95 2 }
96 1 RFS7890=1;
97 1 result&=0xFFF;
98 1 P1_0=~P1_0;
99 1 return result;
100 1 }
101 main()
102 {
103 1 char i;
104 1 int j;
105 1 unsigned int addata;
106 1 CLK7219=0;
107 1 Max7219Init();
108 1 ////////////////////////////////////////////////////////
109 1 //display data
110 1 max7219(0x01,0x01);
111 1 max7219(0x02,0x02);
112 1 max7219(0x03,0x03);
113 1 max7219(0x04,0x04);
114 1 max7219(0x05,0x05);
115 1 max7219(0x06,0x06);
116 1 max7219(0x07,0x07);
117 1 max7219(0x08,0x08);
C51 COMPILER V7.06 AD7890 04/29/2004 19:11:30 PAGE 3
118 1 while(1)
119 1 {
120 2 addata=AD7890(0x00);
121 2 for(i=0;i<8;i++)
122 2 {
123 3 max7219(8-i,addata%10); //轉換成十進制顯示
124 3 addata/=10;
125 3 }
126 2 P1_0=~P1_0;
127 2 for(i=0;i<5;i++)
128 2 for(j=0;j<31000;j++);
129 2
130 2 }
131 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 325 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -