📄 串行12864显示.lst
字号:
C51 COMPILER V7.50 串行12864显蔩 09/09/2009 22:31:00 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 串行12864显蔩
OBJECT MODULE PLACED IN 串行12864显示.OBJ
COMPILER INVOKED BY: C:\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 ***********************************************************************/
7 #include <reg52.h>
8 #include <intrins.h>
9 #define uchar unsigned char
10 #define uint unsigned int
11
12 sbit CS=P2^5; //片选信号
13 sbit SID=P2^6; //数据信号
14 sbit SCLK=P2^7; //时钟信号
15 sbit RST=P2^2; //复位信号
16 sbit CH = P2^4; //并行、串行选择信号
17
18 /********************************************************************
19 * 名称 : delay()
20 * 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。
21 * 输入 : t
22 * 输出 : 无
23 ***********************************************************************/
24 void delay(unsigned int t)
25 {
26 1 unsigned int i,j;
27 1 for(i=0; i<t; i++)
28 1 for(j=0; j<10; j++);
29 1 }
30
31 /********************************************************************
32 * 名称 : sendbyte()
33 * 功能 : 按照液晶的串口通信协议,发送数据
34 * 输入 : zdata
35 * 输出 : 无
36 ***********************************************************************/
37 void sendbyte(unsigned char zdata)
38 {
39 1 unsigned int i;
40 1 for(i=0; i<8; i++)
41 1 {
42 2 if((zdata << i) & 0x80)
43 2 {
44 3 SID = 1;
45 3 }
46 2 else
47 2 {
48 3 SID = 0;
49 3 }
50 2 SCLK = 0;
51 2 SCLK = 1;
52 2 }
53 1 }
54
55 /********************************************************************
C51 COMPILER V7.50 串行12864显蔩 09/09/2009 22:31:00 PAGE 2
56 * 名称 : write_com()
57 * 功能 : 写串口指令
58 * 输入 : cmdcode
59 * 输出 : 无
60 ***********************************************************************/
61 void write_com(unsigned char cmdcode)
62 {
63 1 CS = 1;
64 1 sendbyte(0xf8);
65 1 sendbyte(cmdcode & 0xf0);
66 1 sendbyte((cmdcode << 4) & 0xf0);
67 1 delay(2);
68 1 }
69
70 /********************************************************************
71 * 名称 : write_data()
72 * 功能 : 写串口指令
73 * 输入 : cmdcode
74 * 输出 : 无
75 ***********************************************************************/
76 void write_data(unsigned char Dispdata)
77 {
78 1 CS = 1;
79 1 sendbyte(0xfa);
80 1 sendbyte(Dispdata & 0xf0);
81 1 sendbyte((Dispdata << 4) & 0xf0);
82 1 delay(2);
83 1 }
84
85 /********************************************************************
86 * 名称 : lcdinit()
87 * 功能 : 初始化函数
88 * 输入 : cmdcode
89 * 输出 : 无
90 ***********************************************************************/
91 void lcdinit()
92 {
93 1 RST = 0;
94 1 delay(100);
95 1 RST = 1;
96 1 delay(20000);
97 1 write_com(0x30);
98 1 delay(50);
99 1 write_com(0x0c);
100 1 delay(50);
101 1 }
102
103 /********************************************************************
104 * 名称 : hzkdis()
105 * 功能 : 显示字符串
106 * 输入 : *s
107 * 输出 : 无
108 ***********************************************************************/
109 void hzkdis(unsigned char code *s)
110 {
111 1 while(*s > 0)
112 1 {
113 2 write_data(*s);
114 2 s++;
115 2 delay(50);
116 2 }
117 1 }
C51 COMPILER V7.50 串行12864显蔩 09/09/2009 22:31:00 PAGE 3
118
119 /********************************************************************
120 * 名称 : Test()
121 * 功能 : 显示子函数
122 * 输入 : 无
123 * 输出 : 无
124 ***********************************************************************/
125 void Test()
126 {
127 1 write_com(0x03);
128 1 delay(50);
129 1 write_com(0x81);
130 1 hzkdis(" HOT-51");
131 1 write_com(0x91);
132 1 hzkdis("单片机开发板");
133 1 write_com(0x89);
134 1 hzkdis(" ");
135 1 write_com(0x98);
136 1 hzkdis(" 东流电子");
137 1 }
138
139
140 /********************************************************************
141 * 名称 : Main()
142 * 功能 : 主函数
143 * 输入 : 无
144 * 输出 : 无
145 ***********************************************************************/
146 void Main()
147 {
148 1 CH = 0;
149 1 delay(1);
150 1 lcdinit();
151 1 delay(10);
152 1 while(1)
153 1 {
154 2 Test();
155 2 delay(5000);
156 2 }
157 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 280 ----
CONSTANT SIZE = 47 ----
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 + -