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

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机原理与接口技术实验指导书.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机原理与接口技术实验指导书.docx

1、单片机原理与接口技术实验指导书机械电子工程专业单片机原理与接口技术课程实验指导书撰写人: 审定人: 目录第一部分 绪论1第二部分 基本实验指导.2实验一.2实验二.9实验三.11实验四.14实验五.17实验六.19实验七.21实验八.23第三部分 扩展实验实验九.26实验十.30实验十一.35第一部分 绪论本指导书是根据单片机原理与接口技术课程实验教学大纲编写的,适用于机械电子工程专业。一、 本课程实验的作用与任务本课程的实践性较强,安排适当的上机可以帮助学生理解教学内容,锻炼动手能力和综合设计能力。二、 本课程实验的基础知识熟悉Keil软件的使用,学习过单片机原理与接口技术及有一定的电路常识

2、。三、本课程实验教学项目及其教学要求序号实验项目名称学时教学目标、要求1单片机程序设计集成开发环境应用22掌握实验环境的应用,熟练掌握软件的各项功能2定时器/计数器程序设计实验22掌握定时器的几种工作模式,并应用各种模式进行定时3数码管显示程序设计实验22会对数码管译码,会进行动态显示数据4独立式键盘程序设计实验22会对独立键盘进行消抖动,会识别按键5行列矩阵式键盘程序设计实验22会用扫描法识别行矩阵按键6秒表显示实验22会运用定时、中断知识进行综合设计7串口通信实验22 会编程让单片机和串口进行通信8步进电机实验22能控制步进电机正传和反转合计116第二部分 基本实验指导实验一 单片机C51

3、程序设计集成开发环境应用一、 实验目的1. 了解集成开发环境Keil Vision3文件管理的特点。2. 学会使用开发环境新建文件、编辑、编译程序。3. 掌握开发环境程序设计相关设置及其意义。二、 实验要求实现单片机P1连接的LED发光二极管实现流水灯功能。三、 实验原理1. 熟练操作开发环境。2. 利用C51相关知识,编写简单程序,生成可执行文件。3. 记录编译错误信息,总结错误原因,写出解决办法。四、 主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。五、 实验内容与步骤一)实验内容:认识Keil Vision3;新建工程、文件;工程参数设置;程

4、序编辑、编译及调试。二)实验步骤:1启动软件Keil Vision3,界面如下图:2菜单操作ProjectNew Project,在出现的对话框中输入工程名称,设计保存路径,然后保存。 3出现CPU选择对话框,选择所用的单片机,单击确定。 4出现加入启动代码文件对话框,单击是。下图为建立完工程后的界面:5菜单操作ProjectOptions for target “Target 1”或者直接在左侧的Target 1文件夹图标上单击右键,选择Options for target “Target 1”,出现下图所示的Options for target “Target 1”对话框。 在Target

5、标签下设置晶振频率、编译模式、ROM大小等,在Output标签下设置目标文件路径,是否产生可执行文件及是否产生其他信息。6点击FileNew菜单或则点击新建图标 ,然后保存,设置保存路径,注意保存文件格式为:文件名.ASM。 7在文件管理窗口中右键单击“Source Group 1”,选择“Add Files to Group Source Group 1 ”,选中刚刚新建的程序文件,点“Add”即可把文件加入到工程中。8文件管理窗口中双击任何文件名即可把该文件打开,在右边的工作区中可以编辑源程序。9程序编辑完成后单击 图标编译,编译通过后的界面下图所示。 输出窗口中为编译信息,若有错误,系统

6、提示错误类型及所在的行,根据此信息进行调试,直至程序编译正确通过。六、 实验注意事项仿真软件Keil可以运行汇编和C程序,注意加入文件的格式,特别注意后缀名是否符合要求。七、 思考题1.如何改变程序运行速度?2.为什么要选择芯片类型?不同类型对调试程序有何影响?实验二 定时器/计数器程序设计实验一、 实验目的1. 了解定时器/计数器在单片机开发中的重要作用。2. 通过本次实验掌握单片机定时器/计数器的编程方法。3 在应用中巩固学生编程相关知识,对单片机编程的程序结构有初步的了解,对单片机完成控制功能的过程有初步的了解二、 实验要求 用定时器定时方法实现流水灯功能,流水灯跳动频率为1秒。三、 实

7、验原理单片机的计数器/定时器接收到一个脉冲,相应的寄存器加一(假设采用定时器0的方式0,用到寄存器是TH0,TL0),首先TL0+1,如果TL0溢出(即TL00FFH),那么TH0+1,TL0=0,如此循环下去,如果TH00FFH 且TL00FFH则计数器/定时器溢出,TF0=1,如果开中断的话,向CPU发出中断申请信号。如果THx=0,TLx=0 那么可以计数65536,如果计其他数值的数,改变THx,TLx的值即可,比如THx=0,TLx=100 就可以计数65436.如果计数脉冲是周期固定的标准脉冲,就成了定时器;假定单片机的晶振是12MHz,机器周期是1us,单片机把把机器周期1us的

8、信号送到计数器/定时器端口(内部连接),就可以定时了。如果THx=0,TLx=0 那么可以定时65536*T机器周期=65536*1us=65.536ms,改名THx和TLx的值可以定时065.536ms。计数器/定时器有三种方式,方式0、方式1和方式3,其中方式0是13位计数器/定时器,是MCS-51单片机为了兼容MCS-48单片机,这种方式计数/定时值计算复杂,可以用方式1代替,方式1是16位计数器/定时器,如果用作连续计数或定时,记得重新载入THx、TLx的值,方式2是8位计数器/定时器,可自动重载计数/定时值,可用作连续计数或定时的场合;方式3占用两个计数器/定时器,而且都只能用8位,

9、这种方式较少使用,除非计数器或定时器不够用。方式1的计数寄存器THx和TLx,共16位,可最大计数065536,如果需要计数Cx,则,THx,TLx的设置如下:THx=(65536-Cx)/256 TLx=(65536-Cx)mod 256.方式2的定时寄存器TLx,8位,可最大定时0256*T机器周期,如果需要定时Tx(us),则,THx,TLx的设置如下:THx=(256-Tx/ T机器周期)TLx=256-Tx/ T机器周期,可以看出方式2可以循环计数,可以用在连续定时的场合,串行通信的波特率发生器一般有采用定时器1的方式2。定时/计数值的计算方式1:定时值 THx=(65536- T定

10、时时间/T机器周期 )/256TLx=(65536- T定时时间/T机器周期 )mod 256计数值THx=(65536- X计数)/256TLx=(65536- X计数)mod 256方式2:定时值 THx=(256- T定时时间/T机器周期 )TLx=(256- T定时时间/T机器周期 )计数值THx=(256- X计数)TLx=(256- X计数)。 四、 主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。五、 实验要求与参考程序实验要求:用定时器实现流水灯功能,即轮流点亮P0口连接的8张发光二极管,点亮灯的时间间隔为1秒。2实例代码: ORG

11、 0000H LJMP MAIN ORG 0100H MAIN:GO:MOV R0,#08HMOV A,#111111110BLOOP: SETB C MOV P1,ARLC AACALL DELAYDJNZ R0,LOOPSJMP GO DELAY:MOV TMOD,#01H MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000)%256 SETB TR0 MOV R1,#20 L1: JNB TF0,$ CLR TF0MOV TH0,#(65536-50000)/256 MOV TL0,#(65536-50000)%256 DJNZ R1,L1

12、RET六、 实验注意事项1. 根据定时器的不同工作方式进行定时,注意计数值是否自动重载。2. 验证是否定时满足要求。七、 思考题1. 定时器不同方式实现定时有什么不同?2. 影响定时精度有哪些因素?实验三 数码管显示程序设计实验一、 实验目的1. 掌握数码管静态显示与动态显示原理。2. 通过本次实验掌握数码管显示电路的编程方法。二、 实验任务用数码管动态扫描原理显示学号后八位,要求从左向右显示。三、 实验原理数码管分共阳极和共阴极,发光颜色也分几种(单红,黄,蓝,绿,白,七彩等);数码管的封装分为单独一体的,两位一体的,三位一体,四位一体等;数码管的显示分:动态扫描和静态扫描。数码管的显示的原

13、理和发光二极管相同,数码管的8个发光二级连接在一起,连接方法中的共同部分如果是阳极那么这个数码管称为共阳极数码管,反之,称为共阴极数码管;其中共阳极或共阴极称为位码,其他八位称为段码。上图的数码管就是共阴极数码管。其中四位一体数码管,内部的四个数码管共用adp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上adp,共有12个引脚。动态扫描原理: 设定数码管显示 1 2 3 4 5 6 7 8 显示流程:单片机送1的段码给数码管,并选中位码1,延时2ms;单片机送2的段码给数码管,并选中位码2,. 单片机送8段码给数码管,并选中位码8;单片机送1的段码给数码管

14、,并选中位码1,如此循环,由于眼睛对2ms的短暂闪烁感觉不出来,所以看到的数码管显示和要求的显示一致的;但如果延时时间过大,就会发现显示数字闪动,这种扫描方法就是根据人眼的视觉停顿,使人眼分辨不出闪动频率很高的数码管数字。四、 主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。五、 实验内容与步骤1新建工程,建立文件扩展名为ASM的文件;2置工程选择project-Option for TargetTarget1, 把文件加入到工程中;3. 输入所编写的程序。4 编译,无错误后,用STC单片机烧写软件烧写进单片机中,注意串口和单片机型号不要错,单片机

15、冷启动后启动烧写。六、 实验参考程序动态扫描: GO: PUSH ACC MOVC A,A+DPTR MOV P0,A MOV A,R0 MOV P2,A RL A MOV R0,A ACALL DELAY POP ACC INC A DJNZ R1,GO 延时程序: DELAY: MOV R5,#2 DEL:MOV R7,#100 DEL1: MOV R6,#225 DEL2:DJNZ R6,DEL2 DJNZ R7,DEL1 DJNZ R5,DEL RET 数码管段码: TAB: 03H,9FH,25H,00H,99H,49H,41H,1FH,01H,09H七、 实验注意事项1. 选择合适

16、的延时时间来消除动态显示的抖动。2. 显示时要正确对数码管译码。八、 思考题1. 动态扫描的原理?2. 动态扫描的优缺点?实验四 独立式键盘程序设计实验一、 实验目的1. 通过本次实验掌握独立式键盘的编程方法。2 在应用中巩固学生去抖等键盘编程相关知识。二、 实验要求按下独立按键,分别在数码上显示相应1,2,3,4数字。三、 实验原理当系统需要少量的功能键时,一般采用独立式结构。独立式按键是各按键相互独立的接通一条输入数据线,每个键的工作不会影响其它的I/0口。这种键盘结构较为简单,电路采用查询方式。当某一个键闭合时,相应的IO口线变为低电平(或高电平)。当程序查询到低电平的IO口线时,就可以

17、确定处于闭合状态的键。这种键盘的优点是电路简单;缺点是当键数较多时,要占用较多的I/O线。组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。在下图中,当开关S未被按下时,P1.0输入为高电平,S闭合后,P1.0输入为低电平。由于按键是机械触点,当机械触点断开、闭合时,会有抖动动,P1.0输入端的波形如图所示。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。只按了一次按键,可是计算机却已执行了多次查询或中断的过程。 为使CPU能正确地读出P1口的

18、状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。1.软件法,在单片机获得P1.0口为低的信息后,不是立即认定S1已被按下,而是延时10毫秒或更长一些时间后再次检测P1.0口,如果仍为低,说明S1的确按下了,这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(P1.0为高)再延时5-10个毫秒,消除后沿的抖动,然后再对键值处理。不过一般情况下,我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。当然,实际应用中,对按键的要求也是千差万别,要根据不同的需要来编制处理程序,但以上是消除键抖动的原则。2. 硬件法如图所示RS触

19、发器为常用的硬件消抖。图中两个与非门构成一个RS触发器,当按键未按下时输出高电平;按下时输出低电平。四、 主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。五、 实验内容与步骤1新建工程,建立文件扩展名为ASM的文件;2置工程选择project-Option for TargetTarget1, 把文件加入到工程中;3. 输入所编写的程序。4 编译,无错误后,用STC单片机烧写软件烧写进单片机中,注意串口和单片机型号不要错,单片机冷启动后启动烧写。六、 程序参考检测按键程序(包括按键释放和消抖动): LL:JB P3.1,LL ACALL DELAY

20、 JB P3.1,LL JNB P3.1,$ .显示程序: S1OK:MOV P0,#0F9H ; MOV P2,#11111110B七、 注意事项1. 消抖动要考虑延时时间和判断按键释放的判断。2. 识别按键要考虑两个按键同时按下的情况。八、 思考题1.消抖动的原理?消抖动需要延时多长时间?2.如何识别按键? 实验五 行列矩阵式键盘程序设计实验一、 实验目的1. 掌握行列矩阵键盘扫描原理。2. 通过本次实验掌握行列矩阵键盘电路的编程方法。二、 实验任务若按下16个按键之一,数码管能显示出来,分别用行列矩阵和数码管动态扫描原理进行编程。三、 实验原理行列式键盘的接法比独立式键盘的接法复杂,编程

21、实现上也会比较复杂。但是,在占用相同的IO端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,如下图,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出一倍,而且线数越多,区别越明显。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是可行的。矩阵式结构的键盘比直接法要复杂一些,识别也较复杂;按键处于行线和列线的交叉处,如果按下按键则行线和列线短路,矩阵键盘行线单片机I/O口作为输出端,而列线接的单片机I/O口的输入,扫描按键时,单片机输出低电平使行线电平置低,没有按键被

22、按下时,列线的输出为高电平,当有按键(如A)被按下时,某个行线(R2)和列线(C2)短路,列线(C2)被拉成低电平,通过检测算法就可检测按键的值。四、 主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,开发板一套。五、 实验内容与步骤1新建工程,建立文件扩展名为ASM的文件;2置工程选择project-Option for TargetTarget1, 把文件加入到工程中;3. 输入所编写的程序。4 编译,无错误后,用STC单片机烧写软件烧写进单片机中,注意串口和单片机型号不要错,单片机冷启动后启动烧写。六、 实验注意事项1.软件调试时确认数码管的译码正确。2.

23、 矩阵键盘的扫描程序要考虑按键消抖。七、 思考题1. 键盘扫描的工作原理。2. P0、P2口的作用3. 实验六 秒表显示实验一、 实验目的a) 进一步掌握定时器工作原理和应用b) 掌握定时器中断嵌套和控制方法八、 实验任务用定时器和数码管做一个0-99的循环显示定时,每次间隔一秒,超过99后从0开始显示九、 实验原理中断是单片机的一个亮点,在CPU正常工作情况下,有重要的任务,可以不需要等待,使用中断,优先执行此重要的任务,执行完后还可以继续执行刚才的程序。中断这种方法,既不耽误重要任务,重要任务执行完后,也不会妨碍了正常操作的执行。 中断的特点及应用注意事项:1中断最大的优点是实时性,而且与

24、查询法相比,占用CPU的时间只是在中断期间,而查询法可能会一直占用CPU时间。2中断的应用要比查询复杂,调试难度较大,如果中断任务多而且比较频繁的时候,CPU很大的时间花费在进出中断程序了,如果时序没有安排好,更会造成一个中断还没结束,另一个又接踵而至,造成系统的瘫痪,这时候尽可能采用中断结合查询的方法来减轻CPU的负担。3中断难点1) 设置难:设置的参数比较多,需要设置中断入口和出口参数(保护断点、保护现场、开关中断等);需要设置中断优先级;如果中断信号不匹配时候需要更改硬件电路,外部中断还需要设置触发方式(电平触发或边缘触发); 2) 调试难:中断的发生是满足条件下随机发生的,不像子程序的

25、执行是知道的,这给调试中断带来了一定的困难;定时器常用中断方式的基本程序 ORG 0000H LJMP MAIN ORG 000BH /*中断服务程序入口地址*/ LJMP ITIM0MAIN: ANL TMOD,#0F0H /*设置工作模式*/ ORL TMOD,#02H /*设置时尽量不影响其它设置*/ MOV TH0,#05H /*设置定时值*/ MOV TL0,#05H SETB EA /*总中断开*/ SETB ET0 /*计数器/定时器x中断开*/ SETB TR0 /*启动定时器x*/ SJMP $主要仪器及耗材计算机一台,Keil软件一套,STC-ISP V38A烧写软件一套,

26、开发板一套。一十、 实验内容与步骤1新建工程,建立文件扩展名为ASM的文件;2置工程选择project-Option for TargetTarget1, 把文件加入到工程中;3. 输入所编写的程序。4 编译,无错误后,用STC单片机烧写软件烧写进单片机中,注意串口和单片机型号不要错,单片机冷启动后启动烧写。一十一、 实验注意事项1. 充分考虑定时的影响因素,保证计时准确。2. 采用数码管动态扫描原理进行显示。一十二、 思考题1. 中断与查询法在定时器上的区别。2. 提高计时精度的方法。实验七 串口通信一、 实验目的1.掌握串口通信的基础知识;2.熟练掌握通信协议于计算机进行通信二、 实验任务

27、用计算机串口助手发送0-9数字到单片机串行口,单片机收到数据后在数码管上显示出来(单片机通过可以用于烧写用途的USB虚拟串口线和计算机通信)。三、 实验原理串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配

28、: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,

29、标准的ASCII码是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1