16进制串口编码

16进制串口编码
16进制串口编码

求助~!!!如何用VB6.0实现串口通信。要求十六进制发送,十六进制接收~!!谢谢高手们~!!!'**********************************

'字符表示的十六进制数转化为相应的整数

'错误则返回 -1

'**********************************

Function ConvertHexChr(str As String) As Integer

Dim test As Integer

test = Asc(str)

If test >= Asc("0") And test <= Asc("9") Then

test = test - Asc("0")

ElseIf test >= Asc("a") And test <= Asc("f") Then

test = test - Asc("a") + 10

ElseIf test >= Asc("A") And test <= Asc("F") Then

test = test - Asc("A") + 10

Else

test = -1 '出错信息

End If

ConvertHexChr = test

End Function

'**********************************

'字符串表示的十六进制数据转化为相应的字节串

'返回转化后的字节数

'**********************************

Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer

Dim HexData As Integer '十六进制(二进制)数据字节对应值

Dim hstr As String * 1 '高位字符

Dim lstr As String * 1 '低位字符

Dim HighHexData As Integer '高位数值

Dim LowHexData As Integer '低位数值

Dim HexDataLen As Integer '字节数

Dim StringLen As Integer '字符串长度

Dim Account As Integer '计数

strTestn = "" '设初值

HexDataLen = 0

strHexToByteArray = 0

StringLen = Len(strText)

Account = StringLen \ 2

ReDim bytByte(Account)

For n = 1 To StringLen

Do '清除空格

hstr = Mid(strText, n, 1)

n = n + 1

If (n - 1) > StringLen Then

HexDataLen = HexDataLen - 1

Exit For

End If

Loop While hstr = " "

Do

lstr = Mid(strText, n, 1)

n = n + 1

If (n - 1) > StringLen Then

HexDataLen = HexDataLen - 1

Exit For

End If

Loop While lstr = " "

n = n - 1

If n > StringLen Then

HexDataLen = HexDataLen - 1

Exit For

End If

HighHexData = ConvertHexChr(hstr)

LowHexData = ConvertHexChr(lstr)

If HighHexData = -1 Or LowHexData = -1 Then '遇到非法字符中断转化 HexDataLen = HexDataLen - 1

Exit For

Else

HexData = HighHexData * 16 + LowHexData

bytByte(HexDataLen) = HexData

HexDataLen = HexDataLen + 1

End If

Next n

If HexDataLen > 0 Then '修正最后一次循环改变的数值

HexDataLen = HexDataLen - 1

ReDim Preserve bytByte(HexDataLen)

Else

ReDim Preserve bytByte(0)

End If

If StringLen = 0 Then '如果是空串,则不会进入循环体

strHexToByteArray = 0

Else

strHexToByteArray = HexDataLen + 1

End If

End Function

以十六进制编码方式进行发送时候,发送的应该是二进制数据流,从textsend文本框中得到的只是String,应该将其转换为Byte Arrey。作为十六进制数,其中应该只包括0~9这10个数字以及A~F,或者a~f这6个字母,为了增强可读性,我们允许其中插入空格,其他的字符则应该视为非法字符。我们约定,从头开始,每两个有效的字符作为一个字节的内容,如果有效字符的总数是奇数,则忽略最后一个单独的字符,若遇到非法字符,则对其后面的字符均不作处理。

上面的函数是实现这两个功能的。

本人想设置2个按钮,其中一个发送,一个接受,都采取十六进制编码方式,但是不知道如何将以上的函数运用进去,求高人指点~!!!本人新手,全班积分送上。

实现的功能非常简单,就希望能够发送和接受十六进制编码方式的字符串,谢谢~!!!!!!!

数码管二进制和十六进制字符编码表

一、数码管显示字符表 一个数码管有八段:a,b,c,d,e,f,g,dp(小数点),即由八段发光二极管组成。 因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个 发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即 为共阴极数码管); 故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管。 其中每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的。 一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。 对于共阳数极码管: 各段选为低电平(即0接地时)选中各数码段, 位选为高电平(即1)选中数码管。 对于共阴极数码管: 各段选为高电平(即1接+5V时)选中各数码段,位选为低电平(即0)选中数码管。 显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。可以看出两个编码的各位正好相反。 字母显示: 共阳极的数码管0~f的段编码:

unsigned char code table[]={ //共阳极0~f数码管编码0xc0,0xf9,0xa4,0xb0,//0~3 0x99,0x92,0x82,0xf8,//4~7 0x80,0x90,0x88,0x83,//8~b 0xc6,0xa1,0x86,0x8e //c~f }; 共阴极的数码管0~f的段编码是: unsigned char code table[]={//共阴极0~f数码管编码0x3f,0x06,0x5b,0x4f, //0~3 0x66,0x6d,0x7d,0x07, //4~7 0x7f,0x6f,0x77,0x7c, //8~b 0x39,0x5e,0x79,0x71 //c~f }; 共阳极数码管字符表

数码管二进制和十六进制字符编码表

精选文档 」、数码管显示字符表 一个数码管有八段:a,b,c,d,e,f,g,dp(小数点),即由八段发光二极管组成。 因为发光二极管导通的方向是一定的(导通电压一般取为 1.7V),这八个 发光二极管的公共端有两种:可以分别接+5V (即为共阳极数码管)或接地(即为共阴极 数码管); 故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管。 其中每个段均有0 (不导通)和1 (导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不 同的。 一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即 a,b,c,d,e,f,g,dp )连在一起,而各自的公共端称为位选线。 对于共阳数极码管: 各段选为低电平(即0接地时)选中各数码段,位选为高电平(即1)选中数码管。 对于共阴极数码管: 各段选为高电平(即1接+5V时)选中各数码段,位选为低电平(即0)选中数码管。 显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的 字符编码为00111111 ,即0x3f ;共阳数码管的字符编码为11000000 ,即0xc0。可以看出两个编码的各位正好相反。 字母显示: /xT J cj ZZ? 9 共阳极的数码管0~f的段编码: 精选文档

unsigned char code table[]={ // 共阳极0~f 数码管编码0xc0,0xf9,0xa4,0xb0,//0~3 0x99,0x92,0x82,0xf8,//4~7 0x80,0x90,0x88,0x83,//8~b 0xc6,0xa1,0x86,0x8e //c~f }; 共阴极的数码管0~f的段编码是: unsigned char code table[]={〃共阴极0~f 数码管编码 0x3f,0x06,0x5b,0x4f, //0~3 0x66,0x6d,0x7d,0x07, //4~7 0x7f,0x6f,0x77,0x7c, //8~b 0x39,0x5e,0x79,0x71 //c~f }; 共阳极数码管字符表

国际标准色卡(16进制代码)

红色和粉红色,以及它们的16进制代码。 #990033 #CC6699#FF6699#FF3366#993366#CC0066#CC0033#FF0066#FF0033#CC3399 #FF3399#FF9999#FF99CC#FF0099#CC3366#FF66CC#FF33CC#FFCCFF#FF99FF#FF00CC 紫红色,以及它们的16进制代码。 #FF66FF#CC33CC#CC00FF#FF33FF#CC99FF#9900CC#FF00FF#CC66FF#990099#CC0099 #CC33FF#CC99CC#990066 #993399#CC66CC#CC00CC#663366 蓝色,以及它们的16进制代码。 #660099 #666FF#000CC #9933CC#666699#660066 #333366 #0066CC#9900FF#333399 #99CCFF#9933FF#330099 #6699FF#9966CC#3300CC #003366 #330033 #3300FF #6699CC #663399#3333FF#006699#6633CC#3333CC#3399CC#6600CC #0066FF#0099CC#9966FF #0033FF #66CCFF#330066 #3366FF#3399FF#6600FF #3366CC#003399 #6633FF#000066 #0099FF#CCCCFF#000033 #33CCFF#9999FF#0000FF #00CCFF#9999CC#000099 #6666CC #0033CC 黄色、褐色、玫瑰色和橙色,以及它们的16进制代码。 #FFFFCC #FFCC00#CC99090#663300 #FF6600#663333#CC6666#FF6666#FF0000#FFFF99 #FFCC66#FF9900#FF9966#CC3300#996666#FFCCCC#660000 #FF3300#FF6666#FFCC33 #CC6600#FF6633#996633#CC9999#FF3333#990000 #CC9966#FFFF33 #CC9933#993300 #FF9933#330000 #993333#CC3333#CC0000#FFCC99#FFFF00 #996600#CC6633 绿色,以及它们的16进制代码。 #99FFFF #33CCCC #00CC99 #99FF99 #009966 #33FF33 #33FF00 #99CC33 #CCC33 #66FFFF #66CCCC #66FFCC #66FF66 #009933 #00CC33 #66FF00 #336600 #33300 #33FFFF #339999 #99FFCC #339933 #33FF66 #33CC33 #99FF00 #669900 #666600 #00FFFF #336666 #00FF99 #99CC99 #00FF66 #66FF33 #66CC00 #99CC00 #999933 #00CCCC #006666 #339966 #66FF99 #CCFFCC #00FF00 #00CC00 #CCFF66 #CCCC66 #009999 #003333 #006633 #33FF99 #CCFF99 #66CC33 #33CC00 #CCFF33 #666633 #669999 #00FFCC #336633 #33CC66 #99FF66 #006600 #339900 #CCFF00 #999966 #99CCCC #33FFCC #669966 #00CC66 #99FF33 #003300 #99CC66 #999900 #CCCC99 #CCFFFF #33CC99 #66CC66 #66CC99 #00FF33 #009900 #669900 #669933 #CCCC00 白色、灰色和黑色,以及它们的16进制代码。 #FFFFF #CCCCCC #999999#666666#333333 #000000 16色和它们的16进制代码。 Aqua Black Fuchsia Gray Gree Lime Maroon Navy Olive Purple Red Silver Teal White Yellow Blue

计算机期末复习题数和编码

数和编码选择题题库 A) K B) a C) h D) H A) 尾数 B) 基数 C) 整数 D) 小数 A) 10010010(B ) B) 221(O ) C) 147 (D ) D) 94 (H ) A) 11111011 B) 10000100 C) 1000010 D) 01111011 A) 八进制 B) 十六进制 C) 十进制 D) 二进制 A) 11110100 B) 11101010 C) 10001010 D) 11100000 A) 256 B) 299 C) 199 D) 312 A) 整数部分和小数部分 B) 阶码部分和基数部分 C) 基数部分和尾数部分 D) 阶码部分和尾数部分 A) 10101010 B) 10101011 C) 10111010 D) 10111011 A) 二进制 B) 八进制 C) 十进制 D) 十六进制 A) R B) R-1 C) R/2 D) R+1 A) 码数 B) 基数 C) 位权 D) 符号数 A) H 、O 分别代表二、八、十、十六进制数 B) 十进制数100用十六进制数可表示为(100)16 C) 在计算机内部也可以用八进制数和十六进制数表示数据 D) 十六进制数AEH 转换成二进制无符号数是10101110B A) 二进制数 B) 八进制数 C) 十进制数 D) 十六进制数

A) 64 B) 63 C) 100 D) 144 A) 8 B) 7 C) 10 D) 16 A) 255 B) 256 C) 127 D) 128 A) 字母符号 B) 数字字符 C) 十进制数 D) 十六进制数 A) 1 B) 2 C) 4 D) 8 A) + B) - C) 0 D) 1 A) 纯小数 B) 负整数 C) 分数 D) 第一小数位是0 的数 A) 汉字 B) 字符 C) 图象 D) 声音 A) a 〈b 〈c B) b 〈a 〈c C) c 〈b 〈a D) a 〈c 〈b A) 计算机不能直接 识别十进制数,但能 直接识别二进制数 和十六进制数 B) ASCII 码和国标码都是对符号的编码 C) 一个ASCII 码由 七位二进制数组成 D) ASCII 码是用每四位一组表示一个十进制数的 A) (101011)2 B) (56)8 C) (40)10 D) (3B)16 A) 257 B) 201 C) 313 D) 296 A) 59 B) 62 C) 69 D) 89 A) 位(比特) B) 字节 C) 字长 D) 千字节

实验1---BCD码转换成十六进制码

实验1---BCD码转换成十六进制码

实验1 BCD码转换成十六进制码 1.实验目的 (1)熟悉编码转换程序 (2)掌握编写和运行子程序的技巧 2实验设备 计算机一台 硬件配置:pentium2及以上配置,内存为128MB,硬盘剩余空间100MB,配置有串口,并口,和USB口 操作系统:Windows98/2000/xp 应用软件:KeilC51 3实验内容 将片内RAM 20H单元中两位BCD码转换成相应的十六进制码,转换结果保存于22H单元 4实验原理提示 常用BCD码转十六进制码的方法为“乘十加数”法。例如,将BCD码10010010(表示十进制数92)转换成十六进制编码表示形式,算法为: Y=(09*0A+02)H=5CH。其中Y H为转换后的 H 十六进制数。再二进制运算中乘法可以用移位(左移)实现,*0A可以写成*08+*02,其中*08

是将被乘数左移3为,*02是将被乘数左移1为。则(09*0A+02) H =(09+08+09*02+02) D =(01001000+00010010+00 000010) B =(01011100) B =5CH。 5.BCD码转换成十六进制码的实验程序流程图如图 6.实验参考程序 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R0,#12H MOV R1,#06H MOV R2,#08H MOV R3,#11H MOV A,R0 ADD A,R2 DA A MOV R2,A ANL A,#0FH MOV R0,A MOV A,R2 ANL A,#0F0H

SWAP A ADD A,R1 ADD A,R3 DA A MOV R3,A ANL A,#0FH MOV R1,A MOV A,R3 MOV R3,#0H ANL A,#0F0H SWAP A MOV R2,A RET END 7.实验要求 (1)掌握编码转换程序的编写方法(2)根据实验任务要求,编制源程序(3)上机调试程序,记录相关调试信息(4)写出实验报告 实验2 排列程序 1.实验目的

16进制色卡表

16进制色卡表 颜色代码表:以下样色显示您可能觉得不够精确,这和电脑显示器有直接关系。您可查看颜色代码,绝对正确,绝无重复。

当你要给你的网页添加颜色时,有时,你能够直接使用该颜色的名称,但是大多情况下,你只能使用十六进制代码来使用这些颜色。(浏览器能够理解这些代码。) 为了方便你去使用这些代码,我们制作了这个列表,右边是颜色,左边是十六进制代码。 #FFFFFF #FFFFCC #FFFF99 #FFFF66 #FFFF33 #FFFF00 #FFCCFF #FFCCCC #FFCC99 #FFCC66 Hex Code Color #CCFFFF #CCFFCC #CCFF99 #CCFF66 #CCFF33 #CCFF00 #CCCCFF #CCCCCC #CCCC99 #CCCC66 #99FFFF #99FFCC #99FF99 #99FF66 #99FF33 #99FF00 #99CCFF #99CCCC #99CC99 #99CC66

#FFCC00 #FF99FF #FF99CC #FF9999 #FF9966 #FF9933 #FF9900 #FF66FF #FF66CC #FF6699 #FF6666 #FF6633 #FF6600 #FF33FF #FF33CC #FF3399 #FF3366 #FF3333 #FF3300 #FF00FF #FF00CC #FF0099 #FF0066 #FF0033 #FF0000 #CCCC00 #CC99FF #CC99CC #CC9999 #CC9966 #CC9933 #CC9900 #CC66FF #CC66CC #CC6699 #CC6666 #CC6633 #CC6600 #CC33FF #CC33CC #CC3399 #CC3366 #CC3333 #CC3300 #CC00FF #CC00CC #CC0099 #CC0066 #CC0033 #CC0000 #99CC00 #9999FF #9999CC #999999 #999966 #999933 #999900 #9966FF #9966CC #996699 #996666 #996633 #996600 #9933FF #9933CC #993399 #993366 #993333 #993300 #9900FF #9900CC #990099 #990066 #990033 #990000

各种颜色十六进制代码表

各种颜色十六进制代码表

#FFFFFF #FFFFCC #FFFF99 #FFFF66 #FFFF33 #FFFF00 #FFCCFF #FFCCCC #FFCC99 #FFCC66 #FFCC33 #FFCC00 #FF99FF #FF99CC #FF9999 #FF9966 #FF9933 #FF9900 #FF66FF #FF66CC #FF6699 #FF6666 #FF6633 #FF6600 #FF33FF #FF33CC #FF3399 #FF3366 #FF3333 #FF3300 #FF00FF #99FFFF #99FFCC #99FF99 #99FF66 #99FF33 #99FF00 #99CCFF #99CCCC #99CC99 #99CC66 #99CC33 #99CC00 #9999FF #9999CC #999999 #999966 #999933 #999900 #9966FF #9966CC #996699 #996666 #996633 #996600 #9933FF #9933CC #993399 #993366 #993333 #993300 #9900FF

#FF00CC #FF0099 #FF0066 #FF0033 #FF0000 #9900CC #990099 #990066 #990033 #990000

#663366 #663333 #663300 #6600FF #6600CC #660099 #660066 #660033 #660000#003366 #003333 #003300 #0000FF #0000CC #000099 #000066 #000033 #000000

转换带十六进制Unicode编码字符串文件的Java程序

将十六进制Unicode编码字符串文件转换为可读文件的 Java程序 事情起因就是我手头有好些文件都带有Unicode编码字符串,具体显示效果是这样的:”\u51fd\u6570\u529f\u80fd\uff1a\u8df3\u8f6c\u81f3\u5176\u4ed6\u9875\u9762“。 嗯,很糟糕,这样是不能看的,所以我简单的写了个程序,自动转换一下带十六进制Unicode编码字符串文件,支持文件夹嵌套。没准以后还能用着,就稍微整理了一下。 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { /** * 将带十六进制Unicode编码字符串文件转换为可读文件 * @param res 源文件 * @param tar 目标文件 */ public static void changeFile(File res, File tar) { if(res != null && res.isFile()) { try { FileInputStream fis = new FileInputStream(res); FileOutputStream fos = new FileOutputStream(tar); byte[] buff = new byte[fis.available()]; while (fis.read(buff) != -1) { String s = new String(buff);

16进制串口编码

求助~!!!如何用VB6.0实现串口通信。要求十六进制发送,十六进制接收~!!谢谢高手们~!!!'********************************** '字符表示的十六进制数转化为相应的整数 '错误则返回 -1 '********************************** Function ConvertHexChr(str As String) As Integer Dim test As Integer test = Asc(str) If test >= Asc("0") And test <= Asc("9") Then test = test - Asc("0") ElseIf test >= Asc("a") And test <= Asc("f") Then test = test - Asc("a") + 10 ElseIf test >= Asc("A") And test <= Asc("F") Then test = test - Asc("A") + 10 Else test = -1 '出错信息 End If ConvertHexChr = test End Function '********************************** '字符串表示的十六进制数据转化为相应的字节串 '返回转化后的字节数 '********************************** Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer Dim HexData As Integer '十六进制(二进制)数据字节对应值 Dim hstr As String * 1 '高位字符 Dim lstr As String * 1 '低位字符 Dim HighHexData As Integer '高位数值 Dim LowHexData As Integer '低位数值 Dim HexDataLen As Integer '字节数 Dim StringLen As Integer '字符串长度 Dim Account As Integer '计数 strTestn = "" '设初值 HexDataLen = 0 strHexToByteArray = 0

相关主题
相关文档
最新文档