单片机PROTEUS实验指导书.docx
- 文档编号:1607981
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:25
- 大小:2.19MB
单片机PROTEUS实验指导书.docx
《单片机PROTEUS实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机PROTEUS实验指导书.docx(25页珍藏版)》请在冰点文库上搜索。
单片机PROTEUS实验指导书
目录
实验一I/O口输出控制实验........................................................................................20
实验二I/O口输入输出控制实验................................................................................24
实验三中断程序设计练习......................................................................................34
实验四定时器、计数器实验..........................................................................................32
KeilC51集成开发环境介绍
1、打开计算机,运行KeilC51集成开发环境。
图1-1第一次启动KeilC
图1-2KeilCμVision2操作界面
KeilC软件菜单命令非常丰富,常用的菜单命令都有对应的快捷键和快捷图标,自己可以打开相应的菜单,熟悉各种命令。
2.选择“Project”-“NewProject…”建立新的工程文件(注意工程文件放置的文件夹),输入文件名,选择“保存”。
图1-3创建一个新工程
图1-4为新工程命名并保存
3.工程保存后会弹出来一个器件选择窗口,这里需要选择单片机芯片类型。
器件选择的目的是告诉μVision2最终使用的80C51芯片的型号是哪一个公司的哪一个型号,因为不同型号的51芯片内部的资源是不同的。
图1-5器件选择窗口
如果不知道自己需要使用什么型号的芯片,暂时选择“Atmel”下的“AT89C51”,然后在接下来的窗口中,选择“是”,加载芯片基本参数。
图1-6选择AT89C51芯片
4.选择“File”-“New”或者点击新文件快捷图标,会打开一个文本编辑器窗口。
输入下列数据传送的程序,然后选择“File”-“Save…”,注意保存的时候给文件起名字以后,加个文件名后缀,KeilC支持汇编语言及C语言编程,它是依靠文件名后缀来判断文件是汇编语言还是C语言格式的,如果是汇编语言,后缀为“.asm”,C语言格式的,后缀为“.c”。
我们根据实验要求选择保存为汇编语言格式或C语言格式。
注意此时程序中的一些代码和寄存器将会自动蓝色显示,方便观察。
图1-7创建一个新文件
图1-8输入程序并保存文件
5.选择“Project”-“Targets,Groups,Files…”,选择“Groups/AddFiles”标签,首先点击下边窗口中的“SourceGroup1”,然后选择下边的“AddFilestoGroup…”,在接下来的窗口中,首先选择你需要加入的文件的后缀名(默认是.c,我们可选择“AsmSourcefile,即后缀为.asm”)。
图1-9准备添加一个文件进入工程项目
(1)
图1-10准备添加一个文件进入工程项目
(2)
图1-11选择准备添加的文件类型
然后选择对应的文件,选择“Add”,然后选择“Close”,最后选择“确定”,完成文件的添加工作。
图1-11选择准备添加的文件名称
工程项目添加结束后,可以用鼠标点击工程项目窗口中的“+”,展开工程项目内部的文件,从中可以看到添加进来的文件名称。
图1-12添加文件结束后的工程项目
6.然后选择“Project”-“OptionsforTarget‘Target1’”,对工程项目进行设置,选取其中的“Debug”标签,选中“UseSimulator”,然后点击“确定”,就可以使用软件仿真了。
图1-13准备对工程项目进行设置
图1-14选取软件仿真模式
选择“Project”-“Buildtarget”或者直接按下F7,对文件进行编译。
编译的结果会出现在屏幕下方的输出窗口,其中会提示编译中出现的问题。
如果发现问题,双击错误提示,光标会跳到出错的源程序处等待修改,直至程序没有错误,编译才能通过。
图1-15对源程序文件编译之后的窗口
7.按下“CTRL+F5”,进入Debug(调试)状态,在窗口的左边会出现各个寄存器的状态(内容)。
选择“View”-“DisassemblyWindow”,可以打开反编译窗口,其中显示了源程序中每条指令在程序存储区中的地址以及对应的机器码。
下F11单步执行程序,观察寄存器状态,填写下列表格中地址和有关单元的内容。
图1-16进入Debug状态
图1-17打开反编译窗口
图1-18将窗口横向并排分割
并排分割的效果
打开存储器观察窗口
显示数据存储器内容
显示数据存储器内容
显示程序存储器内容
8.对于查询内存地址中的数据,可双击存储器窗口中的address后的文本框,并在其中输入待查看的地址,如D:
0030H,表示查看数据存储器中30H单元内容,C:
0030H则表示查看程序存储器中30H单元内容,X:
2000H,表示查看外部存储器2000H单元内容。
实验一I/O口输出控制实验
一、实验目的
1.熟悉PROTEUS单片机仿真软件的使用。
2.熟悉KeilC51软件的使用
3.掌握单片机I/O口输出的控制方法。
二、实验设备(仪器)
PC微机一台
三、实验内容
1.按照KeilC51集成开发环境的要求,建立一段程序,然后进行编译并进行软件仿真。
2.输入实验例程,利用P1口作为输出控制端口,控制8位LED流水闪烁。
四、实验步骤
图3.1实验线路图
1.单片机I/O接口的原理如图3.1所示。
从图中可以看出,当单片机P1口某位为低电平时,对应的LED会亮,反之熄灭。
2.打开KeilC51集成开发环境,建立一个工程并输入相应程序.
3.输入以下程序并进行编译、调试,观察、分析现象,说明P1口的赋值与
LED亮灭的关系,在空白部分填加注释。
ORG0000H
LJMPMain
ORG00F0H
Main:
Loop:
MOVP1,#0FEH
ACALLDELAY
MOVP1,#0FDH;__________________
ACALLDELAY;__________________
MOVP1,#0FBH
ACALLDELAY
MOVP1,#0F7H
ACALLDELAY
MOVP1,#0EFH
ACALLDELAY
MOVP1,#0DFH
ACALLDELAY
MOVP1,#0BFH
ACALLDELAY
MOVP1,#07FH
ACALLDELAY
SJMPLOOP
DELAY:
MOVR1,#10
DEL1:
MOVR2,#200
DEL2:
MOVR3,#126
DEL3:
DJNZR3,DEL3;__________________
DJNZR2,DEL2
DJNZR1,DEL1
RET
END
五、预习要求
1.KeilC软件的调试方法及相关硬件设置。
2.预习实验例程,理解指令意义。
六、实验报告要求
1.把程序和注释补充完整
2.把设计的PROTEUS仿真图,写入实验报告。
3.思考题:
请思考并描述调试工具中单步调试、运行、步入、步出的区别。
实验二I/O口输入输出控制实验
一、实验目的
1.利用单片机的P1口作I/O口,掌握P1口同时作为输入和输出的用法。
2.掌握按键去抖动的方法。
3.掌握条件转移指令的用法。
二、实验设备(仪器)
PC微机一台
三、实验内容
1.输入实验例程,进行仿真调试完成下述功能:
P1.0-P1.6作为输出,控制7位LED。
P1.7口作为输入,当P1.7按下时,P1.0-P1.6控制的LED亮;当P1.7没有按下时,P1.0-P1.6控制的LED灭。
四、实验步骤
1.原理图如图4.2所示。
图4.2原理图
2.打开KeilC51集成开发环境,对以下程序补充并进行调试,填加注释。
ORG0000H
LJMPMain
ORG0100H
Main:
SETBP1.7;_____________________
JB___,SETLED;按键没有按下时,跳转到SETLED
CLRLED:
MOVR0,#0FFH
DJNZR0,$;______________________
JBP1.7,SETLED
CLRP1.0
CLRP1.1
CLRP1.2;_______________________
CLRP1.3
CLRP1.4
CLRP1.5
CLRP1.6
SJMPMain
SETLED:
MOVP1,______;令LED熄灭
______________;跳转主程序
END
五、预习要求
1.例程分析补充。
2.完成预习报告。
六、实验报告要求
1.把程序和注释补充完整
2.把设计的PROTEUS仿真图,写入实验报告。
3.思考题:
什么是按键去抖,为什么按键程序需要进行去抖动处理,一般按
键去抖的硬件处理方法和软件处理方法分别是怎样的。
实验三中断程序设计练习
一、实验目的
1.学习并掌握外中断的使用。
2.学习中断处理程序的编程方法。
二、实验设备
PC微机一台
三、实验内容
1.使用单脉冲作中断源,每按一次按钮,点亮的发光二极管向右移动一位
四、实验步骤
1.本实验电路如下所示。
2.输入以下程序并进行调试运行。
ORG0000H
LJMPSTART
ORG0013H
LJMPINTT;INT1入口地址
ORG3000H
START:
MOVSP,#60H
MOVA,#0FEH
SETBIT1;_______________
MOVIE,_______;外中断1允许,总中断允许
MOVP1,#0FFH
HERE:
NOP
SJMPHERE
INTT:
MOVP1,A
RLA
RETI;________________________
END
五、预习要求
1.中断控制寄存器的定义。
2.外中断的初始化过程,入口地址等相关知识。
3.熟悉并分析实验例程。
4.完成预习报告。
六、实验报告要求
1.把程序和注释补充完整
2.把设计的PROTEUS仿真图,写入实验报告。
6.思考题:
单片机外中断两种触发方式的区别,各适用于何种情况。
实验八定时器、计数器实验
一、实验目的
1.学习并掌握单片机定时器中断的使用。
2.掌握定时器中断溢出时间的计算。
3.了解单片机定时器各工作模式的区别。
二、实验设备(仪器)
PC微机一台
三、实验内容
连线并编制程序。
使用定时器1中断,按方式1工作,将LED灯循环点亮。
1.定时器/计数器的输入脉冲周期与机器周期一样,为振荡器频率的1/2。
本实验中时钟频率为12M,现要采用中断方法来实现1秒延时,要在定时器1中设置一个时间常数,使其每隔0.05秒产生一次中断,CPU响应中断后R0中计数值减一,令(R0)=14H,即可实现1秒的延时。
时间常数可按下法确定:
机器周期=12/晶振频率=12/12=1uS
定时器需设初值为X,则(2^16﹣X)*1=50000uS
求出X=15536
转化为十六进制:
X=3CB0H,故初始值为:
TH1=3CH,TL1=B0H
2.初始化程序
包括定时器初始化和中断系统初始化。
主要对IP,IE,TCON,TMOD的相应位进行正确的设置,并将时间常数送入定时器中。
由于只有定时器中断,IP不必设置。
注意一点:
定时器1初始化时建议用如下的指令:
ANLTMOD,#0FH
ORLTMOD,#10H
3.设计中断服务程序和主程序
中断服务程序除了要完成计数减一工作外,还要将时间常数重新送入定时器中,
为下一次中断做准备。
主程序则用来控制发光二极管按要求顺序亮灭。
程序的流程图
如下:
四、实验步骤
1.本实验电路如下所示。
2.输入以下程序并进行调试运行。
ORG0000H
AJMPSTART
ORG001BH
AJMPTIME
ORG0030H
START:
MOVIE,#00H
MOVSP,#60H
MOVP1,#0FFH
MOVR0,#0FEH
MOVR1,#14H
ANLTMOD,#0FH
ORLTMOD,#10H
MOVTH1,#3CH
MOVTL1,#0B0H
ORLIE,#88H;__________________
_____TR1;启动定时器一
LOOP:
CJNER1,#00H,DISP
MOVR1,#14H
MOVA,R0
_____A;数据左移
MOVR0,A
DISP:
MOV____,R0;输出LED显示
AJMPLOOP
定时中断
TIME:
CLRTR1;___________________
DECR1
MOVTH1,#3CH
MOVTL1,#0B0H
SETBTR1
RETI;__________________
END
五、预习要求
1.预习单片机定时器的工作方式及中断处理方法。
2.掌握定时器初始化方法。
3.预习实验例程。
4.完成预习报告。
六、实验报告要求
1.把程序和注释补充完整
2.把设计的PROTEUS仿真图,写入实验报告。
3.思考题:
简述单片机定时器的几种方式的区别,利用内部定时器实现延时
与利用实验三中的软件延时有什么区别。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 PROTEUS 实验 指导书