单片机技术课程实验指导书Word下载.docx
- 文档编号:22154950
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:49
- 大小:202.23KB
单片机技术课程实验指导书Word下载.docx
《单片机技术课程实验指导书Word下载.docx》由会员分享,可在线阅读,更多相关《单片机技术课程实验指导书Word下载.docx(49页珍藏版)》请在冰豆网上搜索。
1、熟悉PROTEUS单片机仿真软件的使用方法。
2、掌握利用PROTEUS软件进行单片机系统设计与仿真的过程。
3、掌握发光二极管的控制方法。
六、预备知识
1、PROTEUS简介
PROTEUS是英国LabcenterElectronics公司研发的多功能EDA软件。
它不仅是模拟电路、数字电路、模/数混合电路的设计与仿真平台,更是目前世界上最先进的单片机和嵌入式系统的设计与仿真平台。
它真正实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证到形成PCB的完整的电子设计、研发过程。
在目标板还没投产前,就可以对设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有目标板的情况下,进行相应软件的开发和调试,进行完全的虚拟开发,明显提高企业的开发效率,降低开发风险。
2、ISIS窗口
3、单片机系统的PROTEUS设计与仿真的开发过程
(1)、在ISIS平台上进行单片机系统电路设计、选择元器件、接插件、连接电路和电气检测等。
(电路设计)
(2)、在WAVE或KEIL平台上进行单片机系统的程序设计、编辑、编译、调试,最后生成目标代码(.HEX)。
(软件设计,实际上也可以在ISIS平台上进行此项工作)
(3)、在ISIS平台上将目标代码文件加载到单片机系统中,并实现单片机系统的实时交互、协同仿真。
它在相当程度上反映了实际单片机系统的运行情况。
(仿真)
PROTEUS电路设计流程和PROTEUS设计与仿真流程分别如图1-1(a)、图1-1(b)所示。
4、鼠标操作特点
(1)、放置对象:
单击鼠标左键(简称单击),放置元器件、连线。
(2)、选中对象:
单击鼠标右键(简称右击),选择元器件、连线和其他对象,此时选中的操作对象以高亮红色(默认色)显示。
(3)、删除对象:
双击鼠标右键(简称右双击),删除元器件、连线等。
(4)、块选择:
按住鼠标右键拖出方框,选中方框中的多个元器件及其连线。
(5)、编辑对象:
先单击鼠标右键后单击鼠标左键,编辑元器件属性。
(6)、移动对象:
先右单击选中对象,按住鼠标左键移动,拖动元器件、连线。
(7)、缩放对象:
按住鼠标中键滚动,以鼠标停留点为中心,缩放电路。
七、实验内容:
1、如图1-2所示,LED发光二极管的初始状态为亮,用PROTEUS仿真实现:
按一下接键,LED灭,再按一下,LED亮,按此规律LED亮灭交替。
要求在PROTEUS中画出电原理图,加载给出的程序目标文件(.HEX)后,仿真实现题目的要求。
图1-2实验原理图
实验具体步骤如下:
(1)、启动ISIS环境:
开始—程序—Proteus7professional—ISIS7professional。
(2)、新建设计文件
单击“文件---新建文件”,出现选择模板窗口,选中模板“DETAULT”,再单击“OK”。
(3)、设定绘图纸大小
当前的用户图纸大小默认A4,可以通过“系统---设置图纸尺寸”来更改图纸的大小。
(4)、选取元器件并添加到对象选择器中
单击图1-3(a)中的“P”按钮,弹出如图1-3(b)所示的选取元器件对话框,在“Keywords(关键字)”一栏中输入元器件名称“AT89C51”,则出现与关键字匹配的元器件列表。
选中(单击)AT89C51所在的行后,再单击“OK”按钮,便将器件AT89C51加入到ISIS对象选择器中。
同时将相关的元器件都添入,如图1-3(c)所示。
图1-3(a)单击“P”按钮
图1-3(b)元器件列表
图1-3(c)元器件都添入
(5)、网格单位
网格单位默认是100th,这也是移运元器件的步长单位,可以根据需要更改这一单位。
方法是单击“查看”再单击所要的网格单位即可。
(6)、放置、移动、旋转元器件
单击ISIS对象选择器中的元器件名,蓝色条出现在该元器件名上。
把鼠标移至编辑区某位置后,单击就可放置元器件于该位置,每单击一次就放一个元器件。
要选中编辑区中的某一元器件,只要单击该器件即可。
要移动元器件可选中该器件后,再按住鼠标左键拖动到目的位置即可。
旋转元器件可先右击元器件,再根据需要选择菜单
进行操作。
(7)、放置电源、地(终端)
单击模式选择工具栏中的终端按钮
,则ISIS对象选择器如图1-4(a)所示。
根据需要选择即可。
(8)、电路图布线
系统默认自动布线有效,即
按钮被按下。
在这种方式下,只要相继单击元器件引脚间、线间等要连线的两处(起点和终点),系统会自动生成连线。
(9)、设置、修改元器件的属性
右击放置在编辑区中的元器件(呈高亮度)后,再单击它即可打开其属性窗口,这时可在属性窗口中设置、修改元器件的属性。
如图1-4(b)所示。
图1-4(a)终端符号
图1-4(b)设置、修改元器件的属性
(10)、电气检测(有时可先不做)
设计电路完成后,单击电气检查按钮
,会出现检查结果窗口,前面是一些文本信息,接着是检查结果列表,若有错,会有详细的说明。
(11)、源程序的设计、编辑和目标代码的生成
源程序的设计、编辑和目标代码(.HEX)的生成,可以通过WAVE软件来实现的,PROTEUS只要用.HEX文件。
(12)、加载目标代码和设置时钟频率
先右击ISIS编辑区中的AT89C51单片机,然后再单击它即可打开它的属性窗口,直接双击单片机也可打开它的属性窗口,在窗口中的“programefile”右侧框中输入或找到.HEX文件所在的路径。
如图1-4所示。
同理在属性窗口的“clockfrequency”中输入或更改单片机的工作频率。
如图1-5所示。
由于仿真时是以该时钟频率为准的,所以在编辑区设计时可以略去单片机振荡电路,另外,对MCS-51系列单片机而言,复位电路也可以略去,EA控制引脚也可悬空。
但要注意若要进行电路电气检测,则这些不可略去。
图1-5加载目标代码和设置时钟频率
(13)、单片机系统的PROTEUS交互仿真
为与仿真相关的控制按钮,单击第一个仿真按钮
则处于全带仿真状态,些时LED亮,可用鼠标单击ISIS编辑区中的按钮,实现交互仿真。
单击一次按钮LED暗,再次单击,LED亮,如些循环,LED亮灭交替。
若单击最后一个仿真按钮
,则终止仿真。
(14)、若达不到要求应检查电路和编程是否正确。
2、在PROTEUS中画出开关控制数码管实验的电原理图,如图1-6所示。
加载给出的程序目标文件(.HEX)后,仿真实现将4位开关状态输出到数码管显示。
实验用元器件清单提示:
(1)、AT89C51---单片机
(2)、RES、RESPACK-8---电阻、带公共端的8排阻(RX8---8排阻)
(3)、7SEG-COM-AN-GRN---带公共端的共阳七段绿色数码管
(4)、SW-SPST---带锁存的单刀单掷开关
(5)、CAP、CAP-ELEC---电容、电解电容
(6)、CRYSTAL---晶振
八、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。
图1-6开关控制数码管实验电原理图
机房,WAVE6000软件
1、熟悉WAVE6000工具软件的使用方法(可参见WAVE6000软件的菜单“帮助”---“WAVE6000使用手册”)。
2、掌握利用WAVE6000进行源程序编写、编译、程序运行、观察运行结果的基本过程及操作方法。
3、掌握MCS-51系列单片机的寻址方式与数据传送指令。
六、实验内容:
练习程序输入和程序运行,体会寻址方式和数据传送方法。
1.立即寻址课题
(1)、打开WAVE6000软件。
熟悉WAVE6000软件环境。
(2)、选择菜单[文件|新建文件]功能,打开源程序窗口,输入以下源程序。
注意:
此程序的书写格式,开头四行是源文件说明,为了简便起见,在以后的例程中省去了这几行。
但为了养成规范的编程习惯,要求同学在编辑所有源程序都必须按此要求书写,并应关键的语句后面加上注释。
;
***********************************
文件名:
EX2_1.asm,功能:
立即寻址
作者:
XXX,日期:
XXX
说明:
此程序无硬件要求,采用软件仿真
ORG
0000H
LJMP
MAIN
0030H
MAIN:
MOV
R0,#30H
SJMP
$
END
(3)、选择菜单[文件|保存文件]或[文件|另存为]功能,保存文件名为EX2_1.asm(注:
要加扩展名.ASM)。
(4)(可不做)、建立新的项目。
选择菜单[文件|新建项目]功能,新建项目会自动分三步走。
A)、加入模块文件。
选择EX2_1.asm文件再打开。
B)、加入包含文件。
如果没有包含文件,按取消键。
C)、保存项目。
在打开的窗口中输入项目名称(名称可自定,扩展名.PRJ可不加,软件会自动添加)。
(5)、设置仿真器。
选择菜单[仿真器|仿真器设置](如:
8031CPU,晶体频率12MHZ,,设定使用伟福软件模拟器)。
(6)、编绎程序。
选择菜单[项目|编译],编译当前窗口的程序。
若WAVE6000编译不是当前的程序时,应先关闭掉其它项目:
“文件”---“关闭项目”。
(7)、执行、调试。
选择菜单[执行|单步、跟踪或全速执行…],分别通过不同的执行方式,观察程序的执行过程、程序运行前后R0内容的变化、SJMP
$指令的运行情况、观察机器代码及其在程序存储器的存放位置等。
2.寄存器间接寻址课题
(1)编辑以下内容源程序,保存文件为EX2_4.asm。
30H,#2AH
MOV
31H,#33H
A,@R0
R2,A
INC
R0
03H,@R0
SJMP
(2)编译。
(3)分别全速运行和单步运行程序,观察结果,R0单元的内容应为31H,30H单元的内容应为2AH,31H单元的内容应为33H,A累加器的内容应为2AH,R2工作寄存器的内容应为2AH,03H单元的内容应为33H。
3.变址寻址课题
(1)编辑以下内容源程序,保存文件为EX2_5.asm。
A,#03H
DPTR,#TAB
MOVC
A,@A+DPTR
R1,A
TAB:
DB
30H,31H,32H,33H
DB
42H,43H,44H,45H
(2)编译并运行程序。
(3)观察结果,A累加器的内容应为33H,DPTR的内容应为TAB对应的内容,R1的内容为33H。
通过这个程序应理解查表所采用的方法,DPTR中放的是表的首地址。
(4)要将MOVC
A,@A+DPTR指令改成MOVCA,@A+pc指令,应如何实现?
4.熟悉WAVE6000集成开发系统,在WAVE6000集成开发系统中输入以下几条命令:
MOVR0,#12H
MOVA,#56H
MOVX@R0,A
经保存-编译-执行(单步或单步跟踪)后观察结果。
分别在PDATA窗口或XDATA窗口中观察,深刻理解在这两种窗口中观察所代表的不同的物理意义。
5、按要求编写程序并上机调试、观察结果。
(1).R1的内容传送到R0.
(2).片外RAM20H单元的内容送R0.
(3).片外RAM20H单元的内容送片内RAM20H单元.
(4).片外RAM1000H单元的内容送片内RAM20H单元.
(5).ROM2000H单元的内容送R0.
(6).ROM2000H单元的内容送片内RAM20H单元.
(7).ROM2000H单元的内容送片外RAM20H单元.
七、写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题。
设计
机房,PROTEUS7.2、WAVE6000等软件
1、进一步熟悉PROTEUS、WAVE6000软件的使用方法和系统仿真设计的方法。
2、掌握发光二极管的控制方法,掌握LED数码管的显示原理与控制方法。
3、掌握I/O口的控制方法
4、熟悉单片机仿真设计的一般过程。
1、开关控制LED实验
(1)、实验要求
实验原理图如图3-1所示,要求在PROTEUS仿真平台中,编程实现:
LED发光二极管的初始状态为亮,按一下接键,LED灭,再按一下,LED亮,按此规律LED亮灭交替。
图3-1开关控制LED实验原理图
(2)、实验步骤
(A)、在PROTEUS平台中画出电原理图
(B)、在WAVE6000平台中进行编程、编译,生成目标文件(.HEX文件)
(C)、在PROTEUS平台中加载目标文件(.HEX文件)并进行仿真调试。
若达不到要求,则要修改程序,反复调试,直到成功。
2、开关控制1位数码管实验
实验原理图如图3-2所示,要求在PROTEUS仿真平台中,编程实现:
将4位开关状态输出到数码管显示。
如4位开关全闭合,数码管显示“0”,4位开关全断开,数码管显示“F”,共16种状态。
图4-2中数码管(PROTEUS仿真平台中元器件型号为7SEG-COM-AN-GRN)是带公共端的共阳七段绿色数码管。
图3-2开关控制1位数码管实验电原理图
1、进一步熟悉利用PROTEUS、WAVE6000等软件进行单片机系统仿真设计的方法。
2、进一步熟悉单片机指令系统,加深对单片机基本知识、子程序等的理解。
熟练应用单片机程序设计的基本知识和基本思想,编程解决单片机的实际应用问题。
3、掌握多位数码管动态扫描的显示原理。
1、实验要求
实验原理图如图4-1所示(注图中4位数码管为共阴极数码管,型号为7SEG-MPX4-CC-BLUE),要求在PROTEUS仿真平台中,编程逐步实现:
(1)、按下一次“加一”按钮,数码管能显示出加一后的结果,但加到10000时能自动从0开始“加一”。
(2)、完成
(1)的要求,同时能实现按一次“减一”按钮,数码管能显示出减一后的结果,但减到0后,仍显示为0。
图4-1计数显示实验电原理图
2、实验步骤
(1)、在PROTEUS平台中画出电原理图
(2)、在WAVE6000平台中进行编程、编译,生成目标文件(.HEX文件)
(3)、在PROTEUS平台中加载目标文件(.HEX文件)并进行仿真调试,逐步实现实验要求
(1)和
(2)。
3、针对在实验中存在的显示范围、显示闪烁、显示实时性不好等问题,应分别如何改进、克服?
1、进一步熟悉利用PROTEUS、WAVE6000等软件的使用方法。
2、理解单片机的中断、中断优先级原理及其中断过程,掌握中断服务子程序的编写方法。
3、进一步熟悉数码管的显示原理。
1、外部中断实验
实验原理图如图5-1所示,图中数码管为共阳极,元器件型号为7SEG-COM-AN-BLUE;
数码管驱动应加上拉电阻如RP1。
要求:
当无外部中断(外部中断0)时,数码管按a~g段依次点亮,不断循环显示;
当有外部中断(按钮被按下,P3.2有下降沿电压)时,数码管显示状态改为“8”亮灭闪烁显示,亮灭闪烁显示8次后,返回主程序继续按段顺序点亮。
图5-1外部中断电原理图
2、中断优先级实验
实验原理图如图5-2所示,图中三个数码管为共阳极,元器件型号为7SEG-COM-AN-BLUE(GRN/ANODE);
数码管驱动应分别加上拉电阻。
单片机主程序控制P0口数码管(红色)循环显示1~8;
外部中断0(INT0)控制P2口数码管(蓝色)显示,中断一次将依次显示1~8这8个数据后返回;
外部中断1(INT1)控制P1口数码管(绿色)显示,中断一次将依次显示1~8这8个数据后返回;
INT1为高优先级,INT0为低优先级,外部中断均为下降沿触发方式。
图5-2中断优先级实验电原理图
该仿真实验可以形象直观地演示单片机高、低两级优先级的工作原理:
高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级,同一优先级不能相互中断。
1、理解单片机的定时/计数原理,掌握定时/计数程序的编写方法。
2、掌握定时/计数器在定时、计数、频率测量、脉冲宽度测量、产生信号、信号检测方面的应用。
2、学会使用PROTEUS中VSM虚拟示波器观察波形。
1、方波发生器实验
实验电原理图如图6-1所示,用单片机的定时/计数器产生一个周期为400μs的方波信号。
图6-1方波发生器实验电原理图
(A)、在PROTEUS平台中画出电原理图。
虚拟检测仪器的放置:
1)、VSM虚拟示波器
单击小工具栏
中的按钮
(虚拟仪器),在对象选择器列表中单击OSCILLOSCOPE(示波器),再在ISIS编辑区中的适当位置单击,虚拟示波器主放置好了。
如图6-1所示,最后将单片机的P3.5、P3.7分别与示波器的A、B信道相连。
2)、电压探针
选择电压探针,连接到要实时监测的电路上,以便仿真时观察该处的电压变化。
(B)、在WAVE6000平台中进行编程、编译,生成目标文件(.HEX文件)。
在仿真调试中若看不到虚拟示波器,则要分别单击“调试”---“VSMOSCILLOSCOPE”将其打开,如图6-2所示,虚拟示波器有两个输入信道CH1和CH2,对应虚拟示波器符号图上的A和B;
工作模式有三种:
单通道、双通道和X-Y。
1)、单通道:
CH1或CH2。
此时DUAL和X-Y灯均一亮,CH1、CH2哪个指示灯亮表示哪个通道工作。
2)、双通道:
DUAL灯亮、CH1或CH2灯亮。
DUAL+CH1表示以CH1为触发;
DUAL+CH12表示以CH2为触发。
3)、X-Y:
(X-Y)+CH1或(X-Y)+CH2,表示以CH1或CH2的数据作为X轴及Y轴的数据显示曲线。
虚拟示波器的基本操作
1)、选择信道输入耦合模式:
单击相应的CH1、CH2(左下角)的方波按钮,可在DC、GND、AC各选项间循环切换。
如图6-2所示,当前信道CH1、CH2都是直流耦合,相应的DC字符上方的指示灯都亮。
2)、工作信道和触发信道选择:
选择单击右上方两个方形按钮配合其右方指示灯CH1、CH2、DUAL、X-Y完成。
3)、选择和调整波形显示位置、时基(TIMEBASE)、幅值:
可分别转动转盘旋钮Y-POS1、Y-POS2、Y-GAIN1、Y-GAIN2、TIMEBASE来完成。
4)、用鼠标拖动,转动转盘旋钮完成设置。
图6-2方波发生器仿真运行图
2、脉冲计数器实验
实验电原理图如图6-3所示,实现在1S的时间内对外部输入的脉冲信号(从P3.4输入)计数,并将计数值实时地在四位BCD码数码管上显示。
AT89C51中有两个定时/计数器,其中定时/计数器1(T1)作定时器用,定时1S;
定时/计数器0(T0)作计数器用;
外部输入的脉冲信号由模拟数字时钟DCLOCK产生;
用虚拟的计数器COUNTERTIMER进行计数;
将单片机的计数结果和COUNTERTIMER的计数结果进行比较,看结果是否相等。
1)、总线的画法
①选择总线按钮
②绘绘制总线:
与普通电线的绘制方法一样,选择合适起点、终点单击。
若终点在空白处,左双击结束连线。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 技术 课程 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)