单片机与嵌入式实验指导书79531.docx
《单片机与嵌入式实验指导书79531.docx》由会员分享,可在线阅读,更多相关《单片机与嵌入式实验指导书79531.docx(25页珍藏版)》请在冰豆网上搜索。
单片机与嵌入式实验指导书79531
单片机与嵌入式系统
实验指导书
计算机系硬件实验室
第一章单片机超想3000集成调试软件使用说明
一、使用入门
1.超想3000软件启动和退出
启动:
正确安装之后,点击“开始/程序/恒科电子教学实验系统”程序组,选择“HK-51系列仿真开发系统”,即可启动程序。
退出:
超想软件可从“文件/退出”命令退出集成环境,或单击屏幕右上角
的按钮,也可直接按Alt+X退出。
2.计算机与仿真器联机
当启动调试软件时,出现“选择通讯”端口窗口,点击取消按钮进入超想3000调试平台。
如果进行仿真实验,则进行如下操作:
步骤一:
打开“设置/仿真模式”菜单,在CPU窗口中选择适当的CPU类型(8751/89C51),并同时设置RAM和ROM。
步骤二:
打开“设置/通讯端口选择”菜单,选择相应的端口,一般为串口1或者串口2。
步骤三:
经过以上设置后请执行“设置/重新连接”命令,大约在4秒后如果没有出现“仿真器没有连接”的对话框,同时软件没有停止响应,则表明通讯成功。
3.集成开发环境
下图列出了超想3000调试平台上得主要部件。
(1)工具栏
工具栏包含了最常用得超想3000集成调试软件的命令。
只需单击命令图标即可方便的使用它们。
(2)提示框
(3)状态栏
位于屏幕底部的状态栏显示调试窗口中正在执行的命令或编辑窗口状态等信息。
(4)对话框
超想3000集成调试软件在绝大数对话框为模式对话框,这种对话框在执行某一命令后出现,只有在对话框内所列的各项作出若干选择,或键入所需信息后该命令才执行下去。
通常,菜单命令中的某一些菜单项后跟有省略号(…),便意味着执行这条命令后会弹出对话框。
(5)快捷键
按快捷键执行命令,可以免去打开菜单再选命令的的繁琐过程。
快捷键列在菜单命令的右边。
下表列出了超想3000集成调试软件的所有快捷键及其定义。
F3
装载模块
Ctrl+F5
增加变量
F4
运行到光标处
Ctrl+F8
设置或清除断点
F5
运行到指定地址
Ctrl+F9
编译、连接、装载
F7
单步运行
Ctrl+N
建立新文件
F8
宏单步运行
Ctrl+O
打开文件
F9
连续运行
Alt+X
退出
Ctrl+
复位
Space
从PC处开始显示
Ctrl+
浏览模块
Exc
暂停
(6)快捷菜单
快捷菜单也称局部菜单或右键菜单。
当激活某一窗口,无论是调试窗口、寄存器窗口还是其它窗口,都可以按鼠标右键以显示当前窗口的最典型的命令。
要关闭快捷菜单,只需在窗口其它部分单击鼠标,或者按Esc键。
二、菜单命令简介
1.文件菜单
(1)文件(N)Ctrl+N
建立一个新的源文件。
(2)打开文件(O)Ctrl+O
弹出对话框,选取列表中的文件或在输入框输入文件名,单击“打开”,文件编辑窗口即显示该文件内容。
(3)关闭
关闭当前的活动窗口。
(4)存储
将当前编辑窗口中的文件存到磁盘上。
(5)另存为
将当前编辑窗口中的文件换成另一个文件名再存盘。
(6)输出列表文件
将当前ROM地址空间的代码保存为.LST列表文件。
弹出文件列表对话框,输入要保存的文件名并单击“保存”。
(7)退出(E)Ctrl+E
执行该命令可以退出超想3000集成调试软件。
2.编辑菜单
注意:
编辑菜单为超想3000集成调试软件的动态菜单,当激活不同的窗口时,该菜单命令也随之改变;关闭所有窗口后该菜单也自动关闭。
现以源文件编辑窗口为例说明该菜单。
(1)取消操作(U)Ctrl+U
使用该命令能恢复文件编辑中最后一次所作的修改。
(2)剪切(T)Ctrl+X
清除编辑窗口中选定的文件,并放置在剪贴板上。
只有在选定文本后,这一命令才有效。
放置在剪贴板上的文件始终保留在那里,直到新内容替换掉它们。
(3)复制(C)Ctrl+C
使用该命令可将选定的文本复制到剪贴板上。
只有在选定文本后,这一命令才有效。
复制到剪贴板上的文件将替换掉先前的内容。
(4)粘贴(P)Ctrl+V
使用该命令可以将剪贴板内容插入到当前编辑窗口的光标位置。
如果在编辑窗口中已选定内容。
使用该命令可用剪贴板上的内容替换掉选定的内容。
如果剪贴板上无内容,这一命令将是无效的。
(5)查找(S)Ctrl+F
使用该命令可以在当前编辑窗口中查找文本字符串。
该命令包含两参数,可选择使用:
WholeWord整字匹配
MatchCase区分大小写
查找下一个Ctrl+L
使用该命令可以继续查找在“查找”命令中指定的文本。
(6)跳到行…Ctrl+G
使用该命令可以跳转到编辑窗口中指定的行。
(7)字体
对编辑窗口中的文本进行字体、字号、颜色等设置。
(8)刷新
(9)重新显示当前编辑窗口。
3.编译菜单
(1)编译、连接
对当前编辑窗口源文件或当前工程组进行编译、连接,生成目标代码。
(2)编译、连接、装载Ctrl+F9
对当前编辑窗口源文件或当前工程组进行编译、连接,并将生成的目标代码装入ROM。
(3)装载F3
将磁盘上存在的目标代码直接装入ROM。
(4)浏览模块Ctrl+F3
该命令可在调试窗口中浏览源文件内容,通常适用于浏览工程组中的源文件。
(5)编译选项
使用该命令可设置源文件编译的各选项。
三、工作窗口介绍
1.寄存器窗口
(1)寄存器窗口的打开
执行“视图/寄存器”菜单命令即可打开寄存器窗口。
(2)寄存器窗口“编辑”菜单
激活寄存器窗口,再打开编辑菜单:
寄存器设置:
执行此命令即可进入寄存器管理对话框:
在这里可以新增加一个寄存器、删除已有的寄存器,或者修改已有的寄存器,如名称、地址。
四、调试程序步骤简介
(1)输入程序
点击“文件/新文件”菜单或者工具栏上的“创建新文件”按钮,输入汇编程序。
如果是旧文件,则点击“文件/打开文件”菜单或者工具栏上的“打开文件”按钮,修改汇编程序。
(2)保存程序
点击“文件/存储”菜单,保存文件。
如果是新文件,则输入文件名,后缀为.ASM
(3)汇编程序
点击“文件/文件编译、连接、装载”菜单或者按Ctrl+F9。
集成环境首先对源程序进行汇编,弹出编译窗口,如果出现错误,则按照提示进行修改。
(4)单步执行程序
按F7一条一条执行,源程序中的箭头
表示下一条将要执行的程序。
(5)软件复位CPU
点击“调试/复位”菜单或者按Ctrl+F2。
(6)断点执行程序
在源程序窗口左边相应行的位置,点击鼠标左键,则进行设置/清除断点,断点以
显示。
(7)全速执行程序
点击“调试/全速执行”菜单或者按F9。
(8)中断执行程序
点击“调试/暂停”菜单或者按Esc键。
这时,可以在“视图/存储空间”窗口查看显示结果。
先进入该窗口,用“↑”、“↓”键查看地址单元的内容,一次显示16个地址。
如果地址较大,可以先进入该窗口,点击右键,选择“显示地址”,在弹出对话框中输入地址后,点击“确认”按钮,自动定位在要求的地址上。
第二章实验内容
实验目的:
通过本章所介绍的实验,进一步熟悉单片机的指令系统,掌握程序设计方法,熟悉集成软件调试环境,并掌握调试程序的方法和硬件在线仿真技术。
实验内容:
一、软件模拟调试实验:
实验一数据传送实验
实验内容:
将8031内部RAM40H—4FH单元置初值A0H—AFH,然后将片内RAM40H—4FH单元中的数据传送到片内RAM50H—5FH单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG0000H
RESET:
AJMPMAIN
ORG003FH
MAIN:
MOVR0,#40H
MOVR2,#10H
MOVA,#0A0H
A1:
MOV@R0,A
INCR0
INCA
DJNZR2,A1(循环转移(Rn)<-(Rn)-1
MOVR0,#50H
MOVR2,#10H
A3:
MOVA,@R1
MOV@R0,A
DJNZR2,A3
LJMP0000H((无条件)长转移指令)
思考题:
1.按照实验内容补全程序。
2.CPU对8031内部RAM存储器有哪些寻址方式?
3.执行程序后下列各单元的内容是什么?
内部RAM40H~4FH_________________________
内部RAM50H~5FH__________________________
实验二多字节十进制加法实验
实验内容:
多字节十进制加法。
加数首地址由R0指出,被加数和结果的存储单元首地址由R1指出,字节数由R2指出。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG0000H
RESET:
AJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVR0,#31H
MOV@R0,#22H
DECR0(减一指令)
MOV@R0,#33H
MOVR1,#21H
MOV@R1,#44H
DECR1
MOV@R1,#55H
MOVR2,#02H
ACALLDACN(子程序调用)
HERE:
AJMPHERE
DACN:
CLRC
DAL:
MOVA,@R0
ADDCA,@R1
DAA
MOV@R1,A
INCR0
INCR1
CLRA
MOVACC.0,C
RET
思考题:
1.按照实验内容补全程序。
2.加数单元、被加数单元和结果单元的地址和内容为?
3.如何检查双字节相加的最高位溢出?
4.改变加数和被加数,测试程序的执行结果。
实验三数据排序实验
实验内容:
将内部RAM50H—59H中的数据按从小到大的次序排列。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的数据是否为排序状态。
源程序清单:
ORG0000H
RESET:
AJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVR0,#50H
MOV@R0,#6FH
INCR0
MOV@R0,#6EH
INCR0
MOV@R0,#6AH
INCR0
MOV@R0,#6CH
INCR0
MOV@R0,#6DH
INCR0
MOV@R0,#5BH
INCR0
MOV@R0,#67H
INCR0
MOV@R0,#69H
INCR0
MOV@R0,#68H
INCR0
MOV@R0,#64H
ACALLQUE
HERE:
AJMPHERE
QUE:
CLR00H
MOVR7,
MOVR0,#50H
MOVA,@R0
L2:
INCR0
MOVR2,A
SUBBA,@R0
MOVA,R2
JCL1
SETB00H
XCHA,@R0
DECR0
XCHA,@R0
INCR0
L1:
MOVA,@R0
DJNZR7,L2
JB00H,QUE
RET
思考题:
1.按照实验内容补全程序。
2.检查程序执行结果。
3.修改程序,按从大到小次序排序。
实验四双字节乘法实验
实验内容:
[(R3)(R2)*(R5)(R4)]→R0指出的四个单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG0000H
RESET:
AJMPMAIN
ORG0100H
MAIN;MOVSP,#60H
MOVR2,#0FFH
MOVR3,#0FH
MOVR4,#0FFH
MOVR5,#0FH
MOVR0,#33H
MOVR7,#04H
ML0:
MOV@R0,#00H
DJNZR7,ML1
ACALLM2
HERE:
AJMPHERE
ML1:
DECR0
AJMPML0
M2:
MOVA,R2
MOVB,R4
MULAB
ACALLADDM
MOVA,R2
MOVB,R5
MULAB
DECR0
ACALLADDM
MOVA,R4
MOVB,R3
MULAB
DECR0
DECR0
ACALLADDM
MOVA,R5
MOVB,R3
MULAB
DECR0
ACALLADDM
RET
ADDM:
ADDA,@R0
MOV@R0,A
MOVA,B
INCR0
ADDCA,@R0
MOV@R0,A
INCR0
MOVA,@R0
ADDCA,#00H
MOV@R0,A
RET
思考题:
1.程序结果存放在哪几个单元中?
2.乘积为多少?
二、硬件在线仿真实验:
实验五电子钟实验
实验内容:
熟悉单片机在线仿真调试方法。
将仿真头插入实验板的CPU插座中,再打开电源,输入程序进行调试。
程序运行时,按下S0键,蜂鸣器发出响声,两个数码管开始从零显示时间,定时器定时时间为一分钟,定时时间到,蜂鸣器再次发出响声,重新按下S0键,重复上述过程。
源程序清单:
ORG0000H
START:
AJMPMAIN
ORG000BH
AJMPPIT0
ORG0100H
MAIN:
MOVSP,#60H
MOV50H,#00H
MOV51H,#00H
ACALLDISPLAY
MOVTMOD,#01H
MOVTL0,#0B0H
MOVTL1,#3CH
ACALLKEY
CLRP2.7
ACALLLONGDELAY
SETBP2.7
SETB00H
SETBTR0
SETBEA
SETBET0
MOV30H,#20
ML0:
ACALLDISPLAY
MOVC,00H
JCML0
CLRP2.7
ACALLLONGDELAY
SETBP2.7
AJMPMAIN
PIT0:
PUSHPSW
PUSHACC
SETBPSW.3
MOVTL0,#0B0H
MOVTH0,#3CH
MOVA,30H
DECA
MOV30H,A
JNZRET0
MOV30H,#20
MOVR0,#51H
ACALLDAAD1
MOVA,R2
XRLA,#60H
JNZRET0
ACALLCLR0
CLR00H
RET0:
POPACC
POPPSW
RETI
DAAD1:
MOVA,@R0
DECR0
SWAPA
ORLA,@R0
ADDA,#01H
DAA
MOVR2,A
ANLA,#0FH
MOV@R0,A
MOVA,R2
INCR0
ANLA,#0F0H
SWAPA
MOV@R0,A
RET
CLR0:
CLRA
MOV@R0,A
DECR0
MOV@R0,A
RET
DISPLAY:
MOVA,50H
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP2,A
MOVA,51H
MOVDPTR,#TABLE
MOVCA,@A+DPTR
MOVP0,A
CLRP0.7
LCALLDELAY
RET
KEY:
MOVC,P3.0
JCKEY
ACALLDELAY
KEY1:
MOVC,P3.0
JNCKEY1
ACALLDELAY
RET
DELAY:
MOVR1,#250
LOOP:
DJNZR1,LOOP
RET
LONGDELAY:
MOVA,R0
PUSHACC
MOVA,R1
PUSHACC
MOVR1,#250
LOOP1:
MOVR0,#250
LOOP2:
NOP
NOP
NOP
NOP
NOP
DJNZR0,LOOP2
DJNZR1,LOOP1
POPACC
MOVR1,A
POPACC
MOVR0,A
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
思考题:
1.程序中哪部分为显示程序?
2.程序中如何实现一秒钟的定时?
3.写出各段子程序的作用。
4.根据实验要求画出电路图。
附录1实验板线路说明
板间资源:
89C5140脚IC一片:
用于插入CPU芯片。
CPU周围共有4×8共32个跳线器,分别对应P0,P1,P2,P3口线选择。
跳线器位于上方则:
焊盘P0.(00—07)与CPU的P0.0---P0.7一一对应;
焊盘P1.(10—17)与CPU的P1.0---P1.7一一对应;
焊盘P2.(20—27)与CPU的P2.0---P2.7一一对应;
焊盘P3.(30—37)与CPU的P3.0---P3.7一一对应;
同时:
P3.0口对应RS232的RX端。
P3.1口对应RS232的TX端。
跳线器位于下方则:
数码管L1(笔段A—G)与CPU的P0.0---P0.6口一一对应;
数码管L2(笔段A—G)与CPU的P2.0---P2.6口一一对应;
此时如蜂鸣器旁跳线器位于BP端则P2.7与蜂鸣器连接。
如蜂鸣器旁跳线器位于L2端则P2.7与L2的小数点连接。
指示灯(D1—D8)与CPU的P1.0—P1.7口一一对应;
按钮S1—S4与CPU的P3.0—P3.3口一一对应;S1——P3.1,S2—P3.0
S3—P3.2,S4—P3.3
地址开关SW1—4与CPU的P3.4—P3.7一一对应;
注意:
LED1—2及D1—D8均为共阳极接法,因此低电平点亮LED指示灯;
按钮S0—S3按下时接地,地址开关SW1—SW4位于ON位置时接地。
RESET为RESET开关,OSC为晶体焊盘区,小LED为电源指示灯。
RS232接线端:
RX为89C51的232电平RXD端;
TX为89C51的232电平TXD端;
GND为89C51的232电平GND端;
P4口的ALE,PSN,RST与CPU的ALE,
RESET端直接相连,用于系统扩展。
电源输入为:
+5V。
附录2实验板线路图
仅供个人用于学习、研究;不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse.
NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文