单片机使用手册和实验指导

更新时间:2024-06-25 09:43:01 阅读量: 综合文库 文档下载

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

51单片机在系统编程 多功能实验板使用指南与实验指导

李群芳编

2005年元月

前 言

单片机是嵌入式系统的控制核心之一,要掌握嵌入式系统的开发技术,须做硬件实验,根据硬件学习编程方法。

目前大多数学校的单片机实验多采用教学设备厂生产的实验台,这些实验台价格昂贵(2000元左右),同时追求大而全,难于满足学生学习由易到难的循序渐进的要求,而学校的单片机教学学时少,很多实验做不了,又不能充分发挥实验台效益,为了让学生学得好、买得起、同时能随时在寝室里作硬件实验,掌握嵌入式系统的开发方法,我们设计了这块可在线编程单片机多功能实验板。

可在线编程单片机多功能实验板(以下简称实验板)核心为89S51/52单片机,该单片机和8051/52、89C51/52,完全兼容,只不过它可以在线编程,并且可以反复地擦除和编程。

多功能实验板结合了单片机在线编程(烧写)功能及程序运行功能,电路充分利用单片机的资源,设计巧妙、布局合理、价格低廉、使用方便、可再开发。使得用户一板在手便拥有了编程器和实验板两套设备。实验是学习单片机软、硬件设计之必需手段,编程器也是日后单片机应用系统开发的必备工具,因此它具有近期和远期效益。用户可通过带锁按压开关方便地选择系统工作状态—在线编程状态和程序运行状态,省去了仿真步骤,直接观察运行结果,从而免去了单片机开发中必须的昂贵的硬件仿真器和专用编程器的开销。只要阁下有一台电脑,在家里或寝室里就可以进行单片机的硬件实验和应用开发。

多功能实验板充分利用单片机的内部资源,能开出如下单元实验: 1、并行口的输入、输出实验,数码管的显示与控制 2、中断实验

3、定时/计数器的应用设计

4、串行通信实验(单片机和单片机、单片机和PC机的通信) 5、串行EEPROM(I2C接口) 6、串行D/A转换(SPI接口) 7、串行A/D转换(SPI接口)

如果综合利用上述资源用户可以设计诸如多功能数字钟、波形发生器、数字电压表、音乐盒等应用系统,学生可作为课程设计、毕业设计的硬件平台,为了用户的灵活开发,实验板还预留了扩展板,可加焊少量器件。用户也可以通过此电路板组建一些较简单的系统,掌握嵌入式系统设计的初步技巧。

本多功能实验板的学习参考书为《单片微型计算机与接口技术》李群芳 黄建编 电子工业出版社出版

编者于华中科技大学

2004年10月

目 录

第一章 单片机可在线编程多功能实验板电路结构与元器件分布――――1 1.1 单片机可在线编程多功能实验板的结构框图――――――――――1 1.2 单片机可在线编程多功能实验板的元件分布如图二所示-――――1 1.3 多功能实验板的电路图―――――――――――――――――――2 第二章 实验板面的跳线、开关、按钮功能―――――――――――――3 第三章 多功能实验板涉及到的软件介绍――――――――――――――4 3.1 综合测试程序的使用―――――――――――――――――――-4 3.2 运用在线编程软件Microcontroller ISP Software实现在线编程―――5 3.3 单片机仿真调试集成软件包Wave的使用―――――――――――7 3.3.1、软件的安装和设置―――――――――――――――――――8 3.3.2、编辑和编译程序――――――――――――――――――――10 3.3.3.仿真调试程序―――――――――――――――――――――12 第四章 实验指导――――――――――――――――――――――――13 4.1 实验一 程序设计―――――――――――――――――――――13 4.2 实验二 并行接口―――――――――――――――――――――14 4.3 实验三 中断实验―――――――――――――――――――― 16 4.4 实验四 定时/计数器 ―――――――――――――――――――18 4.5 实验五 串行通信实验――――――――――――――――――21 4.6 实验六 串行EEPROM实验(选做)――――――――――――24 4.7 实验七 串行D/A实验(选做)――――――――――――――25 4.8 实验八 串行A/D实验(选做)―――――――――――――――26 第五章 系统设计选题(课程设计)―――――――――――――――--30

实践出真知 真知出创新 创新出一流 愿同学们成为一流的学生,一流的人材

第一章 单片机在线编程多功能实验板介绍

1.1 单片机在线编程多功能实验板的结构框图

单片机可在线编程多功能实验板的结构框图如图1所示。

RS232接口PC机COM1COM2口或其他单片机中断脉冲产生电路扬声器计数脉冲产生电路PC机并行口数码显示串行EEPPROM拨动开关控制核心串行A/D串行D/A用户扩展板在线编程单元(ISP)图1 ISP单片机综合实验板方框图 89S51/52

1.2 单片机在线编程多功能实验板的面板

单片机在线编程多功能实验板的面板如图2所示。

连P1.0,可接扬声器9针D型插头,接PC机COM1口或COM2口,用于和PC机串行通信。和地相连MAX232电源插口开关K0~K7J1短接块+-电源接线柱74LS04LED4LED5J41J2短2短接接3块块A/DA/DON1 2 3 4 5 6 7 874LS57374LS00串行EEPROM24C042KΩ×8(排阻)-黒+红8位串行A/DAT89S52单片机TLCJ4短接块549模拟电压输入10位串行D/A12M晶振J7短接块复位按钮按压开关W1TLCJ65615模拟电压J8短接块输出按压开关W2模拟电压调节电位器+RST扬声器地GND74LS244+5V4.7KΩ×8(排阻)ISP/EXEC编程/执行VCCINT0J51短接2块3T0产生脉冲电源指示25针D型插头,接PC机并行口,用于ISP编程图2 ISP单片机综合实验板面板图

1.3 多功能实验板的电路图

单片机可在线编程多功能实验板的电路原理如图3所示.

+5VISP/EXEC10μF运行W133PFRST10KΩ编程89S51/5289C51/52VccEAP2.0P2.1P2.2P2.3P2.4P2.5P2.6+5VD0D1D2D3D4D5D6GQ0Q1Q2Q3Q4Q5Q6OE74LS573RSTgaga1111XTAL1XTAL2P1.0P1.1P1.2P1.3P1.4P1.5AD1ISP编程电路串行EEPROM5.1KΩ×2GNDLEDJ3ADLEDJ2I/O CLKVCCREF+INREF-GND3KΩJ7P3.3P3.5P3.41R1INT1OUT2345V+C3VccC4V-C5C1=C2=C3=C4=C5=1μFMAX232+5V PC机COM1或COM2口 或另外的单片机6789678912345DINSCLKCSAGND2KΩ+5VTLC5615REFOUTA0A1A2VSSVCCSCLSDA+5VP1.6P1.7J1DATA OUTP2.7J4CSWP24C04+5VK0~K7J1TLC549串行8位A/DR1OUTT1INC1+2KΩ×88P0130PF×274LS04P3.0P3.1C2串行10位D/AJ8+5V1KΩW2C1-C2+C2-GND74LS00中断&J5&INT0(P3.2)C11KΩT0计数T0(P3.4)图3 综合实验板实验部分电路图注:1.晶振频率为12MHz,各I/O口线的安排如下:P0开关输入P2段选P1.0~P1.5数码管位选P3.2INT0中断P3.4T0计数脉冲P3.0P3.1UART串行口P1.6P1.7串行IICEEPROMP3.3P3.4P3.5SPI串行D/A(改变跳线)(改变跳线)P1.4P1.5P2.7SPI串行A/D2. 图中 为短接块,改变短接块位置可改变相应I/O口线的安排。3.图中 为带锁按压开关,按下或弹起分别接通不同的点。4.89C51/52不能在线编程,需另用专用编程器编程,但实验内容不变。

第二章 实验板面的跳线、开关、按钮功能

结合系统电路图(图3)和元件布局图(图2)对系统处于运行状态下的跳线、开关、按钮做如下说

明:

1、 J1~J5、J7、J8为跳线,用短接块改变跳线的状态就改变了电路的连线。

下面对系统中的7组跳线分别说明。

? J1 J1为l组两路平行的跳线,控制串行EEPROM与单片机之间是否相连,用两个短接块将J1

两路跳线连上,EEPROM处于与单片机的连接状态,可对EEPROM进行读写操作。当不用EEPROM时,将短接块拿开,EEPROM与单片机的处于断开状态,用户可以自己使用单片机的P1.6和P1.7口线扩展系统功能。

? J2和J3 J2和J3控制单片机的P1.4和P1.5脚是和第五个和第六个数码管相连还是和串行A/D

(TLC549)相连。

当用两个短接块将J2和J3的1、2两脚相连,单片机的P1.4和P1.5脚和TLC549处于连接状态,可对串行A/D (TLC549)进行操作,第五个和第六个数码管处于不受控状态。当用两个短接块将2、3两脚相连,P1.4和P1.5连接第五个和第六个数码管的阴极,此时这两个数码管受控工作,而串行A/D与单片机的处于断开状态,不能工作。

? J4 J4控制单片机的P2.7脚是否和串行A/D的片选端相连,短接块插上串行A/D的片选端和单片机P2.7脚相连,可对串行A/D进行操作;将短接块拿开,单片机和串行A/D的片选端处于断开状态,单片机的P2.7脚用户可自行安排使用。

? J5 J5的设置改变带锁按压开关W2产生的脉冲的去向,以决定是外部中断INT0使用脉冲源还

是计数器T0使用脉冲源。当短接块将J5的1、2脚相连时,脉冲源向外部中断INT0提供中断所需的脉冲,每按两次开关w2,产生一个脉冲,向外部中断INT0提供中断请求信号,当短接块将J5的2、3脚相连时,脉冲源向计数器T0提供外部计数脉冲,每按两次开关w2,产生一个计数脉冲。

? J7 J7控制串行A/D的模拟信号来源,当短接块插上,两插针短接,串行A/D的模拟信号来源

于直流电压的分压值,通过电位器调节输入模拟电压的大小;当短接块拔掉,外接模拟信号可由旁边的插针引入。

? J8 J8控制单片机的P3.4脚是否和串行D/A(TLC5615)的片选端相连,短接块插上串行的D/A片选端和单片机P3.4脚相连,可对串行D/A进行操作;将短接块拿开,单片机和串行D/A的片选端处于断开状态,单片机的P3.4脚用户可自行安排使用。

2、开关K0~K7控制

拨码开关K0~K7 K0~K7拨位开关用作输入设备,用于置数或控制,例如用户可以通过此八位开关,选择运行单片机中的各个子程序。

J6 J6 3、 带锁按压开关J6

带锁按压开关W1(J6)用于切换系统的工作状态。当开关 J6按下,系统处于编程(程序下载并烧写)状态,

执行状态 编程状态

编程此时系统不能运行程序;

当开关J6弹起,系统处于程序运行状态,此时可以运行单片机内部程序。

4、带锁按压开关W2 带锁按压开关W2主要用作产生T0定时/计数器的所需的外部计数脉冲和外部中断INT0产生中断时所需的中断请求信号。每按一次脉冲源电路输出电平变化一次,按两次才会产生一个脉冲。

5、复位按钮 板上有1个复位按钮RST,用于单片机复位,每按一下,单片机复位一次。 6、发光二极管 当系统接通电源,处于工作状态时,二极管亮,否则二极管灭。

第三章 多功能实验板涉及到的软件介绍

单片机可在线编程多功能实验板只是给你创造了硬件平台,没有软件是无济于事的,它涉及的软件是:

1.在线编程软件Microcontroller ISP Software

2.编辑、编译、跟踪调试集成软件包 WAVE(自带汇编器)

3.用户自行用汇编或C语言(C51)编制的应用程序(如用C语言编程需加装C51编译器) 4.我们提供一个综合测试的机器码程序(TASTALL.HEX)。

3.1 综合测试程序的使用

综合测试的机器码程序(TASTALL.HEX)用于测试你的实验板是否完好,在芯片齐备的情况下,完成下面的7个实验项目的测试,如果选购部件串行A/D、 串行 D/A没有选购,下面的6、7两个实验项目无法完成。由于本实验台就是为了训练学生的应用编程,因此不提供源程序。当你购买实验板时 ,该程序已被

在执行TASTALL.HEX时,按压开关W1使处于弹起状态。

执行TASTALL.HEX完成7个测试,用户可以通过此八位开关,选择运行单片机中的各个测试子程序(换一个置于ON 的开关后必须按一次复位键): 置于ON 的开关 执行功能

1 数码管显示的数字跑马 (用短接块使J2、J3的1、2 两点相连)

2 记录并显示中断次数(用短接块使J5的 1、2 两点相连,每按两次W2产生一次中断,数码管显示的数加1)

3 记录外部脉冲次数(用短接块使J5 的2、3 两点相连,每按4次W2产生2个外部脉冲, 数码管发亮的段下移一个)

4 串行通信 (用镊子将9针D型COM插头的2、3针短接,完成自收自发串行通信,通信成功数码管有变化的显示,如果用串行通信电缆连接两块实验板,可完成两块实验板之间的串行通信。)

5 串行EEPROM实验(用两个短接块将J1两路跳线连上,EEPROM处于与单片机的连接状态)读写成功数码管有变化的显示,这是因为写进EEPROM的代码又读出来并显示在数码管上)。

6 串行A/D 实验 用两个短接块使J2 、J3的2、3 两点相连,用短接块将J4跳线连上,用短接块将J7跳线短接,使电位器产生的模拟电压连在A/D上,旋转电位器上显示模拟电压量。 7 串行D /A实验 用短接块将J8跳线短接,拨动7键向上,数码管显示“3”,OUT输出三角波;拨动7键向下,数码管显示 “5”,OUT输出正弦波;拨动6键向上,数码管显示 “C”,OUT输出锯齿波;拨动5键向上,数码管显示 “F”, OUT输出方波。用示波器探头接到OUT的针上

时,示波器会显示相应的波形。

8 音乐实验 将扬声器的两端分别用导线插到数码管插座最左边空插孔上(标有P1.0和GND),扬声器将响音乐“星愿”,同时数码管的各段会随着音乐跳动。

3.2 运用在线编程软件Microcontroller ISP Software 实现在线编程

用汇编或C语言编好了源程序后,通过WAVE编译、连接、生成·HEX和.·BIN文件。应用多功能实验板和Microcontroller ISP Software软件将此·HEX或.·BIN文件烧写进板上的单片机内,即进行在线编程,下载程序步骤如下:

1. 在电脑关机的状态下,将25针并口连接线和电脑并口连接好。

2.在实验板未上电的情况下,将25针并口线的另一头和此实验板的25针接口相连,接着接通系统电源,打开电脑。

3. 按下带锁按压开关W1,使系统处于编程状态,打开Microcontroller ISP Software软件,即可进行在线编程。

4. 在程序下载成功之后,再次按带锁按压开关W1,使之弹起,单片机就可以处于运行状态。

在下载程序之前,大家一定要注意如下事项: 1、 连接电脑的25针连接线必须在电脑关机状态(断电状态)下安装或者拆除,在电脑 2、 2、运行的情况下,可能给电脑造成伤害。25针连接线连接单片机系统这一端的接口必须

在单片机系统断电的情况下连接或者拆除,否则会给系统带来伤害。

3、 注意电源的极性,为方便大家使用,我们为系统提供了两个电源接口,一个为普通的夹

线电源接口,在使用这个接口时,红的夹子连接电源正极,黑的夹子连接电源负极。另一个电源接口为耳机电源接口,可以用充电器的+4.5v输出线对系统供电,注意充电器的

电压输出极性选择拨到

这种模式。这两个电源接口是相通的。

一点经验:

有些兼容机上可能无法下载,可以在系统CMOS设置中将onborad parallel port一项(不同的BIOS此项的位置不同,请用户自行找到)设置为EPP方式(原始状态可能为SPP)即可。

在线编程软件ISP的操作步骤:

在线编程软件Microcontroller ISP Software软件(简称ISP软件)可在网上下载,网址为

http://www.atmel.com/dyn/resources/prod_documents/at89isp.zip 进行SETUP安装后便可使用

1、 打开Microcontroller ISP Software,如下图:

2、点击菜单中的options选项中的select device(选择器件):

弹出以下窗口:

选择AT89S52,并选Byte Mode (字节模式)点击“OK”。 3、点击options选项中的Initialize Target(初始化器件)或者 闪电图像的快捷键(图中圆圈所示)。

闪电图像的快捷键

4、接着点击菜单File中的Load Buffer,选择需要下载的程序 (经过编译生成的.HEX十六进制文件) 5、程序选定之后即可进行下载操作,点击Instructions中的 Auto Program或者点击快捷方式A(圆圈内所示)。即可进行程序下载操作。

经过以上步骤, ISP软件便对系统进行在线编程。在编程成功之后,出现如下对话框:

可选择“OK”或者“Cancel”以决定是否对单片机上锁(加密)。至此,程序下载结束。 6、进入程序运行状态 运行下载到单片机中的程序。有两种方式

方式一 点击菜单Instruction的Run Targe。用ISP软件启动单片机程序,此法运行单片机中的程序时由于单片机还和编程器连接,如果你要使用P1.5、P1.6、P1.7口线,它们将工作不正常,建议使用下面的方式二。如果你不使用P1.5、P1.6、P1.7口线,可在此状态下运行程序。

方式二 按一下按压锁紧开关J6,使之处于弹起状态,系统即与板的编程器部分断开,进入程序运行状态,按复位按钮后,运行单片机中的程序。 注意:

1、如果你的单片机原来已写有程序,需选择instrctions 菜单下的 erase chip选项,将单片机中的程序擦除干净,使用Read chip选项读出来的值全为“FF”。

2、每次在对单片机进行编程操作之前都得初始化系统:点击options选项中的Initialize Target(初始化器件)或者闪电图像快捷键。

3.3 单片机仿真调试集成软件包Wave的使用

Wave是南京伟福公司的仿真调试集成软件包,它集编辑、编译、连接、跟踪调试于一体,

是单片机开发的必须软件。程序在烧写进单片机前,必须将它送入计算机(编辑)、编译(或汇编)、连接,生成.HEX文件,经过模拟运行(单步执行、断点执行等),即软件仿真调试,无误后再烧写,这样可提高开发效率。该软件包即可对汇编源程序进行调试,也可对C语言程序进行调试。

3.2.1软件的安装和设置

Wave软件包可在网站下载,网址为http://www.wave-cn.com/,下载的文件是E6000(或E2000),它自带汇编器.,经过解压后,执行SETUP.EXE,按照安装程序的提示,输入相应的内容,直至安装结束。

在安装过程中,如果用户没有指定安装目录,系统会在C盘建立一个C:\\WAVE6000目录(文件夹),结构如下:

目录 内容 C:\\WAVE6000 BIN 可执行程序及相关配置文件 HELP 帮助文件和使用说明 SAMPLES 样例和演示程序

? 汇编源程序的汇编器

伟福编译系统已内嵌汇编编译器(伟福编译器),用户可直接应用WAVE对汇编源程序进行汇编,

? C语言程序的编译器

WAVE自身不带C51编译器,可以从网上下载Keil , 也可以从WAVE网站下载ICExplorerD,解压后将其中的P51文件拷到COMP51目录下,并运行P51自解压。

安装C51系列CPU的编译器

1. 进入C:\\盘根目录,建立C:\\COMP51子目录(文件夹). 2. 将C51编译器复制到C:\\COMP51子目录(文件夹).

3. 在[主菜单] / 仿真器 / 仿真器设置 / 语言 对话框的[编译器路径]指定为

C:\\COMP51.

如果用户将C51编译器安装在硬盘其他地方,请在[编译器路径]指明其位置.

? 注意:如果未安装第三方C51编译器,或未将主菜单中的【 仿真器 / 仿真器设置 / 语言[编译器选择单选框]中的编译器设置正确,则编译时会出现错误。

经过以上步骤,我们就可以使用Wave对程序进行编译,生成我们所需要的.HEX文件.下面对Wave的基本操作做一些简介.

1. 打开Wave编译器,出现如下界面,并在其中点击“好”。

2.点击菜单栏文件选项中的“仿真器”出现如下界面,并点击其中 “使用伟福软件模拟器”,使其中出现“√”,“选择CPU ” 选项中的”8751或8752(取决你是用89S51还是用89S52,它们和8031、8032是兼容的)。由于不使用仿真器作硬件仿真,因此“选择仿真器”“选择仿真头”以及“通信设置” “仿真头设置”无需选择。然后点击“好”

在“仿真器设置”/语言 中选择伟福汇编器,如用C 语言置好C 编译器路径见下图:

3.3.2、编辑和编译程序

编辑程序或者打开已编好的程序,点击菜单栏文件选项中的“新建文件”编写程序或者点击“打开文件”打开已经编好的程序。注意:如果是汇编语言程序以·ASM后缀存盘,如果是C语言

程序以·C后缀存盘。

2、对源文件进行编译。点击菜单“项目” 中的“编译”,或者点击如图所示的快捷方 式,就可以对程序进行编译,并生成.HEX 文件。(汇编和C语言均如此)

如果程序存在语法或者结构错误,在程序编译时会出现错误提示。如下图所示,大家可以根据错误行提示修改程序错误之处。

如果程序能够成功运行,对话框中就会出现运行成功提示,并生成 ·HEX文件如下所 示:

10

注意:当一个程序由多个模块组合时(例如C语言和汇编的混和编程或同一语言的多个模块组合),必须建立一个工程项目,方法是:

1) 点“文件-〉新建项目”

2) 在“加入模块文件对话框”将已经保存好的原文件加入, 3) 含文件对话框”中加入包含文件,(如果没有包含文件可以点取消)。 4) 在“保存项目”对话框中键入项目的名字 5) 点击项目菜单中的编译

点击菜单“执行”中的各个选项,或者图中所示快捷方式运行程序。

经过以上操作,我们就可以得到单片机在线编程所需要的.HEX文件,该文件即为系统在线编程的烧写文件。

3.3.3 仿真调试程序

编译好的程序可利用WAVE软件包模拟执行(仿真调试),用单步跟踪、设置断点、察看单片机的内存和特殊寄存器的内容变化是否合乎设计意图,若有错误,修改程序,重复上述步骤,直至正确,这样可以提高效率。

执行操作方式可在主菜单“执行”挑选,也可点击快捷键(见下图)。该栏中有复位、暂停、连续执行、全速执行(即连续执行)、跟踪执行、单步执行等。在主菜单“窗口”中可以打开CPU窗口或数据窗口以观察运行状态。点击观察窗口的不同选择可以分别观察SFR、REG(R0—R7、?)、DATA(内部数据存储器)、Watch(各标号和各变量的地址)

11

以下是CPU窗口

12

第四章 实验指导

4.1 实验一 程序设计

一、实验目的

① 学习windows平台下wave仿真软件的编辑、编译、排错、调试方式 ② 学习单步、断点、自动跟踪/单步、全速执行等各种执行方法。 二、实验步骤

1. 运行WAVE软件,点击菜单栏选项中的“仿真器”,并点击其中 “使用伟福软件模拟器”,使其中出现“√”,“选择CPU ” 选项中的 8031或8032(取决你是用89S51还是用89S52),点击 “√好”,即进入软件模拟环境。

2. 鼠标点击菜单“文件(F)” →“新建文件(N)”, 进入编辑窗口键入以下 实验程序:

INDEX EQU 20H SUM EQU 21H ORG 0000H START:MOV INDEX, #5 MOV A,#0

LOOP: ADD A,INDEX

DJNZ INDEX,LOOP MOV SUM,A SJMP START END

以FIRST.ASM文件存盘。 预先分析程序的执行结果

3. 点击快捷菜单编译(或按F9 键),伟福仿真器自带的汇编器对源程序汇编,生成FIRST· HEX。

2. 击快捷菜单,打开CPU窗口,打开内部数据存储器DATA窗口,调整窗口大小,和窗口位置,

使DATA窗口、CPU窗口能同时显示在屏幕上。 自动跟踪/单步 执行程序 3. 鼠标点击菜单“执行(R)” →“自动跟踪/单步” ,可以看到程序自动单步执行,同时可以

观察A 累加器内容的变化及内部数据存储器DATA窗口中内容的变化。

4. 利用各种操作方式(单步、全速)逐条执行观察A、21H单元、20H单元内容的变化。

三、程序设计选题:

1.将外部数据存储器0001H和0002H单元内容互换。

2.将外部数据存储器010~01FH单元内容移到020~02FH单元。

3.统计内部数据存储器从30H单元开始的十个字节中,正数﹑负数和零的个数, 并分别置于R4,R5,R6中。

4.完成八位数除以八位数,即R2/R1=R3......R4。

5.将外部数据存储器0~05H单元的BCD码转换为ASCII码放回原单元。

6.将外部数据存储器0~05H单元中的十六进制数转换成ASCII码放回原单元。

13

7.将R0中的二进制数转换成BCD码存于内部数据存储器的22H~20H单元。 8.完成两个四字节数的相加(即32位数),和存于内部数据存储器的24H~20H单元 9.完成两个四字节数BCD码数的相加,和存于内部数据存储器的24H~20H单元

4.2 实验二 并行接口

一、实验目的

1、熟悉51单片机并行口的输入方式,输出方式的编程 2、熟悉51单片机并行口应用编程软件仿真调试方法 3、学会在线烧写单片机程序(在线编程ISP)方法 二、实验电路和程序 `

实验程序(1)

一个数码管是由八个发光二进管组成,电路中小数点段没连接,将下列程序烧进单片机中,观察执行现象

开关K0~K7ON向上拨:02345678向下拨:11COMgfedcba+5V开关K0~K774LS573K0K1K2K3K4K5K6K7P2.6P2.5P2.4P2.3P2.2P2.1P2.074LS04P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.789C51/52 89S51/52图13.20 并行接口输入/输出实验电路1P1.0

ORG 0000H MOV P1,#01H MOV A,#01 NEXT:MOV P1 , A MOV R3 , #0 LOOP:MOV R4, #0

DJNZ R4, $

DJNZ R3,LOOP RL A

SJMP NEXT

自编程序 ① 使第三个数码管各段轮流亮。③④

② 使六个数码管共42段LED各段轮流亮

实验程序(2)

电路见下图,573接成直通方式驱动数码管,用两个短接块将J2、J3的上面的两脚相连(见下

14

图红线,这样P1.4和P1.5就连接了第五个和第六个数码管的阴极,此时这两个数码管可受程序控制工作。有关电路如下:

P2.0P2.1P2.2P2.3P2.4P2.5P2.69D0876543Q012D6Vcc+5V74LS57311G20OE10GND1314151617Q6181g??11111P1.012345P1.5613513111??aga74LS04??9J3LEDJ2ADLEDAD

例2 拨动几号开关置“ON”第一个数码管显示几。程序如下:

ORG 0

MOV DPTR,#TAB0 MOV P1,#01H STA1:SETB C

MOV R0,#01

ASP:MOV P0,#0FFH MOV A,P0 ASP1:RRC A

JNC LED ;检测是哪个开关置”ON ” INC R0

CJNE R0,#9, ASP1 SJMP STA1

LED:MOV A,R0 ;R0为开关号 MOVC A,@A+DPTR MOV P2,A SJMP STA1

TAB0:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H END

自编程序 编程并烧写程序完成置1键ON第一个数码管亮“1”, 拨2键第二个

数码管亮“2”, 拨3键第二个数码管亮“3”

例3 数码跑马程序

DLED: MOV R0,#0 ;R0存字形表偏移量 WE: MOV A,#01 ;A置数码管位选代码 NEXT: MOV B,A ;保存位选代码

15

MOV P1,A MOV DPTR,#TAB0 ;DPTR置字形表头地址;

MOV A, R0

MOVC A,@A+DPTR ;查字形码表

MOV P2,A ;送P2口输出 MOV R3,#0 ;延时 LOP: MOV R4,#0 LOP1: NOP

NOP

DJNZ R4,LOP1 DJNZ R3,LOP MOV A,B

RL A ;指向下一位

CJNE A,#10H, NEXT ;五个数码管显示完否 INC R0 ;指向下一位字形 CJNE R0,#10H,WE ;从0到F显示完否

SJMP DLED

TAB0:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H 自编程序 编程并烧写程序完成置1键ON六个数码管轮流亮“1”, 拨2键六个数码管轮流亮“2”, 拨3键六个数码管轮流亮“3”。。。。

三、自编程序并在板上执行通过 ①每两个数码管为一组交替点亮“8”。

②对第四个数码管按照 一段亮→二段亮→三段亮??→全部亮→灭一段→灭二段→灭三段→灭四段??→全部灭方式,如此反复进行。

③测试开关k0,当k0开关向上拔ON时,六个数码管同时亮“8”,当k0开关向下拔时,八个数码管同时灭,同时灭的交替进行。

④将开关K1~K6的置位情况显示在数码管上,开关置“ON”的对应数码管显“0”,开关置“OFF”(拨向下的对应数码管显“1”,

⑤将开关K1~K8的置数显示在数码管上,如K1~K8全部拨向下,第一、二个数码管显FF。 ⑥将开关K1~K8的置数变换成显示在数码管上,如K1~K8全部拨向下,第一、二个数码管显FF。

4.3

实验三 中断

一、 实验目的

了解中断的产生及响应过程,掌握中断程序的编制。

二、 实验连线

用短接块将J5的1、2脚相连(即连向INT0方向时,脉冲源向单片机的外部中断INT0引脚提供中断所需的脉冲,每按两次开关w2,电平变反一次,产生一个跳变缘,作为外部中断INT0的中断请求信号。用两个短接块将J2、J3的上面的两脚相连,这样P1.4和P1.5就连接了第五个和第六个数码管的阴极,此时这两个数码管受程序控制工作。

16

实验连线见图粗黑线: 三、实验程序 实验程序1:

ORG 0 脉冲源INT0P3.2AJMP STAR &J5 ORG 3 ;中断服务

P3.4W2 RL A

T0 MOV P2,A +5V& RETI

STAR: MOV P1,#04H ;第三个数码管亮

MOV A,#01H

中断信号产生电路

MOV P2,A

SETB EA ;置EA=1

SETB EX0 ;允许INT0中断, SETB IT0 ;边缘触发中断 SJMP $

①分析该程序的功能及实验现象

②将该程序烧进单片机、运行,观察执行的现象是否和估计一致

注:每按两次按钮, 产生一次中断,LED点亮有何变化, 叙述程序的执行过程。 .自编程序并通过

① 七个发光二极管(即一个数码管)同时点亮,中断一次 ,七管同时熄灭,每中断一次 ,

变反一次

② 要求同①,每中断一次 ,变反四次

实验程序2 : 记录并显示INT0中断次数(中断次数<16 次)

ORG 0 AJMP NT ORG 0003H

AJMP INT0R

NT: MOV IE,#81H ;允许INT0中断,置EA=1 SETB IT0 ;边沿触发中断 MOV R0,#0 ;计数初值为0

BIOU: MOV P1,#01 ;第一个数码管显示中断次数 MOV DPTR,#TAB0 ;字形码表送DPTR

MOV A,R0

MOVC A,@A+DPTR ;查表 MOV P2,A ;显示 SJMP $ ;结束

INT0R: INC R0 ;中断次数加1

CJNE R0,#10H,RET0 ;中断是否满15次 MOV R0,#0 ;循环

RET0: POP DPH ;弹出断点

17

NB : MOV R1,#0 NA: DJNZ R1,NA DJNZ R3,NB DJNZ R4,DA1 RET

LEDAB: DB 06H,5BH,4FH,66H,6DH,7DH,07H,7fh,6fh,77h,7ch,39h,5eh,79h,71h END

①分析该程序的功能及实验现象

②上机实验,观察的现象是否和估计一致 2、双机通信实验

本实验需要甲、乙两个实验平台,用串行通信电缆线将两个实验平台的9针D型座连接起来(连线见下图):

串行通信电缆

12RXD3TXD45乙实验板1RXD2TXD36789678945甲实验板

双机通信实验连线图

两个实验平台分别执行上面的自发自收通信程序。将看到甲机发送的数据显示在乙机的发光二极管上,乙机发送的数据显示在甲机的发光二极管上。

分析:当两个实验平台中的一个复位时,两个实验板显示不一样,是什么原因。

自编程序并调试通过:

(1)采用通信方式1,波特率为600,甲机交替发送55H、AAH, 乙机接收,并将接收到的数据显示在数码管上。分别编出发送和接收程序,在各自的实验平台分别执行。 (2)采用通信方式1,波特率为1200,甲机交替发送“HELOO” 乙机接收,并将接收到的字符显示在数码管上。分别编出发送和接收程序,在各自的实验平台分别执行。

3、单片机和个人电脑(PC机)的双机通信实验(选做)

用串行通信电缆线将实验平台的9针D型座和PC机的COM1和COM2连接起来(连线见下图):

23

串行通信电缆1RXD2TXD36789678912RXD3TXD45PC机COM1或COM245甲实验板 在PC机上用C 语言或8086的汇编语言编PC机的发送和接收程序,编译后用· EXE存盘,编写单片机的发送和接收程序并烧写进单片机,两边的程序分别运行,即可。 程序示例参照教材《单片微型计算机与接口技术》(李群芳 黄建编著 电子工业出版社出版)8.6 节。

自编程序并调试通过:

PC机键盘上按下的0-9键发送到单片机,并显示在实验板的数码管上,实验板的拨数开关K1-K7的 置数发送到PC机并显示在屏幕上。编写两边的程序并分别运行通过。

4.6 实验6 串行EEPROM实验(选做)

一、实验目的

1、掌握单片机扩展串行EEPROM方法。

2、掌握单片机对I2C串行接口的编程

二、实验连线和程序 1、实验电路及连线

实验电路如下图,用两个短接块将J1的两线连起来(见下图粗黒线)

89C51/5289S51/527串行EEPROM5.1KΩ×2+5V774LS573P2A0A1A24VSSVCCSCL6SDA5WP7J1P1.0P1.5624C041P1.6P1.7~

J1的两个跳线被接通后即可将串行EEPROM 24C04的控制线与单片机的P1.6、P1.7相连接,控制串行EEPROM的读和写。

编程实现将字符写入EEPROM,然后从相应单元读出显示在数码管上。程序参照

24

教材《单片微型计算机与接口技术》(李群芳 黄建编著 电子工业出版社出版)9.4节。

4.7 实验7 串行D/A实验(选做)

TLC5615是一个串行10位DAC芯片,只需要通过3 根串行总线就可以完成10位数据的串行传送,易于和工业标推的微处理器或微控制器(单片机)接口,适用于电池供电的测试仪表、移动电话,也适用于数字失调与增益调整以及工业控制场合。其引脚和时序如下图.

+5V5615的引脚

实验连线见右图,用短接块将J8 连接起来,

用短接块将J5 连到INT 那边,使P3.4和脉冲源断开, 5615的CS 受控于P3.4。

2KΩTLC56158+5V6VDDREFIN OUTDIN2SCLK317接示波器453KΩ

P3.3三、实验程序

下面程序是一个产生方波的程序,对照时序看懂程序,P3.5P3.4运行程序在7引脚的引针上用示波器观察波形。

J8DIN BIT P3.3 ;定义I/O口 SCLK BIT P3.5 CS5615 BIT P3.4 ORG 0

START: SETB CS5615

CLR SCLK ;准备操作TLC5615 CLR CS5615 ;选中TLC5615 MOV R7, #08H

MOV A, #0H ;装入高8位数据

LPH0: LCALL DELAY ;延时 RLC A ;最高位移向5615 MOV DIN, C SETB SCLK ;产生上升沿,移入一位数据 LCALL DELAY CLR SCLK DJNZ R7, LPH0

25

DOUTAGNDCS实验连线

MOV R7, #08H

MOV A, #0 ;装入低8位数据

LPL0: LCALL DELAY ;延时 RLC A ;最高位移向5615 MOV DIN, C SETB SCLK ;产生上升沿,移入一位数据 LCALL DELAY CLR SCLK DJNZ R7, LPL0

SETB CS5615 ;结束移位操作,将转换数据中间10位送入DA寄存器进行, DA转换

ACALL DAY ;延时

CLR SCLK ;准备操作TLC5615 CLR CS5615 ;选中TLC5615 MOV R7, #08H

MOV A, #0FFH ;装入高8位数据

LPHF: LCALL DELAY ;延时 RLC A ;最高位移向5615 MOV DIN, C SETB SCLK ;产生上升沿,移入一位数据 LCALL DELAY CLR SCLK DJNZ R7, LPHF

MOV R7, #08H

MOV A, #0FFH;装入低8位数据

LPLF: LCALL DELAY ;延时 RLC A ;最高位移向5615 MOV DIN, C SETB SCLK ;产生上升沿,移入一位数据 LCALL DELAY CLR SCLK DJNZ R7, LPLF

SETB CS5615 ;结束移位操作,将转换数据中间10位送入DA寄存器进行, AJMP START

自编程使5615 产生锯齿波、矩形波、三角波、正弦波。

实验8 串行A/D实验(选做)

一、实验目的

掌握单片机和串行D/A接口方法及编程方法。

二、实验连线和程序

26

DA转换

实验板上的AD转换器采用了串行8位A/D转换器TLC549

TLC548,TLC549是美国德州仪器公司生产的8位串行A/D换器芯片,可与通用微处理器、控制器通过I/O CLOCK、CS、DATA OUT三线进行串行接口。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17us,TLC548允许的最高转换速率为45500次/s,TLC549为40000次/s。

实验连线

实验连线见右图,用短接块将J4连接起来,TLC549d的CS和P2.7相连,用短接块将J2、J3 连到AD 那边,P1.4和TLC549的时钟端相连、P1.5和TLC549的数据线相连,P1.4和P1.5断开了和数码管4、5的连接。用短接块将J7连接起来,TLC549的模拟输入电压来自于+5V的分压值,如短接块不将J7连接,外界模拟信号可从M点输入。 为方便参照时序编程,TLC549时序重画如下:

1234567812345678~~~~CLKCSD7 D6 D5 D4 D3 D2 D1 D0上次转换的数据~~实验程序:完成图中采集的直流电压的A/D转换编程,并将转换的数字量在第一个和第二个

数码管上显示。程序如下:

P2.0P2.1P2.2P2.3P2.4P2.5P2.6+5VD0D1D2D3D4D5D6GQ0Q1Q2Q3Q4Q5Q6OE74LS57311111P1.0P1.1P1.2P1.3P1.4P1.5ADLEDJ3ADLEDJ2I/O CLKDATA OUTVCCREF+INREF-GNDJ6+5VP2.7J4CSTLC549串行8位A/D1~~模拟输入采样转换模拟输入采样74LS04~~D7 D6 D5 D4 D3 D2 D1 D0本次转换的数据~~

gag

27

P1.7 EQU CS P1.4 EQU DOUT P1.5 EQU IOCLK ORG 0000H AD: SETB DOUT

SETB CS

CLR IOCLK ;时钟为低 CLR CS ;选中549, ACALL READ ;读入采样值

SETB CS ;CS上升缘启动转换 ACALL DELAY ;延时等待转换 CLR CS ;CS变低 ACALL READ ;读入本次转换值 SETB CS

ACALL DISPLAY ;转显示子程序 SJMP AD

READ:MOV C,DOUT ;串行读入数据

RLC A MOV R4, #07H RE0: SETB IOCLK

NOP NOP CLR IOCLK NOP NOP

MOV C,DOUT RLC A DJNZ R4,RE0 SETB IOCLK NOP NOP CLR IOCLK NOP NOP RET

DELAY: MOV R7,#05H ;延时 DELAY1:NOP

NOP

DJNZ R7,DELAY1

28

RET

DISPLAY: MOV P1,#0 ;显示子程序

MOV R2,A

TEST: MOV A,R2

ANL A,#0F0H SWAP A

MOV DPTR,#TAB1

MOV R0,A ;段码偏移 MOV R1,#01 ;位码

NEXT: MOV A,R0

MOVC A,@A+DPTR ;查到段码 MOV P2,A;送出段码 MOV A,R1

MOV P1,A ;送出位码 ;ACALL DAY ;延迟 MOV R6,#70H

DL2: MOV R7,#7DH DL1: NOP

NOP DJNZ R7,DL1 DJNZ R6,DL2

MOV A,R2 ANL A,#0FH

MOV R0,A ;找到下一个要显示的段码 MOV A,R1 ;位码 RL A ;位码左移 MOV R1,A MOV A,R0

MOVC A,@A+DPTR ;查段码 MOV P2,A ;送出段码 MOV A,R1 MOV P1,A MOV R6,#70H

DL22: MOV R7,#7DH DL12: NOP

NOP

DJNZ R7,DL12 DJNZ R6,DL22 RET

29

TAB1: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,087H,0FFH

DB 0E7H,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H ;段码表(段码表的最高位置为零) END

自编程序并调试通过:

(1) 使TLC549 采样的直流电压对应的数字量显示在数码管上。 (2) 使TLC549 采样的直流电压值以毫伏为单位显示在数码管上。

第五章 系统设计选题(课程设计)

1、 制作一个波形发生器,产生单极性幅度可调、周期可调的方波、锯齿波、三角波、正

弦波信号,不同的波形用不同的符号显示在一个LED,用四个LED显示幅值和频率。 2、 题目同上,要求幅值可调、频率可调(可以跳跃式分级调节)。

3、 设计一个电子数字钟,使①具有交替显示年、月、日(有闰年和平年之分)和显示时、分、秒的功能;②具备校正功能;③具备设定闹钟和定时闹钟响功能。

4、 设计一个电子数字钟,除了具备上述功能外,还能准点报时,生日提醒功能。

5、设计一个音盒,拨动实验板上不同键奏不同的乐曲。已知乐谱和频率 可以查相关资料 6、 用串行A/D芯片采集波形,在LED上显示采样的瞬时值、平均值、峰值(用拨键选择显示方式。

7、将采样的数据串行传送到PC机,在PC机屏幕上显示瞬时值、平均值、峰值。 8.题目同上要求在在PC机屏幕上显示波形,要求有坐标、和刻度。

9、利用PC机键盘的21个按键作琴键,按不同键在单片机实验板上响不同音律,并能演 奏乐曲。

10、利用板上的串行D/A、A/D、显示器、开关和PC机,完成波形发生、采集、传送到PC机, 以PC机屏幕显示波形的信号产生、采集、传送、显示系统。

11、制作一个IIC编程器,将磁盘上的数据写入2 4C04在数码管上用不同字母表示读、写、 校验。

12.题目同上,要求在PC的屏幕上显示读、写、校验过程。界面要求美观。

13.作一个五人的抢答器,无人抢答时,五只灯循环跑马亮,谁先按下,哪一个灯亮。同时响 声音。

14、自己创新选题,能充分利用板上资源,(也可加光电感应、红外管等),构成一个综合知

识应用系统。

30

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

Top