




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、喷漆机器人的控制程序轧钢机的工况在线监测程序加热炉出钢机控制系统等所编制的100多套程序应用在各个领域孙志辉机械工程学院机械装备与控制工程系机电楼815机械设计及理论专业博士毕业,目前主要从事机电设备的监测与控制研究计算机基础知识计算机主要接口知识机电系统的控制对象控制与检测信号控制软件开发工具控制系统示例进制与编码及其转换逻辑运算与应用计算机中数的表示综合示例汉字显示浮点格式转换进制进位基数:表示一位所需要使用的符号数量权:某一位所代表的值 十进制D:0、1、2、3、4、5、6、7、8、9二进制B:0、1十六进制H:09,A、B、C、D、E、F八进制O: 07编码B
2、CD码:每一位十进制数用四位二进制表示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, 1) Next i除以2,余数存x1,商存d1把每步余数组合成字符串s1把字符串
3、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 = d1 Mod 16 If x1 = 0 And s1 = A And s1 = a And s1
4、 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 iFor i=0 to 1 d2(2*i)=d3(i) and &HF d3(i) mod 16 d2(2*i+
5、1)=(d3(i) and &HF0) /16 d3(i)16 next i d1=0For i=0 to 3 d1=d1+d2(i)*10(i)Next id4(0)=0: d4(1)=1:d4(2)=3:d4(3)=2:d4(4)=9d4(6)=4: d4(8)=7:d4(10)=6: d4(12)=8:d4(14)=5For i=0 to 1 d2(2*i)=d3(i) and &HF d2(2*i+1)=(d3(i) and &HF0) /16 next i d1=0For i=0 to 3 d1=d1+d4(d2(i)*10(i)Next i0000:0000
6、1:10011:20010:30110:41110:51010:61000:71100:80100:9For i=1 to 4 d2(i-1)=d110(4-i) d1=d1 mod 10(4-i)Next id3(0)=d2(2)*16+d2(3)d3(1)=d2(0)*16+d2(1)将十进制每位保存到4个元素的数组中将数组3、2元素的数组合成1个字节将数组1、0元素的数组合成1个字节4位十进制整数,转换BCD码16位采用16个数字端口输出到LED按个、十、百、千顺序连接0到15口每位按8421输出16个数字口由2个口地址输出不同的连接方式,转换的结果不同输出要求保留一位小数时如何处理?如
7、1234,从数字口0到15分别输出0010 1100 0100 1000如1234,地址1输出34H(52)地址2输出12H(18)(1963)传输/存储/比较字符09的编码,实际上是BCD码的一种7位二进制对常用字符进行统一编码American Standard Code for Information Interchange以8位保存,最高位为0(0-127,128个字符)符号控制字符字母数字ASCII码.(2EH).(2EH)=(3DH)=(3DH)+(2BH)+(2BH)(27H)(27H)”(22H)”(22H)A(41H); a(61H)A(41H); a(61H)0(30H)0(
8、30H)、1 1、2 2LF(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 字符表0000010100111001011101110000NULDLESP0Pp0001SOHDC1!1AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENGNAK%5EUeu0110ACKSYN&6
9、FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?OoDEL注:H表示高3 位,L表示低4 位。HL扩展ASCII码表BCD码加上48变成ASCII码ASCII码减去48变成BCD码GB2312汉字编码区位码(94区94位)115区:符号1659区:一级汉字(拼音排序)6094区:二级汉字(偏旁排序)机内码(2个字节)1:区码1602:位码160字模点阵矢量不能任意缩放可任意缩放TureType字体汉字库:所有汉字的字模按照区位码的顺序保存在一起16、
10、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 8004 80 04 80 04 80 04 80 1C 82 E4 82 44 7E 00 00汉字显示(16点阵京)查找或计算汉字的的区位码计算该汉字字模在汉字库中的起始位
11、置北: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 1010 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 = AscB(MidB(hanziDBCS, 2, 1) - 160 Ip =
12、(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) Picture1.Line (0, i)-(15, i) Next i P
13、icture1.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汉字的新编码GBKGB18030(强制标准)1995年,21003个汉字是GB2312的扩充Windows98系统2000年,27484个汉字包括蒙、藏、维等文字WindowsXP
14、系统单字节双字节四字节00-7FH81-FEH40-FEH(除7FH)81-FEH30-39H81-FEH30-39HASCII码日、韩文字符的其它编码ANSI编码:实际就是GBK码(中文)ISO-8859:8位,ASCII码加特殊国家语言ISO-8859-1:西欧、非洲,即Latin-1ISO-8859-2:东欧,即Latin-2UNICODE编码:16位编码UTF-8:以1到3个字节转换UTF-16:同UNICODEDBCS编码(8、16位编码)中、日、韩、台湾版本Windows系统0000-007F: 0 xxxxxxx0080-07FF: 110 xxxxx 10 xxxxxx0800
15、-FFFF 1110 xxxx 10 xxxxxx 10 xxxxxx以开始字节区分FE FF或FF FE:UTF-16EF BB BF:UTF-8抗干扰编码奇偶校验以信息码中“1”的个数进行判断只能判断奇数个错误,不能纠错纵向校验(一位)与横向校验(一组)组合CRC校验循环冗余校验具有纠错能力CRC编码方法将待编码的n位信息表示成n-1阶多项式M(x)将信息码再左移k位:M(x).xk 用k+1位的生成多项式对M(x).xk作模2除,得到商Q(x)和余数R(x)。用 M(x).xk 与R(x)作异或运算,得CRC校验码CRC12:G(x)=x12+x11+x3+x2+x+1CRC16:G(x
16、)=x16+x15+x2+1模2除:除的每一步减法不考虑借位CRC编码步骤16位CRC变量,初值为&HFFFF信息字节与CRC变量低8位异或 CRC变量右移一位,如果移出位是1,则CRC变量与CRC反转多项式异或。重复移动八位。对所有信息字节重复进行上两步CRC反转多项式:生成多项式反序,舍去最高位 Function CRC16(data() As Byte, RealDatas As Long, CRCType As Byte) As Variant Dim CRCHi, CRCLo As Byte , CL As Byte, CH As Byte Dim Hi As Byte, L
17、o 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 IfFor i = 0 To RealDatas-1 CRCLo = CRCLo Xor data(i) For j = 0 T
18、o 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) = CRC16 CRC16 = ReturnData End Function逻辑
19、运算提供了对数据二进制位的操作能力非运算/与运算/或运算异或运算移位运算正逻辑负逻辑基本逻辑运算逻辑电路是计算机的基本组成电路加法器地址译码高电平表示1;低电平表示0低电平表示1;高电平表示0是利用计算机对机电设备控制的基本操作运算规则(真值表)非运算ANOT A10011 1 0 1 1 0 1 00 0 1 0 0 1 0 1按位取反对整个数据各位取反不能实现对指定位的取反操作NOT 需要清零的位:0需要保留的位:1运算规则(真值表)AB A AND B0000101001111 1 0 1 1 0 1 00 1 1 0 1 1 1 00 1 0 0 1 0 1 0AND 应用屏蔽(清零/
20、复位)判断某位是1还是0 x x x x x x x x0 0 0 0 1 1 1 10 0 0 0 x x x xAND 控制信号的通过=0 x x x x x x x x0 0 0 0 0 1 0 00 0 0 0 0 x 0 0需要判断的位:1其它位:0AND 04H0XX0XXXXXXX1XXXXXAND 根据结果是否为0判断一次只能判断一位“1”1“0”1 00 1 0控制端为1,信号通过控制端为0,信号不能通过,输出为0AND输入输出控制需要置位的位:1需要保留的位:0运算规则(真值表)1 1 0 1 1 0 1 00 1 1 0 1 1 1 01 1 1 1 1 1 1 0OR
21、应用置位(置1)控制信号的通过x x x x x x x x0 0 1 1 0 0 0 0 x x 1 1 x x x xOR AB A AND B000011101111How?运算规则(真值表)1 1 0 1 1 0 1 00 1 1 0 1 1 1 01 0 1 1 0 1 0 0XOR 应用全部清零(自异或)两次异或恢复0 1 1 0 1 1 1 01 1 0 1 1 0 1 0XOR AB A AND B000011101110加密、解密动画背景恢复判断是否相等指定位取反“0”x x 0 x x 1 x x0 0 1 0 0 1 0 0 x x 1 x x 0 x x需要取反的位:1
22、其它位:0XOR 可以同时对任意位取反与11111111异或相当于非运算CPU内部的减法运算时就采用异或取反XOR11“1”0 1 00 1为“1”,取反为“0”,通过左移与右移0 0 0 0 0 0 0 10 0 0 0 0 0 1 00 0 0 0 0 1 0 0将一个16位数分成高低8位左移:乘2右移:除20 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 00 0 1 0 0 1 0 0 0 1 1 0 1 1 0 11 1 1 1 1 1 1 1 0 0 0 0 0 0 0 00 0 1 0 0 1 0 0 0 0 0
23、 0 0 0 0 00 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0屏蔽低8位右移8位低字节在低地址低字节在低地址高字节在高地址高字节在高地址字节:以8位二进制表示整数:以16位(或32位)二进制表示长整数:一般以32位或64位二进制表示最基本的数据单位存储器的基本单位01101101001001000 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1低地址高地址基本无符号整数类型在存储器中存放顺序(IA-32)Big_endianLittle_endian原码:直接将最高位变成1反码:在正数的二进制码基础上按位取反补码:在反码基础上加补码:在反码基础上加10:正数1:
24、负数用最高位表示符号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原码与反码的缺点0 1 1 0 0 1 0 0+1001 0 0 1 1 1 0 01 0 0 1 1 0 1 1反码0 0 0 0 0 0 0 1补码-1000只有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
25、0 0写出64的二进制补码形式 1 1 1 0 0 0 0 0计算(-64)+(+32)结果取反 0 0 0 1 1 1 1 1再加1,求出真值 0 0 1 0 0 0 0 0由机器数求真值,采用取反加1配合异或操作,可以用加法器实现加减法整数的表示范围有符号整数无符号整数8位16位32位8位16位32位025506553504G-112812732768327672G2G-1 10000000定义为-1288位整数扩展成16位整数符号位扩展1001000111111111超过范围怎么办?整数示例PC机将一长整数送下位机(下位机采用Big_Endian)ByteToSend(0) = Asc(
26、R)ByteToSend(1) = Asc(1)For i = 0 To 3 ByteToSend(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 2
27、54任意0 00=00). 1.(2 .) 1(127MEs). 0.(2 .) 1(126MEs浮点小数(100.5)示例01100100.11.1001001x266127133100001011001001000000000000000001000010 11001001 00000000 00000000二进制形式指数形式阶码尾数浮点格式低地址高地址0000000000000000110010010100001042 C9 00 00十六进制分解成整数和小数部分求小数部分尾数整数部分求阶码和尾数由符号位、阶码和尾数组合成四字节浮点格式由小数部分求阶码整数部分为0由小数部分求尾数组合整数
28、和小数部分尾数YN 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 Ifa1(d1) 保存正的整数部分a2(d2)保存正的小数部分d1每次除以2至商为0除的次数即为阶码(Ranks)通过右移或除以2求阶码如果由整数部分求出的阶码小于0,需要由小数部分重新求阶码(FoundRank=False)计算小数部分尾数位数t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村盖房签合同范本
- 乡镇库房建造合同范本
- 创业老板合同范本
- 1997施工合同范本
- 公司购买材料合同范本
- 保险劳务合同范本
- mpp管采购合同范本
- app广告合同范本
- 加盟痘痘合同范本
- 住房公证合同范本
- 第十七届山东省职业院校技能大赛机器人系统集成应用技术样题1学生赛
- 血管通路的介入治疗
- 临床三基考试题库(附答案)
- 2024年浙江省杭州市拱墅区中考语文一模试卷
- 无人售货机的食品安全管理制度
- 校园直饮水机供货安装及售后服务方案
- 个人保证无纠纷承诺保证书
- DB51T10009-2024DB50T10009-2024康养度假气候类型划分
- 华文版六年级下册书法教案
- 生产安全重大事故隐患检查表(根据住建部房屋市政工程生产安全重大事故隐患判定标准(2022版)编制)
- 期末模拟测试卷(试卷)2024-2025学年六年级数学上册人教版
评论
0/150
提交评论