?? dianzi.lst
字號:
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DIANZI
OBJECT MODULE PLACED IN dianzi.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE dianzi.c BROWSE DEBUG OBJECTEXTEND TABS(11)
stmt level source
1 #include <reg51.h>
2 #include <intrins.h>
3 #define nop() _nop_()
4 #define uint unsigned int
5 #define uchar unsigned char
6 #define ulong unsigned long
7 #define USED_BYTE_QTY_IN_ONE_SECTOR 128
8 sfr ISP_DATA = 0xe2; /* ISP_DATA DATA 0E2H; 匯編程序定義 or EQU */
9 sfr ISP_ADDRH = 0xe3; /* ISP_ADDRH DATA 0E3H; 匯編程序定義 */
10 sfr ISP_ADDRL = 0xe4; /* ISP_ADDRL DATA 0E4H; 匯編程序定義 */
11 sfr ISP_CMD = 0xe5; /* ISP_CMD DATA 0E5H; 匯編程序定義 */
12 sfr ISP_TRIG = 0xe6; /* ISP_TRIG DATA 0E6H; 匯編程序定義 */
13 sfr ISP_CONTR = 0xe7; /* ISP_CONTR DATA 0E7H; 匯編程序定義 */
14
15 #define READ_Command 0x01 /* 字節讀應用程序區和數據存儲區 */
16 #define PROGRAM_Command 0x02 /* 字節編程應用程序區和數據存儲區 */
17 #define ERASE_Command 0x03 /* 扇區擦除應用程序區和數據存儲區 */
18
19 #define ERROR 0 //錯誤
20 #define OK 1 //正確
21 uchar xdata protect_buffer[USED_BYTE_QTY_IN_ONE_SECTOR];
22 //typedef unsigned char INT8U; /* 8 bit 無符號整型 */
23 //typedef unsigned int INT16U; /* 16 bit 無符號整型 */
24
25 uchar Write_flash(uint begin_addr, uint counter, uchar array[]);
26
27 uchar Read_flash(uint begin_addr, uint counter, uchar array[]); //讀FLASH
28
29 // #define DEBUG_AP_Memory_Begin_Sector_addr 0x0000
30 // #define DEBUG_AP_Memory_End_Sector_addr 0x7e00
31 // #define DEBUG_AP_Memory_End_Byte_addr 0x7fff
32
33 // #define DEBUG_Data_Memory_Begin_Sector_addr 0x8000
34 // #define DEBUG_Data_Memory_End_Sector_addr 0xf600
35 // #define DEBUG_Data_Memory_End_Byte_addr 0xf7ff
36 #define WAIT_TIME 0x00
37
38 sbit SCLK = P2^5;//1302端口設置
39 sbit IO = P2^6;
40 sbit RST = P2^7;
41 sbit RECLED = P2^0;//1420端口設置
42 sbit PLAYL = P2^1;
43
44 sbit ADCCS=P3^3; //AD0832端口設置
45 sbit ADCCLK=P3^4;
46 sbit ADCDO=P3^5;
47 sbit DIN = P2^2; //7219端口設置
48 sbit LOAD = P2^3;
49 sbit CLK = P2^4;
50 uint Con_Data = 0;
51 float Vref = 4.5;
52 void Display( void );
53 void delay( uchar n );
54 void WriteByte( uchar D );
55 void Keyboard();
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 2
56 void naozhong();
57 uchar ReadByte( void );
58 //sbit P3_4 = P3^4;
59 void WriteDate( uchar Add , uchar Date );
60 uchar ReadDate( uchar Add );
61 void SetTime( uchar Hour , uchar Min , uchar Sec );
62 uchar hour,min,sec,yuanma= 20,k;
63 bit keybuttflag=1,keybuttmima=0;
64 bit flag=0;
65 void GetTime( void );
66 uchar scan();
67 //code uchar DispCode[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
68 uchar DispBuf[8]={1,2,3,4,5,6,7,8};
69 uchar cunmima[6]={0,0,0,0,0,0};
70 uchar naoling[5][4] = {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};
71 uchar fangyin[9];
72
73 //sbit LED = P1^0;
74 void Write7129( uchar Add, uchar Data );
75 void Init7219( void );
76 void desips7219();
77 void DelayMs( uchar n );
78 void temp1();
79 void int0();
80 void Init1302(void);
81 void Data_Process(void);
82 uchar Re_Data();
83
84 uint code Play_temp[19] = {0x00,0x04,0x08,0x0c,0x10,0x14,0x17,0x1b,0x1f,0x22,0x26,0x2a,
85 0x2d,0x31,0x35,0x40,0x44,0x48,0x4c};//"0~10,點、分、秒、現在時間是、零晨、上午,晚上、下午、"
86 uchar temp[10] = {14,1,2,3,4,5,6,0,0,0}; //'現在時間是' '上午/下午/晚上/零晨' '0~10'
87 //sbit PLAYL = P0^7;
88 uchar counter,Play_counter,ctr_temp=1,Play_num; //報時
89 void ProcessPlay();
90
91
92 main()
93 {
94 1
95 1 yuanma= 20;
96 1 delay( 100 );
97 1 Init1302( );
98 1 Init7219( );
99 1
100 1 GetTime();
101 1
102 1 delay( 100 );
103 1 int0();
104 1 temp1();
105 1 while(1)
106 1 {
107 2 Data_Process();
108 2 GetTime();
109 2 Keyboard();
110 2 naozhong();
111 2 }
112 1
113 1 }
114 void desips7219()
115 {
116 1
117 1 Write7129( 0x01 , DispBuf[0] );
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 3
118 1 Write7129( 0x02 , DispBuf[1]|0x80 );
119 1 Write7129( 0x03 , DispBuf[2] );
120 1 Write7129( 0x04 , DispBuf[3]|0x80 );
121 1 Write7129( 0x05 , DispBuf[4] );
122 1 Write7129( 0x06 , DispBuf[5]|0x80 );
123 1 Write7129( 0x07 , DispBuf[6] );
124 1 Write7129( 0x08 , DispBuf[7] );
125 1
126 1 }
127 void temp1()
128 {
129 1 EA = 1;
130 1 PT0 = 1;
131 1 TR0= 1;
132 1 TMOD = 0X19;
133 1 TL0 = 0x00;
134 1 TH0 = 0x00;
135 1 }
136 void int0()
137 {
138 1 EA = 1;
139 1 EX0 = 1;
140 1 PX0 = 1;
141 1 IT0 = 1;
142 1 }
143
144 /************************************************************
145 1302設置
146 ************************************************************/
147
148 void delay( uchar n )
149 {
150 1 uchar i;
151 1 while( n-- )
152 1 {
153 2 for( i = 0 ; i < 125 ; i++ )
154 2 ;
155 2 }
156 1 }
157 uchar ReadByte( void )
158 {
159 1 uchar i, sbuf = 0;
160 1 IO=1;
161 1 for( i = 0 ; i < 8 ; i++)
162 1 {
163 2 SCLK = 1;
164 2 _nop_();
165 2 SCLK = 0;
166 2 sbuf = sbuf >> 1;
167 2 if(IO == 1)
168 2 sbuf = sbuf | 0x80;
169 2 }
170 1
171 1 return sbuf;
172 1 }
173 void WriteByte( uchar D )
174 {
175 1 uchar i;
176 1
177 1 for( i = 0 ; i < 8 ; i++ )
178 1 {
179 2 IO = 1;
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 4
180 2 if( (D & 0x01) != 0x01)
181 2 IO = 0;
182 2 SCLK = 0;
183 2 _nop_();
184 2 _nop_();
185 2 SCLK = 1;
186 2 D >>= 1 ;
187 2 }
188 1 }
189
190 void WriteDate( uchar Add , uchar Date )
191 {
192 1 SCLK = 0 ;
193 1 RST = 0 ;
194 1 _nop_();
195 1 _nop_();
196 1 RST = 1 ;
197 1 _nop_();
198 1 WriteByte( Add );
199 1 WriteByte( Date );
200 1 }
201 uchar ReadDate( uchar Add )
202 {
203 1 uchar Rec;
204 1 SCLK = 0 ;
205 1 RST = 0 ;
206 1 _nop_();
207 1 _nop_();
208 1 RST = 1 ;
209 1 _nop_();
210 1 WriteByte( Add );
211 1 Rec = ReadByte();
212 1 return Rec;
213 1 }
214 void Init1302(void)
215 {
216 1 WriteDate( 0x8e , 0);
217 1 WriteDate( 0x90 , 0xab);
218 1
219 1 }
220 void SetTime( uchar Hour , uchar Min , uchar Sec )
221 {
222 1 WriteDate( 0x84 , Hour);
223 1 WriteDate( 0x82 , Min);
224 1 WriteDate( 0x80 , Sec);
225 1 WriteDate( 0x8c , 0x08);
226 1 WriteDate( 0x88 , 0x05);
227 1 WriteDate( 0x86 , 0x13);
228 1 }
229 void GetTime( void )
230 {
231 1 uchar Time;
232 1 Time = ReadDate( 0x85 );
233 1 DispBuf[0] = (Time&0xf0) >> 4;
234 1 DispBuf[1] = Time & 0x0f;
235 1 Time = ReadDate( 0x83 );
236 1 DispBuf[2] = (Time&0xf0) >> 4;
237 1 DispBuf[3] = Time & 0x0f;
238 1 Time = ReadDate( 0x81 );
239 1 DispBuf[4] = (Time&0xf0) >> 4;
240 1 DispBuf[5] = Time & 0x0f;
241 1 desips7219();
C51 COMPILER V7.06 DIANZI 08/21/2008 22:03:20 PAGE 5
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -