单片机7次实验综合报告Word文件下载.docx
- 文档编号:21094610
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:23
- 大小:1.77MB
单片机7次实验综合报告Word文件下载.docx
《单片机7次实验综合报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机7次实验综合报告Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
仿真系统的硬件仿真板包括底板(控制电路、SRAM等)和上板(CPU板)组成。
底板通过打印口连接到PC机。
上板通过排线连接到用户的目标板。
仿真系统的软件使用的VM,8位单片机仿真软件。
将编辑,汇编,仿真功能集成在同一开发环境中。
思考题2单片机仿真实验实验步骤1、桌面上双击进入VM系统2、在跳出的欢迎界面选择我们的单片机的型号Lab8000-MCS51实验-AT89S52,勾选使用伟福软件模拟器,单击好。
3、文件-新建-保存使得系统可以读取语言的颜色。
4、输入下述代码5、调出各种窗口(观察窗口、信息窗口、跟踪窗口、项目窗口、断点窗口)6、使用执行命令下的各种执行手段进行观测(单步、设置断点、执行到光标处)7、项目窗口,CPU选择上双击,目标文件,生成BIN文件二进制码,单击CPU窗口,获得机器码思考题3.单片机运行的各种运行方法以及影响1、全部执行(Ctrl+F9)直接执行完全部的程序2、跟踪(F7)跟踪程序执行的每步,观察程序运行的状态3、单步(F8)单步执行程序,与跟踪不同的是,跟踪可以跟踪到函数或过程的内部,而单步执行则不跟踪到程序内部4、执行到光标处(F4)程序从当前PC位置,全速执行到光标所在的行。
如果光标所在行没有可执行的代买,则提示“这行没有代码”。
5、暂停(U)暂停正在全速执行的程序6、复位(E)终止调试过程,程序复位,在全速执行停止前不能复位7、设置PC(Ctrl+F3)将程序指针PC,设置到光标所在的行,之后从这行开始执行。
8、自动单步跟踪()模仿用户连续按单步运行。
9、编辑观察项(Ctrl+F5)观察变量或表达式的值在单步运行下各个寄存器的变化情况第X次F8R0R7A第X次F8R0R7A第X次F8R0R7A13010009320F01230100010320F02LAST40001011320E02531100012320E026311001一直循环7310F018310F01思考题4实验的心得体会这次实验用了一个很简单的LOOP循环使得在R7寄存器的循环下,A的地址一直在不停的增加,R0的地址也在不停的增加。
这个实验可以很好的教会我们在没有实验箱的情况下我们也是可以完成一些纯粹在电脑端的模拟汇编的实验。
我们遇到的最大的困难就是首次使用这样的软件导致我们的整个实验的流程并不是很清晰,通过老师的讲解和我们自己的探索慢慢的知道了这些装置的作用,最后完成了实验。
输入的代码必须经过保存环节才可以变色,这和C语言的一些编译器的特点是相同的。
实验2分支程序设计编程实现下面的功能:
正确连接仿真系统,正确保存文件,正确输入代码,读懂代码,输出正确结果。
LED0EQUP3.0LED1EQUP3.1LED2EQUP3.2LOOP:
MOVA,P1CLRCSUBBA,#100JZEQUALJCSMALLCLRLED0CLRLED1SETBLED2SJMPOKEQUAL:
CLRLED0SETBLED1CLRLED2SJMPOKSMALL:
SETBLED0CLRLED1CLRLED2OK:
SJMPLOOP将00-99的十进制数据转换成二进制进行开关量的输入,L0灯亮将100的十进制转换为01100010的二进制开关量进行输入,L1灯亮将101-127的十进制转换为二进制进行开关量的输入,L2灯亮完整的接线图实验操作1、正确连接实验板子和电脑,将点源接入,数据线连接到电脑的USB接口,在电脑端运行软件,取消勾选模拟器,按照实验装置的名称正确的选择响应的系统。
2、在软件内部按照输入分支程序结构。
3、打开点源开关。
4、调整输入的各个断口的开关量,着重关注在二进制数01100010附近的变化.5、整理实验器材。
思考题1写出分支程序设计的要点分支结构也成为选择结构。
在程序中每个分支均为一个程序段。
为分支需要,程序设计时不要忘记给程序段的起始地址赋予一个地址标号,以供选择分支使用。
这次实验使用的是一个多分支程序结构,可以通过一系列的JCJNCJBJNB的判断,进行逐级分支。
并且可以使用CJNE进行实现。
80C51中梅苑专门的多分支转移指令,可以使用的变址转移指令“JMPA+DPTR”,但是这样的指令需要数据表格配合。
思考题28051单片机有几个并行口,写出各并行口的特点8051单片机有4个并行I/O口,分别为P0P1P2P3,以实现数据的并行输入与输出。
这4个并行口均是8为双向口线,各占8个引脚,在P3口线上有着引脚复用,均有第二功能信号,这些第二功能信号都是重要的控制信号,在实际使用中总是先按需要优先选用第二功能,剩下的不用的再当作口线使用。
并行可以有效的提高单片机的工作效率。
思考题3实验中遇到的苦难在这个实验中和实验一显著不同的是我们需要重新认识硬件与软件的配合,一些数据线的链接,点源的通断都是我们学习的要点,我们也第一次接触到了输入口和输出口相互之间的区别。
这个实验我们一定要将十进制的思维转换过来转换为二进制的思维,在机器语言中只有开关量的通断,而这个题目也是很好的应用了开关量的通断完成了这个实验。
学会了分支判断方式的编程实验3循环程序与子程序在P1.0引脚输出1HZ方波信号。
ORG0000HLOOP:
MOVR1,#100WAIT:
LCALLDELAYDJNZR1,WAITCPLP1.0SJMPLOOP补全以上程序的延时子程序。
晶振频率选择6MHz。
控制箱连接及程序实现效果:
P1.0口连接一个LED,实现LED以1秒频率闪烁。
参考代码(看懂并理解代码):
LCALLDELAYDJNZR1,WAITCPLP1.0SJMPLOOP(以下延时程序延时5ms,采用6M晶振,为什么?
请同学们务必理解,可查阅课件)DELAY:
MOVR6,#DEL1:
MOVR7,#DEL2:
DJNZR7,DEL2DJNZR6,DEL1RETI思考题1.写出子程序的设计要点?
2.如何计算软件延时的时间?
输出的方波信号可以利用LED灯进行展示,LED灯输出产生了频闪。
频闪的速率为1s一次思考题1,写出子程序的设计要点?
采用6M晶振,机器周期为振荡周期的12倍,所以机器周期为2微秒延时5毫秒,相当于2500个机器周期DJNZR7语句的机器周期为2而整个程序消耗的机器周期为2500根据程序的运行顺序,总机器周期约等于R6值,R7值的乘积,其余可忽略因此需要R6的赋值和R7的赋值相乘为1250DELAY:
MOVR6,#10DEL1:
MOVR7,#250DEL2:
DJNZR7,DEL2DJNZR6,DEL1RETI设计时选择了嵌套循环,可以大大提高DELAY子程序调用所消耗的时间。
设计时必须保证DELAY作为整个子程序的名称,同时R6,R7的赋值乘积选择正确,之后循环。
延时时间=(250*2us+2us+1us)*10+4us=5034us5ms为DJNZR7,DEL2机器周期转换为时间,加上上下语句消耗的时间,再乘以上层循环一次的时间。
DJNZR7语句的机器周期为2而整个程序消耗的机器周期为2500根据程序的运行顺序,总机器周期约等于R6值,R7值的乘积,其余可忽略因此需要R6的赋值和R7的赋值相乘为2500实验4中断实验内容:
用P1口记录按键的次数(中断方式)。
P3.2控制箱连接:
P3.2口连接控制箱上红色按键P,P1口连接8个LED,二进制显示按键次数。
参考代码(看懂理解代码):
ORG0000HSJMPSTARTORG0003H;
中断入口地址SJMPINSTART:
SETBIT0SETBEX0MOVA,#0MOVP1,ASETBEAWAIT:
SJMPWAITIN:
INCAMOVP1,ARETI思考题1.8051单片机有哪几个中断源?
2.简述中断程序的设计方法?
每次按键灯均按照二进制加一的方式进行亮灭思考题1.8051单片机有哪几个中断源?
8051单片机有五个中断请求源,四个用于中断控制的寄存器IE.IP.TCON和SCON,用于控制中断的类型,中断允许,中断起停和各种中断源的优先级别。
五个中断源有两个优先级,每个中断源可以编程为高优先级或低优先级中断,可以实现二级中断服务程序嵌套。
8051的中断源包括:
INT0,INT1引脚输入的外部中断源三个内部的中断源,即定时器T0的溢出中断源,定时器T1的溢出中断源和串行口的发送/接收中断源。
当单片机接收到一个中断请求信号后,就挂起它的当前操作,保存工作状态,并将控制权交给中断服务程序。
因此首先要进行主程序中的中断初始化,进行堆栈设置,中断系统总开放,中断允许设置,中断请求方式设置和中断优先级设置。
例如如果设置外中断0,需要设置入口标号EXINT0触发方式TCON#01H中断开放,外中断允许IE#81H优先设置堆栈设置SP#03FH实验5定时器实验内容:
1.以定时方式(查询方式)在P3.0引脚输出周期为1S的方波信号。
2.以定时方式(中断方式)在P3.0引脚输出周期为1S的方波信号。
控制箱连接:
P3.0连接一个LED,实现LED以1秒频率闪烁。
参考代码(填空并看懂理解代码,可查阅课件):
思考题1.简述定时方式和计数方式的差别?
2.如何计算定时常数?
两者的程序设计,因为输出方波信号也就是一亮一灭,没有拍照的必要。
定时工作模式和技术工作模式的工作原理相同,只是计数脉冲来源有所不同:
处于计数工作模式时,加法计数器对芯片端子T0(P3.4)或T1(P3.5)上的输入脉冲计数;
处于定时器工作模式时,加法计数器对内部机器周期脉冲计数。
因此一个是内部的脉冲,一个是外部的脉冲,都是打在计数器上。
首先确定选接的定时器工作的方式.在TMOD中设置,根据书上所说的各个工作模式的位数和最大最小来进行计算。
之后使用下面这个公式具体进行计算t=(2n-X)*12/fosct-定时时间,n-计数器的位数fosc-晶振频率解出X的值即可。
实验6计数器实验内容:
用P1口记录按键的次数(利用计数方式)。
P3.4控制箱连接:
P3.4口连接控制箱上红色按键P,P1口连接8个LED,二进制显示按键次数。
参考代码(填空并看懂理解代码):
ORG0000HMOVTMOD,#06H(为什么?
)MOVTL0,#0MOVTH0,#0MOVA,#0MOVP1,ASETBTR0HERE:
MOVP1,TL0AJMPHERE思考题1.如何设置计数方式?
2.如何读取计数值?
TMOD#06H因为想使用计数器1为计数工作模式,并且使用工作方式2使用P3.4口INT1汇编指令思考题1.如何设置计数方式?
把TMODC/T设置为1就可以了TMOD示意表格下面的表格列出了TMOD各个位的名字,点击下面的1和0就可以给各个位置1或者置0,控制两个定时器/计数器的工作方式。
76543210GATEC/TM1M0GATEC/TM1M0然后在对应的T0,T1输入脉冲就可以计数计数方式的设置通过M0,M1设置工作在什么方式,方式同定时器。
根据输出口的亮灭情况亮表示1,暗表示0我们可以读出一个由0和1组成的二进制数在没有溢出的情况下,将这个二进制转换为十进制就是我们最后想要的结果。
实验7串行口(实验7和8选做了实验8)实验8键盘实验内容:
用P1口记录按键的次数。
P3.0口连接控制箱上开关S,P1口连接8个LED,二进制显示按键次数。
ORG0000HSJMPSTARTSTART:
MOVA,#0MOVP1,ALOOP:
JNBP3.0,LOOPLCALLDELAYJNBP3.0,LOOPINCAMOVP1,AWAIT:
JBP3.0,WAITSJMPLOOP(去抖动延迟10ms,请补全,可查阅课件)DELAY:
DJNZR7,DEL2DJNZR6,DEL1RETI思考题1.为什么需要去抖动?
2.如何识别一次按键?
为了放止按键抖动,设置延时,根据定时器算法可以得到20*250*2us为10ms思考题1.为什么需要去抖动?
因为在键按下时由于机械触点的弹性以及电压突跳等原因,在触点闭合和释放的瞬间都会出现电压抖动。
影响显著的是键闭合时候的抖动,有闭合的时候为了保证扫描的正确性,需要在一定延迟之后再进行判定。
两次判定状态一致才可以判断现在键盘的状态。
在系统进行初始化后,持续的对按键相连的接口进行扫描,当扫描到电平变化后,延迟10s继续进行扫描,检测是否得到一样的结果,如果结果相同,累加器加一,之后继续重新进行扫描下一次的按键。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 综合 报告