单片机实验一.docx
《单片机实验一.docx》由会员分享,可在线阅读,更多相关《单片机实验一.docx(20页珍藏版)》请在冰豆网上搜索。
单片机实验一
实验1认识单片机
一、实验目的
熟悉8051单片机实验板及实验中所用到的相关软件,掌握8051单片机的结构和工作原理。
二、实验内容
2.1TTC-2二合一实验系统(PCI版)介绍
1.TTC-2实验系统满足《微机原理与接口技术》、《单片机原理及应用》、《数字逻辑与数字系统》等课程实验要求,实验台包括微机接口和单片机两部分电路,不用增加硬件就可以完成微机接口实验和单片机常用实验。
2.提供单片机的在系统编程功能。
可以将使用者自编的程序写入单片机的内部ROM,完成一个单片机实验,就可以掌握单片机的开发全过程。
3.开放式结构。
模块化设计支持开放实验。
实验台上除固定电路外,还设计有用户扩展实验区。
用户扩展实验区有五个通用集成电路插座,每个插座引脚都有对应的“自锁紧”插孔,便于搭建自己设计的实验,有利于进行课程设计。
4.功能强大的软件集成开发环境,可以方便地进行编辑、编译、链接和调试程序。
可以查看实验原理图,实验接线,实验程序并接线实验演示。
还可以方便的增加和删除实验项目。
5.使用本系统及本系统所提供的集成调试环境进行微机原理和接口实验既可以用8086汇编语言编程,也可以用C语言编程;使用本系统及本系统所提供的软件进行单片机实验既可以用MCS=51的汇编语言编程,也可以用C语言编程。
2.2单片机实验区
单片机实验区位于实验台中部。
这个区域设有:
1.通用单片机插座
在单片机实验区有一个40脚的万能锁紧插座,可以插入40脚以下双列直插式封装的单片机或仿真头,包括Intel公司的MCS-51系列、ATMEL公司的AT89C51、AT89C52及20引脚的AT89C2051、AT89C1051,PHILIPS公司的P89C51系列、51PC系列,MicrochipTechnology公司的PIC系列单片机。
该插座的每一个引脚都有一个对应的自锁紧插孔,可以用连接线与实验台上的外围电路相连接。
(注意:
实验结束后,应将万能锁紧插座的拉杆抬起,使之处于松弛状态。
)
单片机实验区还有三个功能开关:
SW3,SW4和K8。
其中:
SW4是微机接口实验和单片机实验选择开关;
SW3是89C51和仿真器选择开关;
K8是单片机编程和运行状态选择开关。
当这些开关接通时,单片机的地址总线与A0~A15连接;数据总线与D0~D7连接;ALE,RD,RW,RST,RXD,TXD等信号均进行连接。
2.单片机地址译码电路U3
考虑到单片机系统扩展的需要,实验台上设置了单片机地址译码电路,电路如图2-12所示。
集成电路74LS138进行译码,8条译码输出线
~
的地址分别为0000H~1FFFH、2000H~3FFFH、4000H~5FFFH、6000H~7FFFH、8000H~9FFFH、A000H~BFFFH、C000H~DFFFH、E000H~FFFFH,由“自锁紧”插孔引出,供实验用。
图2-12单片机地址译码电路
3.串行EEPROM、看门狗接口
实验台上有1片集成了串行EEPROM及看门狗的接口电路:
X25045。
可以进行单片机扩展串行EEPROM;单片机看门狗实验。
其电路原理如下:
图2-13串行EPROM、看门狗电路
4.单片机与PC机通信接口电路
实验台上设有TTL电平与RS232C电平转换电路,采用MAX232芯片。
可用于单片机与PC机通信,或单片机与单片机之间通信。
图2-14串行通信接口电路
2.3其它电路
1.跳线开关
为方便实验,实验台上设置了以下几个跳线开关:
(1)实验类型选择开关JP12、JP13:
这两个跳线开关在实验台50芯总线插座的左方,实验中一般用户不用设置。
(2)模拟量输入选择开关JP19、JP20:
在实验台AD转换芯片ADC0809附近,分别用于模/数转换模拟量的输入极性选择,JP19的1、2两点短路时,ADC0809的DN2可输入双极性电压(-5V~+5V);2、3点短路时输入单极性电压(0~+5V)。
JP20用于所在DN1的输入极性,选择方法与JP19相同。
(3)+5V电源插针:
为减轻+5V电源负载并保证个主要芯片的安全,在个主要实验电路附近都有相应的电源连接插针(标记为+5V),当实验需要使用该部分电路时,用短路块段接插针即可接通+5V电源,对实验中用不到的电路,可断开短路片以保证芯片安全。
3.直流稳压电源
实验箱自备电源,交流电源插座固定在实验箱的后侧板上,交流电源开关安在实验箱的右侧,当打开交流电源开关时,交流电源指示灯亮。
实验箱右上角有直流电源开关,接通交流电源后再将直流开关拨到“ON”位置,直流+5V和+12V电源就加到实验电路上。
直流稳压电源的主要技术指标:
输入电压AC175~265V
输出电压/电流+5V/2.5A,±12V/0.5A
输出功率25W
2.4单片机实验教学模式
利用本实验仪进行单片机实验可以采用简易实验模式和在线实验模式。
2.4.1简易实验模式
实验设备除PC机外,只要配上本实验仪即可。
实验步骤如下:
①在断电的情况下,根据实验要求,连接好实验电路(单片机采用PHILIPS公司的P89C51RA2),包括实验仪与PC机之间的的通信电缆。
②在PC机上运行单片机软件模拟器,编写调试实验程序(起始地址为0000H),调试通过后将目标程序存盘(文件扩展名为HEX)。
③接通实验仪电源后,在PC机上运行PHILIPS公司的在系统编程软件,(该软件的使用方法将在下一节“在系统编程软件的使用”中介绍)将目标程序直接写入实验仪上的单片机中。
④与PC机脱机后,按下实验仪上的RESET开关使单片机复位。
复位后,写入单片机的用户程序运行,根据运行结果验证实验正确性。
2.4.2在线仿真实验模式
在线仿真实验模式适用于对单片机实验要求较高的学校及课程设计、毕业设计、科研开发。
实验步骤如下:
①在断电的情况下,将实验仪与PC机之间的串行通信电缆连接好,将仿真开关打到仿真器一侧,并根据实验要求,连接好实验电路。
这里我们用的是SST89E564RD来仿真实验。
②接通实验仪电源,在PC机上运行在单片机仿真软件,编写实验程序,编写完成后编译完再(起始地址为0000H)联机调试。
③接通实验仪电源,按下实验仪上的RESET开关使单片机复位。
复位后,再用仿真软件进行联机调试,目标程序会自动下载到仿真器运行,根据运行结果验证实验正确性。
(有关仿真调试的使用方法请阅读本手册后面的“第九章仿真器Keil的使用”)
2.5KEIL8051开发工具使用说明
2.5.1KEIL简介
KeilSoftware的8051开发工具套件可用于编译C语言源程序、汇编语言源程序,连接和重定位目标文件和库文件,创建HEX文件以及调试目标程序。
Keil开发套件提供以下程序:
μVision3forWindows是一个集成开发环境。
它将项目管理、源代码编辑和程序调试等集成到一个功能强大的环境中。
C51国际标准优化C交叉编译器:
从C源代码产生可重定位的目标文件。
A51宏汇编器:
从8051汇编源代码产生可重定位的目标文件。
BL51连接/重定位器:
组合由C51和A51产生的可重定位的目标文件,生成绝对目标文件。
LIB51库管理器:
组合目标文件生成可以被连接器使用的库文件。
OH51目标文件到HEX格式的转换器:
从绝对目标文件创建IntelHEX格式的文件。
RTX-51实时操作系统:
简化了复杂和对时间要求敏感的软件项目。
KEIL公司发布两种类型的套件:
测试版套件和产品套件。
①测试版套件:
包括8051工具软件的测试版、用户手册。
测试版可以生成目标代码在2KB范围以内的应用。
该套件主要是评估8051工具软件的有效性,并产生较小的目标代码。
②产品套件:
包括8051工具软件的无限制版、全套手册系列。
该套件具有1年的免费技术支持和产品升级。
2.5.2建立新工程的一般步骤
在KeilIDE中不支持单文件的处理,只有建立一个工程并对该工程进行正确的设置后,才能使用Keil进行编译连接仿真等操作。
启动uVision2以前,先在磁盘上新建一个文件夹,如C:
\赵钱孙C51,以保存项目文件。
1.新建工程
启动uVision3,点击菜单Project/NewProject..后,出现如图3-2所示的新建工程对话窗口,从“保存在”下拉列表框中选择先前建立的文件夹(赵钱孙C51),在“文件名”编辑框中为将要新建的工程输入一个工程名(如prj_1),单击“保存”按钮,将弹出如图3-3所示的选择器件对话框。
2.为工程选择器件
图3-3只有一个选项卡:
CPU。
因为TTC-2实验台配的CPU是Philips公司的P89C51RA2,因此在Database列表框中选择生产厂家Philips,CPU型号为P89C51RA2xx。
该芯片的基本性能出现在描述文本框中。
从右边对该芯片的描述中可以看出,P89C51RA2xx是基于CMOS工艺的8051控制器,具有32位输入/输出线、3个定时器/计数器,7个中断源4个优先级控制、8K的在线可编程FLASH为其程序存储器、256字节的片内RAM和256字节的片外RAM。
图3-3为工程选择器件(CPU)
选择好目标芯片后,单击“确定”按钮,系统将弹出对话框(图3-4),询问是否为新建的工程添加标准启动代码。
所谓启动代码,是指文件STARTUP.A51。
STARTUP.A51是为大多数80C51CPU及其派生产品编写的启动代码。
其作用是清除数据存储器,初始化硬件和可重入堆栈指针。
另外,还有一些80C51派生产品要求初始化代码能够匹配硬件设置的配置。
例如,Philips公司的80C51RD+的片内有xdataRAM,需要用启动代码进行配置后方能使用。
因此,单击按钮“是”,为prj_1添加启动文件Startup.A51。
图3-4
启动文件添加成功后在uVision3的工程管理器下的projectworkspace\Target1\SouceGroup1下可以看到刚才新添加的文件STARTUP.A51。
3.创建新的源文件
新建了空的项目并为其添加了启动文件后,接下来的工作就是为项目新建(或添加)源程序文件。
如果已经用其它编辑器(如记事本)编辑好了源程序文件,则需将其添加到本项目中,才能够对源程序进行编译处理;如果还没有建立源程序,则需新建一个源程序文件。
打开“文件/新建”菜单,系统为工程项目创建了一个默认名为“Test1”的文件,用“另存为”命令打开图3-5所示的另存为对话框,将文件保存在自己的文件夹下,如果要创建一个C语言的源程序,则将文件名以.C或.C51为后缀名;如果想创建一个汇编语言源程序,则将文件名的后缀名用.A51。
设置好保存位置和文件名后,单击“保存”按钮,uVision3便打开了一个编辑窗口,在此窗口可以用C语言(或MCS51的汇编语言)编辑源程序文件。
图3-5将新建源程序文件另存为
如果已经有用其它编辑器编辑好的源程序文件,则必须将其添加到项目中,才能使用。
可以展开项目空间的Target1,右健单击“SourceGroup1”,从弹出的上下文菜单中选择“AddFilestoSourceGroup1”命令,系统将弹出添加文件对话框(图3-6)。
在添加文件对话框的“查找范围”列表框中选择文件路径,文件列表框中选择要添加的文件,同时在“文件类型”下拉列表框中选择文件类型,单击“Add”按钮,即完成了添加文件操作。
如果还要继续添加文件,只需重复选择文件路径、文件名、文件类型,单击“Add”按钮即可。
文件添加完成后,单击“Close”按钮,关闭对话框。
4.工作环境和参数的设置
在Keil的使用中,参数配置同样重要。
新工程所有的配置参数都会使用缺省数值,一般可以正常运行,使用初期用户如果遇到不理解的配置参数可以不予理睬,在以后的应用中再逐步弄懂各个参数的实际用处。
图3-6为工程项目添加文件
右键单击项目工作空间的“Target1”,再在弹出的菜单中选择“OptionsforTarget‘Target1’”,系统将弹出图3-7所示的工程设置对话框。
图3-7工程设置对话框
工程设置对话框有多个选项卡。
其中“Device”选项卡就是我们为系统选择CPU时用过的。
现在打开“Target”选项卡,在这个选项卡中可以设置目标硬件以及所选器件的片内部件的所有相关参数。
下表列出了该对话框各选项的意义。
选项
说明
Xtal
设置目标系统所用CPU的时钟频率
MemoryModel
设置Cx51编译器的存储模式。
系统默认模式为SMALL
UseOn-chipROM
用户芯片内的程序存储器地址范围
UseOn-ChipXRAM
用户芯片内可用的外部数据存储器的地址范围
UsemultipleDPTRregisters
设置在CPU启动代码中使能的芯片内部部件
Off-chip…Memory
可以指定目标文件的所有存储器区域
CodeBanking
指定所使用的存储体信息(个数,地址范围)
5.编译项目和创建HEX文件
编辑好源程序文件后,单击工具栏图标(BuildTarget)或(RebuildAllTargetFiles),就可以对源程序进行编译连接并生成目标程序。
编译过程中如果发现语法错误,μVision将会在输出窗口显示错误和警告信息。
移动光标到输出窗口,双击错误信息行,μVision就会将光标定位到编辑窗口相应的位置。
成功地生成应用程序后,就可以进行程序调试了(具体调试方法见下节)。
在调试好应用程序后,必须生成一个可供下载到程序存储器的HEX文件。
创建HEX文件的方法是,打开“OptionsforTarget‘Target1’”对话框(方法见3.4.4),选择“Output”选项卡,将CreateHEXFile前的复选框选中,“确定”后再编译连接源程序,即可创建HEX文件。
2.6在系统编程软件(ZLGISP)的使用
1.在系统编程简介
随着单片机技术的发展,出现了可以在系统编程(ISP)的单片机。
ISP一般是通过单片机的串行接口对内部的程序存储器进行编程,如PHILIPS公司的P89C51RX+、P89C51RX2单片机;ATMEL公司的AT89S8252单片机;WINBOND公司的W78E516等。
利用在系统编程(ISP)的单片机,单片机的实验和开发不需要编程器,单片机芯片可以直接焊接到电路板上,调试结束即成成品,甚至可以远程在线升级单片机中的程序,使得单片机应用系统的设计、生产、维护、升级等环节都发生着深刻的变革。
实验仪附带有一片PHILIPS公司新推出的高性能8位单片机P89C51RD2,该单片机与MCS-51单片机引脚及指令集完全兼容。
其最大的优点是:
片内具有64KB闪速程序存储器,1KB的片内数据存储器,且同PC机连机后,可将目标程序直接写入片内程序存储器中,不再需要专用的编程器。
下面就其编程方法作一介绍。
①在断电的情况下,将P89C51RD2单片机插入实验仪通用单片机插座并锁紧。
将实验仪与单片机之间的串行通信电缆连接好,通信电缆一端接在PC的串口COM1或COM2,另一端接实验仪接口DB9。
②将仿真器开关打到89C51一侧,将单片机的相应信号RXD、TXD等与RS232电平转换电路相连。
③将实验仪上的编程开关拨至“编程”位置,编程指示灯亮。
按RESET按钮使单片机复位后,即可按下面的说明编程。
2.在系统编程软件的安装
在系统编程软件“ZLGISP”在使用前需进行安装,安装步骤如下:
1、将ZLGISP文件夹下的SETUP.EXE文件拷贝到硬盘上;
2、用鼠标双击SETUP.EXE的图标,根据屏幕提示操作安装。
3.在系统编程软件的使用
在PC机上运行编程软件ZLGISP,软件运行后屏幕界面如下:
图5-1
(1)各主菜单介绍
屏幕上方为主菜单:
文件、编辑、芯片和帮助。
●文件菜单中包括:
装载(用于装载hex文件)、保存文件和退出软件操作。
●编辑菜单用于手动对单片机缓冲区的编辑,包括:
编辑、填充和清空操作。
手动的编辑操作一般不会用到。
●芯片菜单中包括可以对单片机执行的操作:
读出(读出芯片缓冲区内容)、编程(对芯片编程)、查空(检查芯片缓冲区是否为空)、擦除(擦除芯片缓冲区内容)、校验(编程后对芯片缓冲区校验)和设置(设置配置参数)。
这些操作在软件的左边一一列出,使用时直接单击左边的相应操作就可以了。
●帮助菜单包括对本软件的说明和使用帮助。
(2)编程操作
在对一片Philips的89C51RX2进行编程时,一般进行5步操作:
第一步:
通讯设置
图5-2
●设置芯片型号:
单击“型号”下拉菜单,用鼠标选中所使用的芯片型号。
●设置通信口:
单击“通信口”下拉菜单在COM1—COM4中进行选择所使用的通信口。
●波特率设置:
单击“波特率”下拉菜单进行选择,建议先从较低的波特率选起,进行通讯实验,试通以后再选用较高的波特率,在我们的单片机实验系统中,建议选2400或4800波特率。
●振荡频率设置:
此处需手动输入,在我们的实验系统中应输入“6.000”MHZ。
第二步:
设置芯片配置参数
单击软件左边一列的“设置”选项或单击主菜单“芯片”――“设置”选项弹出芯片参数设置窗口。
在此对话框中我们需要设置自举指针(Vector)和状态字节(Status)。
我们将自举指针(Vector)设为“FC”,状态字节(Status)设为“00”。
设置好以后单击“写入”。
待对话框下端一栏提示“写入操作成功”后,单击“退出”。
这就完成了对芯片配置参数的设置。
在设置芯片的配置参数时应注意自举指针(Vector)一定不要设置为“00”。
若不慎将自举指针(Vector)设置为“00”,进行过一次编程后将不能再对这个芯片进行任何操作。
操作时软件会提醒你“通信出错”。
这种情况下,我们的这个软件已经无能为力。
用户须将芯片从实验箱上取下,用编程器对芯片的配置参数重新设置。
另,单击“读出”可以显示芯片的自举指针、状态字节和保密位状态。
用户还应当注意,单击“设置”进入对话框后,对话框所显示的自举指针、状态字节和保密位状态是上次设置的状态,并不是当前状态,须单击“读出”才能显示出当前的真实状态。
在此对话框中还可以设置保密位(bit1、bit2和bit3)。
保密位用于防止芯片程序被读出。
p89c51系列芯片有三个可设置保密位。
通过三个保密位的不同组合可以定义四种不同等级的保密。
各等级的设置和功能见下表:
表5-1
保密位
保密功能
等级
Bit1
Bit2
Bit3
1
0
0
0
2
1
0
0
防止块擦除,防止自举指针和状态位的设置和擦除
3
1
1
0
防止编码存储器的校验
4
1
1
1
所有外部命令均无效
注意:
1.保密位是各自独立的。
无论保密位如何设置,全部芯片空间的擦除是可执行的。
2.其余保密位的组合没有定义。
由于我们只是简单的程序编程,不会涉及到程序的保密问题。
所以用户在使用时不用设置保密位。
若由于不慎操作将保密位设置,可通过擦除操作,选择擦除全部芯片空间,即可将所设置的保密位擦除。
图5-3
第三步:
擦除
单击软件左边一列的“擦除”选项或单击主菜单“芯片”――“擦除”选项弹出芯片擦除窗口。
图5-4
在擦除对话框中列出了所选器件的各个Flash块,用鼠标选中你要擦除的Flash块。
在执行擦除操作时,就会将所选的Flash块擦除。
注意:
当擦除整个Flash时芯片的自举指针(BootVector)和状态字节(Statusbyte)将被设置成初始值。
待对话框下端一栏提示“擦除操作成功”后,单击“退出”。
这就完成了对芯片的擦除工作。
第四步:
装载文件
单击主菜单“文件”――“装载”选项或单击文件下方的打开文件图标弹出装载文件窗口。
选择所要装载的hex文件,单击“打开”即可完成对文件的装载工作。
图5-5
装载完成后芯片缓冲区内容改变,如下图所示:
图5-6
第五步:
编程
单击软件左边一列的“编程”选项或单击主菜单“芯片”――“编程”选项弹出芯片编程窗口。
编程设置有两种方法:
一种为默认状态,另一种为手动设置编程地址。
编程对话框的默认状态为如下图所示。
单击“编程”,待对话框下端一栏提示“编程操作成功”后单击“退出”。
这就完成了编程操作。
我们推荐用此默认方法编程。
下面这种操作比较麻烦,而且地址设置不对的话就会出错,所以最好不要用这种方法。
在对话框中去掉“其他编程选择”前的“√”,用户即可手动设置所要编程的地址。
对话框列出了所选器件的各个Flash块,用鼠标选中你要编程的Flash块,或者按照具体地址选择设置所要编程的起始地址和终止地址。
然后单击“编程”。
图5-7
此外,编程后还可以进行校验。
由于校验不是必不可少的,我们就不列入编程操作步骤了。
用户若想要进行校验,单击软件左边一列的“校验”选项或单击主菜单“芯片”――“校验”选项弹出芯片校验窗口。
在校验对话框中列出了所选器件的各个Flash块,用鼠标选中你要校验的Flash块,或者按照具体地址选择设置所要校验的起始地址和终止地址。
单击“校验”,待下端一栏提示“对应地址内容一样”,就表示校验结果是正确的。
图5-8
其它对芯片可执行的操作包括读出(用于读出芯片缓冲区的内容)和查空(用于检查芯片缓冲区是否为空)。
这两个操作一般不会用到,就不再详述。
其具体操作方法与校验类似。
用户若想使用可按照提示进行操作。
三.实验步骤
用TTC-2二合一实验箱进行单片机实验的步骤
1.关闭实验箱电源,按实验原理图连接电路。
2.编辑源程序。
可以用任何编辑器(记事本、写字板、World)编写源程序,并存盘。
如果是汇编语言源程序以A51为后缀名,C语音源程序则以C或C51为文件后缀名。
3.对源程序进行编译(汇编)、连接,生成目标文件(.HEX文件)、映像文件(.M51文件)和列表文件(.LST文件)等各种文件。
在PC机上创建一个文件夹(如MCS51),打开KEIL,新建工程,系统要求选择单片机类型,因为实验室所用单片机为P89C51RA2NB,所以,选择Philips公司的P89C51RA++,为新建的工程命名后保存到自己的文件夹中。
如果已用其它编辑器编辑好了源程序,可以打开已编辑好的源程序;如果尚未编辑好源程序,则新建文件,在编辑窗口编辑源程序,存盘(以A51或C51为后缀名)。
在μVision项目管理窗口展开Target1\SourceGroup1,右击,将编辑好的源程序添加到源程序组中。
对源程序进行编译、连接,如果有语法错误,改正后再重新汇编和连接,直到全部正确为止。
如果输出窗口没有显示“creatinghexfilefrom“…””,则需要右击Target1,选择OptionsforTarget‘Target1’,打开Output选项卡,将CreateHEXFile的复选框选中。
再进行汇编和连接。
4.将HEX文件写进单片机的程序存储器。
4.3汇编语言源程序调试举例
1.程序说明
汇编源程序prj_1.A51的功能是用起泡法将存储在内部RAM从50H开始的随机数据进排序,然后将排序后的数据存储到外部RAM的从0000H开始的存储单元。
源程序如下:
2.编辑源程序。
可以用以下两种方法编辑源程序并将源程