?? text145.lst
字號:
C51 COMPILER V7.06 TEXT145 03/30/2009 21:07:39 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE TEXT145
OBJECT MODULE PLACED IN Text145.OBJ
COMPILER INVOKED BY: F:\Keil C51\C51\BIN\C51.EXE Text145.C LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /////////////////////////////////////
-
2 // Generated Initialization File //
-
3 /////////////////////////////////////
-
4 #include "reg52.h"
-
5 #include"data.h"
-
6 //unsigned char N=17; //要顯示的漢字的個數
7 #define N 18
8 #include <stdio.h>
9 #define uchar unsigned char
10 #define uint unsigned int
11
12 #define MAX_LEN 34//每次接收/發送字符串的長度
13 bit readFlag = 0;//讀標志
14 uchar readCounts = 0;//已經讀取的字符個數,與MAX_LEN比較
15 uchar idata trdata[MAX_LEN];//要接收/發送的字符串
16
-
17 long int yidong=0;
-
18 sbit clk=P1^4;
-
19 sbit com=P1^3;
-
20 sbit RCLK1=P1^0;
-
21 sbit SRCLK =P1^1;
-
22 sbit DATA =P1^2;
23
24 unsigned char lie=0;
25 unsigned int sum=0;
26 unsigned char a;
-
27
28 void UART0_ISR();//串口中斷服務程序,接收字符
29 void Send_Char(uchar ch);//發送單個字符
30
31
32 void Send_Char(unsigned char ch)
33 {
34 1 SBUF = ch;//送入緩沖區
35 1 while(TI == 0);//等待發送完畢
36 1 TI = 0;//軟件清零
37 1 }
38
39 void delay(unsigned char k)
40 {
41 1
42 1 while(k--);
43 1 }
C51 COMPILER V7.06 TEXT145 03/30/2009 21:07:39 PAGE 2
44
45 //*****************************************************************
46 //向595發送16位數據
47 // y 為偏移量
48 //****************************************************************
49 void send(unsigned char *D,unsigned char l,unsigned char y)
50 {
51 1 unsigned char m=0,a=y/16,b=y%16,c=0,dat1,dat2,cen[17]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
52 1
53 1 if(l<(16-b))c=0;
54 1 else
55 1 {
56 2 c=1;
57 2 l=l+b-16;
58 2 b=0;
59 2 }
60 1 dat1=*(D+a*32+l+c*32+b);
61 1 dat2=*(D+a*32+l+c*32+b+16);
62 1 P3=0xff;
63 1 P2=0xfe;
64 1 for(m=0;m<8;m++)
65 1 {
66 2 cen[8+m]=(dat1>>m)&0x01;
67 2 }
68 1
69 1 for(m=0;m<8;m++)
70 1 {
71 2 cen[m]=(dat2>>m)&0x01;
72 2 }
73 1 cen[16]=cen[0];
74 1 RCLK1=0;
75 1 for(m=0;m<16;m++)
76 1 {
77 2 SRCLK=0;
78 2 SRCLK=1;
79 2 DATA=cen[m+1];
80 2 }
81 1 RCLK1=1;
82 1 }
83
84 //UART0中斷服務程序. 接收字符
85
86 void UART_ISR(void) interrupt 4 using 1
87 {
88 1 uchar rxch;
89 1 if(RI)//中斷標志 RI0=1 數據完整接收
90 1 {
91 2 RI = 0;//軟件清零
92 2 rxch = SBUF;//讀緩沖
93 2 //SBUF0=rxch;
94 2 if(readCounts>MAX_LEN)
95 2 {
96 3 readCounts = 0;
97 3 readFlag = 1;
98 3 }
99 2 if(readCounts=MAX_LEN)
*** WARNING C276 IN LINE 99 OF TEXT145.C: constant in condition expression
100 2 {
101 3 a=rxch;
102 3 }
103 2 trdata[readCounts] = rxch;//存入數組,供發送
104 2 readCounts++;
C51 COMPILER V7.06 TEXT145 03/30/2009 21:07:39 PAGE 3
105 2 //N=1;
106 2 }
107 1 for(readCounts=1;readCounts<MAX_LEN-1; readCounts++)
108 1 {
109 2 sum=sum+trdata[readCounts];
110 2 }
111 1 if(sum!=trdata[MAX_LEN-1])
112 1 {
113 2 Send_Char(15);
114 2 }
115 1 }
116
117
118 void main(void)
119 {
120 1 unsigned char m=0;
121 1 /*IE = 0x92;
122 1 TMOD =0x21;
123 1 TCON = 0x10;
124 1 // unsigned int i;
125 1 SCON=0x50;
126 1 PCON=0;
127 1 // REN=1;
128 1 TH1=0xfd;
129 1 TL1=0xfd;
130 1 TI=1;
131 1 TR1=1;
132 1 PS=1;
133 1 TL0 = 0x76;
134 1 TH0 = 0xd6;*/
135 1 IE=0x82;
136 1 TCON = 0x10;
137 1 TMOD = 0x09;
138 1 TL1 = 0x12;
139 1 TH1 = 0x00;
140 1 while(1)
141 1 {
142 2 com=1;
143 2 for(lie=0;lie<16;lie++)
144 2 {
145 3 send(DAT,lie,yidong);
146 3 clk=0;
147 3 clk=1;
148 3 com=0;
149 3 delay(5);
150 3 }
151 2 }
152 1 }
153
154
155
156 void aa(void) interrupt 1
157 {
158 1 yidong++;
159 1 if(yidong>=16*(N-1)) yidong=0;
160 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 673 ----
CONSTANT SIZE = 561 ----
XDATA SIZE = 9 28
C51 COMPILER V7.06 TEXT145 03/30/2009 21:07:39 PAGE 4
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = 34 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -