单片机实验指导书机05学生版Word格式文档下载.docx
《单片机实验指导书机05学生版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书机05学生版Word格式文档下载.docx(51页珍藏版)》请在冰豆网上搜索。
可编程看门狗定时器(WDT)
可编程计数阵列(PCA)
双DPTR寄存器
低EMI模式(可禁止ALE)
SPI串行接口
标准每周期12个时钟,器件提供选项可使速度倍增,达到每周期6个时钟
低功耗模式
TTL和CMOS兼容的逻辑电平
温度范围:
0°
C~70°
C
SST89E554RC的功能框图如图1-1-1所示,外部引脚如图1-1-2所示。
SST89E554RC的特殊功能寄存器如表1-1-1所列。
图1-1-1SST89E58RDA功能框图
图1-1-2SST89E58RDA外部引脚图
表1-1-1SST89E58RDA特殊功能寄存器存储器映象
注:
1表示该特殊功能寄存器可位寻址。
关于此单片机特有功能模块及寄存器可参看芯片数据手册或相应实验章节。
1.2实验项目
本实验指导书包含以下单片机实验项目:
1.单片机原理实验
(1)系统认识实验
(2)I/O口实验
(3)数码管显示实验
2.单片机集成功能模块实验
(1)中断系统实验
(2)定时器/计数器实验
(3)看门狗实验
3.串行口及存储器实验
(1)串行口通信实验
(2)静态存储器扩展实验
(4)电子发声实验
4.程序设计及考核
(1)I/O口实验
(2)中断实验
(3)定时器实验
(4)串行口实验
1.3KeilC51的安装
KeilC51μVision2集成开发环境是Keil公司开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到编译、链接、目标代码生成、软件仿真、硬件仿真等完整的开发流程。
1.3.1系统要求
安装KeilC51集成开发软件,必须满足最小的软、硬件要求,以确保程序功能的正常。
(1)Pentium、Pentium-II或兼容处理器的PC;
(2)Windows98、Windows2000或WindowsXP操作系统;
(3)至少16MBRAM;
(4)至少20MB硬盘空间。
1.3.2软件安装
下面介绍如何安装KeilμVision2集成开发环境。
(1)进入KeilC51软件的Setup目录下,双击SETUP.EXE开始安装,这时会出现如图1-3-1
所示的安装初始化界面。
图1-3-1安装初始化
(2)接下来会弹出安装向导对话框,如图1-3-2所示,询问此时是需要安装、修复更新或
是卸载KeilC51软件。
若是第一次安装该软件,请选择第一项Install…安装软件。
图1-3-2安装向导界面
(3)单击Next按钮,此时会出现图1-3-3所示的安装询问对话框,提示用户是安装完全版
还是评估版。
如果购买的是正版KeilC51软件则选择FullVersion,否则选择EvalVersion选项。
图1-3-3安装询问对话框
(4)选择完毕后,紧接着会弹出几个确认对话框,点击Next按钮,这时会出现如图1-3-4
所示的安装路径设置对话框,默认路径是C:
\KEIL,可以点击Browse按钮选择合适自己安装的
目录。
(5)点击Next按钮,如果安装的为评估版的软件,会出现如图1-3-5所示的安装进度指示
界面,若安装的是完全版的软件,则下面会弹出用户信息对话框,要求用户输入软件序列号、
姓名、公司及E-mail等信息,信息输入完后点击Next按钮,在接下来的几个确认对话框中点击
Next确认按钮,即可出现图1-3-5所示的安装进度指示界面。
(6)安装完毕点击Finish按钮,此时就可以在桌面上看到KeilμVision2软件的快捷图标,
如图1-3-6所示,双击此图标可以进入KeilC51集成开发环境。
图1-3-4安装路径设置对话框
图1-3-5安装进度指示界面
图1-3-6快捷图标
1.4μVision2集成开发环境
μVision2支持所有的Keil80C51的工具软件,包括C51编译器、宏汇编器、链接器/定位
器、软硬件调试器和目标文件到HEX格式文件转换器等,μVision2可以自动完成编译、汇编、
链接程序等操作。
μVision2具有强大的软件环境、友好的操作界面和简单快捷的操作方法。
双击桌面上的KeilμVision2快捷图标,可以进入如图1-4-1所示的集成开发调试环境,各
种调试工具、命令菜单都集成在此开发环境中。
菜单栏提供了各种操作菜单,如编辑器操作、
工程维护、程序调试、窗体选择以及操作帮助等。
工具栏按钮和快捷键可以快速执行μVision2
命令。
常用的菜单栏及相对应的工具栏按钮与快捷键介绍如表1-4-1~表1-4-6所列。
图1-4-1μVision2集成环境界面
表1-4-1文件菜单和文件命令(File)
表1-4-2编辑菜单和编辑器命令(Edit)
表1-4-3视图菜单(View)
表1-4-4工程菜单和工程命令(Project)
表1-4-5调试菜单和调试命令(Debug)
表1-4-6外围器件菜单(Peripherals)
1.5系统认识实验
通过本节的实验,旨在使学生掌握KeilC51的操作方法,学习80C51的指令系统及C语言的程序设计方法。
操作方法可观看:
D:
\唐都微机接口软件备份\PITE-51\参考资料\示范程序\Keilc51演示程序
注意:
每次连续运行后,必须先硬件复位,软件复位快捷菜单按钮才会点亮,然后软件复位,最后退出调试状态。
否则容易造成软件死机。
1.5.1实验目的
1.学习KeilC51集成开发环境的操作;
2.熟悉TD-51系统板的结构及使用。
1.5.2实验设备
PC机一台,“TD-PITE教学实验系统+TD-51系统平台”
1.5.3实验内容
编写实验程序,将00H~0FH共16个数写入单片机内部RAM的30H~3FH空间。
通过本实验,学生需要掌握KeilC51软件的基本操作,便于后面的学习。
1.5.4实验步骤
1.创建KeilC51应用程序
在KeilC51集成开发环境下使用工程的方法来管理文件,所有的源文件、头文件甚至说明
性文档都可以放在工程项目文件里统一管理。
下面创建一个新的工程文件Asm1.Uv2,以此详细介绍如何创建一个KeilC51应用程序。
(1)运行KeilC51软件,进入KeilC51集成开发环境。
(2)选择工具栏的Project选项,如图1-5-1所示,弹出下拉菜单,选择NewProject命令,
建立一个新的μVision2工程。
这时会弹出如图1-5-2所示的工程文件保存对话框,选择工程目录
并输入文件名Asm1后,单击保存。
图1-5-1工程下拉菜单
图1-5-2工程保存对话框
(3)工程建立完毕后,μVision2会马上弹出如图1-5-3所示的器件选择窗口。
器件选择的
目的是告诉μVision2使用的80C51芯片的型号是哪一个公司的哪一个型号,不同型号的51芯片
内部资源是不同的。
此时选择AT89S51。
另外,可以选择Project下拉菜单中
的“SelectDeviceforTarget‘Target1’”命令来弹出图1-5-3所示的对话框。
图1-5-3器件选择对话框
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件
则必须建立它。
选择工具栏的File选项,在弹出的下拉菜单中选择New目录,如图1-5-4所示,
或点击
。
此时会在文件窗口出现如图1-5-5所示的新文件窗口Text1,若多次执行New命令,
则会出现Text2、Text3等多个新文件窗口。
图1-5-4新建源文件下拉菜单图1-5-5源程序编辑窗口
(5)输入程序,完毕后点击“保存”命令保存源程序,如图1-5-6所示,将Text1保存成
Asm1.c。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
亮灯程序(Asm1.c):
#include<
reg51.h>
voidmain()
{while
(1)
{P1=0x01;
}
}
图1-5-6源文件保存对话框
(6)程序文件建立后,并没有与Asm1.Uv2工程建立任何关系。
此时,需要将Asm1.c源程序添加到Asm1.Uv2工程中,构成一个完整的工程项目。
在ProjectWindow窗口内,点击Target左边的
,选中SourceGroup1点击鼠标右键,会弹出如图1-5-7所示的快捷菜单,选择AddFilestoGroup‘SourceGroup1’命令,此时弹出如图1-5-8所示的添加源程序文件对话框,选择文件Asm1.c,点击Add命令按钮即可将源程序文件添加到工程中。
图1-5-7添加源程序文件快捷菜单
图1-5-8添加源程序文件对话框
2.编译、链接程序文件
(1)设置编译、链接环境,点击
命令,会出现如图1-5-9所示的调试环境设置窗口,在
这里可以设置目标系统的时钟。
点击Debug标签会出现如图1-5-10所示的调试模式选择窗口。
从图1-5-10可以看出,μVision2有两种调试模式:
UseSimulator(软件仿真)和Use(硬件
仿真)。
这里选择硬件仿真,点击Settings可以设置串口。
软件仿真时点击Target,设置晶振频率,硬件仿真的晶振由系统板决定,不用设置。
图1-5-9KeilC51调试环境设置窗口
图1-5-10调试设置窗口
(2)点击
或
命令编译、链接程序,此时会在OutputWindow信息输出窗口输出相关
信息,如图1-5-11所示。
图1-5-11编译、链接输出窗口
3.调试仿真程序
(1)打开系统板的电源,给系统复位后点击
调试命令(注:
每次进入调试状态前确保
系统复位正常),点击settings,选择相应的驱动口,将程序下载到单片机的FLASH中,此时出现如图1-5-14所示调试界面,command窗口显示已连接成功。
图1-5-12
图1-5-13
图1-5-14调试界面
(1)点击
命令,运行程序,观察到二极管LED0亮。
图1-5-15运行界面
(2)在Asm1.c的左边阴影部分可设置断点如图所示,当程序遇到断点后,程序停止运行,观察到LED0~LED7全亮,系统处于复位状态。
取消断点,再运行,只有LED0亮。
图1-5-16设置断点界面
(4)点击
命令,可以复位CPU,重新调试运行程序,点击
命令,单步跟踪程序。
(5)实验结束,按系统的复位按键可以复位系统,点击
命令,退出调试。
在此以Asm1.Uv2工程为例简要介绍了KeilC51的使用,KeilC51功能强大,关于KeilC51
的使用需要通过日后的使用慢慢掌握。
1.6I/O口实验
实验一P1口亮灯实验
一、实验目的
了解P1口作为输入输出方式使用时,CPU对P1口的操作方式。
二、实验设备
三、实验内容
P1口是8位准双向口,每一位均可独立定义为输入输出。
编写实验程序,将P1口的低4
位定义为输出,高4位定义为输入,数字量从P1口的高4位输入,从P1口的低4位输出控制
发光二极管的亮灭。
四、实验步骤
1.按图1-6-1所示,连接实验电路图,图中“圆圈”表示需要通过排线连接;
2.编写实验程序,编译链接无误后进入调试状态;
3.运行实验程序,观察实验现象,验证程序正确性;
4.按复位按键,结束程序运行,退出调试状态;
5.自行设计实验,验证单片机其它IO口的使用。
图1-6-1实验接线图
开关及LED显示单元原理图如图1-6-2所示。
图1-6-2开关及LED显示单元原理图
实验参考程序:
#include"
SST89x5xxRD2.H"
voidmain(void)
{
unsignedchardatai;
//data为存储器类型说明
while
(1)
{
P1=P1|0xF0;
//声明高4位为输入
i=P1;
P1=(i>
>
4)&
0x0F;
}
附:
C51编译器除了支持ANSIC标准的关键字以外,还扩展了如下表所示的关键字。
在C程
序设计中经常遇到。
实验二P1口从右到左流水灯实验
(1)学习P1口的使用方法;
(2)学习延时子程序的编写。
二、实验预备知识
(1)P1口为准双向口,每一位都可独立地定义为输出线或输入线。
P1作为输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
四、程序框图
图1-6-3流水灯程序框图
五、实验电路(略)
六、实验步骤
P1.0-P1.7用连至D0-D7,运行程序后,观察发光二极管闪亮移位情况。
SST89x5xxRD2.h>
#include<
intrins.h>
#defineUCHARunsignedchar
#defineUINTunsignedint
voiddelay(UINTi);
voidmain()/*主程序*/
P1=0x01;
/*P1口赋值*/
while
(1)
delay(40000);
/*40000为延时参数,可根据实际需要调整*/
P1=_crol_(P1,1);
/*C51函数库中的左移函数,P1中的数据循环左移1位*/
voiddelay(UINTi)/*延时函数*/
UCHARt;
while(i--);
{
for(t=0;
t<
120;
t++)
;
七、思考
1.改变延时参数,使发光二极管闪亮时间改变;
2.修改程序,使发光二极管闪亮移位方向改变。
实验三P1口左右来回循环的流水灯实验
进一步了解P1口的使用,学习C语言编程方法与调试技巧。
二、实验内容
使LED灯如下图所示规律亮灭。
实现本任务要求,可以有多种软件实现方法。
图1-6-4LED灯点亮原理图
三、实验电路(略)
五、实验参考程序
(1)数组的字节操作实现
#defineUCHARunsignedchar
UCHARTab[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};
/*前8个数据为左移点亮数据,后8个数据为右移点亮数据*/
voiddelay();
voiddelay(void)
UCHARi,j;
for(i=0;
i<
255;
i++)
for(j=0;
j<
j++)
voidmain()/*?
?
*/
UCHARk;
while
(1)
{
for(k=0;
k<
16;
k++)
P1=Tab[k];
delay();
}
(3)移位运算符实现
voiddelay(void);
voidmain()
UCHARi,Temp;
Temp=0x01;
/*左移初值赋给Temp*/
for(i=0;
8;
i++)
P1=Temp;
/*Temp送P1口*/
Temp<
<
=1;
/*Temp中数据左移一位*/
Temp=0x40;
/*右移初值赋给Temp*/
for(i=0;
i++)
Temp>
/*Temp中数据右移一位*/
(4)用移位函数实现
/*包含左右移位函数的头文件*/
for(j=0;
j++)
voidmain()
/*赋初值给temp*/
i<
7;
/*延时*/
Temp=_crol_(Temp,1);
/*执行左移函数,Temp中的数据循环左移1位*/
8;
i++)
P1=Temp;
/*Temp送P1口*/
delay();
Temp=_cror_(Temp,1);
/*执行右移函数,Temp中的数据循环右移1位*/
P1=0x00;
/*全灭*/
delay();
/*延时*/
1.7数码管显示实验(查表法)
1.7.1实验目的
1.了解8255的工作方式及应用;
2.了解数码显示的基本原理,熟悉8255的编程。
1.7.2实验设备
1.7.3实验内容
将8255单元与数码管显示单元连接,编写实验程序,将扫描结果送数码管显示。
每个数码管显示值可为0~F共16个数。
实验具体内容如下:
最左端的数码管依次循环显示0~F这16个数。
1.7.4实验原理
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图1-7-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图1-7-1所示。
图1-7-18255内部结构及外部引脚图
图1-7-28255控制字格式
键盘扫描及数码管显示单元原理图如图1-7-3所示。
图1-7-3键盘扫描及数码管显示单元原理图
8255单元原理图如图1-7-4所示。
图1-7-48255单元原理图
4.4.5实验步骤
1.按图1-7-5连接线路图;
2.编写实验程序,检查无误后编译、连接后启动调试;
3.运行实验程序,观察数码管的显示,验证程序功能。
图1-7-5键盘扫描及数码显示实验接线图
参考实验程序:
/******************************************************/
/*控制8255完成数码显示实验*/
Absacc.h>
#defineC8255_AXBYTE[0x7F00]//8255端口地址定义
#defineC8255_BXBYTE[0x7F01]
#defineC8255_CONXBYTE[0x7F03]
//数码管显示编码
unsignedchara[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
voiddelay(u