📄 串行12864显示.lst
字号:
C51 COMPILER V7.50 串行12864显蔩 04/10/2009 20:11:32 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 串行12864显蔩
OBJECT MODULE PLACED IN 串行12864显示.OBJ
COMPILER INVOKED BY: E:\Program Files\Keil\C51\BIN\C51.EXE 串行12864显示.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************
2 * 文件名 : 串行12864显示.c
3 * 描述 : 该程序实现了12864以串行的方式进行通信。
4 * 创建人 : 东流,2009年4月10日
5 * 版本号 : 2.0
6 * 技术支持论坛:www.zidh.com/bbs(请进入“赞助商板块”中的“东流电子工作室”)
7 * 感谢“中国自动化资讯网”对本工作室的大力支持。
8 ***********************************************************************/
9 #include <reg52.h>
10 #include <intrins.h>
11 #define uchar unsigned char
12 #define uint unsigned int
13
14 sbit CS=P2^5; //片选信号
15 sbit SID=P2^6; //数据信号
16 sbit SCLK=P2^7; //时钟信号
17 sbit RST=P2^4; //复位信号
18 sbit CH = P2^2; //并行、串行选择信号
19
20 /********************************************************************
21 * 名称 : delay()
22 * 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
23 * 输入 : t
24 * 输出 : 无
25 ***********************************************************************/
26 void delay(unsigned int t)
27 {
28 1 unsigned int i,j;
29 1 for(i=0; i<t; i++)
30 1 for(j=0; j<10; j++);
31 1 }
32
33 /********************************************************************
34 * 名称 : sendbyte()
35 * 功能 : 按照液晶的串口通信协议,发送数据
36 * 输入 : zdata
37 * 输出 : 无
38 ***********************************************************************/
39 void sendbyte(unsigned char zdata)
40 {
41 1 unsigned int i;
42 1 for(i=0; i<8; i++)
43 1 {
44 2 if((zdata << i) & 0x80)
45 2 {
46 3 SID = 1;
47 3 }
48 2 else
49 2 {
50 3 SID = 0;
51 3 }
52 2 SCLK = 0;
53 2 SCLK = 1;
54 2 }
55 1 }
C51 COMPILER V7.50 串行12864显蔩 04/10/2009 20:11:32 PAGE 2
56
57 /********************************************************************
58 * 名称 : write_com()
59 * 功能 : 写串口指令
60 * 输入 : cmdcode
61 * 输出 : 无
62 ***********************************************************************/
63 void write_com(unsigned char cmdcode)
64 {
65 1 CS = 1;
66 1 sendbyte(0xf8);
67 1 sendbyte(cmdcode & 0xf0);
68 1 sendbyte((cmdcode << 4) & 0xf0);
69 1 delay(2);
70 1 }
71
72 /********************************************************************
73 * 名称 : write_data()
74 * 功能 : 写串口指令
75 * 输入 : cmdcode
76 * 输出 : 无
77 ***********************************************************************/
78 void write_data(unsigned char Dispdata)
79 {
80 1 CS = 1;
81 1 sendbyte(0xfa);
82 1 sendbyte(Dispdata & 0xf0);
83 1 sendbyte((Dispdata << 4) & 0xf0);
84 1 delay(2);
85 1 }
86
87 /********************************************************************
88 * 名称 : lcdinit()
89 * 功能 : 初始化函数
90 * 输入 : cmdcode
91 * 输出 : 无
92 ***********************************************************************/
93 void lcdinit()
94 {
95 1 RST = 0;
96 1 delay(100);
97 1 RST = 1;
98 1 delay(20000);
99 1 write_com(0x30);
100 1 delay(50);
101 1 write_com(0x0c);
102 1 delay(50);
103 1 }
104
105 /********************************************************************
106 * 名称 : hzkdis()
107 * 功能 : 显示字符串
108 * 输入 : *s
109 * 输出 : 无
110 ***********************************************************************/
111 void hzkdis(unsigned char code *s)
112 {
113 1 while(*s > 0)
114 1 {
115 2 write_data(*s);
116 2 s++;
117 2 delay(50);
C51 COMPILER V7.50 串行12864显蔩 04/10/2009 20:11:32 PAGE 3
118 2 }
119 1 }
120
121 /********************************************************************
122 * 名称 : Test()
123 * 功能 : 显示子函数
124 * 输入 : 无
125 * 输出 : 无
126 ***********************************************************************/
127 void Test()
128 {
129 1 write_com(0x03);
130 1 delay(50);
131 1 write_com(0x81);
132 1 hzkdis("¥超性价比¥");
133 1 write_com(0x91);
134 1 hzkdis("单片机开发板");
135 1 write_com(0x89);
136 1 hzkdis("QQ:85536436");
137 1 write_com(0x98);
138 1 hzkdis("WWW.ZIDH.COM/BBS");
139 1 }
140
141
142 /********************************************************************
143 * 名称 : Main()
144 * 功能 : 主函数
145 * 输入 : 无
146 * 输出 : 无
147 ***********************************************************************/
148 void Main()
149 {
150 1 CH = 0;
151 1 delay(1);
152 1 lcdinit();
153 1 delay(10);
154 1 while(1)
155 1 {
156 2 Test();
157 2 delay(5000);
158 2 }
159 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 280 ----
CONSTANT SIZE = 55 ----
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 + -