单片机实验指导书Word文档格式.docx
- 文档编号:19422299
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:30
- 大小:277.07KB
单片机实验指导书Word文档格式.docx
《单片机实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
a)执行[主菜单»
运行»
进入调试状态]
b)点击工具条的
进入后的窗口如下:
在整个图片中我们可以看到相对应的窗口信息。
在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。
中间的窗口为源程序窗口,用户可在此设置断点,
设置光标的运行处,编辑程序等。
寄存器窗我们可以看到一些常用的寄存器的数值。
存贮窗1、存贮窗2显示相应的内部数据空间、外部数据空间的数据,还有变量窗,自动收集变量显示其中。
反汇编窗显示对程序反汇编的信息代码、机器码。
在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。
这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。
用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;
将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。
在调试过程中,可以根据您的需要,在[主菜单»
查看]中打开:
寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。
您也可以通过[主菜单»
辅助»
设置»
格式],设置每一种窗口使用的字体、大小、颜色。
移动窗口到您喜欢的位置、大小。
首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。
对于高级语言,在您的程序前有一段库文件提供的初试化代码,
(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;
如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行后停下。
您可以使用以下命令调试您的程序:
设置或清除断点(功能键为F2)
在当前光标行上设置或清除一个断点
单步进入(功能键F7)
单步执行当前行或当前指令,可进入函数或子程序。
SUPERICE16、SUPERICE51“单步进入”时,不响应中断。
连续单步进入(功能键Ctrl+F7)
连续执行“单步进入”,用鼠标点击
或按任意键后,停止运行。
单步(功能键F8)
单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。
如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。
SUPERICE16、SUPERICE51“单步”时,不响应中断。
连续单步(功能键Ctrl+F8)
连续执行“单步”,用鼠标点击
运行到光标行(功能键F4)
从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击
,停止运行。
全速断点(功能键F9)
从当前地址开始全速运行用户程序,碰到断点或用鼠标点击
全速运行(功能键Ctrl+F10)
从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,即对于MCS51类CPU是从0开始执行;
对于MCS96、MCS196类CPU是从2080H开始执行。
用鼠标点击
停止运行
终止微机与仿真器之间通信(功能键ESC)。
欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。
建议用户多用ESC键。
在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。
5.调试的方法及技巧
一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。
一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。
在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。
比如在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:
我们可以观察到在本程序中所使用的一些寄存器的变化,比如累加器A、P1口的数值的变化。
我们可以看到P1口中的数值变化为:
FEH(11111110B)—FDH(11111101B)—FBH(11111011B)—F7H(11110111B)—EFH(11101111B)—DFH(11011111B)—BFH(10111111B)—7FH(01111111B)—FEH(11111110B)很好的实现了P1口循环点亮发光二极管的功能。
对于其他的一些寄存器的数值的观察我们也可以用来分析自己的程序。
把光标移动到DELAY子程序(具体操作是:
用鼠标点击DELAY
,然后再点击图标
,即可运行到光标行):
这时执行“连续单步(Ctrl+F7)”命令,在工作区窗口的CommonRegister视中我们可以寄存器R5,R6,R7的数据的连续的变化。
用户可对此做专门的分析。
我们在调试时,观察工作区窗口的CommonRegister视,就会看到尽管有A,R4的数值在变化,但是P1的数值始终没有变化。
这样我们在调试时就会发现问题LJMPSTART应改为LJMPLOOP。
我们也可以在软件中查看变量,查看变量有多种方法,
a)鼠标移到文件窗、反汇编窗口中的变量、寄存器、内部RAM、外部RAM上,半秒钟后,在它们的旁边,会显示相应的值。
b)在变量窗中,“全局”显示所有的全局变量;
“模块”显示所有模块级变量;
“局部”显示所有当前函数中的变量;
“自动”自动收集当前可执行及前二行中的所有变量、寄存器、内部RAM、外部RAM。
--------------------------------------------------------------------------------
实验一跑马灯实验
一、实验目的与要求
1、熟悉星研集成环境软件或熟悉KeilC51集成环境软件的使用方法。
2、熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。
二、实验设备
STAR系列实验仪一套、PC机一台
三、实验内容
1、熟悉星研集成环境软件或熟悉KeilC51集成环境软件的安装和使用方法。
2、照接线图编写程序:
使用P1口控制G6区的8个指示灯,循环点亮,瞬间只有一个灯亮。
四、实验原理图
五、实验步骤
1、连线说明:
A3区:
JP51
——
G6区:
JP65
2、编写程序或运行参考程序。
3、实验结果:
通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。
六、演示程序
ORG
0000H
LJMP
START
0100H
START:
MOV
SP,#60H
A,#0FEH
START1:
P1,A
RL
A
ACALL
DELAY
SJMP
START1
DELAY:
R0,#0FFH
;
延时子程序
DELAY1:
R1,#0
DJNZ
R1,$
本句循环
R0,DELAY1
RET
END
请考虑以下问题?
1、运行程序前,打开变量窗;
2、使用单步进入命令,运行到第六行后,运行过程中变量窗有何变化?
将鼠标停留在A、SP上一秒后,出现什么?
它与变量窗使用场合的区别?
3、第九行是调用延时子程序,如何进入延时子程序(使用单步进入命令)?
如何将延时子程序一下子运行完毕(使用单步命令;
也可以将光标移到下一行,使用运行到光标处命令;
)?
单步进入命令与单步命令有何区别?
4、运行几次后,在第十行设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?
5、Delay是一个延时子程序,改变延时常数,使用全速运行命令,显示发生了什么变化?
6、观察寄存器,有哪几种方法?
1)在工作区窗的通用寄存器标签视中;
2)变量窗
3)鼠标停留在寄存器上
4)观察窗
5)寄存器窗
实验二数据传送(RAM–>
XRAM)
一、实验目的
熟悉星研集成环境软件或熟悉KeilC51集成环境软件的使用方法。
熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。
二、实验内容
2、编写程序,实现内外部数据段的传送、校验。
三、程序框图
四、实验步骤
在内部RAM30H~3FH中输入数据;
使用单步、断点方式调试程序,检测外部数据RAM的1000H~100FH中的内容。
熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。
五、程序清单
将内部RAMAddress1开始的16个字节送到外部RAM从Address2开始的单元里,再作比较。
Address1
DATA
30H
Address2
XDATA
1000H
STAR
STAR:
R0,#Address1
DPTR,#Address2
R7,#10H
STAR1:
A,@R0
传送
MOVX
@DPTR,A
INC
R0
DPTR
R7,STAR1
STAR2:
B,@R0
比较
A,@DPTR
CJNE
A,B,STAR3
R7,STAR2
$
传送正确
STAR3:
传送错误
请考虑以下问题:
1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;
一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?
2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?
将鼠标停留在A、SP、@R0、@DPTR上一秒后,出现什么?
3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。
4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?
5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?
运行结果是否正确?
它与全速断点运行命令有何区别?
2)变量窗3)鼠标停留在寄存器上。
4)观察窗5)寄存器窗
7、查看CPU内部数据RAM、CPU片外数据RAM:
1)存贮器窗2)变量窗
3)鼠标停留在CPU内部数据RAM、CPU片外数据RAM的地址、@R0、@DPTR上。
六、思考题
改编程序,使得当数据传输正确时,点亮1个发光二极管。
当数据传输错误时,点亮2个发光二极管。
实验三继电器控制实验
掌握使用继电器控制外设的基本方法和编程。
二、实验设备
STAR系列实验仪一套、PC机一台。
1、预备知识
自动化控制设备中,存在一个电子与电气电路的互连问题,一方面,电子电路需要控制电气电路的执行元件,如:
电动机、电磁铁、电灯等;
一方面又要为电子电路提供良好的电隔离,以保护电子电路和人身安全,减少干扰源。
继电器就起这个桥梁作用。
2、实验过程
使用G6区的K7拨动开关,通过继电器控制直流电机转动、停止。
如果K7损坏,可以用其他开关。
五、实验步骤
E3区:
Ctrl
P1.0
COM1
C1区:
VCC
CUT1
F1区:
P1.7
K7
2、运行程序,G6区的K7拨动开关,控制继电器动作。
P1.0为低电平时,继电器动作。
KeyH:
JB
P1.7,$
P1.7为1时,等待。
CALL
Delay
P1.7为0,延时去抖
P1.7,KeyH
再次确认。
为0则向下运行
CLR
P1.0
继电器上电,电机转动
KeyL:
JNB
P1.7为0,等待
P1.7为1时,延时去抖
P1.7,KeyL
再次确认为是否0。
否则向下运行
SETB
继电器停电,电机停转
KeyH
Delay:
R6,#20H
R7,#0
Delay1:
R7,$
R6,Delay1
七、思考题
改编程序,使电机每次运行时间不超过1秒。
实验四中断、定时器系统
一、实验目的:
1、掌握定时/计数器、中断初始化程序的设计。
2、掌握使用定时/计数器的方式1、方式2的编程方法
3、掌握中断的编程方法。
二、实验硬件电路:
三、实验内容:
1、外部中断————INT0应用:
硬件电路如上图,其中————INT0输入部分是B2区的R-S触发器(硬件去抖动),B2区的S4是中断申请按键。
P1口设置跑马灯,要求————INT0每申请一次中断,即开关S4拨动一次,跑马灯循环点亮一次。
连线说明:
B2区:
单脉冲
P3.2
参考程序如下:
ORG0
SJMPMAIN
ORG0003H;
外部中断0入口地址
SJMPLOOP;
跳转到中断服务程序LOOP
MAIN:
SETBEA;
开放总中断
SETBEX0;
开放外部中断0
SETBIT0;
开放定时器0中断
HERE:
SJMPHERE;
在此等待
LOOP:
MOVP1,#0FEH;
外中断0中断服务程序。
点亮一个灯
MOVTMOD,#10H;
定时器1设为方式1计时
MOVTL1,#00H;
设初值,定时器做为延时
MOVTH1,#00H
MOVR2,#08H;
为点亮8个灯计数
SETBTR1;
定时器启动
L:
MOVC,TF1;
溢出标志送入C
JNCL;
TF1不等于1,未溢出,循环等待
CLRTF1;
溢出,清除标志,以便下次判断
MOVA,P1
RLA;
A内容循环左移,准备点亮下个
MOVP1,A;
DJNZR2,L;
循环点亮8灯
RETI
END
2、用定时器串联方式,实现每隔1秒钟发光二极管循环闪亮,单片机的晶振为11.0592MHZ。
具体做法是:
使T0工作于定时方式1(产生71mS定时),使T1工作计数(计数14次,约为1秒),每次T0溢出后从P3.0(RXD)口给P3.5(T1)口发送一个负脉冲,当T1溢出时控制P1口的发光二极管闪亮。
T0、T1的溢出,采用查询方式。
连线说明:
P3.0
P3.5
参考程序如下:
ORG0000H
ORG0030H
MOVP1,#0FEH;
MOVTMOD,#51H;
定时器0设为1方式定时器,定时器1设为计数
L0:
MOVTL1,#0F2H;
初值F2H到溢出值100H,计数值为14.
MOVTH1,#0FFH;
SETBTR1;
启动定时器1
L1:
MOVTL0,#00H;
机器周期TCY=12/11.0592=1.085.最大计时为
MOVTH0,#00H;
216*1.085=71106us=71.1ms
SETBTR0
L2:
MOVC,TF0
JNCL2
CLRTF0
CLRP3.0
NOP
CPLP3.0
MOVC,TF1
JNCL1
CLRTF1
MOVA,P1
RLA
MOVP1,A
SJMPL0
四、预习要求:
1、阅读教科书中有关中断、定时器/计数器的内容、熟悉定时器/计数器的基本结构和工作过程。
2、计算定时器/计数器时间常数。
3、写出预习报告
五、思考题:
1、对于实验内容2用定时器串联方式的延时方法,若T0、T1的溢出采用中断方法,程序应如何修改。
2、若改变延时时间,程序应如何修改。
实验五PWM电压转换实验
一.实验目的
1、了解PWM电压转换原理
2、掌握单片机控制的PWM电压转换
1、PWM电压转换原理:
(1)将一定频率的输入信号转换为直流电;
(2)通过调节输入信号占空比调节输出的直流电电压,输出电压随着占空比增大而减小
(1)输入15kHZ左右的方波,经LM358进行PWM电压转换,输出直流电,驱动直流电机
(2)通过按键调整占空比来改变PWM输出电压,直流电机的转速会随之变化
E2区:
IN
P1.2,方波输入
OUT
IN1
OUT1
CTRL,直流电机电源输入
JP74
2、通过G6区的1、2键调整占空比来改变PWM输出电压,直流电机的转速会随之变化:
1号键减少占空比;
2号键增加占空比
BIT
P1.2
PWM方波输入
PWM_LOW
30H
低电平时间
PWM_HIGH
31H;
高电平时间,控制频率在15kHZ左右
periods
EQU
0E0H
周期64us
000BH
iTIMER0
PWM_LOW,#periods
PWM_HIGH,#periods
TH0,#periods
TL0,#periods
MOV
TMOD,#02H
T0设为定时器,方式2自动重装
EA
开中断
ET0
开定时器中断
TR0
启动定时器0
ScanKey
JNZ
Key1
Key0:
A,PWM_HIGH
减少占空比
A,#0FBH,Key0_1
START1;
大于这个值,对定时中断已反应不过来
Key0_1:
DEC
Key1:
A,PWM_LOW
增加占空比
A,#0FBH,Key1_1
Key1_1:
iTIMER0:
JBC
IN,iTIMER0_1
若IN为1,跳转并将IN清零。
TL0,PWM_HIGH
加载高电平时间
置为高电平
RETI
iTIMER0_1:
TL0,PWM_LOW
加载低电平时间
NOP
ScanKey:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书