- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验教案实验二(指导书)
实验二 基本I/O与流水灯控制实验
一、目的、任务和要求
1.1 实验目的
1. 掌握单片机的I/O指令和I/O口μVision4中编写出P1口控制流水灯(或其它彩灯形式)的程序,再通过μVision4仿真器进行编译和仿真。参考程序如下所示。
本次实验按照以下四个基本步骤来操作:
1)在PC机桌面建立一个文件夹,如“LED002”,待本次实验结束后删除它。
2)双击打开“μVision4”软件,点击“Project”建立工程文件并保存,如“LED02”。在“File/New”菜单下创建上述*.asm文件,并存入桌面的上述新文件夹中,然后进行程序的录入和编辑操作。
3)在“Project /Build target”下进行汇编。编译成功后将在上述桌面的新目录中生成*.obj(目标文件)和*.lst(列表文件)等文件;若汇编不成功,则会弹出一个提示原因的新界面,可根据提示信息来修改错漏语句。
然后可以在“Project /Rebuild all target file”下生成可烧入单片机程序存储器的机器语言程序文件*.hex。
3烧录软件和试运行
μVision4生成的机器语言代码文件,其扩展名为HEX;利用编程器(配合PC机内相关软件)可将它直接烧写(即烧录)到AT89C51芯片之中。再将烧有软件的AT89C51芯片插入在实验电路上,加电运行就可以观察运行结果。第一次试运行一般不会就成功,常常需要根据具体情况来排除硬件故障或者修正程序代码。
如果电路上电后不能运行则需要检查单片机的基本工作条件是否正常;如果只是运行现象不符合设计目标,则需要分析现象进而修改程序代码,重复上述编译、仿真调试、烧写和试运行的过程。如此反复调试,直至成功为止。
一般每个实验任务都有三个基本实验步骤,即电路搭建、软件编译和仿真调试、试运行这三个步骤。每个步骤的具体操作内容依实际的实验条件而定。
3.2 实验步骤
1.自制实验电路的实验步骤
(1)根据实验任务作电路原理图设计、作电路布局设计、再焊接电路(或面包板软线连接)来完成单片机硬件系统的搭建。上电之前要作电源回路的检查。
(2) 通过“μVision4”软件将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。
(3)通过单片机开发板将*.hex文件写入到单片机芯片的程序存储器之中,然后将单片机芯片插入实验电路,再将实验电路加电运行,察看现象并分析结果。若不成功,则必须根据分析结果来修改程序代码或者系统硬件,重复有关步骤直至成功。
2. 利用单片机实验板(配有下载*.hex文件的接口)的实验步骤
(1)利用实验板的电路部件和连接导线来搭建相应的实验电路。注意必须将实验板断电后再做电路搭建操作。
(2) 通过“μVision4”软件将编写好的程序代码进行编译和仿真调试,然后输出*.hex文件。
(3)通过实验板专用的接口将*.hex文件写入到单片机芯片的程序存储器中,然后试运行,察看现象并分析结果。若不成功,则要分析原因,重复有关步骤直至成功。
说明:单片机实验板使用STC89C51RC-RD+系列单片机,利用RS232串口和STC-ISP V33.exe通信软件(或开发板自带下载软件)来下载*.hex机器程序代码。
3.3 参考电路与程序代码
1. 参考电路
(1)P1口控制输出的流水灯电路简图
该电路图是在最小系统的基础上,将P1口接LED发光管电路,如图2.1所示。
(2)P1口控制的输入输出电路简图
该电路图是在最小系统的基础上,将P1口的P1.4~ P1.7接LED发光管,同时P1.0~ P1.3接按键开关或拨码开关,如图2.2所示。
2 程序代码
(1)移位法控制的流水灯程序代码
详见实验一的参考程序代码。
(2)查表法控制的流水灯程序代码
ORG 0000H
LJMP START ;转入运行用户程序
ORG 0100H ;从0100H开始分配主程序地址
START: MOV DPTR,#TAB ;DPTR等于常数表第一个数的存储地址
LOOP: CLR A
MOVC A, @A+DPTRCJNE A, #0FFH,GOON ;非最后一位数值则转移到GOON句
AJMP START ;是最后一位数值则回头再读第一位
GOON: MOV P1, A ;非最后一位数值则输出
LCALL DELAY ;调用延时子程序
INC DPTR ;改变读常数表的地址指针
AJMP LOOP ;转到LOOP,准备读常数表的下一位
DELAY: MO
文档评论(0)