毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

基于单片机的LED三文动态信息显示系统 第6页

更新时间:2009-5-31:  来源:毕业论文
基于单片机的LED三文动态信息显示系统 第6页
19
ADDR=32*((CLng("&H"&QM))*94+(CLng("&H"&WM)))`求出偏移地址
Open App.Path+"\HZK16"For Binary As#1`打开字库文件HZK16
J=LOF(1)
ReDim BYTES(1 To J)`获取字库数据
Get#1,,BYTES
Close#1
For I=1 To 32
ZMDZ(I)=BYTES(ADDR+I)
Next
End Sub
3.5.2横排点阵的转置处理
由于设计中显示系统的需要,必须对提取出来的汉字字模点阵进行转置处理。VB6.0
虽然提供了较强的位运算功能,但是对于在字模转换中使用较多的移位操作,却没有提供
对应的移位元运算符、指令或函数。其实通过and(与)、or(或)两个位运算符即可编
制一个自定义子函数来实现移位元运算。现给出一个左移函数的程序清单:
Public Function byte left(byte1 As Byte,n As Integer)As Byte'将byte1左移n位
Dim item As Byte'临时变量
Dim intem1 As Byte'临时变量
Dim x,y As Integer
intem1=byte1
For x=1 To n'移多少位就循环多少次
For y=8 To 1 Step-1'从第八位(左边第一位)开始循环左移
Select Case y
Case 8
If(intem1 And&H80)=&H80 Then'如果临时变量intem1的第八位是1
item=&H1'则将临时变量item置1
Else
item=&H0'反之置0
End If
Case 7
If(intem1 And&H40)=&H40 Then'如果临时变量intem1的第七位是1
intem1=intem1 Or&H80'则将其第八位置1(其它位不变)
Elsewww.751com.cn学位论文
20
intem1=intem1 And&H7F'反之将第八位置0(其它位不变)
End If
Case 6
If(intem1 And&H20)=&H20 Then'操作与上面相同
intem1=intem1 Or&H40
Else
intem1=intem1 And&HBF
End If
Case 5
If(intem1 And&H10)=&H10 Then
intem1=intem1 Or&H20
Else
intem1=intem1 And&HDF
End If
Case 4
If(intem1 And&H8)=&H8 Then
intem1=intem1 Or&H10
Else
intem1=intem1 And&HEF
End If
Case 3
If(intem1 And&H4)=&H4 Then
intem1=intem1 Or&H8
Else
intem1=intem1 And&HF7
End If
Case 2
If(intem1 And&H2)=&H2 Then
intem1=intem1 Or&H4
Else
intem1=intem1 And&HFB
End If
Case 1
If(intem1 And&H1)=&H1 Then
intem1=intem1 Or&H23汉字点阵字模的获取
21
Else
intem1=intem1 And&HFD
End If
If item=&H1 Then'移完第一位后,如果item是1(即第八位是1)
intem1=intem1 Or&H1'则将intem1的第一位置1
Else
intem1=intem1 And&HFE'反之置0
End If
End Select
Next y
Next x
byte left=intem1'将intem1的值返回给函数名
End Function
在上面的程序中,尤其需要注意的是当把二进制数据写入文件中时,必须使用Byte
数据类型的数组变量,而不是String变量。虽然String变量被认为是包含字符的,但二进
制型数据可能无法正确地存在String变量中。
按照类似的方法,也很容易编写出右移函数byte right。当正确地读出汉字在16点阵
字库中32个字节的字模数据后,要把其转换成所需的竖排格式,需要用到上面的左移函
数left right和右移函数byte right。用左移函数left right来表示整个流程是由低位向高位
移动,最后凑成一个字节。用右移函数byte right将字节中的某位移到最低位。以下便是
将UCDOS7.0字库的存储格式调整为所需的规范格式的程序代码:
For j=0 To 3
If j=0 Then k4=14
If j=1 Then k4=15
If j=2 Then k4=30
If j=3 Then k4=31
For k=0 To 7
bit=&H80
bit=byteRight((bit),(k))
For i=0 To 7
k2=byteleft(Buf1(j*8+k),1)'整个流程是由低位向高位移动,最后凑成一个字节
k3=byteRight((Hz(k4-i*2)And bit),7-k)'将字节中的某位移到最低位
k3=k3 And&H1'屏蔽掉其余7位
Buf1(j*8+k)=k2 Or k3
Next iwww.751com.cn学位论文
Next k
Next j
For i1=0 To 31'将调整后的汉字字模再装入原数组
Hz(i1)=Buf1(i1)
HzAll(LoopAll*32+i1)=Buf1(i1)
Next
Next LoopAll
Open TempDestFile For Binary Access Write As#1'转换结果保存到TempDestFile中
Put#1,1,HzAll
Close#1
MsgBox"OK!"
End sub(源程序详见程序附录)
以上程序均在中文VB6.0专业版及WINDOWS-XP上调试通过,且取得了良好的效果,
正如图3-4所示。
图3-4转置后的字模点阵代码
Fig.3-4 Regulated Chinese character lattice

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于单片机的LED三文动态信息显示系统 第6页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。