微机原理及应用实验指导书x.docx
- 文档编号:4932289
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:31
- 大小:647.77KB
微机原理及应用实验指导书x.docx
《微机原理及应用实验指导书x.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验指导书x.docx(31页珍藏版)》请在冰豆网上搜索。
微机原理及应用实验指导书x
微机原理及应用
(单片机)实验指导书
熊光洁
机电教研室
北京工商大学机械自动化学院
2008-3-28
目录
第一部分单片机原理及汇编程序设计概述......................................3~12
实验一认识单片机开发系统,学习有关软件的使用............................3~7
实验二MCS-51汇编程序设计(分支、散转程序练习)...........................8
实验三定时/计数器实验...................................................9
实验四中断系统实验........................................................10
实验五静态存储器扩展实验..............................................11~12
实验六综合实验——特种车优先通过的交通灯控制..............................13
第二部分TD-NMC+教学实验系统简介.........................................18~30
2.1TD-NMC+系统功能及特点..................................................18
2.2TD-NMC+系统构成.......................................................19
2.3SST89E554RC简介......................................................19~20
2.4KeilC51的安装........................................................21~23
2.4.1系统要求.............................................................21
2.4.2软件安装.............................................................21~23
2.5μVision2集成开发环境..................................................24~26
2.6仿真调试与脱机运行间的切换方法...........................................26~29
2.6.1脱机运行.............................................................26~27
2.6.2与KeilC51开发环境联机调试的方法.....................................27
2.6.3从SoftICE返回IAP引导程序的方法.......................................29
第一部分单片机原理及汇编程序设计
实验一认识单片机开发系统,学习有关软件的使用
一、实验目的
1.学习KeilC51集成开发环境的操作;
2.熟悉TD-NMC+教学实验系统板的结构及使用;
3.熟悉程序汇编、装入、调试及执行过程。
二、实验设备
PC机一台,TD-NMC+教学实验系统平台
三、实验内容
1.观察TD-NMC+教学实验系统的结构;
2.编写实验程序,将00H~0FH共16个数写入单片机内部RAM的30H~3FH空间。
通过本实验,学生需要掌握KeilC51软件的基本操作,便于后面的学习。
3.练习编辑、调试、汇编、通信的方法和步骤。
四、实验步骤
1.观察TD-NMC+教学实验系统的结构,了解主机、主要芯片位置,电源连接方法,通信接口位置,复位方法,显示等。
2.创建KeilC51应用程序
在KeilC51集成开发环境下使用工程的方法来管理文件,所有的源文件、头文件甚至说明性文档都可以放在工程项目文件里统一管理。
下面创建一个新的工程文件Asm1.Uv2,以此详细介绍如何创建一个KeilC51应用程序。
(1)运行KeilC51软件,进入KeilC51集成开发环境。
(2)选择工具栏的Project选项,如图1-1-1所示,弹出下拉菜单,选择NewProject命令,建立一个新的μVision2工程。
这时会弹出如图1-1-2所示的工程文件保存对话框,选择工程目录并输入文件名Asm1后,单击保存。
图1-1-1工程下拉菜单
图1-1-2工程保存对话框
(3)工程建立完毕后,μVision2会马上弹出如图1-1-3所示的器件选择窗口。
器件选择的目的是告诉μVision2使用的80C51芯片的型号是哪一个公司的哪一个型号,不同型号的51芯片内部资源是不同的。
此时选择SST公司的SST89E554RC。
另外,可以选择Project下拉菜单中的“SelectDeviceforTarget‘Target1’”命令来弹出图1-1-3所示的对话框。
图1-1-3器件选择对话框
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。
选择工具栏的File选项,在弹出的下拉菜单中选择New目录,如图1-1-4所示,或点击
。
此时会在文件窗口出现如图1-1-5所示的新文件窗口Text1,若多次执行New命令,则会出现Text2、Text3等多个新文件窗口。
图1-1-4新建源文件下拉菜单图1-1-5源程序编辑窗口
(5)输入程序,完毕后点击“保存”命令保存源程序,如图1-1-6所示,将Text1保存成Asm1.asm。
KeilC51支持汇编和C语言,μVision2会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM或.C。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
图1-1-6源文件保存对话框
(6)程序文件建立后,并没有与Asm1.Uv2工程建立任何关系。
此时,需要将Asm1.asm
源程序添加到Asm1.Uv2工程中,构成一个完整的工程项目。
在ProjectWindow窗口内,选中SourceGroup1点击鼠标右键,会弹出如图1-1-7所示的快捷菜单,选择AddFilestoGroup‘SourceGroup1’命令,此时弹出如图2-1-8所示的添加源程序文件对话框,选择文件Asm1.asm,点击Add命令按钮即可将源程序文件添加到工程中。
图1-1-7添加源程序文件快捷菜单
图1-1-8添加源程序文件对话框
2.编译、链接程序文件
(1)设置编译、链接环境,点击
命令,会出现如图1-1-9所示的调试环境设置窗口,在这里可以设置目标系统的时钟。
单击Output标签,在打开的选项卡中选中CreateHexFile选项,在编译时系统将自动生成目标代码*.Hex。
点击Debug标签会出现如图1-1-10所示的调试模式选择窗口。
从图2-1-10可以看出,μVision2有两种调试模式:
UseSimulator(软件仿真)和Use(硬件仿真)。
这里选择硬件仿真,点击Settings可以设置串口。
串口波特率选择38400。
图1-1-9KeilC51调试环境设置窗口
图1-1-10调试设置窗口
(2)点击
或
命令编译、链接程序,此时会在OutputWindow信息输出窗口输出相关信息,如图2-1-11所示。
图1-1-11编译、链接输出窗口
3.调试仿真程序
(1)打开系统板的电源,给系统复位后点击
调试命令(注:
每次进入调试状态前确保系统复位正常),将程序下载到单片机的FLASH中,此时出现如图1-1-12所示调试界面。
(2)点击
命令,可以打开存储器观察窗口,在存储器观察窗口的‘Address:
’栏中输入D:
30H(或0x30)则显示片内RAM30H后的内容,如图1-1-12所示。
如果输入‘C:
’表示显示代码存储器的内容,‘I:
’表示显示内部间接寻址RAM的内容,‘X:
’表示显示外部数据存储器中的内容。
(3)将光标移到SJMP$语句行,点击
命令,在此行设置断点。
图1-1-12调试界面
(4)接下来点击
命令,运行实验程序,当程序遇到断点后,程序停止运行,观察存储器中的内容,如图1-1-13所示,验证程序功能。
(5)如图1-1-12所示,在命令行中输入‘ECHARD:
30H=11H,22H,33H,44H,55H’后回车,便可以改变存储器中多个单元的内容,如图1-1-14所示。
图1-1-13运行程序后存储器窗口图1-1-14修改存储器内容
(6)修改存储器的内容的方法还有一个,就是在要修改的单元上点击鼠标右键,弹出快捷菜单,如图1-1-15所示,选择‘ModifyMemoryatD:
0x35’命令来修改0x35单元的内容,这样每次只能修改一个单元的内容。
图1-1-15存储器修改单元
(7)点击
命令,可以复位CPU,重新调试运行程序,点击
命令,单步跟踪程序。
(8)实验结束,按系统的复位按键可以复位系统,点击
命令,退出调试。
在此以Asm1.Uv2工程为例简要介绍了KeilC51的使用,KeilC51功能强大,关于KeilC51的使用需要通过日后的使用慢慢掌握。
硬盘中提供有SoftICE_Tutorial.exe文件,该文件以动画的形式展示了基于SST公司的SoftICE在KeilC51环境下的调试过程。
实验二MCS-51汇编程序设计(分支、散转程序练习)
一、实验目的
1、学习分支程序的设计方法,熟悉51的指令系统;
2、学习散转程序的设计方法,熟悉51的指令系统;
3、学习设计延时循环程序。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
1.采用比较分支结构设计程序,实现以下温度控制。
设某温度检测系统,在控制器的RAM的40H单元存放标准温度,50H单元存放检测温度值。
当检测温度大于标准温度时,使P1.0的灯亮报警,当检测温度低于标准温度时启动加热灯(假设P1.7置“1”,接通加热电路);当检测温度等于标准温度时,关掉加热炉,保持温度,并使P1.2的灯亮。
2.用散转结构编程实现以下要求
当R7等于0、1、2时,分别散转到OPR0、OPR1、OPR2三个程序入口。
OPR0入口后P1口8个灯不停的闪烁;
OPR1入口后P1.7灯先亮,然后右移,循环不止;
OPR1入口后P1口中间两灯先亮,然后向两边散开,循环不止。
四、实验线路图
五、接线方法
用排线将P1口的P1.0—P1.7与D0--D7相接,P1口相应的位输出高电平,就可以点亮相应的发光二极管。
实验三查表程序设计实验
一、实验目的
学习查表程序的设计方法,熟悉51的指令系统。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
1.通过查表的方法将16进制数转换为ASCII码;
2.通过查表的方法实现y=x2,其中x为0~9的十进制数,以BCD码表示,结果仍以BCD码形式输出。
四、实验步骤
1.采用查表的方法将16进制数转换为ASCII码
根据ASCII码表可知,0~9的ASCII码为30H~39H,A~F的ASCII码为41H~46H,算
法为(假定待转换的数存放在R7中):
当R7≤9时,相应的ASCII码为:
R7+30H;
当R7>9时,相应的ASCII码为:
R7+30H+07H。
实验程序:
自己编写(待转换的数存放在R7中,R6、R5存放转换结果。
)
实验步骤:
(1)编写实验程序,编译、链接无误后联机调试;
(2)将待转换的数存放在R7中,如令R7中的值为0x86;
(3)在语句行SJMPMAIN设置断点,运行程序;
(4)程序停止后查看寄存器R6、R5中的值,R6中为高4位转换结果0x38,R5中为低4
位转换结果0x36;
(5)反复修改R7的值,运行程序,验证程序功能。
2.通过查表实现y=x2
x为0~9的十进制数,存放与R7中,以BCD码的形式保存,结果y以BCD码的形式存放于寄存器R6中。
实验程序:
自己编写
实验步骤:
(1)编写实验程序,经编译、链接无误后,进入调试状态;
(2)改变R7的值,如0x07;
(3)在语句行SJMPMAIN处设置断点,运行程序;
(4)程序停止后,查看寄存器R6中的值,应为0x49;
(5)反复修改R7中的值,运行程序,验证程序功能。
实验四数据排序实验
一、实验目的
熟悉51的指令系统,掌握数据排序程序的设计方法。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
在单片机片内RAM的30H~39H写入10个数,编写实验程序,将这10个数按照由小到大
的顺序排列,仍写入RAM的30H~39H单元中。
四、实验步骤
根据实验内容要求,画出程序流程图,参考图4,编写实验程序。
实验步骤如下:
(1)编写实验程序,编译、链接无误后联机调试;
(2)为30H~39H赋初值,如:
在命令行中键入ECHARD:
30H=9,11H,5,31H,20H,16H,
1,1AH,3FH,8后回车,可将这10个数写入30H~39H中;
(3)将光标移到语句行SJMP$处,点击命令,将程序运行到该行;
(4)查看存储器窗口中30H~39H中的内容,验证程序功能;
(5)重新为30H~39H单元赋值,反复运行实验程序,验证程序的正确性。
图4实验程序流程图
实验五位操作实验
一、实验目的
掌握位指令的使用,学习位程序的设计方法。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
编写实验程序,计算Y=A⊕B,。
MCS-51单片机内部有一个一位微处理器,借用进位标志Cy作为位累加器。
位操作指令的操作对象是内部RAM的位寻址区,即字节地址为20H~2FH单元中连续的128位(位地址为00H~7FH),以及特殊功能寄存器中的可位寻址的位。
四、实验步骤
程序需要实现A与B的异或运算,将A、B分别存放在位地址00H、01H中,结果Y存放在位地址04H中。
实验程序清单:
(Asm6.asm)
QAEQU00H
QBEQU01H
QYEQU04H
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVC,QA
ANLC,/QB;C=QA(QB非)
MOVQY,C
MOVC,QA
CPLC
ANLC,QB;C=(QA非)QB
ORLC,QY;C=QA(QB非)+(QA非)QB
MOVQY,C
SJMPMAIN;设置断点,观察20H或C中的值
END
实验步骤:
(1)编写实验程序,经编译、链接无误后,联机调试;
(2)修改20H单元的值,例如01H;
(3)在语句行SJMPMAIN设置断点,运行实验程序;
(4)程序停止运行后查看20H中的值,应为11H;
(5)修改20H中的值,重新运行程序,验证程序的正确性。
附:
在汇编语言中,除了MCS-51指令系统所规定的指令外,还定义了一些伪指令,这些伪指
令只对汇编程序提供必要的控制信息,不产生任何代码。
因此伪指令不是单片机执行的指令。
常用的伪指令有如下几条:
(1)起始地址伪指令:
ORGnn(nn表示16位地址)
(2)定义字节伪指令:
DBn1,n2,···,nN
(3)定义字伪指令:
DWnn1,nn2,···,nnN
(4)定义存储区伪指令:
DSx
从指定的地址单元开始,预留x个存储单元,以备程序使用。
(5)等值伪指令:
字符名EQU数或汇编符号
将一个数(8位或16位二进制数)或特定的汇编符号赋予所定义的字符名。
(6)数据地址赋值伪指令:
字符名DATAnn
将16位地址赋予所定义的字符名。
通常用来定义数据地址。
(7)定义位地址符号伪指令:
字符名BITbit
将位地址bit赋予所定义的字符名。
如果所使用的汇编程序不具备识别BIT伪指令的能力,
可以用EQU命令来定义位地址变量。
(8)汇编结束伪指令:
END
实验六定时/计数器实验
一、实验目的
1.了解MCS-51单片机定/计数器的工作原理与工作方式;
2.掌握定时/计数器T0和T1在定时器和计数器两种方式下的编程;
二、实验设备
PC机一台,TD-NMC+教学实验系统,示波器一台。
三、实验内容
1.使用定时器0与定时器1进行定时,在P1.0和P1.1引脚上输出方波信号,通过示波器观察波形输出,测量并记录方波周期。
2.将定时/计数器1设定为计数器方式,每次计数到10在P1.0引脚上取反一次,观察发光二极管的状态变化。
四、实验步骤
1.定时器实验
实验步骤:
(1)编写实验程序,编译、链接后联机调试;
(2)运行实验程序,使用示波器观察P1.0与P1.1引脚上的波形并记录周期;
(3)改变计数初值,观察实验现象,验证程序功能。
2.计数器实验
实验步骤:
图3-3-1计数器实验接线图
(1)按图3-3-1连接实验线路图;
(2)编写程序,联机调试;
(3)运行实验程序,按单次脉冲KK1,观察发光管D0的状态,每10次变化一次;
(4)实验结束,按复位按键退出调试。
实验七中断系统实验
一、实验目的
了解MCS-51单片机的中断原理,掌握中断程序的设计方法。
二、实验设备
PC机一台,TD-NMC+教学实验系统,示波器一台。
三、实验内容
1.单片机集成的定时器可以产生定时中断,利用定时器0和定时器1,编写实验程序在P1.0及P1.1引脚上输出方波信号,通过示波器观察实验现象并测量波形周期。
2.手动扩展外部中断INT0、INT1,当INT0产生中断时,使LED8亮8灭闪烁4次;当INT1产生中断时,使LED由右向左流水显示,一次亮两个,循环4次。
因为51单片机加入了中断系统,从而提高了CPU对外部事件的处理能力和响应速度。
增强型单片机SST89E554RC共有8个中断源,即外部中断0(INT0)、定时器0(T0)、外部中断1(INT1)、定时器1(T1)、串行中断(TI和RI)、定时器2(T2)、PCA中断和Brown-out中断。
中断使能寄存器(IE)
中断使能A(IEA)
四、实验步骤
1.定时器中断
实验步骤:
(1)编写实验程序,经编译、链接无误后,启动调试功能;
(2)运行实验程序,使用示波器观察P1.0及P1.1引脚上的波形;
(3)使用示波器测量波形周期,改变计数值,重新运行程序,反复验证程序功能;
(4)按复位键退出调试状态。
2.外部中断
实验步骤:
(1)按图3-2-1连接实验电路,单次脉冲单元原理图如图3-2-2所示。
(2)编写实验程序,编译、链接无误后启动调试;
(3)运行实验程序,先按KK1-,观察实验现象,然后按KK2-,观察实验现象;
(4)验证程序功能,实验结束按复位按键退出调试。
图3-2-1外中断实验接线图
图3-2-2单次脉冲单元原理图
实验八静态存储器扩展实验
一、实验目的
1.掌握单片机系统中存储器扩展的方法;
2.掌握单片机内部RAM和外部RAM之间数据传送的特点。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
编写实验程序,在单片机内部一段连续RAM空间30H~3FH中写入初值00H~0FH,然后将这16个数传送到RAM的0000H~000FH中,最后再将外部RAM的0000H~000FH空间的内容传送到片内RAM的40H~4FH单元中。
四、实验原理
存储器是用来存储信息的部件,是计算机的重要组成部分,静态RAM是由MOS管组成的触发器电路,每个触发器可以存放1位信息。
只要不掉电,所储存的信息就不会丢失。
因此,静态RAM工作稳定,不要外加刷新电路,使用方便。
但一般SRAM的每一个触发器是由6个晶体管组成,RAM芯片的集成度不会太高,目前较常用的有6116(2K×8位),6264(8K×8位)和62256(32K×8位)。
本实验以62256为例讲述单片机扩展静态存储器的方法。
图4-1-162256引脚图
SST89E554RC内部有1K字节RAM,其中768字节(00H~2FFH)扩展RAM要通过MOVX指令进行间接寻址。
内部768字节扩展RAM与外部数据存储器在空间上重叠,这要通过AUXR寄存器的EXTRAM位进行切换,AUXR寄存器说明如下:
EXTRAM:
内部/外部RAM访问
0:
使用指令MOVX@Ri/@DPTR访问内部扩展RAM,访问范围00H~2FFH,300H以上的空间为外部数据存储器;
1:
0000H~FFFFH为外部数据存储器。
AO:
禁止/使能ALE
0:
ALE输出固定的频率;
1:
ALE仅在MOVX或MOVC指令期间有效。
五、实验步骤
1.按图4-1-2连接使用电路;
2.按实验内容编写实验程序,经编译、链接无误后启动调试;
3.打开存储器观察窗口,在存储器#1的Address中输入D:
0x30,在存储器#2的Address中输入X:
0x0000来监视存储器空间;
4.可单步运行程序,观察存储器内容的变化,验证实验程序的功能。
图4-1-2扩展存储器实验线路图
注:
连接实验线路时,若使用TD-PITE接口实验箱,应将BHE#和BLE#信号接GND;若使用TD-PIT++实验箱,需将BE3~BE0接GND。
实验九综合实验——特种车优先通过的交通灯控制
一、实验目的
1.学习交通灯的实用控制技术;
2.培养学生汇编语言程序设计的综合应用能力,使学生能够综合运用分支、转移、定时、中断、查表、子程序等结构。
二、实验设备
PC机一台,TD-NMC+教学实验系统
三、实验内容
一般情况控制器控制交通灯的正常亮灭,指挥十字路口的灯,有急救车到达时,两方向的交通信号为全红,以便让急救车通过,急救车通过后,交通灯恢复中断前的状态。
本实验以开关接通低电平使
发出中断申请,表示有急救车通过。
四、实验说明
要完成本实验,首先必须了解交通路灯的燃灭规律。
设有一十字路口为南北方向和东西方向,初始状态为四个路口的红灯全亮,然后东西路口的绿灯亮
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 应用 实验 指导书