📄 duziku.lst
字号:
C51 COMPILER V8.02 DUZIKU 04/10/2008 10:43:46 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE DUZIKU
OBJECT MODULE PLACED IN .\xiazai\duziku.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE daima\duziku.c BROWSE DEBUG OBJECTEXTEND PRINT(.\duziku.lst) OBJECT(.\xiaza
-i\duziku.obj)
line level source
1 #include"reg51.h"
2 //#include "INTRINS.H"
3
4 extern void sendcmd(unsigned char cmd);
5 extern void sendaddress(unsigned long address);
6
7
8 sbit LA=P1^0;
9 sbit LD=P1^3;
10
11 sbit Data=P2^5; //595数据线
12 sbit CS=P3^3; //595输出线
13 sbit CLK=P3^2; //595移位时钟线
14 sbit OE=P3^5; //138的使能
15 sbit Data1=P3^4;
16 bit gundong=0;//16点阵汉字向左滚动显示切换标志(功能键F11实现切换)
17 bit shangfan=0;//16点阵汉字上翻显示切换标志(功能键F10实现切换)
18
19
20
21
22 // 读字库芯片****************************************
23 sbit GT32_CS=P1^4; //字库芯片使能
24 sbit GT32_CLK=P1^5; //字库芯片时钟线
25 sbit GT32_SI=P1^7; //字库芯片输入数据线
26 sbit GT32_SO=P1^6; //字库芯片输出数据线
27
28 extern unsigned char xdata zimoku[3][128];
29 extern unsigned char page;
30
31
32
33
34
35
36 //*********************8X16 点扩展字符在芯片中的字节地址的计算***********
37 unsigned long kuozimuaddress(unsigned char LSB)
38 {
39 1 unsigned long Address;
40 1 if (LSB>=0x20&&LSB<=0x7E) //内码为20H~7E 的95 个ASC 字符
41 1 Address=(LSB-0x20)*16+0x1DD780;
42 1 return(Address);
43 1 }
44 //******************************************************************
45
46
47 //****************读一个8x16国际音标字符字母字模(16个字节)********
48 void jiegjzimu_fun(unsigned char zishu)
49 {
50 1 unsigned i,j,DATA=0;
51 1
52 1 GT32_CS=0;
53 1 GT32_CLK=1;
54 1 GT32_CLK=0;
C51 COMPILER V8.02 DUZIKU 04/10/2008 10:43:46 PAGE 2
55 1
56 1
57 1 for(i=0;i<16;i++)
58 1 {
59 2 for(j=0;j<8;j++)
60 2 {
61 3 GT32_CLK=0;
62 3 if(GT32_SO)
63 3 DATA=DATA|0x01;
64 3 if(i==0&&j==0)DATA=DATA&0xfe;
65 3
66 3 GT32_CLK=1;
67 3 if(j!=7) DATA=DATA<<1;
68 3 }
69 2
70 2 zimoku[page][zishu/2*32+i*2+zishu%2]=DATA;
71 2
72 2
73 2 DATA=0;
74 2
75 2 }
76 1
77 1 GT32_CS=1;
78 1 }
79 //*******************************************************************
80 /*消除某一个字母的显示字模库*/
81 void Clear_one_zimu(unsigned char ge)
82 {
83 1 xdata unsigned char i=0;
84 1 for(i=0;i<16;i++)
85 1 zimoku[page][ge/2*32+i*2+ge%2]=0;
86 1 }
87
88
89
90
91
92
93 //********************* //15x16点阵汉字字模地址计算**********************
94 unsigned long getaddress(unsigned char MSB,unsigned char LSB)
95 {
96 1 unsigned long BaseAdd=0x02C9D0;
97 1 unsigned long Address;
98 1 if(MSB>=0xA1&&MSB<=0xAB&&LSB>=0xA1)
99 1 Address=(((unsigned long)MSB-0xA1)*94+((unsigned long)LSB-0xA1))*32+BaseAdd;
100 1 else if(MSB>=0xB0&&MSB<=0xF7&&LSB>=0xA1)
101 1 Address=(((unsigned long)MSB-0xB0)*94+((unsigned long)LSB-0xA1)+846)*32+BaseAdd;
102 1 return(Address);
103 1
104 1 }
105 //************************************************************
106
107 //*读一个15x16汉字字模(32个字节)*********************
108 void jiehanzi_fun(unsigned char zishu)
109 {
110 1 unsigned char i,j,DATA=0;
111 1 GT32_CS=0;
112 1 GT32_CLK=1;
113 1 for(i=0;i<32;i++)
114 1 {
115 2 for(j=0;j<8;j++)
116 2 {
C51 COMPILER V8.02 DUZIKU 04/10/2008 10:43:46 PAGE 3
117 3 GT32_CLK=0;
118 3 if(GT32_SO)
119 3 DATA=DATA|0x01;
120 3 else DATA=DATA|0x0;
121 3
122 3 GT32_CLK=1;
123 3 if(j!=7) DATA=DATA<<1;
124 3 }
125 2 zimoku[page][zishu*32+i]=DATA;
126 2 DATA=0;
127 2 }
128 1
129 1 GT32_CS=1;
130 1 }
131 //*******************************************************************
132
133
134
135
136
137 //*****************将一个8x16的拼音字母读到显示缓冲区disp_down***************
138 void Readtodisp_kuodown(unsigned char ASCIICode,unsigned char count)
139 {
140 1 unsigned long kuozimuAdd=0;
141 1 kuozimuAdd=kuozimuaddress(ASCIICode);
142 1 sendcmd(0x03);
143 1 sendaddress(kuozimuAdd);
-
-
144 1 jiegjzimu_fun(count);
145 1 }
146
147 void Readtodisp_hanzi(unsigned char *hzstr)
148 {
149 1 int i=0;
150 1 for(i=0;i<4;i++)
151 1 {
152 2
153 2 sendcmd(0x03);
154 2 sendaddress(getaddress(*(hzstr+i*2),*(hzstr+i*2+1)));
155 2 jiehanzi_fun(i);
156 2 }
157 1 }
158
159 void Clear_all(void)
160 {
161 1 unsigned char i=0,j=0;
162 1 for(i=0;i<3;i++)
163 1 for(j=0;j<128;j++)
164 1 zimoku[i][j]=0x00;
165 1 }
166
167
168
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 776 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 1
PDATA SIZE = ---- ----
DATA SIZE = ---- 26
C51 COMPILER V8.02 DUZIKU 04/10/2008 10:43:46 PAGE 4
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -