#基于Protues的仿真实验文档格式.docx
- 文档编号:22586653
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:36
- 大小:99.91KB
#基于Protues的仿真实验文档格式.docx
《#基于Protues的仿真实验文档格式.docx》由会员分享,可在线阅读,更多相关《#基于Protues的仿真实验文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
导线的删除操作:
右键选中导线后导线变红,再对变红的导线点击右键即删除了导线。
导线属性的设置:
右键选中导线后导线变红,再点击左键即弹出“EditWireStyle”对话框,即可对导线的属性进行设置。
(三)创建和导入ASM源文件
进入菜单栏,选择“Source”下“Add/RemoveSourcefiles…”,即弹出“Add/RemoveSourceCodeFiles”对话框。
再点击“New”按键,弹出“NewSourceFiles”对话框,即可以创建(只在文件名栏目输入一个文件名,后缀为ASM)或导入ASM源文件。
确定后,“Add/RemoveSourceCodeFiles”对话框中“SourceCodeFilename”栏目即有ASM源文件名及路径,然后在“CodeGenerationTool”栏目中选择“ASEM51”,最后点击“OK”按键,即完成了创建和导入ASM源文件。
此后“Source”下即可以看到相应的ASM源文件。
(四)编译ASM和导入HEX文件
编译ASM文件的前提是已导入ASM文件,启动编译的方法有两种:
方法一:
进入菜单栏,选择“Source”下“BuildAll”,即弹出“BUILDLOG”提示框,提示编译ASM文件的结果。
方法二:
直接点击器件放置和运行区下方的“运行”按键,若ASM文件内容有变化,即自动对其编译,若问题即弹出“SOURCECODEBUILDERRORS”提示框,提示编译ASM文件的结果。
编译ASM文件成功后即生成HEX文件,单片机导入HEX文件的方法是,打开单片机器件属性对话框,在“ProgramFiles”栏目里打开文件目录,选择装入HEX文件即可。
单片机此后按照该HEX文件的代码运行程序。
【特别注意】单片机运行速度和晶振频率有关,目前PROTEUS的版本不支持晶振器属性里所设置的频率值,单片机晶振频率必须在单片机器件本身的属性里设置,即打开单片机器件属性对话框,在其“ClockFrequency”栏目里输入频率值。
(五)软件调试菜单
进入菜单栏,选择“Debug”下“Start/ResartDebugging”,即进入调试状态,此后可以进行单步运行、全速运行、断点设置等功能。
【特别提示】:
调试期间,即可看到电路系统的运行结果和状态细节。
可在电路中进行电压、电流和波形测试,其测试操作基本方法是选择“器件和仪器工具栏”的测试工具或测试信号图标,将测试工具和测试信号放置到电路的相应位置,并和测试点连接起来(放置和连接方法同电路器件一样),然后再调试运行即可看到测试结果。
二、参考硬件电路
三、参考汇编程序
ORG00H
LJMPMAIN
ORG100H
MAIN:
MOVA,#7FH
LOOP:
RLA
MOVP0,A
LCALLDEL
LJMPLOOP
DEL:
MOVR0,#4
DL3:
MOVR2,#250
DL2:
MOVR3,#250
NOP
DEL1:
DJNZR3,DEL1
DJNZR2,DL2
DJNZR0,DL3
RET
END
四、思考练习题
(一)单片机最小系统由哪几个基本部分组成?
(二)修改硬件电路及晶振频率,使流水灯通过P2口运行,并加快流水速度。
(三)修改程序,改变流水灯流向和流水灯花样。
基础实验一查表指令及基本IO实验
一、实验内容
(1)先搭建一个“8051基本IO实验”的仿真电路,该单片机系统功能是一个开关闭合后,有一个对应的LED指示灯亮。
(2)利用已搭建的电路运行“查表指令程序”,实验要求输出的花样按照一个常数表的数值改变。
二、.参考硬件电路
.
(1)基本IO实验
ORG0000H
LJMPSTART;
P2输入P0输出
ORG0100H
START:
LOOP:
MOVP2,#0FFH;
复位P1口为输入状态
MOVA,P2;
MOVP0,A
AJMPLOOP
(2)查表指令实验
ORG0000H
LJMPSTART;
流水灯程序,查表P1输出
ORG0100H
MOVDPTR,#TAB
CLRA
MOVCA,@A+DPTR;
CJNEA,#0FFH,NEXT
AJMPSTART
NEXT:
CPLA
MOVP0,A
LCALLDELAY
INCDPTR
AJMPLOOP
DELAY:
MOVR5,#250
DELAY1:
MOVR6,#250
DELAY0:
DJNZR6,DELAY0
DJNZR5,DELAY1
TAB:
DB01H,02H,04H,08H,10H,20H,40H,80H
DB80H,40H,20H,10H,08H,04H,02H,01H,0FFH
(一)运行基本IO程序后,设置不同的开关状态,查看运行结果.。
设置好开关状态后,标出每一条指令的功能和执行结果
(二)将基本IO程序的指令AJMPLOOP句改成LOOP1:
AJMPLOOP1,分析和验证运行结果。
(三)对于查表指令程序,若DPTR的内容分别是TAB+5和TAB+16,分别写出上述程序中指令MOVCA,@A+DPTR的执行结果。
(四)分析查表指令程序执行的大致过程。
将程序的常数表加以修改,使显示的花样改变。
之后又修改延时子程序DELAY,使显示变化的速度加快。
基础实验二外部中断和堆栈指令实验
搭建一个“外部中断和堆栈指令实验”的仿真电路,该单片机系统功能是,系统运行后,LED灯显示一个加法计数。
中断开关闭合后,显示的内容是插入一个流水灯扫描,流水灯扫描结束后继续显示加法计数。
LJMPSTART;
加法计数显示中断循环两次,现场保护
ORG003H
LJMPI001
ORG100H
START:
SETBIT0
SETBEX0
SETBEA
CLRA
ST0:
CPLA
MOVP0,A
LCALLDL0
CPLA
INCA
AJMPST0
I001:
PUSHACC;
NOP;
PUSHACC保护现场
SETBRS1
MOVP0,#0FFH
MOVA,#0FFH
MOVR3,#8
CLRC
RLCA
DJNZR3,LOOP
LOOP1:
SETBC
RRCA
DJNZR3,LOOP1
CLRRS1
POPACC;
NOP;
POPACC恢复现场
RETI
DL0:
MOVR0,#4
DL1:
MOVR1,#255
MOVR2,#255
DJNZR2,$
DJNZR1,DL2
DJNZR0,DL1
(一)分析程序结构,运行程序后,随时将开关闭合一下,查看运行结果.。
(二)分析程序的中断响应的执行过程。
若将指令SETBIT0改为CLRIT0,分析和验证运行结果。
(三)将程序的指令PUSHACC和POPACC同时改成NOP指令,分析和验证运行结果。
基础实验三定时器和静态显示实验
一、实验内容
(1)搭建一个“定时器和静态显示实验”的仿真电路,该单片机系统功能是,系统运行后,LED数码管显示器相当于秒计数器。
(2)搭建一个类似电路,能够记录中断开关闭合时长,LED数码管显示器相当于秒表。
(1)秒计数器电路
(2)秒表电路
【提示】:
图中的BCD数码管,相当于上面秒计数器电路中“4511加七段数码管”的功能,这样做的目的只是为了简化电路而已。
后续的实验电路有类似的做法,不再一一加以说明。
(1)秒计数器程序
LJMPSTART
ORG0013H
LJMPT0INT
MOVP0,#00H
MOVTMOD,#01H;
G=0,C=0,M1M0=01
MOVTH0,#4CH;
11.0592m,50ms中断计B400H次
MOVTL0,#00H
SETBTR0
SETBEA
SETBET0
MOVSP,#60H;
30H改成60
MOV30H,#00H;
中断计数器初值
MOV31H,#00H;
秒计数器初值
CLR00H;
秒刷新标志
JNB00H,LOOP
setbp2.0;
clrp2.0
MOVP0,31H
clrp2.0;
setbp2.0
CLR00H
AJMPLOOP
T0INT:
MOVTH0,#4CH;
PUSHACC
INC30H
MOVA,30H
CJNEA,#20,REL0;
中断20次1秒
REL0:
JCNEXT0
MOV30H,#00H
MOVA,31H
ADDA,#1
DAA
MOV31H,A
SETB00H
CJNEA,#60H,REL1
REL1:
0~59
NEXT0:
POPACC
(2)秒表程序
ORG0000H
G=0,C/T=0,M1M0=01
;
SETBTR0
0.1秒计数器初值
JBP3.2,LOOP
SETBTR0;
启动计数
MOV31H,#00H
MOVP0,31H;
显示00初值
LOOP1:
JNBP3.2,LOOP1
CLRTR0;
停止计数
CJNEA,#2,REL0;
中断2次0.1秒
MOV31H,A;
0.0~9.9秒
NEXT0:
MOVP0,31H
POPACC
(一)分析秒计数器程序结构,查看运行结果.。
(二)分析秒表程序的中断响应的执行过程。
随时按一下按键,分析和验证运行结果。
扩展实验一并行扩展8255实验
搭建一个“并行扩展8255实验”的仿真电路,该单片机系统功能是,系统运行后,点阵LED流水灯显示,显示位置受8255的C口的波论开关控制。
PAEQU7CFFH
PBEQU7DFFH
PPCEQU7EFFH
PKEQU7FFFH
LJMPSTART;
ORG0100H
nop
LCALLDELAY
MOVDPTR,#PK;
MOVA,#89H;
10001001,AB方式0,输出,C输入
MOVX@DPTR,A
MOVDPTR,#PPC;
MOVXA,@DPTR
NEXT:
MOVB,A
MOVDPTR,#PA;
cpla
MOVDPTR,#PB;
MOVA,#7FH
movr0,a
MOVX@DPTR,A;
LCALLDELAY
CJNEA,B,NEXT
mova,r0
MOVR5,#2
MOVR7,#250
DJNZR7,$
;
(提示:
控制字格式为:
D7-方式有效标志,D6D5-PA组方式选择,D4-PA口输入输出选择,D3-PC口高半字节输入输出选择,D2-PB组方式选择,D1-PB口输入输出选择,D0-PC口低半字节输入输出选择,1-输入,0-输出。
8255A的初始化时间较长)
(1)结合硬件电路说明,PA/PB/PC/控制口地址为何这样赋值?
PAEQU7CFFH
PBEQU7DFFH
PPCEQU7EFFH
(2)结合系统功能说明,控制字为何这样赋值?
MOVDPTR,#PK;
MOVA,#89H;
MOVX@DPTR,A
(3)分析程序结构,运行程序拨动开关,分析运行结果,实验如何修改程序改变流水灯方向?
扩展实验二串行通信实验
(1)搭建一个“8051双机通信的实验”的仿真电路,该单片机系统功能是,系统运行后,两个单片机各作加法、减法计数,在外部中断的控制下,能向对方发送数据。
(2)搭建一个“51单片机和PC机通信的实验”的仿真电路,该单片机系统功能是,系统运行后,PC机串口向单片机发“U”,单片机回发问候信息,单片机每这么完成收发一次,计数器加一显示出来。
(1)8051双机通信的电路
(2)51单片机和PC机通信的电路
(1)8051双机通信的两个程序
A:
加法计数程序
LJMPINT
ORG023H
LJMPSPT
ORG130H
MOVSCON,#50H;
串口方式1
MOVPCON,#00H;
SMOD=0
MOVTMOD,#20H;
T1方式2(重装方式)
MOVTH1,#0FDH;
11MHz晶振条件
MOVTL1,#0FDH;
波特率为9600bps
SETBTR1
SETBEX0
SETBIT0
SETBES;
CLRES
SETBPS
MOVR0,#00H
MOVP1,R0
LCALLDEL
INCR0
SJMPLOOP
INT:
MOVSBUF,R0
JNBTI,$
CLRTI
SPT:
JBTI,RSPT
CLRRI;
MOVA,SBUF
MOVP1,A
RSPT:
MOVR7,#20
DL3:
MOVR6,#250
DL2:
MOVR5,#250
DJNZR5,$
DJNZR6,DL2
DJNZR7,DL3
B:
减法计数程序
DECR0
(2)51单片机和PC机通信程序
ORG23H
ORG30H
MAIN:
MOVSCON,#50H;
MOVTL1,#0FDH;
SETBES
MOVR2,#00H;
R2放显示次数
DISP:
MOVP1,R2
SJMPDISP
SPT:
CLRRI;
CJNEA,#'
U'
KK
CLRES
INCR2
MOVDPTR,#TBL
MOVA,#00H
MOVCA,@A+DPTR
CJNEA,#0FFH,GOON
AJMPKK
GOON:
MOVSBUF,A
CLRTI
INCDPTR
KK:
RETI
TBL:
DB"
-"
'
H'
e'
l'
o'
!
'
0FFH
(1)双机通信时,晶振频率能否一个使用12M,另一个使用11.0592M晶振?
双机通信程序中设置了外部中断和串行中断,哪一个中断优先级高?
是否允许串行发中断和串行收中断?
串行中断子程序里如何识别处理这两种中断?
(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Protues 仿真 实验