51单片机实验指导.docx

上传人:b****5 文档编号:6195171 上传时间:2023-01-04 格式:DOCX 页数:135 大小:1.85MB
下载 相关 举报
51单片机实验指导.docx_第1页
第1页 / 共135页
51单片机实验指导.docx_第2页
第2页 / 共135页
51单片机实验指导.docx_第3页
第3页 / 共135页
51单片机实验指导.docx_第4页
第4页 / 共135页
51单片机实验指导.docx_第5页
第5页 / 共135页
点击查看更多>>
下载资源
资源描述

51单片机实验指导.docx

《51单片机实验指导.docx》由会员分享,可在线阅读,更多相关《51单片机实验指导.docx(135页珍藏版)》请在冰豆网上搜索。

51单片机实验指导.docx

51单片机实验指导

目录

第一章51单片机仿真器使用说明3

§1.151单片机仿真器使用说明3

§1.2仿真器主要功能和特性3

§1.3仿真器的使用4

第二章STC系列单片机下载烧录使用说明16

第三章51系统部分原理和接口说明17

§3.151CPU系统部分的组成17

第四章实验指导18

第一部分软件编程基础实验18

第二部分硬件基础接口应用实验19

实验一单片机I/O口应用实验_P3.3口输入P1口输出19

实验二单片机I/O口应用实验_工业顺序控制21

实验三并行I/O接口8255应用23

实验四简单I/O口扩展实验28

实验五A/D转换实验29

实验六D/A转换实验32

实验七键盘显示控制器8279应用实验36

实验八步进电机控制实验42

实验九小直流电机调速实验44

实验十电子音响实验46

实验十一继电器控制实验47

实验十二数据存贮器扩展实验49

实验十三8031单片机串行口应用实验_双机通信51

实验十四8031串行口应用实验_与PC机通信54

实验十五 串行接口16C550应用实验56

实验十六 串行A/D转换器TLC549应用57

实验十七 串行D/A转换器TLC5615应用59

实验十八 单片机双机通信实验_用RS485总线63

实验十九 USB接口应用实验65

实验二十 16X16LED点阵显示实验66

实验二十一 128X64LCD液晶显示接口实验67

实验二十二数字温度传感器DS18B20的原理与应用实验68

实验二十三 “看门狗”复位实验72

实验二十四I²C总线应用实验74

(一)串行E²PROM的读写实验87

(二)I²C智能卡读写实验91

(三)串行键盘显示接口ZLG7290应用实验100

(四)PCF8563串行实时时钟应用实验109

实验二十五 ISD1730语音录放实验111

实验二十六 串行存储器读写实验117

 

第一章51单片机仿真器使用说明

§1.151单片机仿真器使用说明

系统专配的仿真器是一个支持keilc51设计软件的软件断点仿真器。

该仿真器使用一片SST89C58单片机和一片ATMEG8515单片机来实现仿真功能(主CPU和用户CPU),两片CPU之间通过一根I/O引脚通讯,通讯速率在33兆晶振时约100KBPS,主CPU负责跟keilc51通讯,用户CPU只跟主CPU通讯,仿真器结构框图如下图1-1:

图1-1

§1.2仿真器主要功能和特性

1、支持串口的仿真功能

2、串口和中断用户都可以使用

3、不占用定时器2

4、完全仿真p0,p2口

5、占用用户堆栈2个字节

6、占用1条I/O:

P3.5

7、ISP在线编程,在线下载

8、仿真频率最高33兆

9、同时支持最多10个断点

10、支持单步,断点,全速运行

11、支持汇编和C语言混合编程调试

12、支持KEILC51的IDE开发仿真环境UV1UV2(V5.20V6.02V6.10V6.12V6.14)

13、单步执行时间(60毫秒)

14、程序代码载入(可以重复装载,无需预先擦除用户程序空间)

15、SFR读取速度(128个)200毫秒

16、跟踪记录(tracerecord)256条

17、可以仿真标准的89c51,89c52,89c58等51内核的单片机

§1.3仿真器的使用

§1.3.1随机携带的光盘主要内容介绍

1)子目录KEILC:

KEILC仿真调试软件的安装文件等

2)子目录USB_DRV:

KEILC51仿真器USB接口器件驱动程序

3)子目录串行口调试助手:

调试串行通信程序用的辅助软件

4)STC-ISP-V4.79_SETUP:

STC系列单片机下载烧录软件

5)子目录USB:

实验用USB接口器件CH372驱动程序

6)DVSIO:

PC机上串口发送程序

7)测试程序:

已调试通过的实验例程供用户参考

§1.3.2软件的安装

1)将随机光盘里的内容全部拷贝到电脑中自己建立的目录中

2)运行KEILC目录下的KEILC安装软件up51v623.exe,出现图1-2安装界面。

图1-2

3)点击Next按钮,出现图1-3界面。

图1-3

4)点击Next按钮,出现图1-4界面,使用本软件的协议。

图1-4

5)点击Yes按钮,出现图1-5界面,需要输入注册码。

图1-5

6)打开Keilc/addon/注册码/TXT文件,获取注册码,填入serialNamber框内,将11RI2Z填入FirstName和LastName框内,在E-mail框内随便填入一邮箱地址,最后点击Next按钮。

出现图1-6界面。

图1-6

7)点击Browse,寻找C51addon所在的目录,然后选中,出现图1-7界面。

图1-7

8)点击Next按钮,出现图1-8界面。

图1-8

9)点击Next按钮,出现图1-9界面。

10)

点击Next按钮,出现图1-10界面,去掉“√”项,点击Next按钮,进入安装,等待安装完成。

桌面上会生成Keilc软件图标

 

图1-10

§1.3.3仿真机的连接

1)将随机配备的专用仿真器按标志字符向上的方向插到系统板51CPU仿真区的JFZ位置(40芯双排插针座);

2)用一根USB通信线一头(扁口)连电脑的USB接口,另一头连仿真器的USB接口;

3)打开电源;

4)运行USB_DRV.EXE程序,以安装USB驱动;

4)电脑显示找到新设备,让系统自己找驱动并且安装;

5)安装完成后,到控制面板->系统->硬件->设备管理器->端口里面确认一下USB转串口的COM端口号(建议将COM端口号设置在COM1或COM2上),以备在KEILC软件中做相应的设置。

§1.3.4KeilC软件的使用

1)运行桌面上KeiluVision2软件,出现图1-11界面。

图1-11

2)创建新的工程,点击上图菜单中的project,选择Newproject,自己定义一个工程名,如E:

/DVCC-1,弹出一CPU选择窗,如图1-12。

在左边窗口中先选你要用的器件制造公司,再选型号,假如是89C51,在右边窗口里会显示该芯片的基本参数,最后点击确定,返回主窗口,如图1-13。

图1-12

3)打开刚建的工程DVCC-1:

用鼠标点击菜单的project,选择openproject,在E盘根目录下找到刚建的工程DVCC-1,点框内的+号,显示如图1-14。

图1-13

图1-14

4)选中红框点右键DVCC-1,在弹出菜单里选Addfiletogroupsourcegroup以加载源

文件,弹出图1-15窗口。

如果加载的是汇编语言源文件,文件类型选*.A*,这里选的是MCUIO.ASM。

这个汇编语言源文件必需是已编辑好的。

如果是C语言源文件,文件类型选*.C*。

最后点击Add后关闭窗口返回。

图1-15

5)点图1-14红框内DVCC-1前的+号,显示如图1-16。

图1-16

6)设置KeilC51仿真机的工作参数,选择菜单的Project->OptionforTarget‘Simulator’,如图1-17。

点击OptionforTarget‘Simulator’,如图1-18所示。

图1-17

图1-18

7)在上图中选择debug栏,按图1-19设置。

(1)选UseKeilMonitor-51Driver(位置1),选择硬件仿真(根据实际的硬件仿真器设置)。

如果选UseSimulater,是软件仿真。

(2)LoadApplicationatStart(位置2):

选择这项之后,程序编译好后,keil才会自动装载你的程序代码。

(3)Gotillmain(位置3):

调试c语言程序时可以选择这一项,程序会自动运行到main程序处。

图1-19

8)点击图1-19的Settings(在上图位置4),打开新的窗口TargetSetep,如图1-20。

(1)在CommPortSetting里设置PORT:

设置你的串口号,在“§1.3.3仿真机的连接”中的第五点里确认的串口号。

(2)在CommPortSetting里设置Baudrate:

设置通信波特率为57600,仿真机固定用57600bps波特率跟keilC通讯。

(3)SerialInterrupt:

选中它,设为软件复位,这样对同一工程文件在运行后,发现问题要修改,重新编译运行,就不需要按硬件复位键退出程序的运行。

(4)CacheOptions:

可以选也可以不选,推荐选它,这样仿真机会运行的快一点。

(5)最后点击ok后确定,再关闭TargetSetep设置窗口后返回。

图1-20

9)设置输出文件格式:

选Output项,弹出新窗口,按图1-21设置,完成后按确定。

图1-21

10)返回到前级窗口如图1-22。

按确定退出仿真器参数等的设置。

返回主菜单。

图1-22

11)编译你的程序,选择Project->Rebuildalltargetfiles,进入编译,如图1-23。

如有错误,对源文件修改直到正确为止。

图1-23

12)编译完毕之后,选择Debug->Start/StopDebugSession,就装载程序,如图1-24。

图1-24

13)装载代码之后,在左下角显示如图1-25。

图1-25

如果你已连接仿真器,那左下角第一行应显示ConnectedtoMonitor-51V1.0表示连接到仿真机,仿真机的版本号为1.0,第二行显示Load“E:

\\DVCC-1”,表示代码装载成功。

14)现在可进入仿真调试了,仿真调试命令和其他仿真器类同,详细见光盘里/KeilC/《KeilSoftware–Cx51编译器用户手册中文完整版》(403页).pdf。

注意:

使用我们配置的硬件仿真器,其8X51单片机P3.5口的使用有限制,由于监控系统要使用P3.5来进行通讯,最好不要使用。

如果使用,可能会影响该引脚的状态。

对监控系统是没有影响的,可以用来做输出。

第二章STC系列单片机下载烧录使用说明

在使用USB仿真器调试完实验程序后,脱离仿真器运行自己的实验程序,方法如下:

1)关闭电源,取下仿真器,并将K_V开关拨在OFF位置;

2)在FZ1位置插上在线下载芯片STC89C51;

3)用专用通信线将主板上TX插座(RS232通信插座)和电脑的串口相连,并记住串口号。

以便在下载软件的串口设置中用到。

4)运行STC-ISP-V4.79-NOT-SETUP目录中的STC_ISP_V479.EXE程序,即进入在线下载烧录界面如下图:

5)在Step1/步骤1中选择单片机型号,如STC89C51RC。

6)在Step2/步骤2中选择要烧录的程序,即点击OpenFile/打开文件,显示如下图,左边上面红框里是下载程序的起始地址和校验和,右边程序窗口显示要下载的程序。

 

第三章51系统部分原理和接口说明

§3.151CPU系统部分的组成

51CPU系统部分由仿真接口插座、低位地址锁存器74LS373、地址译码器74LS138、译码

输出Y0-Y7、全部总线(P0口作数据总线D0~D7、P1口、P2口作高位地址总线A8~A15、P3口)引出插孔和排线引出等组成。

实验程序可以在线下载、在线调试。

1、P0、JD1:

P0口引出插座,也是数据线D0-D7引出插座。

2、P1:

P1口引出插座。

3、P2、JA2:

P2口引出插座。

4、P3:

P3口引出插座。

5、JA1:

P0口的数据线经74LS373锁存后的低位地址线引出插座。

 

第四章实验指导

第一部分软件编程基础实验

实验目的:

掌握汇编语言指令和设计、调试方法。

实验一清零实验把7000H~70FFH的内容清零。

源程序CLEAR.ASM,运行程序后用存贮器读写方法检查7000H~70FFH中的内容应全是00H。

实验二拆字实验把7000H的内容拆开,高位送7001H低位,低位送7002H低位。

7001H、7002H高位清零,一般本程序用于把数据送显示缓冲区时用。

源程序CWORD.ASM,运行前先在7000H单元置34H,运行程序后用存贮器读写方法检查7001H~7002H中的内容应为是03H和04H。

实验三拼字实验把7000H、7001H的低位相拼后送入7002H,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。

源程序PWORD.ASM,运行前先在7001H单元置03H,7002H单元置04H,运行程序后用存贮器读写方法检查7002H中的内容应为是34H。

实验四数据传送实验把(R2、R3)源RAM区首址内的(R6、R7)个字节数据,传送到(R4、R5)目的RAM区。

源程序DMVE.ASM。

运行前先在在R2、R3中装入源首址〈例如6000H〉,R4、R5中装入目的地址〈例如7000H〉,R6、R7中装入字节数〈0FFFH〉,并且在源首址〈例如6000H〉中置标志性的数据如55H、AAH等,运行程序后用存贮器读写方法检查7000H开始的内容应和6000H开始的内容一样。

实验五数据排序实验用冒泡法将单片机内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。

源程序DORDE.ASM,运行前先用寄存器读写方法把单片机片内RAM区50H—5AH中放入不等的数据(用寄存器读写方法),运行程序后用寄存器读写方法检查50—5AH中内容应从小到大排列。

实验六无符号双字节快速乘法编程实验将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中。

源程序NCMUL.ASM,运行前先在7000H—7001H中存放无符号整数000AH作为被乘数,7002H—7003H中存放乘数0019H。

运行程序后用存贮器读写方法检查

两个数的乘积7004—7007单元中的内容应为FAH。

 

第二部分硬件基础接口应用实验

实验一单片机I/O口应用实验_P3.3口输入P1口输出

一、实验目的

1、掌握单片机P3口、P1口简单使用。

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

二、实验内容

1、P3.3口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一输出。

2、P1口做输出口,编写程序,使P1口接的8个发光二极管L0—L7按16进制加一的方式点亮发光二极管。

三、实验说明

1、P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:

当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据不正确。

2、延时子程序的延时计算。

对于延时的程序

DELAY:

MOVR6,#00H

DELAY1:

MOVR7,#80H

DJNZR7,$

DJNZR6,DELAY1

查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/6.0MHZ,所以该段指令执行时间为:

(((128+1)×256)+1)×2×(12÷)=132.1ms。

四、实验原理图

图(1-1)

五、实验程序框图

六、实验步骤

1、P3.3用插针连至K1,JU2(P1.0~P1.7)用8芯线连至JL(L0~L7)。

2、调试、运行程序test1中的MCUIO.ASM。

3、开关K1每拨动一次,L0~L7发光二极管按16进制方式加一点亮。

实验二单片机I/O口应用实验_工业顺序控制

一、实验目的

掌握工业顺序控制程序的简单编写和中断的使用。

二、实验预备知识

在工业控制中,像冲压、注塑、轻纺、制瓶等生产过程,都是一些断续生产过程,按某种程序有规律地完成预定的动作,对这类断续生产过程的控制称顺序控制,例:

注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

三、实验内容

8031的P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。

P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为报警声音输出。

四、实验说明

实验中用外部中断0,编中断服务程序的关键是:

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

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

一般中断程序进入时应保护PSW、ACC以及中断程序中使用到的但并非其专用的寄存器,本实验中未涉及。

五、实验接线图

图(2-1)

六、实验程序框图

七、实验步骤

1、P3.4连K1,P3.3连K2,P1.0~P1.6分别连到L0~L6,P1.7连SIN(电子音响驱动控制区),其卧式开关打在音乐上,短路片选择左边为蜂鸣器,右边为喇叭。

2、K1开关拨在上面,K2拨在上面。

3、调试、运行程序test2中的GYSX.ASM。

4、K1拨至下面(低电平),各道工序应正常运行。

5、K2拨至下面(低电平),应有声音报警(人为设置故障)。

6、K2拨至上面(高电平),即排除故障,程序应从刚才报警的那道工序继续执行。

八、思考

修改程序,使每道工序中有多位输出。

实验三并行I/O接口8255应用

一、实验目的

了解8255芯片的结构及编程方法。

二、实验内容

用8255的PA口做输入口,PB口做输出口,控制PA口状态从PB口输出显示。

三、预备知识

1、8255A结构

8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图3-1是8255A的逻辑框图,内部有3个8位I/O端口:

A口、B口、C口;也可以分为各有12位的两组:

A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。

由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。

2、8255A端口地址见表3-1

图3-18255A逻辑框图

3、8255A工作方式

8255A芯片有三种工作方式:

方式0、方式1、方式2。

它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。

方式0:

基本输入/输出

图3-2(a)方式0引脚功能

如图3-2(a)所示。

该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。

需注意的是:

该方式下,只能将C口其中一组的四位全部置为输入或输出。

方式1:

选通输入/输出

 

 

图3-2(b)方式1输入图3-2(c)方式1输出

如图3-2(b)、(c)所示。

该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。

数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。

C口的相应位用于寄存数据传送中所需的状态信号和控制信息。

方式2:

双向输入输出

图3-2(d)方式2双向输入输出

如图3-2(d)所示。

本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。

4、8255A控制字

(1)PC口按位置/复位控制字

如图3-3所示

 

图3-3PC口按位置/复位控制字

(2)8255方式选择控制字

如图3-4所示。

三、实验内容(16号板)

如实验原理图(见附件中实验三)所示,PA口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PA口读入8位开关量送PB口显示。

拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。

编程将PA口设置为方式0输入,PB口设置为方式0输出,其方式控制字应为90H。

 

7

6

5

4

3

2

1

0

PC3~0:

1=输入,0=输出

PB口:

1=输入,0=输出B组

方式选择:

0=方式0,1=方式1

PC7~4:

1=输入,0=输出

PA口:

1=输入,0=输出

方式选择:

00=方式0A组01=方式1

01=方式1

01×=方式2

方式标志:

1=有效

图3-48255方式选择控制字

三、实验说明

通过PA口接8个开关K1~K8,PB口接8个发光二极管,从PA口读入8位开关的状态送PB口显示,拨动K1~K8,PB口上接的8个发光二极管L0~L7对应显示K1~K8的状态。

四、实验接线图

图(3-1)

5、实验程序框图

六、实验步骤

1、8255芯片的PA(PA0~PA7)插座用8芯线连接开关JK(K1~K8)。

2、8255芯片的PB(PB0~PB7)连接发光二极管JL(L0~L7)。

3、8255芯片的片选CS_8255插孔接译码输出Y0。

4、调试、运行程序test3中8255.ASM。

拨动开关,相对应的发光二极管显示其状态。

实验四简单I/O口扩展实验

一、实验目的

学习在单片机系统中扩展简单I/O口的基本方法。

二、实验内容

MCS—51外部扩展空间很大,但数据总线口和控制信号的负载能力是有限的,若需要扩展的芯片较多,则MCS—51总线口负载过重,74LS244是一个输入扩展口,同时也是一个单向驱动器,以减轻总线负担。

74LS273作为同向输出口,控制8个发光二极管的亮灭。

三、实验接线图

图(4-1)

4、实验程序框图

五、实验步骤

1、74LS244的输入端PI0~PI7接JK(K1~K8),74LS273的输出端PO0~PO7接JL(L0~L7),CS_244接Y2,CS_273接Y3。

2、调试、运行程序test4中的IO.ASM。

3、拨动K1~K8,观察L0~L7点亮情况。

实验五A/D转换实验

一、实验目的

1、掌握A/D转换与单片机的接口方法。

2、了解A/D芯片0809转换性能及编程方法。

3、通过实验了解单片机如何进行数据采集。

二、实验内容

利用实验仪上的0809做A/D转换实验,实验仪上的电位器提供模拟量输入。

编制程

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1