ImageVerifierCode 换一换
格式:DOC , 页数:34 ,大小:354.50KB ,
资源ID:6264181      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6264181.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(红外线遥控逻辑分析仪.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

红外线遥控逻辑分析仪.doc

1、 毕业设计(论文) 课题 红外线逻辑分析仪的设计 类 别 毕业设计论文 系 科 专 业 ¤应用电子技术¡应用电子技术/应用英语 ¡电气自动化技术¡电气自动化技术/市场营销 ¡计算机应用技术¡计算机应用技术/广告设计与策划 班 级 姓 名 完成日期 指导教师 红外线遥控逻辑分析仪的设计 摘 要 在高新技术飞速发展的今天,随着信息技术的普及,红外技术得到了迅猛发展。本设计采用用途广泛的红外线通信技术设计了一款基于计算机串口的红外逻辑分析仪,本课题由SM0038红外接收头、ST

2、C89C52单片机、MAX232电平转换器、DB9构成硬件部分,由下位机程序和上位机程序构成软件部分。设计的逻辑分析仪可对各种电器的红外遥控器所发射的控制信号进行识别、存贮和再现。还可通过红外硬件接口识别出红外信号并送入单片机处理,然后利用VB开发的虚拟软件在电脑屏幕上实时显示采集到的红外信号波形便于设计人员对各种调制方式的红外信号进行“可视化”的分析与研究。 关键词:串口 红外通信 红外逻辑分析仪 Infrared Remote Control Logic Analyzer Abstract The rapid development of high-tech today, w

3、ith the spread of information technology, infrared technology has been developing rapidly. This design uses a wide range of uses infrared communication technology designed a computer-based logic analyzer infrared serial port, this project was supported by SM0038 infrared receiver head, STC89C52 micr

4、ocontroller, MAX232 level converter, DB9 constitute the hardware part, by the next crew procedures and upper Machine procedures constitute software. Design logic analyzer can be a variety of electrical infrared remote control signal emitted by the identification, storage and reproduction. Hardware i

5、nterface can be identified by infrared infrared signal and sent to MCU processing, then use the VB development of virtualization software on a computer screen real-time display of the infrared signal waveforms collected to facilitate the designer of various modulation infrared signals "visual "of an

6、alysis and research. Key words:Serial Infrared communication Infrared logic analyze. 目 录 摘 要 I Abstract II 引言 1 1 红外线介绍 1 2 串口通信原理 1 2.1 波特率选择 1 2.2通信协议的使用 2 2.3 硬件连接 2 3 硬件设计 3 3.1 STC89C52芯片 3 3.1.1主要性能 4 3.1.2 STC89C52单片机芯片引脚介绍 4 3.2 SM0038芯片 4 3.2.1 SM0038引脚接法 4 3.2.2 SM0038

7、与单片机接口电路 5 3.3 MAX232芯片 5 3.3.1 MAX232芯片引脚 5 3.3.2 MAX232芯片功能 6 3.4 电源电路及其说明 6 3.5 总原理图及其说明 7 4 软件设计 7 4.1 红外编码格式 7 4.2 单片机的软件编程 8 4.2.1下位软件编程思路 8 4.2.2 下位机程序 8 4.3 上位机软件设计 11 4.3.1上位机软件编程思路 11 4.3.2 上位机程序 11 5 系统调试 24 5.1硬件调试 24 5.2 软件调试 25 5.3 软硬件联调 25 5.3.1 调试的方法 25 5.3.2 调试中出现

8、的故障及解决方案 25 总结 26 参考文献 - 1 - 致谢 - 2 - 附录 - 3 - III 南通职业大学电子工程系毕业论文 引言 红外通信技术是一种点对点的数据传输协议,是传统设备之间连接线缆的替代技术,是目前国际上普通采用的一种近程无线传输技术,常用于智能小区控制系统和电话教学交互式远程控制系统中,但是目前的家电(如空调、录像机、VCD机等)有各种不同的品牌和型号,其红外遥控编码及发送格式不尽相同。为了能够用一台通用控制器对多种不同型号的家电进行控制,本文利用功能强大的单片机和编程软件VB设计了一种基于计算机串口的通用型智能红外逻辑分析仪,它可对各种电器的红外遥

9、控器所发射的控制信号进行识别、存贮和再现。还可通过红外硬件接口识别出红外信号并送入单片机处理,然后利用VB开发的虚拟软件在电脑屏幕上实时显示采集到的红外信号波形 便于设计人员对各种调制方式的红外信号进行“可视化”的分析与研究。 1 红外线介绍 红外线是波长在7 5 0 nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。 红外通讯一般采用红外波段内的近红外线,波长在O,75um至25um之间。红外数据协会(IRDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通讯效果,红外通讯协议将红外数据通讯所采用的光波波长的范围限定在850nm至900nm。 2

10、串口通信原理 串口通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。 2.1 波特率选择 波特率就是在串口通信中每秒能够发送的位数(bits/second),MSC51串行端口在四种工作模式下有不同的波特率计算方法。 其中,模式0和模式2波特率计算很简单;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。 在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。在此模式下波特率计算公式

11、为: 波特率=(1+SMOD)*晶振频率/(384*(256-TH1)) 其中,SMOD——寄存器PCON的第7位,称为波特率倍增位; TH1——定时器的重载值。 在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。 下面举例说明波特率选择过程:假设系统要求的通信频率在20000bit/s以下,晶振频率为12MHz,设置SMOD=1(即波特率倍增)。则 TH1=256-62500/波特率

12、 根据波特率取值表,我们知道可以选取的波特率有:1200,2400,4800,9600,19200。列计数器重载值,通信误差如下表2.1所示。 表2.1 波特率与计数器重载值关系 因此,在通信中,最好选用波特率为1200,2400,4800中的一个。 2.2通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取P0端口数据,并将读取数据返回PC机; 0xA2:单片机从PC机接收一段控制数

13、据; 0xA3:单片机操作成功信息。 在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC机接收到0xA3时,就表明单片机操作已经成功。 2.3 硬件连接 51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几

14、个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 图2.1 使用MAX232串口通信电路图 串口通讯的硬件电路如上图所示为了能够在计算机端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里利用如下图标的一个免费计算机串口调软件来观察。 3 硬件设计 3.1 STC89C5

15、2芯片 图3.1 STC89C52芯片引脚图 3.1.1主要性能 与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、 1000次擦写周期、全静态操作:0Hz~33Hz 、三级加密程序存储器 、 32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针、掉电标识符 。 3.1.2 STC89C52单片机芯片引脚介绍 STC89C52芯片 共40引脚: 1--8脚: 通用I/O接口p1.0--p1.7 9脚:RST复

16、位键 10 .11脚:RXD串口输入 TXD串口输出 12--19:I/O p3接口 (12,13脚 INT0中断0 INT1中断1 14,15 : 计数脉冲T0 T1 16,17: WR写控制 RD读控制输出端) 18,19: 晶振谐振器 20 地线 21—28: p2 接口 高8位地址总线 29:PSEN片外ROM选通端,单片机对片外ROM操作时,29脚(PSEN)输出低电平 30:ALE/PROG 地址锁存器 31:EA ROM取指令控制器,高电平片内取,低电平片外取 32--39:p0.7--p0.0(注意此接口的顺序与其他I/O接口不同 与引脚号的排列顺序

17、相反) 40:电源+5V 3.2 SM0038芯片 3.2.1 SM0038引脚接法 图3.2 SM0038外观图 SM0038是红外线传感器,它对外只有3个引脚:GND、VS和1个脉冲信号输出引脚OUT,只能接收38KHZ的红外线信号,外形引脚如图3.2所示。 3.2.2 SM0038与单片机接口电路 图3.3 SM0038与单片机接口电路 与单片机接口非常方便,如图四所示。VCC接电源+5V并经电容进行滤波,以避免电源干扰; GND接系统的地线(0V);脉冲信号输出接CPU的中断输入引脚(例如8051的13

18、脚INT1)。采取这种连接方法,软件解码既可工作于查询方式,也可工作于中断方式。 3.3 MAX232芯片 3.3.1 MAX232芯片引脚 Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。 该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平,芯片图如图3.4所示。

19、 图3.4 MAX232 3.3.2 MAX232芯片功能 为了能使单片机与PC进行通信,必须使其遵循相同的通信协议。由于STC89C52的串行口输入/输出为TTL逻辑电平,高电平为3.8V左右,低电平为0.3V左右,因而这种以TTL电平传送数据的方式的抗干扰性较差。而计算机内部的RS-232C串行口用±12V和-12V电平方式,这种方式中,信号0和信号1的电平差别增大,从而增强了抗干扰性。但是,为了解决这种电平不一致的矛盾,必须采用一个RS-232C电平转换器,文中采用的MAX232自身带有电源电压变换器,可把+5V电压变换成RS-232输出电平所需的±10V

20、电压,因而采用这种方式进行串行通信具有较好的性能和低廉的价格。如果通信距离较远,还可以通过增加MAX485转换器来连接MAX232以满足要求。 3.4 电源电路及其说明 图3.5 电源电路 先通过变压器降压为12V,经过整流桥将交流电压变为直流电压,然后再滤波,通过78M05稳压器稳压,输出+5V的电压提供给总电路用,使其电路正常工作。 3.5 总原理图及其说明 图3.6 系统电路原理图 先通过SM0038的红外接收头接收38KHZ的红外线信号,然后将信号通过STC89C52单片机的P1.7口送单片机进行处

21、理,单片机再发出接收到的信号给PC机显示该信号的波形,由于STC89C52的串行口输入/输出为TTL逻辑电平,高电平为3.8V左右,低电平为0.3V左右,因而这种以TTL电平传送数据的方式的抗干扰性较差。而计算机内部的RS-232C串行口用±12V和-12V电平方式,所以就需要MAX232电平转换器来将可把+5V电压变换成RS-232输出电平所需的±10V电压,使得PC机与单片机能够正常的通信。 4 软件设计 4.1 红外编码格式 现有的红外遥控包括两种方式:PWM(脉冲宽度调制)和PPM(脉冲位置调制)。 两种形式编码的代表分别为NEC和PHILIPS的RC-5、RC-6以及将来的R

22、C-7。 PWM(脉冲宽度调制):以发射红外载波的占空比代表“0”和“1”。为了节省能量,一般情况下,发射红外载波的时间固定,通过改变不发射载波的时间来改变占空比。例如常用的电视遥控器,使用NEC upd6121,其“0”为载波发射0.56ms,不发射0.56ms;其“1”为载波发射0.56ms,不发射1.68ms;此外,为了解码的方便,还有引导码,upd6121的引导码为载波发射9ms,不发射4.5ms。upd6121总共的编码长度为108ms。 但并不是所有的编码器都是如此,比如TOSHIBA的TC9012,其引导码为载波发射4.5ms,不发射4.5ms,其“0”为载波发射0.52ms

23、不发射0.52ms,其“1”为载波发射0.52ms,不发射1.04ms。 PPM(脉冲位置调制):以发射载波的位置表示“0”和“1”。从发射载波到不发射载波为“0”,从不发射载波到发射载波为“1”。其发射载波和不发射载波的时间相同,都为0.68ms,也就是每位的时间是固定的。 通过以上对编码的分析,可以得出以某种固定格式的“0”和“1”去学习红外,是很有可能不成功的。即市面上所宣传的可以学习64位、128位必然是不可靠的。 另外,由于空调的状态远多于电视、音像,并且没有一个标准,所以各厂家都按自己的格式去做一个,造成差异更大。比如:美的的遥控器采用PWM编码,码长120ms左右;新科的

24、遥控器也采用PWM编码,码长500ms左右。如此大的差异,如果按“位”的概念来讲,应该是多少位呢?64位还是128位显然都不可能包含如此长短不一的编码。 4.2 单片机的软件编程 4.2.1下位软件编程思路 我用的是C语言编写的程序,该程序主要由串口初始化子函数、外部中断0中断子函数、单片机内部定时器T0中断子函数、红外信号发送子函数等3大模块组成。等到红外信号下降沿到来时,进入外部中断0中断子函数,打开T0定时器开关TR0,使得T0工作,在主函数中判断外部中断0接线端为1时,进入T0中断子函数,在T0中断子函数中主要是把TH0,TL0所记的数值送单片机处理。 4.2.2 下位机程序

25、 #include #define uchar unsigned char #define uint unsigned int uchar dat[2]={0}; sbit P11=P1^7; sbit P32=P3^2; sbit P33=P3^3; bit tmp=1; void TimeSet() //定时器设置 串口设置 { TMOD=0x21;//定时器 TR1=1; // SM0=0;//串口中断设置 // SM1=1; // SM2=1; SCON=0x50; TH1=0xff; TL1=0xff;

26、22.1184MHZM// TL1=0xff 115200 EA=1; ES=0; EX0=1; IT0=1; PCON=0x80; TH0=0x00; TL0=0x00; // TR0=1; ET0=1; } void delay(void) //误差 -1.041666666667us { unsigned char a,b; for(b=61;b>0;b--) for(a=3;a>0;a--); } void INT() interrupt 0 { TR0=1; tmp=0; // P2+=1;

27、} void Time0() interrupt 1 { dat[0]=TH0; dat[1]=TL0; tmp=1; SBUF=dat[0]; delay(); TI=0; SBUF=dat[1]; delay(); TI=0; TR0=0; // TF0=0; TH0=0; TL0=0; // P33=0; } void Time1() interrupt 3 { RI=0; TI=0; } void main() { TimeSet(); while(1) { // SB

28、UF=0x0a; // P2+=1; if(tmp==0 && P32==1) { TF0=1; // P2+=1; } } } 4.3 上位机软件设计 4.3.1上位机软件编程思路 利用Visual Basic提供的MSComm控件可以简单便携地通过应用程序实现串行通信,也可以创建功能完备、具有事件驱动功能的高级通信工具。与DOS环境下用汇编或C语言等编制的串行通信程序及Windows环境下用Visual C编制的串行通信程序相比,在使用Visual Basic的MSComm控件实现串行通信时,程序员只需关心MSC

29、omm控件对Windows通信驱动程序的API函数的接口即可,换句话说,只需要设置和监视MSComm控件的属性和事件即可。 4.3.2 上位机程序 Modulel (Code) Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long Public Const WS_EX_LAYERED = &H80000 Public Con

30、st GWL_EXSTYLE = (-20) Public Const LWA_ALPHA = &H2 Public Const LWA_COLORKEY = &H1 Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd A

31、s Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Form1 Dim Buffer1(63488) As Byte Dim Buffer2(63488) As Byte Dim Buffer3(63488) As Byte Dim Data_point As Long Dim Wave_width As Integer Dim Width_per_BIT As Single Dim n As Integer Dim Time As Integer Dim Data_rate As Long Dim

32、 temp_long As Long Dim Click_flag As Boolean Dim Old_X, Old_Y As Single Dim Flag_about As Boolean Function Draw_Square_Wave(ByVal Start As Long, ByVal x, Y, Width_per_20us As Integer, ByVal Channel As Integer) Dim Time_long As Integer Dim HEiGHT, LINE_COLOR, START_Y As Integer Dim Temp_buffer

33、 Dp, Dp_old As Integer START_Y = Y HEiGHT = 200 LINE_COLOR = RGB(0, 0, 255) Picture1.Line (0, START_Y)-(1, START_Y), LINE_COLOR Time_long = Picture1.Width / Width_per_20us For i = 0 To Int(Time_long / 8) Select Case Channel Case 1 Temp_buffer = Buffe

34、r1(Start + i) Case 2 Temp_buffer = Buffer2(Start + i) Case 3 Temp_buffer = Buffer3(Start + i) End Select k = 0 For j = 7 To 0 Step -1 k = k + 1 Dp = Int(Temp_buffer / 2 ^ j)

35、If Dp = 0 Then If Dp_old = 0 Then Picture1.Line -((i * 8 + k) * Width_per_20us, START_Y), LINE_COLOR If Dp_old = 1 Then Picture1.Line -((i * 8 + k - 1) * Width_per_20us, START_Y), LINE_COLOR Picture1.Line -((i * 8 + k) * Wid

36、th_per_20us, START_Y), LINE_COLOR End If End If If Dp = 1 Then Temp_buffer = Temp_buffer - 2 ^ j If Dp_old = 1 Then Picture1.Line -((i * 8 + k) * Width_per_20us, START_Y - HEiGHT), LINE_COLOR If Dp_old = 0

37、Then Picture1.Line -((i * 8 + k - 1) * Width_per_20us, START_Y - HEiGHT), LINE_COLOR Picture1.Line -((i * 8 + k) * Width_per_20us, START_Y - HEiGHT), LINE_COLOR End If End If Dp_old = Dp Next Next

38、 Picture1.Line (0, Y + 200)-(Picture1.Width, START_Y + 200), RGB(200, 200, 255) PrintWord 0, Y + 20, Str(Round(Start * Width_per_BIT * 8 / 1000, 3)) & "ms" For j = 0 To Int(Time_long / 50) Picture1.Line (j * 50 * Width_per_20us, Y + 100)-(j * 50 * Width_per_20us, S

39、TART_Y + 200), RGB(200, 200, 255) Next End Function Function PrintWord(ByVal x, Y As Integer, ByVal toprint As String) Dim temp1, temp2 As Integer temp1 = Picture1.CurrentX temp2 = Picture1.CurrentY With Picture1 .CurrentX = x .CurrentY = Y

40、 .ForeColor = RGB(255, 96, 96) End With Picture1.Print toprint With Picture1 .CurrentX = temp1 .CurrentY = temp2 End With End Function Private Sub Command1_Click() CommonDialog1.Filter = "Ird文件|*.ird" CommonDialog1.ShowOpen Dim temp_Filename As Strin

41、g Dim save_Filename As String Dim temp_counter As Long temp_Filename = CommonDialog1.FileName 'CommonDialog1.ShowSave 'save_Filename = CommonDialog1.FileName On Error GoTo fuck Open temp_Filename For Binary As #1 For temp_counter = 0 To 63488 Get #1, , Buffer1(temp_counter)

42、 Next For temp_counter = 0 To 63488 Get #1, , Buffer2(temp_counter) Next For temp_counter = 0 To 63488 Get #1, , Buffer3(temp_counter) Next Close #1 Picture1.Cls temp_long = HScroll1.Value Draw_Square_Wave temp_long * 2, 0, 900, Wave_width, 1 Draw_S

43、quare_Wave temp_long * 2, 0, 2200, Wave_width, 2 Draw_Square_Wave temp_long * 2, 0, 3500, Wave_width, 3 GoTo out fuck: MsgBox "打开文件出错" out: End Sub Private Sub Command2_Click() If MSComm1.PortOpen = False Then Init_com Select Case MSComm1.PortOpen Case False

44、Data_point = 0 End Select MSComm1.PortOpen = Not MSComm1.PortOpen Select Case MSComm1.PortOpen Case False Timer1.Interval = 0 Label1.Caption = "串口已关闭,数据采集被强行停止" Data_point = 0 Label2.Caption = "0 Bit/s" Command

45、2.Caption = "开始采集" Picture1.Cls Command1.Enabled = True Command3.Enabled = True Case True Command2.Caption = "强行停止" Command2.Enabled = True Combo1.Enabled = False Command1.Enabled = False

46、 Command3.Enabled = False Label1.Caption = "串口已开启,波特率为115200bps,等待数据中" Time = 0 Timer1.Interval = 200 End Select End Sub Private Sub Command3_Click() CommonDialog1.Filter = "Ird文件|*.ird" CommonDialog1.ShowSave Dim temp_Filename As String D

47、im temp_counter As Long temp_Filename = CommonDialog1.FileName 'CommonDialog1.ShowSave 'save_Filename = CommonDialog1.FileName On Error GoTo fuck Open temp_Filename For Binary As #1 For temp_counter = 0 To 63488 Put #1, , Buffer1(temp_counter) Next For temp_counter =

48、 0 To 63488 Put #1, , Buffer2(temp_counter) Next For temp_counter = 0 To 63488 Put #1, , Buffer3(temp_counter) Next Close #1 GoTo out fuck: MsgBox "保存文件出错" out: End Sub Private Sub Command5_Click() If Wave_width >= 10240 Then Wave_width = 10240

49、 Wave_width = Wave_width * 2 HScroll1.Max = 63486 / 2 - (Picture1.Width / Wave_width) / 8 Picture1.Cls Draw_Square_Wave temp_long * 2, 0, 900, Wave_width, 1 Draw_Square_Wave temp_long * 2, 0, 2200, Wave_width, 2 Draw_Square_Wave temp_long * 2, 0, 3500, Wave_width, 3 End Sub

50、 Private Sub Command6_Click() Wave_width = Wave_width / 2 If Wave_width < 2.5 Then Wave_width = 2.5 HScroll1.Max = 63486 / 2 - (Picture1.Width / Wave_width) / 8 Picture1.Cls Draw_Square_Wave temp_long * 2, 0, 900, Wave_width, 1 Draw_Square_Wave temp_long * 2, 0,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服