新人求教

新人求教,老师留的作业。。。_vb吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:94,864贴子:
新人求教,老师留的作业。。。收藏
vb上位机串口通信,下面是程序,不知道那块程序对应那个控件。。。特地求教吧里大神。。Dim HzStr1() As String '从文本中取出的中文存放的一个数组
Dim N As Byte '文本计数用hzLen()
Dim ZMHP(), ZMSP(), ZMVH() As Byte '定义横/竖排字存放的树组
Dim Hzk166() As Byte '字库数组
Dim SWidth As Integer
Dim Spre As Integer
Dim SPre8 As Integer
Dim SPreChr As Integer
Dim Text1Focus As Boolean
Dim send_data() As Byte
'需要通过串口发送的单字节数据存储在该数组里面
Dim uart_i, uart_j As Integer
'控制对ZMHP( , )数组里面的数据进行提取发送
Dim send_sum As Integer
'对32个字节进行求和Private Sub Command1_Click()SaveChineseIf N = 0 Then
If Len(Text2.Text) && 0 Then
Text2.Text = ""
MsgBox "不支持ASCII字符(半角字符)" & vbCrLf & vbCrLf & "支持全角字符及汉字!", vbCritical
Text2.SetFocus
MsgBox "发送数据为空,请填写要发送的数据"
' MSComm1.Output = Trim(Text2.Text)' For i = 1 To N Step 1 ' For j = 1 To 32 Step 1' Text1.Text = Text1.Text & Str(ZMHP(i, j))' Next ' Next
Chinese2HData '横向顺序取模 放入ZMHP中
PrintHData
'输出ZMHP JD
'MsgBox "stdio:" & ZMHP(1, 32)
'Text1.Text = Text1.Text & vbCrLf
'使接收区换行End SubPrivate Sub Command2_Click()'Dim i, j As IntegerReDim send_data(0)send_data(0) = &HFF
'发送数据开始的标志MSComm1.Output = send_data'MsgBox "dee" & Nsend_data(0) = N
'有多少汉字需要发送MSComm1.Output = send_dataEnd SubPrivate Sub Command3_Click() If MSComm1.PortOpen = False Then
If Combo1.Text = "COM1" Then
' 设置通信端口号为COM1ElseIf Combo1.Text = "COM2" Then
' 设置通信端口号为COM2ElseIf Combo1.Text = "COM3" Then
' 设置通信端口号为COM3ElseIf Combo1.Text = "COM4" Then
' 设置通信端口号为COM4ElseIf Combo1.Text = "COM5" Then
' 设置通信端口号为COM5ElseIf Combo1.Text = "COM6" Then
' 设置通信端口号为COM6ElseIf Combo1.Text = "COM7" Then
' 设置通信端口号为COM7ElseIf Combo1.Text = "COM8" Then
' 设置通信端口号为COM8ElseIf Combo1.Text = "COM9" Then
' 设置通信端口号为COM9End IfIf Combo2.Text = "4800" ThenMSComm1.Settings = "4800,n,8,1"
'设置串口参数ElseIf Combo2.Text = "9600" ThenMSComm1.Settings = "9600,n,8,1"
'设置串口参数ElseIf Combo2.Text = "11520" ThenMSComm1.Settings = "11520,n,8,1"
'设置串口参数ElseIf Combo2.Text = "19200" ThenMSComm1.Settings = "19200,n,8,1"
'设置串口参数ElseIf Combo2.Text = "115200" ThenMSComm1.Settings = "115200,n,8,1"
'设置串口参数End If MSComm1.InputMode = 0
'接收文本型数据 MSComm1.RThreshold = 1
'接收缓冲区每收到一个字符都会使 MSComm 控件触发OnComm 事件
MSComm1.PortOpen = True
'打开通信端口
Shape1.FillColor = RGB(255, 0, 0)
'设置串口关闭的标志-灯
Command3.Caption = "关闭串口"
ElseIf MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
'关闭通信端口
Shape1.FillColor = RGB(0, 0, 0)
'设置串口关闭的标志-灯
Command3.Caption = "打开串口" End IfEnd SubPrivate Sub Form_Load()Text3.Text = ""Text2.Text = ""Text1.Text = ""'***********************************************************************************************
Dim ZitiPath
As String '字体所在路径
ZitiPath = App.Path & "\" & "HZK16.GBK" '
'===============
'读取字库到数组
Dim intFileNum
intFileNum = FreeFile '空闲文件号
Open ZitiPath For Binary As #intFileNum
Sum = LOF(intFileNum)
If Sum && 766080 Then
Close #intFileNum
Kill ZitiPath
Dim tmpFileName As String
tmpFileName = "HZK16.GBK (748 KB (766,080 字节))"
MsgBox vbCrLf & "请将汉字库文件" & tmpFileName & "放入当前目录中!" & IIf(Sum && 0, vbCrLf & "错误字库(大小: " & Sum & " 字节 )已删除!", ""), vbExclamation, tmpFileName & "未找到!!
ReDim Hzk166(1 To Sum)
'按文件长度定义数组
Get #intFileNum, , Hzk166 '存入到数组 Hzk166
Close #intFileNum '关闭字库文件,防止发生错误'******************************************************************************
' 设置通信端口号为COM1
MSComm1.Settings = "9600,n,8,1"
'设置串口参数
MSComm1.InputMode = 0
'接收文本型数据
MSComm1.RThreshold = 1
'接收缓冲区每收到一个字符都会使 MSComm 控件触发OnComm 事件
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
'打开通信端口1
Shape1.FillColor = RGB(0, 0, 0)
'设置串口关闭的标志-灯
Command3.Caption = "打开串口"
End IfEnd SubPrivate Sub MSComm1_OnComm()ReDim send_data(0)Dim buf As VariantDim rx_data As ByteDim check As Byte
'对下面的32个字节数据相异或,然后发完32个字节数据后,发送该数据。下位机通过该数据验证接收到的32个数据是否正确check = 0Select mEvent
Case comEvReceive
' buf = Trim(MSComm1.Input)
'将缓冲区内的数据读入buf变量中
buf = MSComm1.Input
rx_data = AscB(buf)
send_sum = 0
If rx_data &= N Then
Text3.Text = Str(rx_data)
'显示当前发送了几个汉字
uart_i = rx_data
For uart_j = 1 To 32 Step 1
send_data(0) = ZMHP(uart_i, uart_j)
MSComm1.Output = send_data
check = check Xor send_data(0)
Picture2.Width = (((uart_i - 1) * 32 + uart_j) / (32 * N)) * 2000
'设置进度条的宽度,以此说明当前数据接收了多少
send_data(0) = check
'发送校验用的数据,确保数据发送的正确
MSComm1.Output = send_data
If rx_data = &H55 Then
'如果接收到了0x55说明单片机已经接收完了数据,接收结束
uart_i = 1
uart_j = 1
MsgBox "接收数据完成---" & N
'弹出对话框告知发送完成,并显示发送的数据
End IfEnd Select'Text1.Text = Text1.Text & buf
'在接收区显示接收到的数据'Text1.SelStart = Len(Text1)
'使接收区每次接收到数据后都定位在最新接收的数据,而不是从第一行显示End SubPrivate Sub MSComm1_Click()End SubPrivate Sub Picture2_Click()Picture2.Width = 0End SubPrivate Sub Text1_DblClick()Text1.Text = ""End SubPrivate Sub Text2_DblClick()Text2.Text = ""End Sub'******************************************************************************Function SaveChinese()'======================='从Text1中找出汉字,存放到HzStr1数组中'汉字个数存放到 N 中
ReDim HzStr1(0)
Dim UboundStr1, i
For i = 1 To Len(Text2.Text)
If Asc(Mid(Text2.Text, i, 1)) & 0 Then
UboundStr1 = UBound(HzStr1) + 1
ReDim Preserve HzStr1(UboundStr1)
HzStr1(UboundStr1) = Mid(Text2.Text, i, 1) '把汉字存入数组中.
N = UboundStr1End Function'*********************************************************************'========================' 汉字顺序横排取模,存放到ZMHP数组中' 读字模文件存放到Hzk166中' 找到汉字字模位置,并按行顺序存放到ZMHP(汉字个数,32)数组中Function Chinese2HData() '转化为横排取模
Dim Address
'存放在hzk16中的地址
Dim QWM, QM, WM
'文件长度,区位码,区码,位码
Dim i, j As Integer
ReDim ZMHP(1 To N, 1 To 32) '定义数组 N维
'===================
'获取汉字区位码
For i = 1 To UBound(HzStr1)
QWM = Hex(Asc(HzStr1(i)))
QWM = Right("0000" & QWM, 4)
QM = Val("&H" & Left(QWM, 2)) '区码
WM = Val("&H" & Right(QWM, 2)) '位码
Dim X, Y, Z, M'++++++++++++++++++++++++++++++++++++++++++++++++++'XYZM的原始表达式'
If WM & &HA0 Then'
Y = WM - &HA1'
If QM & &HA0 Then'
X = QM - &HA1'
X = QM - &H81'
Z = &H2284'
If WM & &H7F Then'
Y = WM - &H41'
Y = WM - &H40'
If QM & &HA0 Then'
X = QM - &HA1'
Z = &H3A44'
X = QM - &H81'
Z = &H2E44'
End If'++++++++++++++++++++++++++++++++++++++++++++++++++
X = QM - IIf(QM & &HA0, &HA1, &H81)
Y = WM - IIf(WM & &HA0, &HA1, IIf(WM & &H7F, &H41, &H40))
Z = IIf(WM & &HA0, IIf(QM & &HA0, 0, &H2284), IIf(QM & &HA0, &H3A44, &H2E44))
M = IIf(WM & &HA0, &H5E, &H60)
Address = (X * M + Y + Z) * 32'
Debug.Print Hex(Address)'--------------------------------------------------------------------
For j = 1 To 32 '每个字为32个字节
ZMHP(i, j) = Hzk166(Address + j)
'将点阵数据存入,数组
NextEnd Function'============================='输出横排取模的数组ZMHP数据,并用Shape1 显示Function PrintHData() '打印HData
Dim S As String '存放原码
Dim I2, i, j As Integer 'for计数器
Dim tmpStr As String
'临时字符 存放zmhp(j)
For I2 = 1 To N
'S = S & "DB
S = S & "{"
For j = 1 To 32
tmpStr = Hex(ZMHP(I2, j))
tmpStr = Right("00" & tmpStr, 2) '格式化该字符,长度不为2用0补.
'==================左侧字符表显示该字符
'S = S & "0" & tmpStr & "H,"
S = S & "0x" & tmpStr & ","
If j = 16 Then
'S = S & ";" & HzStr1(I2) & vbCrLf & "DB
S = S & "},//" & HzStr1(I2) & vbCrLf & "{"
'S = S & ";" & HzStr1(I2) & vbCrLf
S = S & "},//" & HzStr1(I2) & vbCrLf
'Text2(1) = Replace(S, ",;", " ;")
Text1 = Replace(S, ",},//", "},//")End FunctionPrivate Sub Timer1_Timer()If Picture2.Width &= 1900 ThenPicture2.Width = 0End IfEnd Sub
vb编程,上海达内12校区,就近安排.包食宿.先就业后付款.88天零基础入门到精通.&免费试学&.vb编程,0基础变月薪翻番,高就业,官方认证首页咨询.
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或新人求教,一个很基础的问题_百度知道新人求教,如图_文明5吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:120,858贴子:
新人求教,如图
当前历史估计永久移除 是什么意思?吓得我都不敢铺城了
新人 给我来套 新手跑图点
一二排是背景颜色三四排...
简单练习~~新手勿喷 ~~...
其实我在很久很久以前就...
新人新年祝大家新年快乐...
LZ 在【贴吧】内整理出...
完美吧对新人热情吗?
我可不是说着玩的
首先是喜闻乐见ak系列
关于这个显卡了
购正品手机-来「天猫手机馆」,低价享好礼,好货不限量,分期免息,超值实惠,买的放心!「天猫手机馆」正品手机,全国联保,支持花呗分期付款,7天无理由退换货!
坐在考古上了吧
历史古迹,估计是翻译错误吧
翻译有错误吧,推测是“历史古迹”被永久移除。意思是你铺城的地方原来有坟可挖,你在上面建城就会破坏原来的历史遗迹。
翻译醉了。。 我记得还有个,自由佣兵只能用井壁购买
这翻译也是醉了。。。
你坐城的地方是当前线的收束点,如果你无视警告硬要坐城的话,城市建筑带来的巨大压力会破坏此处历史架构的四维伪黎曼流形完整性,抹除之前的游戏进程并依据与进行世界观的重构,如果处理不慎的话甚至会影响到现实世界的热力学时间箭头方向——所以请LZ一定要小心啊,我们的世界存亡与否就靠你啦
你坐的地方是之前烧掉的城的遗址,历史古迹将永久移除这个意思,你该去换汉化
其实就是说这地方以前有城被烧了。。。应该是这样,不太确定。
无所谓的,意思是说以前这个地方是敌人的城市所在地,占了吧,不会有任何影响(有可能底下有考古)
我想说,都这时候了你还在铺城?
贴吧热议榜
使用签名档&&
保存至快速回贴新人求教_reassembly吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,689贴子:
Reassembly is developed by ___ Games: 这个到底怎么回答 卡了两天了 跪求啊
0基础电脑培训——变身高富帅!
anisoptera
贴吧热议榜
使用签名档&&
保存至快速回贴新人求教,一个很基础的问题_百度知道

我要回帖

更多关于 最谦虚的求教打一成语 的文章

 

随机推荐