




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、喷漆机器人的控制程序 轧钢机的工况在线监测程序 加热炉出钢机控制系统等 所编制的100多套程序应用在各个领域 孙志辉 机械工程学院机械装备与控制工程系 机电楼81562332835 机械设计及理论专业博士毕业,目前主要 从事机电设备的监测与控制研究 计算机基础知识 计算机主要接口知识 机电系统的控制对象 控制与检测信号 控制软件开发工具 控制系统示例 进制与编码及其转换 逻辑运算与应用 计算机中数的表示 综合示例 汉字显示 浮点格式转换 进制 进位基数:表示一位所需要使用的符号数量 权:某一位所代表的值 十进制D:0、1、2、3、4、5、6、7、8、9 二进制B:0、
2、1 十六进制H:09,A、B、C、D、E、F 八进制O: 07 编码 BCD码:每一位十进制数用四位二进制表示 ASCII码:对常用字符的编码 汉字编码:两位扩展ASCII码表示一个汉字 UNICODE编码:16位编码 vDBCS编码(8、16位编码) 不同进制、编码之间的相互转换 s1 = “” 转换成二进制 d1=123 Do x1 = d1 Mod 2 s1 = s1+Chr$(x1 + 48) d1 = d1 2 If d1 = 0 Then Exit Do Loop l1 = Len(s1) For i = 1 To l1 s2 = s2 + Mid$(s1, l1 - i + 1,
3、 1) Next i 除以2,余数存x1,商存d1 把每步余数组合成字符串s1 把字符串s1反序,存s2 s1 = “” 转换成八进制 d1 = 1234 Do x1 = d1 Mod 8 s1 = s1 + Chr$(x1 + 48) d1 = d1 8 If d1 = 0 Then Exit Do Loop l1 = Len(s1) For i = 1 To l1 s2 = s2 + Mid$(s1, l1 - i + 1, 1) Next i 除以8,余数存x1,商存d1 把每步余数组合成字符串s1 把字符串s1反序,存s2 s1 = 转换成十六进制 d1 =1234 Do x1 = d
4、1 Mod 16 If x1 = 0 And s1 = A And s1 = a And s1 10 Then 计算数的位数l1 l1 = 1 Do temp1 = temp1 / 10 l1 = l1 + 1 If temp1 10 Then Exit Do Loop Else l1 = 1 End If ReDim d2(l1 - 1) temp1 = d1 For i = 1 To l1 d2(i - 1) = temp1 10 (l1 - i) s1 = s1 + t1(d2(i - 1) temp1 = temp1 Mod 10 (l1 - i) Next i For i=0 to
5、1 d2(2*i)=d3(i) and a(61H)A(41H); a(61H) 0(30H)0(30H)、1 1、2 2 LF(0AH)LF(0AH)、CR(ODH)CR(ODH)、 ESC(1BH)ESC(1BH)、 SPACE(20H)SPACE(20H)、 BS(08H)BS(08H)、NUL(00H)NUL(00H) 扩展ASCII码(128255) 制表符号制表符号/ /特殊符号特殊符号 ASCII码表 ASCII 字符表 000001010011100101110111 0000NULDLESP0Pp 0001SOHDC1!1AQaq 0010STXDC22BRbr 0011ET
6、XDC3#3CScs 0100EOTDC4$4DTdt 0101ENGNAK%5EUeu 0110ACKSYNKk 1100FFFS,Nn 1111SIUS/?OoDEL 注:H表示高3 位,L表示低4 位。 H L 扩展ASCII码表 BCD码加上48变成ASCII码 ASCII码减去48变成BCD码 GB2312 汉字编码 区位码 (94区94位) 115区:符号 1659区:一级汉字(拼音排序) 6094区:二级汉字(偏旁排序) 机内码 (2个字节) 1:区码160 2:位码160 字模 点阵 矢量 不能任意缩放 可任意缩放 TureType字体 汉字库:所有汉字的字模按照 区位码的顺序
7、保存在一起 16、24、32 啊:1601,机内码为B0 A1H 北:1717,机内码为B1 B1H 输入 保 存 显示 打印 轮廓 汉字显示(16点阵北) 查找或计算汉字的的区位码 计算该汉字字模在汉字库中的起始位置 北:17 17 从汉字库中读出该汉字32字节的字模数据 按每行两个字节,将为1的各位用颜 色填入16乘16的表格 48640(16*94+16)*32(BE00H) 04 80 04 80 04 88 04 98 04 A0 7C C0 04 80 04 80 04 80 04 80 04 80 04 80 1C 82 E4 82 44 7E 00 00 汉字显示(16点阵京)
8、 查找或计算汉字的的区位码 计算该汉字字模在汉字库中的起始位置 北:30 09 从汉字库中读出该汉字32字节的字模数据 按每行两个字节,将为1的各位用颜 色填入16乘16的表格 87488(29*94+08)*32(155C0H) 02 00 01 00 01 04 FF FE 00 10 1F F8 10 10 10 10 10 10 1F F0 01 00 09 40 09 30 11 18 25 08 02 00 hanziDBCS = StrConv(hanziStr, vbFromUnicode) Qu = AscB(LeftB(hanziDBCS, 1) - 160 Wei = A
9、scB(MidB(hanziDBCS, 2, 1) - 160 Ip = (Qu - 1) * 94 + Wei HanziKu = App.Path If Right$(HanziKu, 1) Then HanziKu = HanziKu + HanziKu = HanziKu + hzk16 Open HanziKu For Random As #1 Len = 32 Get #1, Ip, hanziData Close #1 Picture1.Cls Picture1.DrawWidth = 1 For i = 1 To 14 Picture1.Line (i, 0)-(i, 15)
10、Picture1.Line (0, i)-(15, i) Next i Picture1.DrawWidth = 15 For i = 0 To 15 For j = 0 To 1 For k = 0 To 7 If (hanziData(i * 2 + j) And 2 (7 - k) 0 Then Picture1.PSet (j * 8 + k, i), RGB(255, 0, 0) End If Next k Next j Next i Picture1.DrawWidth = 1 汉字的新编码 GBK GB18030(强制标准) 1995年,21003个汉字 是GB2312的扩充 W
11、indows98系统 2000年,27484个汉字 包括蒙、藏、维等文字 WindowsXP系统 单字节 双字节 四字节 00-7FH 81-FEH 40-FEH(除7FH) 81-FEH 30-39H 81-FEH 30-39H ASCII码 日、韩文 字符的其它编码 ANSI编码:实际就是GBK码(中文) ISO-8859:8位,ASCII码加特殊国家语言 ISO-8859-1:西欧、非洲,即Latin-1 ISO-8859-2:东欧,即Latin-2 UNICODE编码:16位编码 UTF-8:以1到3个字节转换 UTF-16:同UNICODE DBCS编码(8、16位编码) 中、日、韩
12、、台湾版本 Windows系统 0000-007F: 0 xxxxxxx 0080-07FF: 110 xxxxx 10 xxxxxx 0800-FFFF 1110 xxxx 10 xxxxxx 10 xxxxxx 以开始字节区分 FE FF或FF FE:UTF-16 EF BB BF:UTF-8 抗干扰编码 奇偶校验 以信息码中“1”的个数进行判断 只能判断奇数个错误,不能纠错 纵向校验(一位)与横向校验(一组)组合 CRC校验 循环冗余校验 具有纠错能力 CRC编码方法 将待编码的n位信息表示成n-1阶多项式M(x) 将信息码再左移k位:M(x).xk 用k+1位的生成多项式对M(x).x
13、k作模2除,得 到商Q(x)和余数R(x)。 用 M(x).xk 与R(x)作异或运算,得CRC校验码 CRC12:G(x)=x12+x11+x3+x2+x+1 CRC16:G(x)=x16+x15+x2+1 模2除:除的每一步减法不考虑借位 CRC编码步骤 16位CRC变量,初值为&HFFFF 信息字节与CRC变量低8位异或 CRC变量右移一位,如果移出位是1,则CRC变 量与CRC反转多项式异或。重复移动八位。 对所有信息字节重复进行上两步 CRC反转多项式:生成多项式反序,舍去最高位 Function CRC16(data() As Byte, RealDatas As Long, CR
14、CType As Byte) As Variant Dim CRCHi, CRCLo As Byte , CL As Byte, CH As Byte Dim Hi As Byte, Lo As Byte, i As Integer, j As Integer Dim ReturnData(1) As Byte CRCLo = &HFF : CRCHi = &HFF If CRCType=0 then CL = &H01 : CH = &HA0 CRC-16反转多项式码&HA001 Else CL = &H08 : CH = &H84 CRC-CCITT反转多项式码&H8408 End If
15、For i = 0 To RealDatas-1 CRCLo = CRCLo Xor data(i) For j = 0 To 7 Hi = CRCHi : Lo = CRCLo CRCHi = CRCHi 2:CRCLo = CRCLo 2 If (Hi And &H1) = &H1) Then CRCLo= CRCLo Or &H80 If (Lo And &H1) = &H1) Then CRCHi = CRCHi Xor CH : CRCLo = CRCLo Xor CL End If Next j Next i ReturnData(0) = CRC16: ReturnData(1)
16、 = CRC16 CRC16 = ReturnData End Function 逻辑运算 提供了对数据二进制位的操作能力 非运算/与运算/或运算 异或运算 移位运算 正逻辑 负逻辑 基本逻辑运算 逻辑电路是计算机的基本组成电路 加法器 地址译码 高电平表示1;低电平表示0 低电平表示1;高电平表示0 是利用计算机对机电设备控制的基本操作 运算规则(真值表) 非运算 ANOT A 10 01 1 1 0 1 1 0 1 0 0 0 1 0 0 1 0 1 按位取反 对整个数据各位取反 不能实现对指定位的取 反操作 NOT 需要清零的位:0 需要保留的位:1 运算规则(真值表) AB A AND
17、 B 000 010 100 111 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 0 AND 应用 屏蔽(清零/复位) 判断某位是1还是0 x x x x x x x x 0 0 0 0 1 1 1 1 0 0 0 0 x x x x AND 控制信号的通过 =0 x x x x x x x x 0 0 0 0 0 1 0 0 0 0 0 0 0 x 0 0 需要判断的位:1 其它位:0 AND 04H 0 X X 0 X X X X X X X 1 X X X X X AND 根据结果是否为0判断 一次只能判断一位 “1” 1 “0” 1 0
18、0 1 0 控制端为1,信号通过 控制端为0,信号不能通过,输出为0 AND 输入 输出 控制 需要置位的位:1 需要保留的位:0 运算规则(真值表) 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 OR 应用 置位(置1) 控制信号的通过 x x x x x x x x 0 0 1 1 0 0 0 0 x x 1 1 x x x x OR AB A AND B 000 011 101 111 How? 运算规则(真值表) 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 0 0 XOR 应用 全部清零(自异
19、或) 两次异或恢复 0 1 1 0 1 1 1 0 1 1 0 1 1 0 1 0 XOR AB A AND B 000 011 101 110 加密、解密 动画背景恢复 判断是否相等 指定位取反 “0” x x 0 x x 1 x x 0 0 1 0 0 1 0 0 x x 1 x x 0 x x 需要取反的位:1 其它位:0 XOR 可以同时对任意位取反 与11111111异或相当于非运算 CPU内部的减法运算时就采用异或取反 XOR 1 1 “1” 0 1 0 0 1 为“1”,取 反 为“0”,通 过 左移与右移 0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0
20、0 0 1 0 0 将一个16位数分成高低8位 左移:乘2 右移:除2 0 0 0 0 1 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 屏蔽低8位 右移8位 低字节在低地址低字节在低地址 高字节在高地址高字节在高地址 字节:以8位二进制表示 整数:以16位(或32位)二进制表示 长整数
21、:一般以32位或64位二进制表示 最基本的数据单位 存储器的基本单位 01101101 00100100 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 低地址 高地址 基本无符号整数类型 在存储器中存放顺序(IA-32) Big_endian Little_endian 原码:直接将最高位变成1 反码:在正数的二进制码基础上按位取反 补码:在反码基础上加补码:在反码基础上加1 0:正数 1:负数 用最高位表示符号 0 1 1 0 0 1 0 0+100 -1001 1 1 0 0 1 0 01 0 0 1 1 0 1 1 原码反码 0有两个编码 补码:在反码基础上加1 原码与
22、反码的缺点 0 1 1 0 0 1 0 0+100 1 0 0 1 1 1 0 0 1 0 0 1 1 0 1 1反码 0 0 0 0 0 0 0 1 补码 -100 0只有1个编码 求补两次回原值 可用加法器计算减法 机器数 真值 利用补码计算减法(32-64) 写出32的二进制形式 写出64的二进制反码形式 写出64的二进制形式 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0写出64的二进制补码形式 1 1 1 0 0 0 0 0计算(-64)+(+32) 结果取反 0 0 0 1 1 1 1 1 再加1,求出
23、真值 0 0 1 0 0 0 0 0 由机器数求真值,采用取反加1 配合异或操作,可以用加法器实现加减法 整数的表示范围 有符号整数 无符号整数 8位 16位 32位 8位 16位 32位 0255 065535 04G-1 128127 3276832767 2G2G-1 10000000 定义为-128 8位整数扩展成16位整数符号位扩展 1001000111111111 超过范围怎么办? 整数示例 PC机将一长整数送下位机 (下位机采用Big_Endian) ByteToSend(0) = Asc(R) ByteToSend(1) = Asc(1) For i = 0 To 3 Byte
24、ToSend(2 + i) = L 256 (3 - i) L = L Mod 256 (3 - i) Next i 下位机接收到“R1”后按整数处理 怎么办? 82*256+49=21041 表示方法 定点表示法 浮点表示法 将十进制小数化成1.xx乘2n格式 n+127作为阶码 小数点后面的数xx作为尾数 IEEE 754(1985年) 单精度(32位) 7位有效位数 1038 双精度(64位) 15位有效位数 10308 阶码11位 尾数52位 IEEE 754格式说明 阶码E尾数M数值N说明 255 0NaN被0除、负数开方 255=0 1 254任意 0 0 0=00 ). 1.(2
25、 .) 1( 127 M Es ). 0.(2 .) 1( 126 M Es 浮点小数(100.5)示例 01100100.1 1.1001001x26 612713310000101 10010010000000000000000 01000010 11001001 00000000 00000000 二进制形式 指数形式 阶码 尾数 浮点格式 低地址 高地址 00000000 00000000 11001001 01000010 42 C9 00 00 十六进制 分解成整数和小数部分 求小数部分尾数 整数部分求阶码和尾数 由符号位、阶码和尾数组合成 四字节浮点格式 由小数部分求阶码 整数部
26、分为0 由小数部分求尾数组合整数和小数部分尾数 Y N f1=abs(f2): a1 = Fix(f1) a2 = f1 - a1: d1 = a1 l1 = 0 Do If d1 = 0 Then Exit Do d1 = d1 2 l1 = l1 + 1 Loop Ranks = l1 - 1 d2 = a2: t2 = 23 - l1 t1 = 0: Ranks1 = 0 If Ranks 0 Then FoundRank = False Else FoundRank = True End If a1(d1) 保存正的整数部分 a2(d2)保存正的小数部分 d1每次除以2至商为0 除的次数即为阶码(Ranks) 通过右移或除以2求阶码 如果由整数部分求出的阶码小 于0,需要由小数部分重新求 阶码(FoundRank=False) 计算小数部分尾数位数t2 Do d2 = d2 * 2 If FoundRank = False Then If d2 =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 温州市洞头县2024-2025学年四年级数学第二学期期末统考试题含解析
- 昭通职业学院《中外名家教育思想》2023-2024学年第二学期期末试卷
- 采购合同履行风险沟通案例分享重点基础知识点
- 韶关市高三上学期期末统一测试文综地理试题
- 邯郸市鸡泽县第一中学高二上学期期中考试生物试题
- 邯郸市高三上学期摸底考试化学试题
- 班级干部述职报告
- 江苏南京市江宁区2024-2025学年三年级下学期期中英语试题含笔试答案无听力原文无听力音频
- 2025年甘肃省陇南市中考二模英语试题(含答案)
- 2023年滨城区区属国有企业工作人员招聘笔试参考题库附带答案详解
- 屋顶光伏发电系统设计原则与方案
- 保安上墙制度
- T-KTSDN 2401-2024 地面供暖系统清洗维保操作技术服务规范
- 2025年建投国电准格尔旗能源有限公司招聘笔试参考题库含答案解析
- 2025年鹤壁汽车工程职业学院单招职业技能考试题库汇编
- 第11课《山地回忆》课件-2024-2025学年统编版语文七年级下册
- 水电站安全生产培训
- 2025年焦作大学高职单招职业技能测试近5年常考版参考题库含答案解析
- 医院感染的分类及定义
- 2025年国家药品监督管理局特殊药品检查中心招聘6人历年高频重点提升(共500题)附带答案详解
- 兰州铁路局招聘笔试冲刺题2025
评论
0/150
提交评论