51单片机实验2014

更新时间:2024-05-02 08:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《单片机原理与应用实验》指导书

厦门理工学院光电与通信工程学院

目 录

目 录 ......................................................... I 第一章 概述 ...................................................... 1 第二章 实验系统组成和结构 ....................................... 4

§2.1 系统主机的硬件组成 ................................................................ 错误!未定义书签。

2.1.1 逻辑电平开关电路 ...................................... 错误!未定义书签。

2.1.2 LED电平显示电路 ....................................... 错误!未定义书签。 2.1.3 单脉冲电路 ........................................... 错误!未定义书签。 2.1.4 音频放大电路 ........................................... 错误!未定义书签。 2.1.5 继电器输出电路 ........................................ 错误!未定义书签。 2.1.6 逻辑门电路 ............................................. 错误!未定义书签。 2.1.7 逻辑测量(逻辑笔)电路 ................................. 错误!未定义书签。 2.1.8 4 MHz脉冲信号源和多级分频电路 ......................... 错误!未定义书签。 2.1.9 可调模拟量输入电路 ..................................... 错误!未定义书签。 2.1.10 六位LED数码显示器 ................................... 错误!未定义书签。 2.1.11 4×6 键盘电路 ......................................... 错误!未定义书签。 2.1.12 串口通信程序实验插孔 .................................. 错误!未定义书签。 2.1.13 存储器电路 ............................................ 错误!未定义书签。 2.1.14 8255端口扩展电路 ..................................... 错误!未定义书签。 2.1.15 A/D 转换电路 ......................................... 错误!未定义书签。 2.1.16 D/A 转换电路 ........................................ 错误!未定义书签。 2.1.17 液晶屏显示控制电路 ................................... 错误!未定义书签。 2.1.18 打印机驱动电路 ....................................... 错误!未定义书签。 2.1.19 16×16 LED点阵电路 ................................... 错误!未定义书签。 2.1.20 实验电路插座 .......................................... 错误!未定义书签。 2.1.21 总线插孔 .............................................. 错误!未定义书签。 2.1.22 地址译码插孔 .......................................... 错误!未定义书签。

第三章 实验说明 ................................................. 4

§3.1 系统的安装和启动 .................................................................... 错误!未定义书签。

§3.2 系统实验软件设置 .................................................................... 错误!未定义书签。 §3.3 硬件实验说明 .............................................................................. 错误!未定义书签。

硬件实验一 P1口输入、输出实验 ............................................... 14

硬件实验二 外部中断实验 ..................................................... 16 硬件实验三 外部中断(急救车与交通灯) .......................................... 22 硬件实验四 定时器实验 ....................................... 错误!未定义书签。 硬件实验五 计数器实验 ....................................... 错误!未定义书签。 硬件实验六 串行数转换并行数实验 .............................. 错误!未定义书签。 硬件实验七 并行数转换串行数实验 .............................. 错误!未定义书签。 硬件实验八 单片机串行口通讯实验 ............................. 错误!未定义书签。 硬件实验九 存储器扩展实验 .................................................... 22 硬件实验十 8255输入、输出实验 ............................................... 24 硬件实验十一 D/A转换实验 .................................................... 25 硬件实验十二 A/D转换实验 .................................... 错误!未定义书签。 硬件实验十三 八段数码管显示 ................................. 错误!未定义书签。 硬件实验十四 键盘扫描显示实验 ............................... 错误!未定义书签。 硬件实验十五 液晶显示控制实验 ............................... 错误!未定义书签。

第四章 逻辑分析工具 ............................. 错误!未定义书签。 第五章 系统自动检测功能 ......................... 错误!未定义书签。

I

第一章 概述

本实验课程是《单片机原理与应用》的实践性教学环节,目的是通过本课程的学习,使学生更好的理解和巩固51单片机理论知识,并将所学知识运用到实际中,从而加强动手和综合实践能力。熟悉单片机系统的开发流程,进一步掌握单片机系统硬件和软件的基本设计方法及调试、开发能力。 本实验课程的实验平台是普中电子科技有限公司的HC6800 V3.2开发板,它是一款性价比极高的产品,提供USB2.0和串口两种通信方式,USB实现供电、编程、仿真、通信多种功能,另外还提供了Atmel单片机的ISP接口。此板兼容STC、SST、Atmel、Philips等51家族的所有单片机。如果使用ISP编程、仿真等建议使用开发板自带的单片机。HC6800开发板有着丰富的外部资源,单片机和各种外围设备的接口完全开放,自由度极高,任凭您自由发挥。学习者可以通过短路冒和跳线完成各种各样的实验。

系统开发板功能配置如下:

1、1602液晶屏/12864液晶屏接口(接口引出) 2、4×3的矩阵键盘(用于按键扫描试验,接口引出) 3、红外接收头与发射遥控器 4、继电器输出

5、8位静态数码管显示(接口引出)

6、1位数码管动态显示(可以直接单片机驱动接口、也有74HC595驱动接口,接口引出) 7、步进马达驱动(接口引出,可选配步进马达) 8、八个普通按钮输入(接口引出)

9、8个LED显示(接口引出,可以做跑马灯、流水灯、花样彩灯、各种信号灯等试验) 10、蜂铃器(做单片机发声实验)

11、PCF8563 实时时钟(年、月、日、时、分、秒 NXP 芯片,时间准、精度高) 12、PCF8591T(工业级数模/模数转换芯片,其中有4路模拟输入、1路模拟输出,接口引出) 13、A24C02数据存储(可以保存机器中的各种参数) 14、DS18b20温度传感器(检测温度) 15、74HC165并入串出功能(输入锁存器) 16、74HC595串入并出功能(输出锁存器) 17、LS138译码器

18、ULN2003达林顿驱动(输出电流可以达到1A可以驱动步进马达)

19、MAX232串口通信(可以直接用串口与电脑通信,也可以用USB转串口线)

20、USB接口(供电、烧程序、通信于一体的接口,无需电源线、DB9串口通信线、USB转串口线) 21、STC89系列增强型C51单片机(可以工作在6T模式下,又快又稳)

22、支持PS/2电脑键盘接入(通过PS/2通信协议把电脑键盘与单片机连接,可获得大量的输入按钮) 23、ISP功能电脑直接烧录程序,无需另外购买烧录器和仿真器(省钱又方便试验)

24、Atmel的ISP接口(支持Atmel89系列系列和AVR AT90S8515、Atmega8515型号的程序烧录) 25、提供了实时时钟(PCF8563)的后备电源(掉电了时间也能正常走,有需求者可以安装纽扣电池座和电池)

26、另配了外置5V电源插座(方便用户用做别的用途)

(1) 所有单片机I/O均引出,供用户自由安排与发挥自建电路等等。 (2) 虚拟示波器

1

图1.1 开发板资源配置

图2 跳线分布示意图

2

跳线表:

3

第二章 实验系统组成和结构

2.1 单片机最小系统

CPU为STC89系列增强型8位单片机,频率高达80MHz,可工作于6Clock,32 I/O,3定时器,内置WDT,EEPROM,支持ISP,ESD。晶振采用12M/11.0592M(可更换)。

图2.1

复位电路和时钟电路如图3.2所示。复位是按键复位和上电复位的组合。

图2.2

2.2 LCD

本开发板支持LCD1602和LCD12864/240128/TFT彩屏。 LCD1602的原理图如下:

图2.3

4

LCD(1602)器件说明: 1602 采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VCC接5V正电源

第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生重影,使用时可以通过一个1K的电位器调整对比度。

第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平,RW为高电平时可以读忙信号,当RS为高电平,RW为低电平时可以写入数据。

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:背光灯电源。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形。这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

LCD(12864/240128)原理图:

图2.4

2.3 数码管

开发板上有2个四位动态数码管和1个一位静态态数码管。当使用四位动态态数码管时,请用8P排线将J12与单片机的I/O脚(P0-P3任选)相连。当使用一位静态数码管时,有两种连接方式:

1. 用8P排线将JP3与单片机的I/O脚(P0-P3任选)相连,实现用单片机脚直接控制数码管。

2. 用8P排线将JP2与JP3连,然后将JP12用短路冒全部短接,此时为单片机控制74HC595,74HC595 再控制数码的动态扫描。

数码管说明

数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个,如右图3.5所示。动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,所以我们就可以

5

自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。每位显示器的点亮时间是极

为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际 图3.5 上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

如何让一个数码管显示呢?如果要显示一个3字,首先使得COM为低电平使能数码管,然后可以控制abgcd高电平将会亮;而fe为低电平不亮。

J21短路帽可以接VCC和P10。如果接P1.0需要用程序控制使能,接VCC直通不需要程序控制使用。 J16数码管位选接口,可以用138译码器进行位选,也可以又单片机脚直接控制实现位选。 J15 138译码器输出接口

J14 动/静态LED功能,如短接,改变P11的电平可以实现动/静态LED功能。

数码管原理图:

图2.6

2.4 LED灯

开发板上有8个LED灯。JP1为8路LED灯的接口,使用此功能时,请将JP1与JP8-JP11中任何相连,即可实现单片机控制8路LED。

LED灯原理图:

6

图2.7

2.5 双色LED点阵

下图3.8为红绿两色LED点阵图的内部结构。图中白色LED显示为绿色。黑色LED显示为红色。每种颜色的点阵分别由8*8个LED组成,即8行和8列。共有24个引脚,图中标明为COL PIN的为列引脚,标明为ROW PIN的为行引脚。引脚24,21,18,15,1,4,7,10组成绿色LED的列引脚,23,20,17,14,2,5,8,11组成红色LED的列引脚。按照逐列显示的方式,在一个时刻,只有一列显示。例如,在某个时刻,使得红色LED列引脚的值为01111111,则只有第一列会显示行引脚的数据。

图2.8

图2.9

7

DPa-DPh: 74HC573输出端 RE1-RE8: 点阵红色端 GR1-GR8: 点阵绿色端

2.6 独立按键

开发板上有8个独立按键,如图3.10所示。JP5为独立按键的接口,可以与单片机任何脚相连,组成单片机的输入设备,也可做外部中断输入,与INT0,INT1相连。

图2.10 独立按键

2.7 时钟芯片DS1302

DS1302原理图

图2.11

DS1302介绍:

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM 寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

2.8 DA/AD转换器PCF8591T

PCF8591T使用I2C与单片机通信,P2.1(SDA)串行数据线、P2.0(SCL)串行时钟线。AD0和AD1是两路模拟输入,改变AD0和AD1位置的电位器,实现了2两路模拟输入,在数码管中可以看到数值变化。当PCF8591T数模端口数据变化时,DA位置的LED亮度随之改变。

8

第三章 实验说明

软件实验一:汇编编程

1、学生实验:分别编程实现两个16位无符号数相加,结果存放在40H41H中;两个16位的无符号数相减,结果存放在30H31H中。 2、学生实验:编程实现 X (X≥40) Y= 2X (20

0 (X≤20)

3、学生实验:编写80个数相加,结果存放在30H31H中。

软件实验二:汇编编程

1、学生实验:编写R1×R2R3=R4R5R6,R1R2×R3R4=R4R5R6R7。 2、学生实验:找出内RAM中从30H到50H中在最小值。

3、学生实验:用查表方式编写y=x3(x为0~9的整数),要求分别用@A+DPTR和@A+PC的方法。

软件实验三:C语言编程

1、用查表方式编写y=x13+x23+x33。(x为0~9的整数)

2、 有10个8位二进制数据,要求对这些数据进行奇偶校验,凡是满足偶校验的数据(1的个数为偶数)

都要存到内RAM50H开始的数据区中。试编写有关程序。有10个8位带符号二进制数,请将10个数按从小到大的顺序排列,并存到内RAM50H开始的单元中。

14

硬件实验一 P1口输入、输出实验

一、 实验要求

1、基本部分:

(1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

(2)P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。 2、扩展部分:

(1) 利用P1口控制发光二极管LED灯按照下面方式工作:

a) LED灯从左到右依次点亮; b) LED灯从右到左依次点亮;

c) 按照以上步骤重复运行,其中要求灯亮的时间为500ms。 (2) 利用P1口控制发光二极管LED灯按照下面方式工作:

a)从左到右奇数LED灯依次点亮; b)从右到左偶数LED灯依次点亮;

c)按照以上步骤重复运行,其中要求灯亮的时间为500ms。

二、实验目的

1. 学习P1口的使用方法。

2. 学习延时子程序的编写和使用。

三、实验电路及连线

JP8(P1)和JP1(LED)用8PIN排线或连接起来。 使用杜邦线将P1.2,P1.3和独立按键连接起来。

四、实验说明

a) P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口用

为输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是不正确的。 b) 8051延时子程序的延时计算问题,对于程序

Delay:

MOV R6,#0H MOV R7, #0H DelayLoop:

DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET

查指令表可知MOV,DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以该段程序执行时间为:

(256×255+2)×2×12÷6 ≈ 261ms

15

硬件实验二 外部中断实验

一、实验目的

1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。

二、实验内容

1、基本部分:

通过按键申请中断,在中断处理程序中对输出信号进行反转。 2、扩展部分:

将外部中断源连接到单片机的外部中断1上,计算其外部中断1的中断次数(<255),并能实时将结果显示在发光二极管LED上(二进制形式)。

三、实验连线

用杜邦线将JP5.8(第一个独立按键引脚)和单片机的INT0(P32)端连接。 用8PIN排线将JP8(P1)和JP1(LED)或连接起来。

四、实验说明

中断服务程序的关键是:

1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EXO位。

本例中使用了INT0中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。

16

硬件实验三 双色LED点阵实验

一、实验目的

1、学习双色LED点阵显示的原理。 2、学习双色LED点阵显示的编程方法。

二、实验内容

1、基本部分:

固定显示。在点阵上轮流显示数据0-9和字母A-F。 2、扩展部分:

滚动显示。从左到右,从右到左,从上到下,从下到上,轮流显示“1”和“一”。

五、实验连线

P0和JP1(LED)用8PIN排线或连接起来。 P1和J19(点阵绿色端)用8PIN排线或连接起来。 P3和J20(点阵红色端)用8PIN排线或连接起来。

六、实验说明

应元素写到点阵的数据引脚。

首先要把需要显示的数字或字母所对应的二进制码存放到数组中,然后轮流将各个列引脚置低,并将对

17

硬件实验四 定时器实验

一、实验目的

1、学习51单片机内部定时计数器的使用和编程方法。 2、进一步掌握中断处理程序的编程方法。

二、实验内容

1、基本部分:

用CPU内部定时器中断方式计时,实现每一秒钟输出状态发生一次反转. 2、扩展部分:

利用P1口控制发光二极管LED灯按照下面方式工作: 1)从左到右奇数LED灯依次点亮; 2)从右到左偶数LED灯依次点亮;

3)按照以上步骤重复运行,其中要求灯亮的时间为1s,由定时器T1实现。

三、实验连线

JP8(P1)和JP1(LED)用8PIN排线或连接起来。

四、实验说明

1、关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器。

2、定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

3、内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,每个机器周期的时间是1us,最长的定时间隔为1us*216=65536us=65.536ms。所以需要多次定时才能达到1s的定时间隔。

4、在例程的中断服务程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。

18

硬件实验十 8255输入、输出实验

一、实验要求

1.使用wave600实验箱

2.利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输出,PB口作输入。

二、实验目的

1、了解8255芯片结构及编程方法。 2、了解8255输入/输出实验方法。

三、实验电路及连线

8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。PA0-PA7(PA口)接LED0-LED7(LED)PB0-PB7(PB口)接K0-K7(开关量)。数据线、读/写控制、地址线、复位信号板上已接好。

连线 连接孔1 连接孔2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 CS0 L0 L1 L2 L3 L4 L5 L6 L7 K0 K1 K2 K3 K4 K5 K6 K7 8255CS 8255-PA0 8255-PA1 8255-PA2 8255-PA3 8255-PA4 8255-PA5 8255-PA6 8255-PA7 8255-PB0 8255-PB1 8255-PB2 8255-PB3 8255-PB4 8255-PB5 8255-PB6 8255-PB7

四、实验说明

可编程通用接口芯片8255A有三个八位的并行I/O口,它有三种工作方式。本实验采用的是方式0:PA,PC口输出,PB口输入。很多I/O实验都可以通过8255来实现。

24

硬件实验九 八段数码管实验

一、实验目的

1、了解数码管动态显示的原理。 2、了解用总线方式控制数码管显示。

3、学习数码管静态显示和动态显示的编程方法。

二、实验内容

1、在静态数码管上轮流显示数字0-9。 2、在两个4位数码管上动态显示数字0-9

三、实验连线

静态显示:JP10(P0)和JP3用8PIN排线连接起来

动态显示:数据端口:JP10(P0)与J12 用8PIN排线连接起来。位线端口:JP8(P1口)和J16用8PIN排线连接。

四、实验说明

J12是2个4位数码管的数据端口。JP3是静态数码管的数据端口。

静态显示时,只需要将需要显示数据的段码送到P0口,延迟一段时间,将另外一个数据的段码送到P0口即可。

动态显示时,需要设置位线。除了上面提到的直接将IO口当做位线的方法,另一种方法是使用138的输出作为位线。138的输出是J15,因此需要用8PIN排线将J15和J16连接起来。而且,138的输入来自于P2.2,P2.3和P2.4,因此需要设置这三个口线的电平以便译码选择某个数码管的位线。

25

硬件实验十 键盘扫描显示实验

一、实验目的

1、掌握键盘和显示器的接口方法和编程方法。 2、掌握键盘扫描和LED八段码显示器的工作原理。

二、实验内容

把矩阵键盘上的按键输入的键码在静态数码管上显示出来。 实验程序可分成三个模块。

①键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。 ②显示模块:将显示单元的内容在显示器上动态显示。 ③主程序:调用键输入模块和显示模块。

三、实验连线

JP4和JP8通过8PIN排线连接,JP10和JP3通过8PIN排线连接。

四、实验说明

本实验箱提供了一个3×4的小键盘,可使用行扫描法和行列反转法进行键盘的识别。可以将P1.1-P1.4设置为列线,P1.5-P1.7为行线。需要将JP165短路冒断开。

26

本文来源:https://www.bwwdw.com/article/284g.html

Top