单片机实验DOC.docx
- 文档编号:29846461
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:34
- 大小:670.52KB
单片机实验DOC.docx
《单片机实验DOC.docx》由会员分享,可在线阅读,更多相关《单片机实验DOC.docx(34页珍藏版)》请在冰豆网上搜索。
单片机实验DOC
目录
第一章模块化单片机实验仪的结构1
1.1主板结构1
1.2主板扩展电路接口的组成1
第二章TMD-2软件介绍2
2.1软件运行的2种方式2
2.2Keil仿真器使用说明2
2.3在系统编程软件(FlashMagic)的使用8
2.4串口调试助手的使用11
第三章TMD-2实验13
实验一I/O口实验13
实验二定时器实验16
实验三外部中断实验18
实验四单片机与PC机串口通讯实验20
第一章模块化单片机实验仪的结构
1.1主板结构
TMD-2模块化单片机实验仪主板的组成:
CPU:
AT89C51(或89C51RD2HXX)工作频率:
6MHz
RAM:
62256(32K×8)地址范围:
0000H~7FFFH
I/0口(输入输出设备):
8个拨动开关,8个LED灯
数据显示设备:
1个共阴极数码管,1个两行16字符的液晶显示器
逻辑笔
输出时钟频率(YCLK):
1MHz
系统电源:
+5V/2A,+12V/0.5A,-12V/0.5A
主板结构框图如图1.1所示:
图1.1TMD-2模块化单片机实验仪主板示意图
1.2主板扩展电路接口的组成
图1.2器件片选地址分配图
第二章TMD-2软件介绍
2.1软件运行的2种方式
1.Keil仿真器调试法
2.在系统编程法
2.2Keil仿真器使用说明
一、建立keil项目:
打开keil软件,如图2.1所示。
图2.1keil软件界面
二、鼠标单击创建新项目下拉菜单Project/NewProject…,如图2.2所示。
图2.2keil下创建新项目
选择新建项目的名字和保存路径,如图2.3所示。
图2.3保存项目文件
三、选择单片机型号(如图2.4所示,根据单片机的生产厂商查找)。
图2.4选择单片机型号
四、系统询问是否加载标准启动代码(如图2.5所示),选择“否”。
图2.5是否加载标准启动代码
五、加入汇编语言源程序文件(xx.a51),建立xx.a51文件有两种方法:
方法一(xx.a51文件己经存在):
在SourceGroup1上单击鼠标右键,选择“AddFilestoGroupsourceGroup1”,然后选择所要添加的文件,如图2.6所示。
图2.6添加文件到工程
方法二(xx.a51文件不存在):
1.新建空白文件,如图2.7所示。
2.将空白文件另存为xx.a51文件,存放在与工程文件同目录下,如图2.8、图2.9所示。
3.将xx.a51文件加载到项目中(同方法一)。
图2.7新建空白文件
图2.8新建空白文件
图2.9将空白文件另存为.a51汇编语言源程序文件
六、编辑程序,双击.a51文件,显示.a51的编辑空间,如图2.10所示。
图2.10编辑.a51汇编程序文件
七、单击Project->BuildTarget或单击
快捷键编译程序,如图2.11所示。
图2.11编译.a51汇编程序
八、观察编译输出窗口。
在最下面的buildOutput窗口观察错误(Errors)、警告(Warnings)和生成.hex文件等信息。
九、设置项目
1.鼠标单击Project/OptionsforTarget'Targetl'或单击
快捷按钮。
2.在Output选项卡中将CreateHEXFile选项勾上,如图2.12所示。
3.在Target选项卡中设置TMD-2的主板晶振频率为6M,如图2.13所示。
4.在Debug选项卡中设置仿真选项:
选择Use:
KeilMonitor-51Driver;
选中LoadApplicationatStartup,如图2.14所示。
5.在Settings选项卡中设置串口和波特率:
串口选择COM3,波特率选择9600,
RST,DTR均选择Active,CatchOptions全选择
StopProgramExecutionwithSerialInterrupt不能选择,如图2.15所示。
图2.12设置生成HEX文件界面
图2.13设置主板晶振频率
图2.15设置调试选项
十、开始调试运行程序
1.将TMD-2右上方仿真器开关拨到“仿真器”处。
2.检查电源线和串口线,上电。
3.鼠标单击菜单Debug/Start/StopDebugSession,或单击
快捷按钮,如图2.16、图2.17所示。
图2.15设置串口选项
图2.16打开调试窗口
图2.17程序调试界面
十一、keil软件的常用快捷按钮功能:
:
程序复位按钮。
:
程序运行按钮。
:
停止运行。
:
StepIn,单步按钮1,程序单步执行到子程序时,跟踪进子程序执行。
:
StepOver单步按钮2,程序单步执行到子程序时,把子程序当一步执行。
:
RuntoCursorLine执行到光标处,表示程序运行到光标所在行的位置
十二、再次点击下拉菜单Debug/start/stoPDebugsession或
快捷按钮,退出调试。
特别注意:
1,用keil仿真器调试程序时不要按主板上的复位键。
按下主板上的复位键会导致下载到仿真器的程序消失,若要再进行仿真就必须先退出仿真环境,然后重新联机进入。
2,如果要程序返回初始状态,只需点击
即可。
观察
光标符号,确认
已回到程序起始位置,此时主板上的硬件资源状态也已回到复位状态。
2.3在系统编程软件(FlashMagic)的使用
一、在系统编程简介
进行单片机实验或开发时,通常需要借助编程器将调试好的目标程序写入到单片机内部
程序存储器中。
普通的编程器价格从几百元到几千元不等。
另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,也比较麻烦。
随着单片机技术的发展,出现了可以在系统编程(ISP)的单片机。
ISP一般是通过单片机的串行接口对内部的程序存储器进行编程,如PHILIPS公司的P89C51RX+、P89C51RX2单片机;ATMEL公司的AT89S8252单片机;WINBOND公司的W78E516等。
利用在系统编程(ISP)的单片机,单片机的实验和开发不需要编程器,单片机芯片可以直接焊接到电路板上,调试结束即成成品,甚至可以远程在线升级单片机中的程序,使得单片机应用系统的设计、生产、维护、升级等环节都发生了深刻的变革。
实验仪附带有一片PHILIPS公司新推出的高性能8位单片机P89C51RD2XX,该单片机与MCS-51单片机引脚及指令集完全兼容。
该单片机最大的优点是:
其片内具有64KB闪存程序存储器,1KB的片内数据存储器,且同PC机连机后,可将目标程序直接写入片内程序存储器中,不再需要专用的编程器。
下面介绍其编程方法。
①在断电的情况下,将P89C5IRD2XX单片机插入实验仪通用单片机插座并锁紧。
将实验仪与单片机之间的串行通信电缆连接好,通信电缆一端接在PC的串口,另一端接实验仪串行口。
②接通跳线DZ4,使串行通信线RXD与RS232电平转换电路相连。
③通电,为了让系统能够达到稳定状态,最好等待1~2秒钟,然后将实验仪上的下载开关拨到“下载”位置。
按RESET按钮(确保有效,应至少保持1秒钟)使单片机复位后,即可按下面的说明编程。
二、在系统编程软件的使用
在PC机上运行编程软件FlashMagic,软件运行后屏幕界面如图2.18所示。
图2.18FlashMagic主屏幕
屏幕上方为主菜单,主菜单下方的屏幕被分成了5个区,分别标有1、2、3、4、5。
下面对主菜单及编程方法做一说明。
(1)主菜单
主菜单有4个子菜单,分别是File、ISP、Options和Help。
●File子菜单项:
包括打开和存储一个“HEX”文件,打开和存储一个设计文件和退出Flash
Magic操作。
●ISP子菜单项:
包括芯片空白检查;读保密位;读芯片标志字节;显示存储器内容;擦除FLASH等操作。
●OPtions子菜单项:
包括复位和高级选项两项操作,这两项操作在我们的实验系统中一般不用,所以这里不做介绍。
●Help子菜单:
包括查看FlashMagic的用户手册;可直接通过网络连接到FlashMagic的主页或连接到Philips半导体公司的主页查看相应信息。
在对一片Philips的89C51RD2XX进行编程时,一般按屏幕提示进行5步操作:
第一步:
通讯设置(屏幕1区)
●设置通讯口:
可以通过下拉菜单在COM1-COM4中进行选择,也可以在输入框中直接输入所连接的通讯口,在我们的PC机中,选择COM3。
●波特率设置:
可以通过下拉菜单进行选择,TMD-2实验系统选择9600的波特率。
●振荡频率设置:
TMD-2实验系统中应输入6.000MHz。
●器件选择:
可以通过下拉菜单进行选择。
TMD-2实验系统随机配送一片P89C51RD2XX,在选择芯片时先仔细看清楚芯片型号是89C5IRD2XX还是89C5IRD2HXX,请不要选错。
第二步:
擦除
在屏幕的2区列出了所选器件的各个Flash块,用鼠标选中要擦除的Flash块。
在执行擦除操作或编程操作时,就会将所选的Flash块擦除。
注意:
当擦除整个Flash时芯片的自举指针(BootVector)和状态字节(Statusbyte)将被设置成初始值。
除89C51RX+系列芯片以外,在擦除整个Flash时保密位也将被擦除。
第三步:
选择HEX文件(屏幕3区)
选择和打开一个HEX文件可以有三种方法;
①在文本框中键入HEX文件的路径和文件名。
②点击Browse(浏览)按扭,查找HEX文件。
③在主菜单的File子菜单下用Open打开一个HEX文件。
第四步:
操作选项(屏幕4区)
屏幕4区是编程时的一些选项。
●编程后校验:
这项功能一般是需要的。
●填充用不到的Flash区:
这项功能是在选择了一个HEX文件后,将该HEX文件用不到的存储区用00H填满。
●产生校验和:
这项功能是在选择了一个HEX文件后,FlashMagic在这个HEX文件所用到的每一块Flash块的最高地址写入一个值,这个值使这个Flash块的校验和为55H。
●执行:
如果选择该项功能后,将在编程完成后自动执行固化好的程序。
注意:
在我们的系统中由于使用硬件复位操作,这项功能将不起作用。
●保密位:
在你的程序尚未完全调试好以前,所有保密位不要选。
第五步:
编程(屏幕5区)
在屏幕的第五区只有一个按扭:
“Start",按下这个按扭将根据所选顺序执行如下操作:
●擦除FLAS块
●对HEX文件编程
●校验
●填充没有用到的FLASH
●产生校验和的值
●写时钟位
●写保密位
●执行固化好的程序
操作完成后,将显示出“Finished...”并显示出对HEX文件编程所用的时间。
三、附加ISP功能介绍
●芯片空白检查:
在ISP菜单下选择了空白检查后,将对所选芯片的所有FLASH块进行空白检查,并显示出每一块空还是不空的信息。
●读保密位:
将所选芯片的保密位的状态读出并显示在屏幕上,如果保密位中某一位已经设置,将用高亮度显示出来。
●读芯片署名:
芯片署名包括3个字节,第一个字节是制造厂标志。
例如15H就是PHILIPS
半导体的标志,另外两个是芯片标志。
●修改自举指针状态字节:
状态字节指出的是芯片复位以后程序运行的初始地址,如果该字节值为00H且PSEN引脚没有接低电平(非编程状态),那么芯片复位以后,将从0000H地址运行用户的应用程序.自举指针指的是芯片内部自举程序所在的页地址,8051系列单片机该指针的默认值为FCH,相对应自举程序的起始地址为FC00H。
注意:
用户编程时一定不要修改自举指针的值,一旦该指针被改为非FCH的其它值,自举程序将无法运行,在线编程功能将不再作用,这时只有用并行编程器将该芯片擦除才能恢复。
●显示FLASH存储器:
在ISP子菜单下选择显示FLASH存储器功能后,将显示出FLASH
存储器的内容,每行显示16个字节。
●擦除FLASH:
有两种方法可以擦除FLASH,一种方法是在前面讲到的编程操作的5个步骤中,另一种方法是在ISP子菜单下选择擦除FLASH。
其它一些功能在该实验系统中不会用到所以这里不做介绍。
2.4串口调试助手的使用
一、软件简介
该程序是一款串口调试软件。
跟市面上大多数软件一样,可以对串口的波特率,数据位,
停止位,校验位等设置,可对串口进行读写数据。
二、软件的使用
●串口参数设置
串口:
可选择通讯使用的COM口,在我们的PC机中,选择COM3。
波特率:
可选择通讯使用的波特率。
可选范围为300-115200。
TMD-2实验系统使用9600。
图2.19串口调试助手软件界面
数据位:
可选择通讯协议中表示数据的位数,TMD-2实验系统选择8。
停止位:
可选择通讯协议中表示停止位的位数,TMD-2实验系统选择1。
校验位:
可选择通讯协议中校验的方式,包括无校验(Nne)、奇校验(OOO)、偶校验
(Even)、Mark、space等。
TMD-2实验系统选择无校验(Nne)。
注意:
实验前需要确定串口是否打开
●接收区
PC机通过COM口把从TMD-2上接收来的数据在此显示。
十六进制显示:
若选中该选项则按十六进制显示数据,否则按十进制显示。
停止显示:
清空接收区:
清空接收区里的内容
保存显示数据:
如果当前接收的数据还要作为原数据发送给其他设备,点击该按钮或者点击‘更改’按钮(如需要修改文件保存路径),选择好路径,点击“保存”将这些数据作为一个文件保存起来,如图2.20所示。
图2.20保存显示数据
选择发送文件:
单击该按钮,选择文件,如图2.21所示。
图2.21打开数据文件
●发送区:
包括发送数据和发送文件:
写好要发送的数据(可选择十六进制或者十进制),点击“手动发送”按钮即可。
注意:
“串口调试助手”和在系统编程软件FlashMagic不能同时用一个串口,如果PC机只有一个串口,那么在用FlashMagic下载完程序之后,把FlashMagic关掉,然后再打开串口调试助手软件,做串口通讯实验。
第三章TMD-2实验
实验一I/O口实验
1.P1口输出实验
(1)实验目的
学习51单片机的32根I/O口的基本输出功能,以P1口为例,P0,P2,P3口均同理。
学习延时子程序的编程和应用。
(2)实验设备
TMD-2模块化单片机实验仪主机一台,串口线一条,PC机一台。
(3)实验电路原理图及其说明
如图3.1所示,MAX708为看门狗电路。
CYALI为6MHz晶振。
SW8为下载开关。
将8个短路子(DZ2组)全部短接上,通过程序向P1口送数,用发光二极管LD0-LD7显示P1.0~P1.7的状态。
图3.1P1口输出实验原理图
(4)实验内容
1.使8个LED发光二极管循环闪亮,时间间隔为1秒。
2.使8个LED发光二极管同时亮、灭,时间间隔为1秒。
(5)实验步骤
1.将短路子组DZ2的8个短路子短接,其余短路子不短接。
2.给TMD-2加电,运行程序。
注意:
TMD-2的所有实验都必须要短接DZ4,用来连接主机与单片机的RXD,下载程序用。
另外,涉及到短路子短接的问题的实验,除实验步骤中要求短接的短路子,没提到的均不接。
(6)参考程序
实验1.8个发光二极管循环闪亮,间隔时间为1秒。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVA,#01H;先让第一个发光二极管亮
LOOP:
MOVP1,A;从P1口输出到发光二极管
LCALLDELAY;延时1秒
RLA;左移一位,下一个发光二极管亮
SJMPLOOP;循环
DELAY:
MOVR0,#10;延时1秒子程序,使用参数R0、R7、R6
DELY0:
MOVR7,#100;延时0.1秒
DELY1:
MOVR6,#250;延时1mS
DJNZR6,$
DJNZR7,DELY1
DJNZR0,DELY0
RET
END
实验2.8个发光二极管同时亮、灭,间隔时间为1秒。
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#60H
MOVA,#0FFH;先让发光二极管全亮
LOOP:
MOVP1,A;从P1口输出到发光二极管
LCALLDELAY;延时1秒
CPLA;取反
SJMPLOOP;循环
DELAY:
MOVR0,#10;延时1秒子程序,使用参数R0、R7、R6
DELY0:
MOVR7,#100;延时0.1秒
DELY1:
MOVR6,#250;延时1mS
DJNZR6,$
DJNZR7,DELY1
DJNZR0,DELY0
RET
END
2.P2口输入实验
(1)实验目的
学习51单片机的32根I/O口的基本输入功能,以P2口为例,P0,P1,P3口同理。
(2)实验设备
TMD-2模块化单片机实验仪主机一台,串口线一条,PC机一台。
(3)实验电路原理图及其说明
如图3.2所示,将16个短路子(DZ1组和DZ2组)全部都短接上。
8个拨动开关(SW0~SW7)向P2口送数。
SW0~SW7的状态(“0”或“1”)分别表示P2.0~P2.7的数据。
CPU从P2口输入SW0~SW7的状态数据后,再从P1口将该数据输出。
8个发光二极管(LD0~LD7)显示P1口输出的数据,应当与按键(SW0~SW7)的状态相一致。
图3.2P2口输入、P1口输出实验原理图
(4)实验内容
拨动8个开关,把8位数据送到P2口,程序读入,然后送P1口显示。
(5)实验步骤
1.将短路子组DZ1、DZ2的16个短路子短接,其余短路子不短接。
2.给TMD-2加电,运行程序。
(6)参考程序
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSP,#30H
MOVP1,#0FFH;P1口初始化
MOVP2,#0FFH;P2口初始化
LOOP:
MOVA,P2;读P2口
MOVP1,A;送P1口显示
MOV20H,A;保存P2口数据
SCAN:
MOVA,P2;再次扫描P2口
CJNEA,20H,LOOP;有新数据则送P1口显示
SJMPSCAN;没有新数据则继续扫描
END
实验二定时器实验
1.定时器定时报警实验
(1)实验目的
学习51单片机的定时器功能和应用,学习蜂鸣器的使用。
(2)实验设备
TMD-2模块化单片机实验仪主机一台,串口线一条,PC机一台。
(3)实验电路原理图及其说明
如图3.3所示,CPU通过输出端口(8700H)将数码管的字形码锁存在74LS374的输出端,再通过74LS244驱动数码管显示数据。
B1为蜂鸣器,T0通过正与门驱动器DS75451控制蜂鸣器。
当DS75451(U29B)输出低电平时,蜂鸣器鸣叫。
T1通过DS75451控制共阴极数码管(LED)的公共端。
当DS75451(U29A)输出低电平时,数码管显示。
图3.3定时器报警实验原理图
(4)实验内容
编写定时16秒的程序,1秒、2秒、3秒…的变化由数码管体现,到16秒的时间时,停止计数,蜂鸣器报警。
(5)实验步骤
1.短路子组DZ1、DZ2、DZ3、DZ4均不短接。
2.给TMD-2主机加电,运行程序。
(6)参考程序
ADRLEDEQU8700H;LED工作地址
ORG0000H
LJMPMAIN
ORG1BH
JMPT1INT;定时器1中断入口地址
ORG0100H
MAIN:
MOVSP,#60H
MOVR0,#0AH;R0为0.1秒的次数
ANLTMOD,#0FH;定时器1置为方式1
ORLTMOD,#10H
MOVTL1,#0B0H;置定时器1的中断时间为0.1S
MOVTH1,#3CH
ORLIE,#88H;允许定时器1中断
MOVR2,#0;置R2初值,R2对应显示字符的字形码相对地址
MOVR5,#16;置显示的字符数初值
SETBP3.4;使蜂鸣器的负端为高不鸣叫
CLRP3.5;使数码管的共阴极为低电平
NEXT:
MOVDPTR,#TAB;置字形码表首地址
MOVA,R2
MOVCA,@A+DPTR;取出相应的字形码
MOVDPTR,#ADRLED;数码管段码地址
MOVX@DPTR,A;送数码管段码(字形码)
SETBTR1;启动定时器1
LOOP:
CJNER0,#00H,LOOP;不够1秒,转LOOP
INCR2
MOVR0,#0AH;重置R0为10
DJNZR5,NEXT;16个字符没有显示1遍,转NEXT显示下一字符
CLRP3.4;使蜂鸣器的负端为低其鸣叫
MOVA,#0FFH;报警之后数码管显示全亮
MOVDPTR,#ADRLED;数码管段码地址
MOVX@DPTR,A;送数码管段码(字形码)
CLRTR1;定时器停止计数
SJMP$;死循环
T1INT:
CLRTR1;定时器1中断,首先停止计数
DECR0;次数减1
MOVTL1,#0B0H;重置定时器1时间常数
MOVTH1,#3CH
SETBTR1;恢复定时器1计数
RETI
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;字形码表
DB7FH,6FH,77H,7CH,58H,5EH,79H,71H
END
实验三外部中断实验
1定时器定时报警实验
(1)实验目的
学习51单片机的外部中断功能。
(2)实验设备
TMD-2模块化单片机实验仪主机一台,串口线一条,PC机一台。
(3)实验电路原理图及其说明
图3.4中断实验原理图
如图3.4所示,KPUS为中断按键。
在中断(/INT0)服务子程序中安排CPU接收来自SW0,SW1,SW2这三位开关的数据,这是通过读输入端口(8300H)实现的。
送一位数码管显示的字形码是通过写输出端口(8700H)实现的。
T1通过正与驱动门DS75451控制共阴极数码管的公共
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 DOC