




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
燕山大学单片机课程设计燕山大学课 程 设 计 说 明 书题目: 肌电信号分析及动作识别 学院(系): 电气工程学院 年级专业: 10级仪表三班 学 号: 学生姓名: 指导教师: 教师职称: 副教授 讲师 电气工程学院课程设计任务书基层教学单位: 自动化仪表系 指导教师:谢平 张淑清学号学生姓名(专业)班级设计题目肌电信号分析及动作识别设计技术参数1、独立完成设计任务。2、编程,上机调试。3、连接硬件实验线路,实现所要求的功能。4、完成设计,提交课程设计报告。设计要求1、利用肌电传感器采集人体肌电信号,利用Matlab软件对肌电信号进行时域和频域(包括FFT,功率谱,倒谱)分析,计算均值、标准差、方差、积分肌电值IEMG、均方根RMS等时域指标参数和平均功率频率MPF、中值频率MF等频域指标。比较不同动作下肌电信号特征,根据设定阈值给出动作状态,设计相应的信号分析及显示界面。2、基于肌电信号分析结果,通过串口发送命令给单片机系统,根据肌电信号动作状态控制相应的数码管或LED发光显示。3、扩展:也可通过动作模式驱动电机转动或其他控制输出模块。工作量软件编程与硬件调试相结合,绘制设计流程图,编制相应软件界面,实现单片机控制与信号处理任务的综合应用参考资料1)微型计算机控制系统 赖寿宏,机械工业出版社(教材)2)单片机及应用李大友,高等教育出版社(教材)3)信号处理原理及应用 谢平 等 机械工业出版社(教材)4)Matlab程序设计及其在信号处理中的应用聂祥飞等 西南交通大学出版社5)自选其他有关资料周次第一周第二周应完成内容熟悉伟福单片机编程环境,调试单片机各基本功能模块;熟悉matlab信号处理工具箱,信号处理系统基本功能模块学习和调试单片机系统与信号处理系统综合进行硬件调试,撰写课程设计报告指导教师签字基层教学单位主任签字 目录第一章 摘要 2第二章 系统总体设计方案 3第三章 各模块原理分析 4 3.1动态数码管显示模块 5 3.2 点阵显示模块 6 3.3 步进电机显示模块 8 3.4蜂鸣器模块9 3.5串口通信10第四章 伟福实验箱的实现134.1伟福实验箱的介绍134.2 模块硬件连线 13第五章 系统整体调试结果及说明14第六章 课设心得及总结15参考文献16附录 第一章 摘要一块单片机芯片就是一台计算机,由于单片机以其集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等特点使它应用于智能仪器仪表、机电一体化、实时程控、人类生活中。除此之外还广泛应用办公自动化领域、商业营销领域、汽车及通信系统、计算机外部设备等各领域中,并且单片机已成为计算机发展和应用的一个重要方面。由此可见掌握单片机的使用方法和利用单片机解决实际问题具有重要的意义。肌电信号是产生肌肉力的电信号根源,它是肌肉中很多运动单元动作电位在时间和空间上的叠加,反映了神经,肌肉的功能状态,在基础医学研究、临床诊断和康复工程中有广泛的应用。它属于随机信号的一种,用数字信号处理的方法和Matlab软件对其进行分析后,可以得到许多有用的信息,对于诊断疾病有非常重要的参考价。关键字:单片机 肌电信号第二章 系统总体设计方案 根据课程设计要求在上微机利用matble分析肌电信号并处理,基于肌电信号分析结果,通过串口发送命令给单片机系统,根据肌电信号动作状态控制相应的数码管显示。并增加了扩展模块,通过动作模式驱动电机转动或其他控制输出模块。 通过分析上位机matlab中对信号处理的结果,我们可以得到一系列的信号特征值,其中我们选取了具有代表意义积分肌电值来进行处理,并给出对于屈伸动作的阈值。通过对阈值的判断,使数码管显示积分肌电值,使点阵模块显示相应的“屈”和“伸”字样,使电机根据动作进行正反转,蜂鸣器在“屈”动作是发出鸣响。 最后,将上微机的处理数据通过串口通信发送到下微机显示,得到动作识别的要求。 实验结果如下图所示:第三章 各模块原理分析3.1动态数码管 3.1.1原理分析几乎所有的单片机应用系统都要用到数码管显示。数码显示是一个占用IO资源较多、程序设计较复杂的模块。在设计时,应从IO占用与软件复杂程度两方面考虑。位数码管动态显示电路以例说明工作原理。电路如图3-1所示。动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。 3.1.2数码管动态显示程序设计数码管动态显示程序包含显示数字、部分字母符号、小数点、数码管闪烁、数码管消隐等。待显示的符号与数据的对应关系如下:显示符号0123456789数据3fH06H5bH4fH66H6dH7dH07H7fH6fH显示符号0.1.2.3.4.5.6.7.8.9.数据bfH86HdbHcfHe6HedHfdH87HffHE7H数码管动态显示数码管显示的初始化设置得到6位数码管待显示数值设置位选信号,显示数据。并延时位地址右移一位,显示数据,并延时显示结束返回YN数码动态显示示计数器取缓冲区一字节数,并转换成显示码输出位选数据,并延时1ms显示指针指向下一字节,计数器减1显示计数为0返回YN图4-5 数码管动态显示程序流程图 3.1.3小数点显示原理由于得到的处理数据是小数,这里涉及到小数的显示方法,针对我们得到数据的特殊性,我们把小数点固定在左侧数码管第一位,这是与我们显示得到的数据相一致的。待显示数据显示数据是3.2点阵 3.2.1 原理分析一般有静态和动态显示两种方案,静态方案虽然设计简单,但其使用的管脚太多,如本设计中1616的点阵共有256个发光二极管,显然单片机没有这么多的端口,如果我采用锁存器来扩展端口,按8位的锁存器来计算,1616的点阵需要256/8=32个锁存器。这个数字很庞大,因为我们仅仅是1616的点阵,在实际应用中的显示屏往往要大得多,这样在锁存器上花的成本将是一个很庞大的数字。因此在实际应用中的显示屏几乎都不采用这种设计,而采用另外一种称为动态扫描的显示方法。动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。具体就1616的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(共阳极的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第1行使其燃亮一定时间,然后熄灭;再送出第二行的数据并锁存,然后选通第2行使其燃亮相同的时间,然后熄灭;以此类推,第16行之后,又重新燃亮第1行,反复轮回。当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,就能够看到显示屏上稳定的图形了。采用扫描方式进行显示时,每一行有一个行驱动器,各行的同名列共用一个驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上去,一般采用串行传输的方法,控制电路可以只用一根信号线,将列数据一位一位传往列驱动器,在硬件方面无疑是十分经济的。但是,串行传输过程较长,数据按顺序一位一位地输出给列驱动器,只有当一行的各列数据都以传输到位之后,这一行的各列才能并行地进行显示。这样,对于一行的显示过程就可以分解成列数据准备(传输)和列数据显示两部分。对于串行传输方式来说,列数据准备时间可能相当长,在行扫描周期确定的情况下留给行显示的时间就太少了,以致影响到LED的亮度。解决串行传输中列数据准备和列数据显示的时间矛盾问题,可以采用重叠处理的方法。即在显示本行各列数据的同时,传送下一列数据。为了达到重叠处理的目的,列数据的显示就需要具有所存功能。经过上述分析,就可以归纳出列驱动器电路应具有的功能。对于列数据准备来说,它应能实现串入并处的移位功能;对于列数据显示来说,应具有并行锁存的功能。这样,本行已准备好的数据打入并行锁存器进行显示时,串并移位寄存器就可以准备下一行的列数据,而不会影响本行的显示3.2.2程序设计显示驱动程序查询当前点亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打入输出锁存器并锁存,然后再输出新的行号,重新打开显示。图3.2为显示驱动程序流程图调用程序初始化设置读取行号并增加1送新行显示数据消 隐切换显示数据发送新行号,打开显示退出中断3.3步进电机 3.3.1原理分析 步进电机是一种将电脉冲信号转换成机械位移的机电之行元件。每当一个脉冲信号施加于电机的控制绕组时,其转轴就转过一个固定的角度(步距角),顺序连续地发给脉冲,则电机轴一步接一步地运转。 步进电机驱动正反转是通过对每相线圈中的电流的顺序切换来使电机作步进式旋转,切换是通过单片机输出脉冲信号来实现的。所以调节脉冲信号的频率便可以改变步进电机的转速,改变各相脉冲的先后顺序,可以改变电机的旋转方向。实现电机的正反转。 3.3.2程序设计 电机驱动方式可以采用双四拍(AB-BC-CD-DA-AB)方式也可以单、双八拍(A-AB-B-BC-C-CD-D-DA-A)方式,本课题中利用上述两种方式实现电机的正反转。程序设计流程图如图所示。3.4蜂鸣器 3.4.1原理分析 本课题使用的是使用脉冲信号驱动蜂鸣器发音,声音的频率由端口输出时延时控制。 3.4.2程序设计 使用单片机的P1.0口输出脉冲信号,程序设计流程图如图所示。3.5串口通信 3.5.1原理分析通信主要有两种方式:并行通信和串行通信。并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信8是指每个字节的各位分别进行传送的通信方式。常用串行通信的方式实现下位机数据的采集和上位机对下位机的控制。由于串行通信是在一根传输线上一位一位地传送信息,所以传输线少,适合远距离传输。单片机之间的通信采用异步串行通信RS-232接口。 3.5.2程序设计实现串行通信的帧格式为:停止起始D6D7D0D1D2D3D4D5 图4-3 帧格式图(1) 串行控制寄存器(SCON) SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。各位含义如下: SM0、SM1:串行口工作方式选择位。 SM2:多机通信选择位。 REN:串行口允许接收位。1时允许接收,0时禁止接收。 TI: 串行口发送中断标志位。在方式1中,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束。 RI: 串行口接收中断标志位。在方式1中,当接收到停止位时,该位由硬件置位。RI=1,表示帧接收结束。(2) 串行数据缓冲器(SBUF)串行数据缓冲器SBUF的地址为99 H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。(3) 电源控制寄存器(PCON)PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。(4) 中断允许寄存器(IE)在IE中,ES位为串行中断允许控制位。ES=0时禁止串行中断,ES=1时允许串行中断。 (5) 数据发送在不发送数据时,TXD端保持高电平。当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。(6) 数据接收 REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。先接收起始位,然后依次将采样RXD端并将数据移入移位寄存器中。若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。第4章 伟福实验箱的实现(4.1)(4.2)4.1伟福实验箱的介绍 伟福实验系统可根据教学实践的需要实现MCS51/MCS196单片机原理与接口,8088/8086微机原理与接口的一系列实验,并在硬件上预留了自主开发实验的空间。该实验系统对基本实验仅需少量连线就可进行,以减轻学员的工作量,同时也提供了一些需较多连线的扩展性实验以进一步锻炼学员的动手能力。此外,它还未学员们提供了强大的软硬件调试手段。4.2 模块硬件连线第五章 系统整体调试结果及说明模块整合运行后,基本实现了前期报告所要求的功能,但也遇到了一些没有办法解决的问题,在显示时,数码管和点阵的显示不是特别稳定,这是由于我们采取的动态扫描的方法来循环点亮数码管和点阵,由于各个模块都有延时,总的延时时间很长,导致扫描的的间隔增大,超过人眼的视觉暂缓时,这是一个不可调和的问题,我们多次取不同的延时时间,取效果较好的显示作为我们最终的解决方案。第6章 课设心得及总结通过两周的课设,对单片机的知识有了进一步的理解,对课题要求分析后,我们组决定采用比较常用的c语言进行程序编译,搜集c语言的学习资料。首先,实现数码管显示模块,解决了小数点数据的显示问题,串口通信时的数据发送方式遇到难题,通过查阅资料和请教学长,得到解决。然后,根据课设内容,我们又添加了点阵显示模块和电机、蜂鸣器模块,使下微机显示内容更丰富。这次以团队的方式做课设,让我学习到了更多的知识。组内的讨论与交流非常重要,也能学到更多的分析问题的思想,弥补知识漏洞。当遇到难题时,大家各抒己见、查阅资料,使问题解决的更快。对于我个人来说,我意识到自己应该有耐心去调试程序,只有这样才能学到知识。总而言之,这次课设的改革,令我们学到了更多的知识。参考文献1微型计算机控制系统 赖寿宏,机械工业出版社(教材)2单片机及应用李大友,高等教育出版社(教材)3LAB6000使用手册伟福系统提供的资料4.单片机原理及应用技术张淑清,国防工业出版社附录 程序#include#define uint unsigned long int#define uchar unsigned char#define LEDLen 6long int a,b,c,d,e,f,h,g,k,m;unsigned char mode;#define mode8255 0x82xdata unsigned char control _at_ 0x9003;xdata unsigned char ctl _at_ 0x9000;#define Astep 0x01#define Bstep 0x02#define Cstep 0x04#define Dstep 0x08xdata unsigned char OUTBIT _at_ 0x8002; / 位控制口xdata unsigned char OUTSEG _at_ 0x8004; / 段控制口xdata unsigned char RowLow _at_ 0xb002; /行低八位地址xdata unsigned char RowHigh _at_ 0xb003; /行高八位地址xdata unsigned char ColLow _at_ 0xb000; /列低八位地址xdata unsigned char ColHigh _at_ 0xb001; /列高八位地址unsigned char Pos;unsigned char LED;uchar i,j;unsigned char LEDBufLEDLen; / 显示缓冲unsigned char RcvBufH, RcvBufL; / 接收缓冲bit HasRcv = 0; / 接收标code unsigned char LEDMAP = / 八段管显示码0x113f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xe7;void SerialIO0() interrupt 4static unsigned char fTemp = 0;if(RI)RI = 0;if (fTemp = 0)RcvBufH = SBUF;fTemp = 1;elseRcvBufL = SBUF;fTemp = 0;HasRcv = 1;elseTI = 0;void Delay(unsigned char CNT)unsigned char n;while (CNT- !=0)for (n=10; n !=0; n-);unsigned char dly_c;code uchar Font32 = /屈 0,0,8,0,252,7,72,2,72,2,255,63,72,2,72,2, 72,2,248,7,0,0,7,0,248,63,32,0,64,0,0,0, /伸 0,0,2,0,207,61,10,17,10,17,10,17,234,31,10,17, 10,17,202,17,10,28,10,0,254,7,0,24,0,32,0,0,;void DisplayLED2() uint bitmask; /清屏 ColLow = 0xff; /行驱动低有效 ColHigh= 0xff; RowLow = 0x00; /列驱动高有效 RowHigh= 0x00; bitmask = 0x01; for(i=0;i 8; bitmask = 1; / 显示下一位 OUTBIT = 0; / 关所有八段管 LED = LEDMAPb; OUTSEG = LED; OUTBIT = Pos; / 显示一位八段管 Delay(1); Pos = 1; / 显示下一 OUTBIT = 0; / 关所有八段管 LED = LEDMAPc; OUTSEG = LED; OUTBIT = Pos; / 显示一位八段管 Delay(1); Pos = 1; / 显示下一位 OUTBIT = 0; / 关所有八段管 LED = LEDMAPd; OUTSEG = LED; OUTBIT = Pos; / 显示一位八段管 Delay(1); Pos = 1; OUTBIT = 0; / 关所有八段管 LED = LEDMAPe; OUTSEG = LED; OUTBIT = Pos; / 显示一位八段管 Delay(1); Pos = 1; OUTBIT = 0; / 关所有八段管 LED = LEDMAPf; OUTSEG = LED; OUTBIT = Pos; / 显示一位八段管 Delay(1) OUTBIT = 0; / 关所有八段管void DisplayLED3() / unsigned char mode; mode=g; control = mode8255; if(mode =1) ctl = Astep; Delay(20); ctl = Astep+Bstep; Delay(20); ctl = Bstep; Delay(20); ctl = Bstep+Cstep; Delay(20); ctl = Cste
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚复婚后再离婚双方财产分配及债务分担协议
- 停薪留职期间员工职业规划及就业指导服务合同
- 先进设备研发保密及产业链协同创新合同
- 租赁合同三方变更及租赁物维修责任协议
- 离婚协议中股权分割与公司治理结构影响范本解析
- 离婚协议书中的房产分割与子女抚养费承担起诉状
- 商务酒店租赁合同模板:空白商务酒店租赁协议书
- 离婚协议书及共同财产分割执行协议
- 离婚双方生活费用及子女抚养电子协议书
- 中级会计考试试题及答案
- 《留置胃管的护理》课件
- 酒店业HSE管理体系及客户安全措施
- 《新能源乘用车二手车鉴定评估技术规范 第1部分:纯电动》
- 基地管理人员的岗位职责
- TCSEB 0013-2020《水下爆破工程技术设计规范》
- 《氨基酸与还原糖对美拉德反应制备浓香菜籽油影响的研究》
- 阜外体外循环手册
- 2024年度食品行业互联网营销合同协议
- DL∕T 1362-2014 输变电工程项目质量管理规程
- 劳务派遣合同(2024版)
- 《建筑消防设施检测技术规程》
评论
0/150
提交评论