实验一 仿真软件使用Word格式.docx
《实验一 仿真软件使用Word格式.docx》由会员分享,可在线阅读,更多相关《实验一 仿真软件使用Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
![实验一 仿真软件使用Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/29/d2ab9846-dcd0-43b4-a34b-fb0756c5d0d8/d2ab9846-dcd0-43b4-a34b-fb0756c5d0d81.gif)
这时在SourceGroup1文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。
图2.1图2.2
3.编译调试源文件
如果只是用做程序仿真,使用软件默认的编译设置,它不会生成用于芯片烧写的HEX文件。
图2.2中1、2、3都是编译按钮,不同是1是用于编译单个文件。
2是编译链接当前项目,3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。
在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。
5是菜单中的它们。
在4中可以看到编译的错误信息和使用的系统资源情况等,6是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\StopDebugSession,快捷键为Ctrl+F5。
如图2.3所示。
图中1为运行,当程序处于停止状态时才有效,2为停止,程序处于运行状态时才有效。
3是复位,模拟芯片的复位,程序回到最开头处执行。
按4可以打开5中的串行调试窗口,这个窗口可以看到从51芯片的串行口输入输出的字符。
图2.3图2.4
运行程序时,首先打开调试窗口,再按运行键,就可以观察到程序运行的结果,最后要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启\关闭调试模式按钮。
如果让编译好的程序能通过编程器写入51芯片中,要先用编译器生成HEX文件,(具体步骤见硬件实验)。
4.观察程序运行结果
图2.5
(1)寄存器窗口:
在调试状态下,点击View菜单下的ProjectWindow命令或对应的按钮,就会显示或隐藏工程管理器窗口,然后点击窗口下边的寄存器标签,即显示出寄存器窗口。
“寄存器”中显示当前各寄存器中的内容。
两种修改寄存器(除了sec和states之外)值的方式:
一是用鼠标直接点击左键进行修改;
二是在图2.5所示的调试命令窗口直接输入寄存器的值,如输入“A=0x32”。
(2)变量窗口:
在调试状态下,点击View菜单下的Watch&
CallStackWindow命令或对应的按钮,就会显示或隐藏变量窗口。
观察变量更简单的方法:
在程序停止运行时,将光标放到要观察的变量上停大约1秒,就会出现对应变量的当前值。
变量窗口包含有4个显示区(标签),可以分别显示局部变量(Locals标签)、指定变量(Watch#1和Watch#2两个标签)、及堆栈调用(CallStack标签);
局部变量:
显示的是当前函数中的变量,这些变量不用设置,自动出现在窗口中。
其它变量:
可以在Watch#1或Watch#2标签按F2输入变量名。
在程序运行中,可以观察这些变量的变化,也可以用鼠标点击修改它们的值。
(3)存储器窗口:
在调试状态下,点击View菜单下的MemoryWindow命令或对应的按钮,就会显示或隐藏存储器窗口。
“Address”栏输入不同类型的地址,可以观察不同的存储区域。
1)观察片内RAM直接寻址的data区:
在Address栏输入D:
xx(xx为十六进制数),便显示从xx地址开始的数据。
高128字节显示的是特殊功能寄存器的内容。
2)观察片内RAM间接寻址的idata区:
在Address栏输入I:
xx,便显示从xx地址开始的数据。
高128字节显示的也是数据区的内容。
3)观察片外RAM的xdata区:
在Address栏输入X:
xxxx,便显示从xxxx地址开始的数据。
4)观察程序存储器ROMcode区:
在Address栏输入C:
xxxx,便显示从xxxx地址开始的程序代码
除程序存储器的内容不能修改外,其它3个区域数据的修改方法:
用鼠标对准欲修改的单元,点击鼠标右键,在弹出的菜单中有一“ModifyMemoryat0x…”命令,执行该命令,对又弹出的数据输入栏输入数据,然后用鼠标左键点击“OK”即可。
(4)串行口窗口:
在调试状态下,点击View菜单下的SerialWindow#1或SerialWindow#2命令或对应的按钮,就会显示或隐藏串行口窗口。
串行口窗口提供了一个调试串行口的界面,从串行口发送或接收的数据,都可以在该窗口显示或输入。
(5)片内外设的观察与修改:
(a)片内外设的观察:
在调试状态下,点击Peripherals菜单下的不同外设选项命令,就会显示或隐藏对应外设的观察窗口。
如显示定时器0窗口,点击Peripherals菜单下的Timer下面的Timer0选项即可,如P1口,点击Peripherals菜单下的I/Oports下面的Port1选项即可。
(b)刷新观察:
在程序运行时,各个片内外设的状态会不断地变化,为了随时观察它们的变化,可以启用View菜单下的PeriodicWindowsUpdate命令,让KeilC自动周期刷新各个调试窗口。
(c)片内外设的修改:
可以在窗口中对设备直接进行设置,与程序中的命令设置一样,并且立即生效。
四、实验内容
首先单步运行程序,选主菜单/执行/单步运行或者选工具栏单步运行。
运行一个循环,观察相关的寄存器和存储区的变化(R0,DPTR,A等)。
记录下数据区2000H~201FH中,在执行程序S1前后的内容变化。
学会断点的设置和利用断点进行程序调试的方法。
xdataunsignedcharbuffer[32]_at_0x2000;
voidmain(void)
{unsignedchari;
for(i=0;
i<
31;
i++)
{buffer[i]=33
}
1.程序S1的功能是什么?
画出S1程序框图,并写出注释。
2.把2000H~201FH中内容改成FF,如何修改程序S1?
3.把3000H~301FH中内容改成AA,如何修改程序S1?
2请编写一个能在以内部RAM20H为起始地址的连续10个存储单元(无符号数)中找出最大值并存入1FH单元和程序。
硬件及接口实验
在KeiluVision仿真软件中,按照软件实验一中步骤建立好相关项目及文件,进行编译调试。
如果让编译好的程序能通过编程器写入51芯片中,要先用编译器生成HEX文件。
右击图4.1中的项目文件夹,弹出项目功能菜单,选OptionsforTarget’Target1’,弹出项目选项设置窗口,转到Output选项页图2.5所示,图中1是选择编译输出的路径,2是设置编译输出生成的文件名,3则是决定是否要创建HEX文件,选中它就可以输出HEX文件到指定的路径中。
将程序编译一次,在编译信息窗口中就显示HEX文件创建到指定的路径中了,如图4.2。
这样就可用编程器所附带的软件去读取并烧到芯片了,再用实
验板观察结果。
图4.1
图4.2
AT89S5X系列单片机ISP在线下载使用说明
双击运行51单片机ISP在线下载软件“SLISP”,界面如图4.3:
图4.3
通信参数设置及器件选择如图4.4:
图4.4
点击“编程”按钮,即可下载。
硬件设置:
(1)将MCUISP下载电缆,一端接PC机并口LP1,一端接5208K实验仪右上角的“ISP下载接口”。
(2)KB1开关:
KB1开关有两种工作模式,平时都工作在“一般模式”,当我们用到单片机ISP在线编程功能时,将KB1开关打在“编程模式”。
(ISP在线可编程AT89S系列单片机)。
(3)SW1(EA端):
程序空间选择开关,SW1—>
IP,选择CPU内部(一般不设置此模式,如果将目标程序通过烧写器写入单片机内部FALSHROM中,要运行写入的程序时需设置到该模式,一般用于工程人员的目标系统开发),SW1—>
UP(出厂模式),选择CPU外部,此时可脱机运行外部EPROM中固化的程序,也可用仿真器进行联机实验。
(用短路块选择)
(4)编程完毕后,将开关打在"
一般模式"
,按复位键"
RST"
,运行程序。
实验二P1口控制发光二极管实验
一、实验目的
1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验内容
1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、P1口做输出口,接八只发光二极管,编写程序,使发光二极管按照十六进制加一方式点亮。
三、实验说明
1.P1口为准双向口,P1的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写入过“0”,在需要时应写入一个“1”使它再成为一个输入。
2.延时程序的实现。
现常用的有两种方法,一是用定时器中断来实现,一是用指令循环实现。
在系统时间允许的情况下可以采用后一种方法。
本实验中延时子程序采用指令循环来实现。
四、连线方法
P1口作输出口:
P1.0—P1.7接发光二极管L1—L8
五、实验电路
图4.5
六、程序框图
七、实验要求
1.编写程序,观察实验现象
2.写出完整程序,并对关键语句作出注释。
3.程序中,如点亮二极管出现不同亮灯样式,应改动程序中的哪些内容?
实验三工业顺序控制实验
掌握工业顺序控制程序的简单编程,中断的使用。
在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律的完成预定的动作,对这类继续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模
注射
延时
开模
产伸
产退”顺序动作,用单片机最易实现。
三、实验内容
P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平动作。
P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定6道工序只有一位输出,第七道工序三位有输出。
四、实验电路
图4.7电路连线
五、连线方法
将JP插针用短路块将+5V,0N短接,P3.4接K1,P3.3接K2,P1.0~P1.6接L1~L7,
P1.7接VIN(音频功放),按图接好连线,初始状态K1为低电平,K2为高电平。
执行程序,把K1接到高电平,启动开工,观察发光二极管点亮情况,确定工序执行是否正常,然后把K2置为低电平,看是否有声音报警,恢复中断1报警停,又从刚才报警时一道工序执行下去。
可用单步、单步跟踪,非全速断点、全速断点,连续执行功能调试软件,直到符合自己程序设计要求为止。
六、程序框图
七、报告要求
写出相应程序及相应的注释语句。
实验四定时/计数器实验
一、实验目的
熟悉单片机内部定时/计数器功能,掌握初始化编程方法。
二、实验内容
1、把定时器0外部输入的脉冲进行计数,并送发光二极管显示。
2、把定时器0对时钟信号定时1S进行计数,并送发光二极管显示。
三、实验程序框图实验程序框图
计数工作模式定时1S工作模式
图4.11
四、实验步骤
1、P3.4接单脉冲输出孔,P1口连接发光二极管,执行程序,利用按钮ANO产生单脉冲信号,观察数码管上计数脉冲的速度及个数。
2、P1口连接发光二极管,执行程序,观察数码管上1S定时的速度及个数
五、报告要求
写出程序及主要注释语句。
实验五A/D转换实验
1.掌握A/D转换芯片与单片机的接口方法。
2.了解A/D芯片ADC0809转换性能及编程方法。
3.通过实验了解单片机如何进行数据采集。
利用实验台上的ADC0809做A/D转换器,实验台上的电位器提供模拟量输入,编写程序,利用8155将模拟量转换成数字量,用数码管显示。
1、开发板上系统I/O接口分配
2、8155使用
8155方式控制:
MOVA,#43H
MOVDPTR,#0FF20H
MOVX@DPTR,A
图4.10电路连线
五、实验步骤
IN0→VOUT,VIN→+5V,CS4→8000H,JX0→JX6,WR→/IOWR,RD→/IORD,ADDA、ADDB、ADDC→0V(地)CLK→500K运行程序,数码管上显示FF-5.00,前两位显示当前采集的电压量转换成的数字量,后三位显示对应的模拟电压值,调节W1,显示数字发生相应改变。
五、程序框图
六、实验要求
1.观察现象
2.写出程序及相应注释语句
七、思考题
修改程序,用其他通道轮流显示采样?