📄 test3pin.lst
字号:
C51 COMPILER V7.07 TEST3PIN 06/08/2005 02:52:56 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE TEST3PIN
OBJECT MODULE PLACED IN test3pin.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE test3pin.c OPTIMIZE(6,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define uchar unsigned char
2 #define uint unsigned int
3 #define ulong unsigned long
4 #include <reg52.h>
5 sbit MCLK=P3^5;
6 sbit SCLK=P3^6;
7 sbit SDA=P3^7;
8 uchar bdata DATA;
9 sbit BIT0=DATA^0;
10 sbit BIT7=DATA^7;
11 // 发送一个数据到模块
12 putbytespi(uchar ch)
13 {
14 1 uchar i;
15 1 uint c;
16 1
17 1 if(!MCLK)return; //
18 1 MCLK=0; //申请通讯
19 1 DATA=ch;
20 1
21 1 for(i=4;i!=0;i--)
22 1 {
23 2 while(SCLK); //检测从机响应
24 2
25 2 SDA=BIT0; //放一个bit到SDA
26 2 MCLK=1;
27 2 DATA=DATA>>1; //准备下一个bit
28 2
29 2 while(!SCLK); //检测从机响应
30 2
31 2 SDA=BIT0; //放一个bit到SDA
32 2 MCLK=0;
33 2 DATA=DATA>>1; //准备下一个bit
34 2 }
35 1 while(SCLK); //检测从机收完
36 1 MCLK=1;
37 1 while(!SCLK);//等待从机准备好
38 1 SDA=1;
39 1 }
*** WARNING C280 IN LINE 15 OF TEST3PIN.C: 'c': unreferenced local variable
40
41 //从模块接收一个数据
42 //调用之前最好检测MCLK是否为0(对方是否申请数据通讯)再进入,否则里面是死等此信号!
43 uchar getbytespi()
44 {
45 1 uchar i;
46 1
47 1 while(MCLK);
48 1 SCLK=0; //接受通讯
49 1
50 1 for(i=4;i!=0;i--)
51 1 {
52 2 DATA=DATA>>1; //准备下一个bit
53 2 while(!MCLK); //检测主机放数据
54 2 BIT7=SDA;//收一个bit
C51 COMPILER V7.07 TEST3PIN 06/08/2005 02:52:56 PAGE 2
55 2 SCLK=1;
56 2
57 2 DATA=DATA>>1; //准备下一个bit
58 2 while(MCLK); //检测从机响应
59 2 BIT7=SDA; //收一个bit
60 2 SCLK=0;
61 2 }
62 1
63 1 while(!MCLK); //检测从机收完
64 1 SCLK=1;
65 1 return(DATA);
66 1 }
67
68 //显示国标字符串
69 lcd_gbstring(uchar *pst)
70 {
71 1 uchar i;
72 1 putbytespi(0x1b);
73 1 putbytespi(0x37);
74 1 putbytespi(0x00);
75 1 for(i=0;*pst!=0;i++)
76 1 {
77 2 putbytespi(*pst);
78 2 pst++;
79 2 }
80 1 putbytespi(0x00);
81 1 }
82
83 //显示unicode串
84 lcd_unicodestring(uchar n,uchar *pst)
85 {
86 1 uchar i;
87 1 putbytespi(0x1b);
88 1 putbytespi(0x4e);
89 1 putbytespi(0x00);
90 1 putbytespi(n);
91 1 for(i=0;i<n*2;i++)
92 1 {
93 2 putbytespi(*pst);
94 2 pst++;
95 2 }
96 1
97 1 }
98
99 //定义一个国标字符串
100 uchar code gb2312[]="abc123汉显液晶真好用。";
101 //定义一个unicode字符串"字符串abcABC123内码转换《》?。【】¥!☆●★◆◇㈠⑴⑵㈡〖〗{}№§"
102 //1b 4e 00 27 5B 57 7B 26 4E 32 00 61 00 62 00 63 00 41 00 42 00 43 00 31 00 32 00 33 51 85 78 01 8F 6C 63
- 62 30 0A 30 0B FF 1F 30 02 30 10 30 11 FF E5 FF 01 26 06 25 CF 26 05 25 C6 25 C7 32 20 24 74 24 75 32 21 30 16 30 17 FF
- 5B FF 5D 21 16 00 A7
103 uchar code unicode[]={0x5B,0x57,0x7B,0x26,0x4E,0x32,0x00,0x61,0x00,0x62,0x00,0x63,0x00,0x41,0x00,0x42,0x00
-,0x43,0x00,0x31,0x00,0x32,0x00,0x33,0x51,0x85,0x78,0x01,0x8F,0x6C,0x63,0x62,0x30,0x0A,0x30,0x0B,0xFF,0x1F,0x30,0x02,0x30
-,0x10,0x30,0x11,0xFF,0xE5,0xFF,0x01,0x26,0x06,0x25,0xCF,0x26,0x05,0x25,0xC6,0x25,0xC7,0x32,0x20,0x24,0x74,0x24,0x75,0x32
-,0x21,0x30,0x16,0x30,0x17,0xFF,0x5B,0xFF,0x5D,0x21,0x16,0x00,0xA7};
104
105 uchar code dx58[3] _at_ 0x3b; //这句dx58仿真器调试需要
106 main()
107 {
108 1 uchar i;
109 1 uint n;
110 1
111 1 for(i=0;i<3;i++) //闪灯3下
C51 COMPILER V7.07 TEST3PIN 06/08/2005 02:52:56 PAGE 3
112 1 {
113 2 putbytespi(0x1b);
114 2 putbytespi(0x25);
115 2 putbytespi(0x01);
116 2
117 2 for(n=0;n<30000;n++);
118 2
119 2 putbytespi(0x1b);
120 2 putbytespi(0x25);
121 2 putbytespi(0x00);
122 2
123 2 for(n=0;n<30000;n++);
124 2 }
125 1
126 1 while(1)
127 1 {
128 2 //清屏
129 2 putbytespi(0x1b);
130 2 putbytespi(0x32);
131 2
132 2 for(n=0;n<60000;n++);
133 2 //显示一个GB2312数据串
134 2 lcd_gbstring(gb2312);
135 2
136 2
137 2 for(n=0;n<60000;n++);
138 2
139 2 //显示一个unicode数据串
140 2 lcd_unicodestring(0x27,unicode);
141 2
142 2 for(n=0;n<60000;n++);
143 2
144 2
145 2
146 2 }
147 1 }
148
149
150
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 417 ----
CONSTANT SIZE = 101 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -