单片机原理与接口实验指导书_杨金华131120

上传人:zhan****gclb 文档编号:194461876 上传时间:2023-03-13 格式:DOC 页数:57 大小:4.74MB
收藏 版权申诉 举报 下载
单片机原理与接口实验指导书_杨金华131120_第1页
第1页 / 共57页
单片机原理与接口实验指导书_杨金华131120_第2页
第2页 / 共57页
单片机原理与接口实验指导书_杨金华131120_第3页
第3页 / 共57页
资源描述:

《单片机原理与接口实验指导书_杨金华131120》由会员分享,可在线阅读,更多相关《单片机原理与接口实验指导书_杨金华131120(57页珍藏版)》请在装配图网上搜索。

1、 单片机原理与接口技术实验指导书编者 杨金华车辆工程实验教学示范中心2012年5月前 言单片机原理与接口技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言和C51及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言和C51及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。PROTEUS仿真软件和KEIL C51软件提供仿真演示功能,允许学生在W

2、indows操作系统下编写、编译、连接、错误定位、调试、观察、修改系统, 掌握仿真技巧也是学生要完成的任务之一。通过本实验的学习,学生可以熟悉各种类型的接口芯片,汇编语言程序和C51语言的编写、调试,充分锻炼动手及编程能力。57目 录实验一 单片机仿真软件的使用4实验二 实验系统的介绍和简单流水灯实验14实验三 P1口转弯灯实验(查询法)22实验四 P3.3输入,P1口输出(中断一)23实验五 P3.2,P3.3输入,P1口输出(中断二)25实验六 复杂流水灯27实验七 定时器/计数器T0T1产生方波29实验八 定时器实现延时31实验九 双机串行通信33实验十 扩展存储器62256读写实验35

3、实验十一 Led显示器的静态显示实验37实验十二 LED显示器的动态显示实验38实验十三 基于扫描法的键盘 LED显示接口41实验十四 温度传感DS18B20实验43实验十五 LCD1602液晶接口技术45实验十九 I2C总线器件及其应用(AT24C02)53实验二十一 基于单片机和八只LED的时钟56实验一 单片机仿真软件的使用一、 实验目的1. 掌握Keil软件的使用。2. 掌握Proteus软件的使用。3. 学习单片机源程序的编写和Proteus仿真。二、 实验内容1. Keil软件的基本用法。2. Proteus软件的基本用法。3. P1口做输出口,编写程序,使P1口点亮一只发光二极管

4、(仿真)。三、 实验说明 注意延时子程序的延时计算问题。四、 实验步骤1. 学习Keil软件的使用。2. 学习Proteus软件的使用。3. P1口点亮一只发光二极管的仿真。(一):Keil软件的基本用法Keil Vision是Keil公司(ARM子公司)开发的一款用于MCS-51单片机开发的应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序等。Keil软件功能强大,包含很多部分,本文我们主要使用Keil Vision来开发C51项目、调试程序并生成HEX文件来用于单片机开发。Keil Vision是一款在Window

5、s下使用的集成开发环境,目前最新版本为V3,本文中我们为了简便选用V2.0。下面我们就来熟悉一下Keil软件。打开软件,我们可以看到其界面,如下图1-1所示:图1-1 Keil软件界面下面我们就来使用Keil软件开发我们的第一个项目。点击“Project”(工程)菜单下面的“New Project”(新建工程),我们来新建一个工程。软件弹出“Create New Project”(创建新工程)窗口。如下图1-2所示:图1-2 Create New Project(创建新工程)窗口我们为工程输入文件名后,点击“保存”按钮,软件将弹出“Select Device for Target”(选择MCU

6、)窗口,如下图1-3所示。我们只需根据自己工程的需要选择相应的MCU,然后点击“确定”按钮就可以了。图1-3 Select Device for Target(选择MCU)窗口在这里我们选择Atmel公司的AT89C51,这种类型的单片机与Intel的8051单片机完全兼容,但是它内含4KB Flash存储器,使用非常方便,而且在我国也较为流行。事实上,目前AT89C51已经被AT89S51所淘汰,因为AT89S51加入了ISP(在线可编程)功能,通过Atmel公司或者自制的下载线就可以对片内Flash进行编程,使用更为方便。然而AT89S51与AT89C51除了ISP以外完全兼容,而且下面我

7、们要说明的Proteus软件目前只能支持AT89C51,所以本文将以AT89C51来代替8051使用,请大家注意。选择好相应的MCU,点击窗口中的“确定”按钮以后,软件会弹出一个窗口询问是否将8051启动代码加入工程(如下图1-4),由于我们不需要这段代码,所以我们点击“否”跳过就可以了。 图1-4 是否将8051启动代码加入工程询问窗口至此,我们完成了整个工程的初步建立。下面我们需要做的就是创建源文件并将我们的源文件加入工程。首先点击“File”下面的“New”菜单,或者直接点击工具栏中的新建按钮,软件将弹出源文件编辑窗口,我们可以在窗口中编辑源文件。编辑好的源文件如下图1-5所示。图1-5

8、 源文件编辑窗口接下来的操作有两点需要注意:1、加入AT89C51的头文件(当然,如果你选择了其他的MCU,则加入相应的头文件):在要加入头文件的地方(一般是文件开头),点击右键,选择点击弹出菜单(如下图1-6)中的“Insert #include ”即完成了头文件的添加。我们可以看到源文件中多了一行头文件包含代码“#include ”。图1-6 头文件的添加2、 保存源文件:注意保存源文件时所书写的源文件扩展名决定了源文件的类型(C51文件或者汇编语言源文件)。这里我们将源文件保存为“main.c”。你可以看出在源文件保存以后,文件中的关键字已经高亮显示,可以帮助我们及时发现错误。源文件编辑

9、好以后,我们就可以将其添加到工程中了。如下图所示,右键点击“Project Workspace”窗口中的“Source Group 1”(如果你不能看到这个项目,你可以点击一下图1-7中“Target 1”前面的“+”号展开文件夹),这时软件将弹出如图所示的菜单。我们选择“Add Files to Group Source Group 1”,软件弹出添加源文件窗口,我们就可以将相应的源文件加入到工程了。图1-7 Add Files to Group Source Group 1下面我们还需要对工程作一些设置,以使其满足我们的要求。右键点击上图中的“Target 1”,软件将弹出工程菜单,如下图

10、1-8所示。我们选择点击“Options for Target Target1” ,软件将弹出工程设置窗口。在工程设置中其他的我们暂时不管,只需将图1-8 工程菜单“Output”选项卡下面的“Create HEX File”选中就可以了,如下图所示。这样,当我们调试工程项目时,软件将能够生成HEX文件,用来装入单片机,使之运行我们的指令。图1-9 “Output”选项卡设置好以后,我们就可以编译、链接、调试我们的工程项目了。最后让我们来熟悉一下调试工具栏。在这个工具栏中我们只需了解左边的三个按钮。其中,调试工具栏中最左侧的按钮是“Translate current file”按钮,即编译按钮

11、,用来编译当前文件;中间的按钮是“Build target”按钮,即建立工程按钮,用来编译、连接当前的工程,产生相应的工程目标文件,比如HEX文件;最右侧的按钮是“Rebuild all target files”按钮,即全部重建按钮,主要在工程文件有改动时使用,作用是全部重建整个工程,产生相应的目标文件。在整个工程生成HEX文件以后,我们在Keil中的任务就算完成了。当然,你可以在Keil中进行各种调试。事实上,Keil的功能十分强大,它能仿真单片机的各种功能。但是我们在此并不讨论它的这些功能。(二):Proteus软件的基本用法Proteus软件是Labcenter Electronics

12、公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。本文中由于我们主要使用Proteus软件在单片机方面的仿真功能,所以我们重点研究ISIS模块的用法,在下面的内容中,如不特别说明,我们所说的Proteus软件特指其ISI

13、S模块。在进行下面的操作前,我先说明一点:我的Proteus版本是7.1, 6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。下面我们首先来熟悉一下Proteus的界面。Proteus是一个标准的Windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图1-10所示:图1-10 Proteus的界面如图中所示,区域为菜单及工具栏,区域为预览区,区域为元器件浏览区,区域为编辑窗口,区域为对象拾取区,区域为元器件调整工具栏,区域为运行工具条。下面我们就以建立一个和我们在Keil简介中所讲的工程

14、项目相配套的Proteus工程为例来详细讲述Proteus的操作方法以及注意事项。首先点击启动界面区域中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图1-11所示:在对话框中的“Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的AT89C51,就可以直接输入。输入以后我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB参数。这里有一点需要注意,可能有时候我们选择的元器件并没有

15、仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。那么我们就不能够用该元器件进行仿真了,或者我们只能做它的PCB板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。图1-11 “Pick Devices”(拾取元器件)对话框搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我们可以点击“OK”按钮来完成元器件的添加。 添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区

16、中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上Proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图1-12所示:(仿真我们在上面的Keil操作介绍中的简单例子)。

17、因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在Proteus中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。下面我们来添加电源。先说明一点,Proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。:(Selection Mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。图1-12 简

18、单例子:(Component Mode)。组件模式,点击该按钮,能够显示出区域中的元器件,以便我们选择。 :(Wire Label Mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。:(Text Script Mode)。文本模式,选中它能够为文档添加文本。 :(Buses Mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。:(Terminals Mode)。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。:(Virtual Instruments Mode)。虚拟仪器模式,

19、选中它我们能够在区域中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。好了,下面我们就来添加电源。首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。放置并连接好线路的电路图一部分如下图1-13:图1-13 部分电路图连接好电路图以后我们还需要做一些修改。由上图我们可以看出,图中的R1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管D1亮度很低或者根本就不亮,影响我们的仿真结果。所以我们要进行修改。修改方法如下:首先我们双击电阻图

20、标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为;如果在数字后面加上K或者k,则表示k之意。这里我们填入270,表示270。修改好各组件属性以后就要将程序(HEX文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图1-14。在这个对话框中我们点击“P

21、rogram files”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。图1-14 “Edit Component”对话框装载好程序,我们就可以进行仿真了。首先来熟悉一下上面第一个图中区域的运行工具条。工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。下面我们点击“Play”按钮来仿真运行,效果如下图1-15所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可

22、以点击“Stop”来停止运行。 图1-15 仿真运行结果实验二 实验系统的介绍和简单流水灯实验一、 实验目的1. 了解实验系统各个模块的功能。2. 掌握Keil软件的使用。3. 了解单片机应用系统的基本组成。4. 通过最简应用系统实例了解单片机的基本工作过程。5. 掌握USB下载系统的使用。二、 实验内容1. 了解实验系统各个模块的功能,掌握各个功能模块之间的连接使用。2. 使用Keil软件编写汇编程序或C51程序,并生成正确的hex文件。3. 利用下载系统将hex文件下载到单片机芯片。4. P1口做输出口接8只发光二极管,依次点亮1只发光二极管(灌电流)。三、 实验系统介绍1. 下载系统;2

23、. 单片机最小系统;3. 外设电路各个功能模块介绍; 图2-1 电源模块0 图2-2 电源模块2 图2-3 发光二极管模块 图2-4 数据存储器62256模块 图2-5 4X4矩阵键盘模块 图2-6 LED模块(7段数码管)图2-7 8*8点阵模块 图2-8 信号源模块 图2-9 蜂鸣器模块 图2-10 DAC0832模块 图2-11 ADC0804模块 图2-12 拨码开关模块 图2-13 8路开漏驱动 四、 实验线路图1. 下载系统的连接。2. P1口接8个发光二极管的阴极,发光二极管的阳极通过限流电阻接VCC。3. 主电路示意下图2-14如下: 图2-14 流水灯示意图 五、 实验步骤1

24、. 使用Keil软件编写汇编程序或C51程序,并生成hex文件。(1)直接赋值法 (2)循环移位法 (3)查表法2. 使用USB下载系统将hex文件下载到单片机芯片中。3. 点击复位按钮,观察发光二极管闪烁情况。六、 思考改变延时常数,使发光二极管闪亮时间改变。实验三 P1口转弯灯实验(查询法)一、 实验目的 进一步了解P1口的使用,学习汇编语言和C51编程方法与调试技巧。二、 实验内容 P1.0接5V时,右转弯灯(P1.4,P1.5连接的两只发光二极管)闪亮;P1.1接5V时左转弯灯(P1.6,P1.7连接的两只发光二极管)闪亮,P1.0、P1.1同时接5V或接地时,转弯灯均不闪亮。三、 实

25、验线路图1. 下载系统的连接。2. P1.0、P1.1接拨码开关,P1.4P1.7接四只发光二极管。3. 主电路示意图如下图3-1所示。 图3-1 转弯灯电路示意图四、 实验步骤1. 使用Keil软件编写汇编程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,运行程序,应看到转弯灯正确闪亮。五、 思考1. 改变延时常数,使发光二极管闪亮时间改变。2. 修改程序,用4只发光二极管的左移和右移来表示左转弯和右转弯。 实验四 P3.3输入,P1口输出(中断一)一、 实验目的1. 学习P3口、P1口的使用方法。2. 学习延时子程序的编写和使用。3. 掌握外部中断

26、的使用和编程二、 实验内容1. P3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。2. P1口做输出口,编写程序,使P1口接的8个发光二极管按16进制加一方式点亮。3. 使用Keil软件编写汇编或C51程序,并生成正确的hex文件。三、 实验说明1. P3口是准双向口,它作为输出口时与一般的双向口使用方法相同;当P3口作为输入口时,必须先对它置高电平,时内部MOS管截止,才能读入正确的数据。2. 注意延时子程序的延时计算问题。四、 实验线路图1. 下载系统的连接。2. P1.0P1.7用排线接至8只发光二极管的输入端,发光二极管的公共端接VCC。3. P3.3接拨码开关。4.

27、主电路示意图如下图4-1所示。 图4-1 单个中断电路示意图五、 实验步骤1. 使用Keil软件编写汇编程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,运行程序。按动按键,观察8只发光二极管的点亮情况。六、 思考1. 使用P3.2作为输入口,该做哪些修改?2. 使用P3.4或P3.5作为输入口,又该做哪些修改?实验五 P3.2,P3.3输入,P1口输出(中断二)一、 实验目的1. 学习P3口、P1口的使用方法。2. 学习中断、中断嵌套,堆栈的使用方法。二、 实验内容外部中断INT0和INT1同时存在。P1口连接8个LED发光二极管,两个按键分别接到外

28、部中断INT0和INT1。正常情况下,8个LED闪烁发光。当INT0发生中断时,使P1口的8个LED做一个灯的左移右移一次(或两次);当INT1发生中断时,使P1口的8个LED做两个灯的左移右移一次(或两次)。外部中断INT0为低级中断,外部中断INT1为高级中断。三、 实验说明1. P3口是准双向口,它作为输出口时与一般的双向口使用方法相同;当P3口作为输入口时,必须先对它置高电平,时内部MOS管截止,才能读入正确的数据。2. 注意延时子程序的延时计算问题。四、 实验线路图1. 下载系统的连接。2. P1口线接至8只发光二极管的输入端,发光二极管的公共端接VCC。3. P3.2,P3.3接拨

29、码开关。4. 主电路示意图如下图5-1所示。 图5-1 中断嵌套电路示意图五、 实验步骤1. 使用Keil软件编写汇编程序或C51程序,并生成hex文件。2. 使用下载软件将hex文件下载到单片机中。3. 点击复位按钮,运行程序。六、 思考1. 使用P3.4或P3.5作为输入口,该做哪些修改?实验六 复杂流水灯一、 实验目的1. 学习单片机I/O口的使用方法。2. 掌握延时子程序的编写和延时时间的计算。3. 掌握外部中断的使用和软件编程。二、 实验内容1. P0口P2口作输出口,外接12只发光二极管(灌电流)。2. P3.3作输入端,外接一个开关,产生外部中断信号。3. 主程序12只灯慢速闪烁

30、,当P3.3输入中断信号时,12只灯快速转动两圈。三、 实验说明1. 单片机I/O口是准双向口,它作为输出口时与一般的双向口使用方法相同;当作为输入口时,必须先对它置高电平,时内部MOS管截止,才能读入正确的数据。2. 注意延时子程序的延时计算问题。3. 注意外部中断的使用。四、 实验线路图1. 下载系统的连接。2. P1口和P2.0P2.3按顺序接12只发光二极管(灌电流)。3. P3.3接拨码开关。4. 主电路示意图如下图6-1所示。 图6-1 复杂流水灯电路示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线系统将hex文件下载到单片机中。3

31、. 点击复位按钮,运行程序。观察中断前后12只发光二极管闪烁情况。六、 思考1. 使用P3.2作为输入口,该做哪些修改?2. 使用P3.4或P3.5作为输入口,又该做哪些修改?实验七 定时器/计数器T0T1产生方波一、 实验目的1. 掌握定时器的初始化编程及初值的计算方法2. 了解定时器的工作模式、工作方式。3. 掌握用定时器做延时的方法。二、 实验内容 1. 用定时器T0产生一个25Hz的方波,由P1.0输出(查询方式或中断方式)。2. 应用T0方式3,分别设定200us和400us定时,并使P1.0和P1.1分别产生周期为400us和800us的方波。要求采用中断控制。三、 实验说明1.

32、注意单片机晶体振荡频率的值。2. 注意TMOD寄存器的设置,定时器/计数器的初值计算。四、 实验线路图1. 下载系统的连接。2. P1.0、P1.1接示波器输入端。3. 主电路示意图如下图7-1所示。 图7-1 定时器产生波形示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,运行程序。用示波器观察P1.0,P1.1输出的波形。六、 思考1. 用T1产生方波,改作什么修改?2. 查询方式和中断控制方式有什么区别?实验八 定时器实现延时一、 实验目的1. 进一步MCS51单片机并行口的使用方法。2.

33、 掌握定时器的使用方法。3. 了解用定时器做延时与软件延时的区别。二、 实验预备知识1. P1口是准双向口,每一位都可独立地定义为输入或输出。2. 定时器的工作方式和定时器初值与延时时间的关系。 三、 实验内容1. 使用Keil软件编写汇编程序或C51程序,并生成正确的hex文件。2. P1口作为输出口,接8只发光二极管,使发光二极管循环点亮。四、 实验线路图1. 下载系统的连接。2. P1.0P1.7用排线接至8只发光二极管的输入端,发光二极管的公共端接VCC。3. 主电路示意图如下图8-1所示。 图8-1 定时器实现延时电路示意图五、 实验步骤1. 使用Keil软件编写汇编程序或C51程序

34、,并生成hex文件。2. 使用下载线系统将hex文件下载到单片机中。3. 点击复位按钮,观察8只发光二极管闪烁移位情况。六、 思考1. 定时器的工作方式和定时器初值与延时时间的关系。2. 修改程序,使发光二极管闪亮移位方向改变。3. 使用其他I/O口作为输出口,又该做哪些修改?实验九 双机串行通信一、 实验目的1. 掌握串行口工作方式的程序设计,掌握单片机通信的程序编制。 2. 了解实现串行通信的硬件环境,数据格式的协议,数据交换的协议。二、 实验内容1. 利用单片机串行口,实现两片单片机(主机和从机)之间的通信。2. 两个AT89C51的双机通信。其中一个单片机P1口外接8个按键(使用实验板

35、上的拨码开关),第二个单片机P2口外接8个LED灯,使用双机串口通信将第一个单片机的拨码开关的状态发送到第二个,并在第二个单片机的LED灯上显示出相应状态。三、 实验说明MCS-51系列单片机内部有一个可编程全双工串行通信接口,具有UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)功能。它有四种工作方式,可由软件设定;它的波特率也可由软件设置片内的定时器/计数器来进行控制。与串口相关的特殊功能寄存器主要有串口控制寄存器SCON和电源控制寄存器PCON。其中需要注意的是PCON不可位寻址。51系列单片机的串口主要用来进行串口数据通信

36、,除此以外,它还可以用来非常方便地扩展并行IO口,可以扩充输入或者输出。本实验就是单片机的串口在串行数据通信的一个简单应用。四、 实验线路图1. 下载系统的连接。2. 主机的P1口接拨码开关,从机的P2口接8只发光二极管。3. 主机的P3.0接从机的P3.1,主机的P3.1接从机的P3.0。4. 主电路示意图如下图9-1所示。 图9-1 双机通信电路示意图五、 实验步骤1. 使用Keil软件编写两个汇编程序或C51程序,并生成对应的hex文件。2. 使用下载线系统将两个hex文件下载到对应的单片机中。3. 点击复位按钮,运行程序。通过拨码开关改变主机P1口的高低电平,观察从机发光二极管的亮灭变

37、化。六、 思考:主从机之间的通信协议在程序上是如何实现的?实验十 扩展存储器62256读写实验一、 实验目的1. 学习片外存储器扩展方法。 2. 掌握片内片外RAM,不同的读写指令。二、 实验内容先把0-F(16个数)写入到片外数据存储器62256的0000H-000FH(16个)存储单元,再把这16个数据读出,依次从P1口输出到8只发光二极管。三、 实验说明1. 单片机采用的是统一编址方式。P0口是低8位地址线和数据线分时复用,P2口是高8位地址。2. 62256的存储容量是32KB(15根地址线)。四、 实验线路图1. 下载系统的连接。2. P0作为数据线直接接到62256对应的数据端口,

38、P0口同时作为低8位地址线通过74LS573锁存器接62256的A0-A7。3. P2.0-P2.6分别接62256的A8-A15。62256芯片的片选接P2.7。4. 主电路示意图如下图10-1所示。 图10-1 62256读写实验电路示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线系统将hex文件下载到单片机中。3. 点击复位按钮,运行程序。观察8只发光二极管依次显示0-F。六、 思考:1. 62256的地址范围?2. 74LS573和74LS373都是常用的锁存器,他们有何区别?实验十一 Led显示器的静态显示实验一、 实验目的1. 学习

39、P0口的使用方法。2. 学习LED显示器的静态显示和编程应用。二、 实验内容1. P0口做输出口,连接到一个LED显示器(共阴)的a-h段。2. 编程使七段数码管循环显示0-9。三、 实验说明1. P0口需外接上拉电阻。2. 注意数码管的共阴共阳问题及对应的段码表。四、 实验线路图1. 下载系统的连接。2. P0.0P0.7接到任一LED(7段数码管),LED显示器公共端接对应电平。3. 主电路示意图如下图11-1所示。 图11-1 数码管静态显示实验电路示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线系统将hex文件下载到单片机中。3. 点击

40、复位按钮,运行程序。观察LED显示器循环显示0-9。六、 思考如果使用共阳的LED数码管,电路连接和程序该做哪些修改?实验十二 LED显示器的动态显示实验一、 实验目的1. 学习P0口、P2口的使用方法。2. 进一步学习LED显示器的使用方法和编程应用。二、 实验内容1. 使用4个LED显示器(共阳),动态显示当天的年月日20XX和XXXX(日期)。2. P0口送出段选码,P2.0-P2.3送出位选码。三、 实验说明1. P0口、P3口是准双向口,它作为输出口时与一般的双向口使用方法相同。2. 注意数码管的共阴共阳问题及对应的段码表。四、 实验线路图1. 下载系统的连接。2. P0口作为段选码

41、输出连接到4只LED数码管的a-h段。P2.0-P2.3送出位控信号。3. 主电路示意图如下图12-1所示。图12-1 数码管动态显示实验电路示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线系统将hex文件下载到单片机中。3. 点击复位按钮,运行程序。观察LED显示器动态显示结果。六、 思考动态显示是如何实现的?动态显示的仿真能实现吗? 实验十三 基于扫描法的键盘 LED显示接口一、 实验目的1. 了解行列式键盘的工作原理。2. 进一步学习LED数码管的显示方式及工作原理。二、 实验内容1. 设计一个4*4行列式键盘。P1.4-P1.7作为行列

42、式的列线,P1.0-P1.3作为行列式的行线。2. 从行列式键盘输入信息,LED数码管显示对应按键键码。段选码由P2口输出到数码管。三、 实验说明1. 本实验的去抖动采用软件延时法。2. 注意数码管的共阴共阳问题及对应的段码表。四、 实验线路图1. 下载系统的连接。2. P2口作为段选码输出连接到LED数码管的a-h段,对应LED数码管的公共端接有效电平。3. P1.4-P1.7分别接4*4键盘的4根列线,P1.0-P1.3接键盘的4根行线。4. 主电路示意图如下图13-1所示。 图13-1 行列式键盘电路示意图五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2.

43、使用下载器将hex文件下载到单片机中。3. 点击复位按钮,运行程序。按下键盘中的任意按钮,观察LED数码管的显示情况。六、 思考:行列式键盘的工作原理? 实验十四 温度传感DS18B20实验一、 实验目的 1. 以AT89S5X单片机为核心器件,组成一个数字式温度计。2. 了解DS18B20的工作原理及使用方法。3. 掌握DS18B20读写时序的编程方法。4. 锻炼单片机综合应用和开发的能力。 二、 实验内容与要求 1. 显示当前温度:在LCD显示或数码管显示实时温度(整数小数各两位)。2. 编程要求:用汇编语言或者C51编写程序,写出各个子程序的功能并在主要的指令后加上必要地文字说明增加程序

44、的可读性。 三、 实验原理 (1)硬件电路原理图如下图14-1所示。 图14-1 DS18B20测温电路示意图(2)工作原理:本实验通过DS18B20采集环境温度,当单片机检测到DSl820的存在便可以发出ROM操作命令之一,Read ROM(读ROM) 、Match ROM(匹配ROM)、Skip ROM(跳过ROM)、Search ROM(搜索ROM) 、Alarm search(告警搜索) ,然后对发存储器操作命令对DS18B20进行读写数据转换等操作。单片机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位,然后将读到的数据转换BCD码在显示部件上显示出来。 四

45、、 软件流程设计 该系统采用的方法,根据初始化温度传感器,再就是显示温度数值。测量出来温度软件系统基本流程如下图14-2所示: 图14-2 程序流程图五、 实验步骤1. 读DS18B20的数据手册,弄明白其时序及编程思路。2. 画出程序流程图编写相应的汇编或C51程序。3. 将程序下载到实验开发板上并调试程序,使程序达到预定功能。六、 思考题本实验实现了单点的温度采集,你能否在本实验的基础上设计实验实现多点温度采集的系统。实验十五 LCD1602液晶接口技术一、 实验目的1. 了解液晶显示的基本原理。2. 了解LCD1602芯片的读写操作过程。3. 掌握LCD1602芯片与单片机的接口电路。二

46、、 液晶显示简介液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。液晶显示器各种图形的显示原理:

47、线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和

48、8条暗线组成的虚线。这就是LCD显示的基本原理。字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右

49、两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。三、 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。LCD1602的主要技术参数、引脚功能说明和指令说明及时序等

50、请查阅LCD1602的数据手册。四、 实验内容和实验线路图1. 实验内容:用LCD1602循环右移显示“Welcome to China”。2. P0作为数据线直接接LCD1602芯片的数据线,P2.0-P2.2接LCD1602芯片的RS、RW和E端。3. 主电路示意图如下图15-1所示。 图15-1 LCD1602接口电路示意图五、 实验步骤1. 使用Keil软件编写汇编程序或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,运行程序。观察LCD1602显示的结果。六、 思考1. LCD1602的数据线能不能接单片机的其他并行I/O口?2. L

51、CD1602的时序要求在程序中如何体现? 实验十六 DS1302时钟芯片(液晶时钟)一、 实验目的1. 学习DS1302时钟芯片的使用方法。2. 进一步学习LCD1602芯片的使用。二、 实验内容 基于DS1302和LCD1602设计一个万年历。三、 实验线路图 图16-1 DS1302接口电路示意图四、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,观察LCD1602芯片的显示结果。五、 思考1. 如果采用8只LED数码管显示,需要做哪些改动? 实验十七 DA转换实验一、 实验目的 1. 了解D/A转

52、换的基本原理。2. 掌握D/A转换芯片DAC0832的性能及编程方法。3. 熟悉单片机系统中扩展D/A转换的基本方法。二、 实验内容1. 利用DAC0832将任意1字节数字量转换成电压模拟量,用电压表测量输出电压。2. 编制程序产生锯齿波,用示波器观看。三、 实验线路图 图17-1 DAC0832接口电路示意图四、 实验说明1. 要产生锯齿波、三角波,比较简单的方法是表格法:先产生这二个波形的数据表格,然后依次查表得到波形中一点的数字量,送D/A转换,得到模拟量的电压信号,再送示波器显示。这种表格法对输出较复杂的波形(如正弦波或其他任意波形)是非常有用的。产生锯齿波和三角波的表格只需由数字量的

53、增减来控制,同时要注意三角波要分段来产生。也可用教材中的编程法:用一段程序来产生锯齿波或三角波,2. DA转换取值范围为一个周期,在一个周期数据点越多,精度越高些。本例采用的数据点为256点周期,即最小数字量为0,最大为255(FFH)。3. 8位DA转换器的输入数据N与输出电压Vo1的关系为 Vo1= -Vref*N256 (Vref为参考电压,Vref= -5V)五、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,用示波器观察DAC0832输出的波形。六、 思考1. 编制程序产生三角波,方波等。2.

54、 如何用表格法产生各种波形? 实验十八 基于ADC0832的5V直流数字电压表 一、 实验目的1. 掌握AD转换与单片机的接口方法。2. 了解AD芯片ADC0832转换性能及编程。3. 通过实验了解单片机如何进行数据采集。二、 实验内容利用实验板上的ADC0809做AD转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,并用发光二极管显示。三、 实验电路连线 图18-1 数字电压表电路示意图四、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,观察LCD1602显示的结果。五、

55、思考1. ADC0832的CH0通道的输入电压如何实现可变?2. 如果改用CH1通道作为输入,如何修改程序?3. ADC0832对时序的要求在程序上是如何实现的?实验十九 I2C总线器件及其应用(AT24C02)一、 实验目的1. 学习I2C总线的基本知识。2. 掌握AT24C02和单片机的接口设计和程序编制。二、 实验内容将数据0x0f写入AT24C02再读出送P1口显示。三、 实验线路图1. 下载系统的连接。2. P1.0P1.7接8只发光二极管的输入端,发光二极管的公共端接VCC。3. 主电路示意图如下图19-1所示。 图19-1 AT24C02电路示意图四、 实验步骤1. 使用Keil

56、软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,观察8只发光二极管显示的二进制数字结果。五、 思考1. I2C总线协议如何?2. 对AT24C02进行读操作和写操作的有何区别?3. 改用LCD1602液晶显示,该做哪些修改? 实验二十 简易电子琴设计一、 实验目的1. 进一步学习行列式键盘的设计。2. 学习音频方波的产生。二、 实验预备知识1. 音调频率的控制方法。2. 音调发声时间的控制。3. 定时器T0的中断控制。 三、 实验内容1. P1口连接16个行列式按键。2. P3.7输出音频方波信号,驱动喇叭发出声音。四、 实验说明

57、 实际电路中,喇叭的驱动需要设计三极管放大电路。仿真时可以直接接一个SOUNDER。五、 实验线路图1. 下载系统的连接。2. P1.0P1.7接16个行列式按键。3. 主电路示意图如下图20-1所示。 图20-1 简易电子琴电路示意图六、 实验步骤1. 使用Keil软件编写汇编或C51程序,并生成hex文件。2. 使用下载线软件将hex文件下载到单片机中。3. 点击复位按钮,观察不同按键按下时,喇叭发出的音频声音。七、 思考1. 矩阵键盘的工作原理。2. 喇叭的驱动电路。 实验二十一 基于单片机和八只LED的时钟一、 实验目的1. 学习定时器的定时方法。2. 学习七段数码管LED的使用。3. 利用中断实现计时。二、 实验内容

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!