📄 12864
字号:
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 12864_串行C51演蔩程序
OBJECT MODULE PLACED IN 12864 串行C51演示程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864 串行C51演示程序.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************
2 Copyright 2007 普兰工作室
3 All rights reserved.
4
5 文件名 : st7920serial.c
6 模块名称:st7920 串行方式驱动12864液晶驱动
7 功能概要:st7920显示驱动、ds1302驱动、ds18b20驱动 显示时间,温度
8
9 取代版本:0.0.1
10 修改人 :pulan
11 完成日期:2007.07.08
12 升级说明:create
13 CPU: stc89c58 主频:11.0592M
14 液晶型号: 生产厂家: 驱动芯片:st7920
15 ******************************************************************************/
16
17 #include <reg52.h>
18 #include <stdlib.h>
19 #include <intrins.h>
20 #include <stdio.h>
21
22 sbit CS =P2^1;
23 sbit SCK=P2^4;
24 sbit SID=P2^2;
25 sbit Key=P1^1;
26
27 unsigned char code AC_TABLE[]={
28 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第一行汉字位置
29 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第二行汉字位置
30 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, //第三行汉字位置
31 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, //第四行汉字位置
32 };
33 unsigned char code str2[]="欢迎光临sunson!!";
34 unsigned char code str1[]="黄河远上白云间,一片孤城万仞山。羌笛何须怨杨柳,春风不度玉门关。";
35 unsigned char code bmp1[];
36
37 /******************************************************************************************
38 * 函数名称 :SendByte
39 * 功能描述 :串口发送一个字节
40 * 参数 : 参数名称: 输入/输出? 类型 描述
41 *
42 * 返回值 :
43 * 作者 :
44 * 创建日期 :2006-12-19
45 * 全局变量 :
46 * 全局静态变量:
47 * 局部静态变量:
48 *----------------------------------------修改历史------------------------------------------
49 * 当前版本 : 修改人: 修改日期:
50 * 修改说明 :
51 ******************************************************************************************/
52 void SendByte(unsigned char Dbyte)
53 {
54 1 unsigned char i;
55 1 for(i=0;i<8;i++)
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 2
56 1 {
57 2 SCK = 0;
58 2 Dbyte=Dbyte<<1; //左移一位
59 2 SID = CY; //移出的位给SID
60 2 SCK = 1;
61 2 SCK = 0;
62 2 }
63 1 }
64
65 /******************************************************************************************
66 * 函数名称 :ReceiveByte
67 * 功能描述 :串口接收一个字节
68 * 参数 : 参数名称: 输入/输出? 类型 描述
69 * 仅在读取数据的时候用到
70 * 而读出的数据是一次只能读出4bit的
71 * 返回值 :
72 * 作者 :
73 * 创建日期 :2006-12-19
74 * 全局变量 :
75 * 全局静态变量:
76 * 局部静态变量:
77 *----------------------------------------修改历史------------------------------------------
78 * 当前版本 : 修改人: 修改日期:
79 * 修改说明 :
80 ******************************************************************************************/
81 unsigned char ReceiveByte(void)
82 {
83 1 unsigned char i,temp1,temp2;
84 1 temp1=temp2=0;
85 1 for(i=0;i<8;i++)
86 1 {
87 2 temp1=temp1<<1;
88 2 SCK = 0;
89 2 SCK = 1;
90 2 SCK = 0;
91 2 if(SID) temp1++;
92 2 }
93 1 for(i=0;i<8;i++)
94 1 {
95 2 temp2=temp2<<1;
96 2 SCK = 0;
97 2 SCK = 1;
98 2 SCK = 0;
99 2 if(SID) temp2++;
100 2 }
101 1 return ((0xf0&temp1)+(0x0f&temp2));
102 1 }
103 /******************************************************************************************
104 * 函数名称 :CheckBusy
105 * 功能描述 :
106 * 参数 : 参数名称: 输入/输出? 类型 描述
107 *
108 * 返回值 :
109 * 作者 :
110 * 创建日期 :2006-12-19
111 * 全局变量 :
112 * 全局静态变量:
113 * 局部静态变量:
114 *----------------------------------------修改历史------------------------------------------
115 * 当前版本 : 修改人: 修改日期:
116 * 修改说明 :
117 ******************************************************************************************/
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 3
118 void CheckBusy( void )
119 {
120 1 do SendByte(0xfc); //11111,RW(1),RS(0),0
121 1 while(0x80&ReceiveByte()); //BF(.7)=1 Busy
122 1 }
123 /******************************************************************************************
124 * 函数名称 :WriteCommand
125 * 功能描述 :
126 * 参数 : 参数名称: 输入/输出? 类型 描述
127 *
128 * 返回值 :
129 * 作者 :
130 * 创建日期 :2006-12-19
131 * 全局变量 :
132 * 全局静态变量:
133 * 局部静态变量:
134 *----------------------------------------修改历史------------------------------------------
135 * 当前版本 : 修改人: 修改日期:
136 * 修改说明 :
137 ******************************************************************************************/
138 void WriteCommand( unsigned char Cbyte )
139 {
140 1 CS = 1;
141 1 CheckBusy();
142 1 SendByte(0xf8); //11111,RW(0),RS(0),0
143 1 SendByte(0xf0&Cbyte); //高四位
144 1 SendByte(0xf0&Cbyte<<4);//低四位(先执行<<)
145 1 CS = 0;
146 1 }
147 /******************************************************************************************
148 * 函数名称 :WriteData
149 * 功能描述 :
150 * 参数 : 参数名称: 输入/输出? 类型 描述
151 *
152 * 返回值 :
153 * 作者 :
154 * 创建日期 :2006-12-19
155 * 全局变量 :
156 * 全局静态变量:
157 * 局部静态变量:
158 *----------------------------------------修改历史------------------------------------------
159 * 当前版本 : 修改人: 修改日期:
160 * 修改说明 :
161 ******************************************************************************************/
162 void WriteData( unsigned char Dbyte )
163 {
164 1 CS = 1;
165 1 CheckBusy();
166 1 SendByte(0xfa); //11111,RW(0),RS(1),0
167 1 SendByte(0xf0&Dbyte); //高四位
168 1 SendByte(0xf0&Dbyte<<4);//低四位(先执行<<)
169 1 CS = 0;
170 1 }
171 /******************************************************************************************
172 * 函数名称 :ReadData
173 * 功能描述 :
174 * 参数 : 参数名称: 输入/输出? 类型 描述
175 *
176 * 返回值 :
177 * 作者 :
178 * 创建日期 :2006-12-19
179 * 全局变量 :
C51 COMPILER V7.50 12864_串行C51演蔩程序 07/24/2007 11:25:30 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -