单片机实验仪使用手册和实验指导.doc_第1页
单片机实验仪使用手册和实验指导.doc_第2页
单片机实验仪使用手册和实验指导.doc_第3页
单片机实验仪使用手册和实验指导.doc_第4页
单片机实验仪使用手册和实验指导.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验仪使用手册和实验指导单片机实验仪使用手册和实验指导47目录第一章 单片机实验仪说明1一、 概述1二、 单片机板简介1三、 母板简介2第二章Keil C软件使用4第三章AT89S51单片机下载器软件使用11第四章 实验部分13实验一 单片机实验开发系统认识实验13实验二 MCS51单片指令系统及程序设计实验16实验三 数码管显示实验18实验四 外部中断系统应用实验与定时器实验21实验五 44矩阵式键盘识别与LED显示24实验六 A/D转换实验27实验七 D/A转换实验30实验八 综合设计实验一33实验九 综合设计实验二38实验十 综合设计实验三42实验十一 通信扩展实验46附录:单片机实验仪总图48第一章 单片机实验仪说明一、概述单片机实验开发系统是一种多功能、高配置、高品质的MCS-51单片机教学与开发设备。适用于大学本科单片机教学、课程设计和毕业设计。该系统采用模块化设计思想,减小了系统面积,同时增加了可靠性,使得单片机实验开发系统能满足从简单的数字电路实验到复杂的数字系统设计实验,并能一直延伸到综合电子设计等创新性实验项目。该系统采用集成稳压电源供电,使电源系统的稳定性大大提高,同时又具备完备的保护措施。为适应市场上多种单片机器件的应用,该系统采用“母板+单片机板”双层结构,通过更换不同型号单片机板,可实验不同的单片机,适应了各院校不同的教学需求。 二、 单片机板简介 本实验系统因为自带了MCS-51单片机系统,因此没有配置其他单片机板,但可以根据教学需要随时配置。单片机板置于母板的上方,单片机板的电源由母板供给,每一块单片机板上都引出所有I/O接口,可以很方便的完成所有实验。因此使得单片机板可与母板配合形成一个独立的实验系统。1、主要技术参数(1)MSC-51单片机板板上配有ATMEL公司的AT89S51芯片。AT89S51资源:32个I/O口;封装DIP40。AT89S51开发软件:KEIL C51。2、MSC-51单片机结构(1)单片机板中央放置一块可插拔的DIP封装的AT89S51芯片。(2)单片机板左上侧有一个十针插口,用于下载程序。(3)单片机板的四周是所有IO引脚的插孔,旁边标有I0引脚的脚引。(4)单片机板与母板配合使用时,可形成个完整的实验系统。三、 母板简介主要技术参数(1)实验系统电源实验系统内置了集成稳压电源,使整个电源具有短路保护、过流保护功能,提高了实验的稳定性。 主板的左下角为电源总开关,打开电源开关,主板得电工作。(2)RS232接口RS232接口通过MAX232芯片实现与计算机的串行通讯,通过接口引出信号。(3)单片机最小系统单片机最小系统的核心是ATMEL公司的AT89S51单片机,AT89S51右边的按键是复位键,按下时单片机复位,单片机的放两排插孔,分别是:P1.0P1.7,P0.0P1.7,P3.0P3.7, P2.0P2.7,它们可以实现单片机实验和开发。(4)DA转换器DA转换器由DA0832,LM324芯片组成,(8位,05V电压输出),对应的接口序号为:数据信号:D0D7;片选信号:/CS;读有效信号OE。(5)AD转换器AD转换器和 DA转换器相临,主要由ADC0809组成,(8位)对应的接口序号为:模拟输入:IN0-IN7;基准电压:REF+,REF -;读写信号:RD,WR;输出信号:D0D7;检测信号:I0;地址锁存允许:ALE。(6)4*4的行列式键盘由IN0IN3,OUT0OUT3输出。(7)发光二极管显示区8位红色发光二极管,高电平亮,可作为状态指示用。 (8)数码管显示区系统的显示采用8位8段共阳数码管(高电平有效),所对应的接口序号为:段码:a,b,c,d,e,f,g,h;位选:L1,L2,L3,L4,L5,L6,L7,L8。(9)蜂鸣器蜂鸣器(高电平TTL驱动)从其下方对应输入口。(10)数字温度计数字温度计使用DS18B20温度传感器。(11)步进电机与直流电机控制电路第二章Keil C软件使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和 C 语言的程序设计,界面友好,易学易用。下面介绍Keil C51软件的使用方法进入 Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界启动Keil C51时的屏幕进入Keil C51后的编辑界面简单程序的调试学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。1)建立一个新工程单击Project菜单,在弹出的下拉菜单中选中New Project选项2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51如下图所示,然后点击保存. 3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.4)完成上一步骤后,屏幕如下图所示到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项 新建文件后屏幕如下图所示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”按钮。 6)回到编辑界面后,单击“Target 1”前面的“”号,然后在“Source Group 1”上单击右键,弹出如下菜单 然后单击“Add File to Group Source Group 1” 屏幕如下图所示 选中Test.c,然后单击“Add”屏幕好下图所示 注意到“Source Group 1”文件夹中多了一个子项“Text1.c”了吗?子项的多少与所增加的源程序的多少相同 7)现在,请输入如下的C语言源程序: #include /包含文件#include void main(void) /主函数SCON=0x52;TMOD=0x20;TH1=0xf3;TR1=1; /此行及以上3行为PRINTF函数所必须printf(“Hello I am KEIL. n”); /打印程序执行的信息printf(“I will be your friend.n”);while(1); 在输入上述程序时,读者已经看到了事先保存待编辑的文件的好处了吧,即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如下图所示 8)在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Debug”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),屏幕如下所示 9)调试程序:在上图中,单击“Debug”菜单,在下拉菜单中单击“Go”选项,(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Running”选项(或者使用快捷键Esc);再单击“View”菜单,再在下拉菜单中单击“Serial Windows #1”选项,就可以看到程序运行后的结果,其结果如下图所示 至此,我们在Keil C51上做了一个完整工程的全过程。但这只是纯软件的开发过程,如何使用程序下载器看一看程序运行的结果呢?10)单击“Project”菜单,再在下拉菜单中单击“” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载器软件使用。把程序下载到AT89S51单片机中。第三章AT89S51单片机下载器软件使用AT89S51单片机下载器是专门用于下载程序到单片机系统中,该软件使用方便。启动软件之后进入下面的界面(如图3.1所示):图3.1在上图中:1 界面右边为操作状态显示区;2 界面左上为下载芯片选择区,该软件支持多种芯片的程序在线下载,对系统板上的单片机AT89S51是其中一种,软件默认情况下为AT89S51单片机。3 界面左边为在线下载的操作区,它可以提供如下的操作(1) 初始化:启动AT89S51单片机进入ISP下载状态,若启动成功,则状态显示区就会显示如图3.2所示的文字。否则,不成功会有“初始化失败”的字样提示。图3.2(2) 特征字:点击一下检测器件,会读出单片机的芯片的特征字,对于AT89S51单片机的特征字为:1E5106。(3) 擦除器件:是把单片机的内容擦除干净,即单片机内部ROM的内容全为FFH。(4) 写器件:把代码区中的程序代码下载到单片机的内部ROM中。注意在编程之前,要对单片机芯片进行擦除操作。(5) 效验数据:是经过编程之后,对下载到单片机内部ROM中的内容与代码区的内容相比较,若程序下载过程中完全正确,则提示校验正确,否则提示出现错误。那就得需要重新下载程序到ROM中。(6) 自动:提供了从内部ROM从擦除到编程,最后到校验这三个过程。(7) 读器件:从单片机内部ROM中读取内容到代码显示区中。第四章 实验部分实验一 单片机实验开发系统认识实验1.实验任务如图1所示:在P1.0端口上接一个发光二极管D1,使D1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。2.实验设备Keil C单片机程序开发软件。单片机综合实验仪。3.实验原理图图1 原理图与实物图4.统板上硬件连线把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的D1端口上。5.程序设计内容(1) 延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:若系统使用的石英晶体为12MHz,则1个机器周期为1微秒机器周期微秒MOV R6,#202个2D1:MOV R7,#2482个222248498 20DJNZ R7,$2个2248 498=DJNZ R6,D12个22040 10002因此,上面的延时程序时间为10.002ms。由以上可知,当R610、R7248时,延时5ms,R620、R7248时,延时10ms,以此为基本的计时单位。如本实验要求0.2秒200ms,10msR5200ms,则R520,延时子程序如下:DELAY:MOV R5,#20D1:MOV R6,#20D2:MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET(2). 输出控制如图1所示,当P1.0端口输出高电平,即P1.01时,根据发光二极管的单向导电性可知,这时发光二极管D1熄灭;当P1.0端口输出低电平,即P1.00时,发光二极管D1亮;我们可以使用SETBP1.0指令使P1.0端口输出高电平,使用CLRP1.0指令使P1.0端口输出低电平。6.程序框图图27.汇编源程序 ORG 0START:CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP STARTDELAY:MOV R5,#20;延时子程序,延时0.2秒D1:MOV R6,#20D2:MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND8.扩展 跑马灯实验,广告灯的左移右移实验实验二 MCS51单片指令系统及程序设计实验1.实验任务熟悉MCS-51指令系统中的指令,掌握汇编语言基本程序结构的实现方法,理解常用算术运算程序的算法,学习调试程序的技巧。2.实验设备Keil C单片机程序开发软件。3.实验内容和步骤内容:设计并调试一个双字节无符号数乘法子程序。实验程序:功能:双字节无符号数乘法子程序。入口参数:被乘数放在R7(高)和R6(低);乘数放在R5(高)和R4(低);积(片内RAM中的连续4字节)的首地址放在R0中。设计思路:图2.1 双字节无符号乘法示意图积R6 R4BAR5R4R6 R5R7 R5R7 R4+低字节高字节R7R6BABABAM1M0M3M2由于MCS-51指令集中只有单字节无符号数乘法指令,因此需要将双字节无符号数相乘变换成4次单字节无符号数相乘,才能利用乘法指令实现双字节无符号数乘法计算。变换方法如图2.1所示。MCS-51指令集中乘法指令的结果是固定存放在A和B中的,因此每次乘法操作后都须将结果保存在积中。所以应首先将积的初值置0且在每次乘法指令结束后需要进行2次加操作,分别将A和B加到积的对应位置(注意:在两次加法之间要考虑进位)。步骤:1) 在Keil C中创建一个新工程,新工程保存为S: STUDY Kiel Ex02Ex02.uv2,然后选择单片机型号为Generic中的8051。2) 设置工程选项(操作:鼠标点击选中Project Window中的Target 1,然后选择ProjectOption for Target Target 1)。将工程选项设置如下:Target:Xtal= 12 MHzDebug:Use Simulator3) 创建新文件并输入编写的实验程序,然后保存在与工程相同的文件夹中(文件名为Ex02_1 . ASM),最后将其加入到工程中并编译。4) 重复任意设定乘数与被乘数,调试运行,检查结果,确认程序的正确性(若错误,则修改直至正确)。5) 选做 编写另一子程序,通过调用该双字节无符号数乘法子程序实现双字节有符号数乘法(子程序名为_nMUL,文件名为Ex02_2 . ASM)。实验三 数码管显示实验1.实验任务(1).实现一位数码管从0到9的循环显示;(2).采用动态扫描方式显示“12345678”;2.实验设备Keil C单片机程序开发软件。单片机综合实验仪。3.实验原理图图1 数码管原理图与实物图4.统板上硬件连线任务1:把“单片机系统”区域中的PX.0PX.7端口用8芯排线连接到“数码管显示模块”的“duanxuan”,用PY.0接到“数码管显示模块”的“weixuan”(任选一位均可)。任务2:把“单片机系统”区域中的PX.0PX.7端口用8芯排线连接到“数码管显示模块”的“duanxuan”,用PY.0PY.7接到“数码管显示模块”的“weixuan”。5.程序设计内容(1). LED数码显示原理七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型(该试验仪采用的是共阳数码管)。LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阳极的字形码见表1表1 段码表(2). 动态扫描原理:对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8 位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。(3). 任务1:采用查表的方式对09的方式进行显示 任务2:采用动态扫描的原理显示“12345678”,仍采用查表方式显示实验四 外部中断系统应用实验与定时器实验1实验任务1.采用外部中断技术,使得发光二极管在按键时每隔一次点亮。2.采用内部定时器实现中断,使得发光二极管每隔一秒点亮一次。2实验设备Keil C单片机程序开发软件。单片机综合实验仪。3实验原理图图1 最小系统、中断、发光二极管原理图与实物图4统板上硬件连线把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的D1端口上;5实验说明外部中断实验:1.外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断触发方式设置。中断触发方式设置一般有两种方式:电平触发方式和脉冲(边沿)触发方式,本实验选用后者,其前一次为高电平后一次为低电平时为有效中断请求。因此高电平状态和低电平状态至少维持一个周期,中断请求信号由引脚INT0(P3.2)和INT1(P3.3)引入,本实验由INT0(P3.2)引入。2.中断服务的关键:a、保护进入中断时的状态。堆栈有保护断点和保护现场的功能使用PUSH指令,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。b、必须在中断服务程序中设定是否允许中断重入,即设置EX0位。c、用POP指令恢复中断时的现场。3.中断控制原理:中断控制是提供给用户使用的中断控制手段。实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。4.中断响应的过程:首先中断采样然后中断查询最后中断响应。采样是中断处理的第一步,对于本实验的脉冲方式的中断请求,若在两个相邻周期采样先高电平后低电平则中断请求有效,IE0或IE1置“1”;否则继续为“0”。所谓查询就是由CPU测试TCON和SCON中各标志位的状态以确定有没有中断请求发生以及是那一个中断请求。中断响应就是对中断请求的接受,是在中断查询之后进行的,当查询到有效的中断请求后就响应一次中断。INT0端接按键开关,P1.0接LED灯,以查看信号反转。定时器实验: 关于内部计数器的编程主要是定时常数(初值)的设置和有关控制寄存器的设置。内部计数器在单片机中主要有定时器和计数器两个功能。本实验使用的是定时器,定时为一秒钟。CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,本程序工作于方式1,即16位方式定时器, 定时器50mS中断一次, 所以定时常数的设置可按以下方法计算:机器周期=1212MHz=1uS定时常数(初值)=65536-50mS/1uS=15536=3CB0H。然后对50mS中断次数计数20次,就是1秒钟。在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。6程序设计内容(1).外部中断实验:连续按动单次脉冲产生电路的按键,发光二极管每按一次状态取反,即隔一次点亮。(2).定时器实验:使P1.0所接发光二极管隔一秒点亮一次,点亮时间为一秒。实验五 44矩阵式键盘识别与LED显示1.实验任务如图1所示,用AT89S51的并行口PX接44矩阵键盘,以PX.0PX.3作输入线,以PX.4PX.7作输出线;在数码管上显示每个按键的“0F”序号。对应的按键的序号排列如图1所示048C159D26AE37BF图1 键值排列2.实验设备Keil C单片机程序开发软件。单片机综合实验仪。3.实验原理图s1PWs2PWs3PWs4PWs5PWs6PWs7PWs8PWs9PWs10PWs11PWs12PWs13PWs14PWs15PWs16PW12345678JPX8 HEADERIN3IN2IN1IN0VCCOUT0OUT1OUT2OUT3R11KR21KR31KR41k图2 按键、4位数码管显示原理图与实物图4.统板上硬件连线(1) 把“单片机系统“区域中的PX.0PX.7端口用8芯排线连接到“4X4行列式键盘”区域中的IN0IN3与OUT0OUT3端口上;(2) 把“单片机系统”区域中的PY.0PY.7端口用8芯排线连接到“数码管显示模块”的“duanxuan”,用PZ.0接到“数码管显示模块”的“weixuan”(任选一位均可)5.程序设计内容(1). 检测当前是否有键被按下。检测的方法是 PX.4-PX.7 输出全“ 0 ”, 读取 PX.0-PX.3 的状态,若 PX.0-PX.3 为全“ 1 ”,则无键闭合, 否则有键闭合。(2). 去除键抖动。当检测到有键按下后,延时一段时间再做下一步的检测判断。(3). 若有键被按下,应识别出是哪一个键闭合。方法是对键盘的行线进行 扫 描。PX.4-PX.7 按下述 4 种组合依次输出:PX.7:1 1 1 0PX.6:1 1 0 1PX.5:1 0 1 1PX.4:0 1 1 1在每组行输出时读取 PX.0-PX.3 ,若全为“ 1 ”,则表示为“ 0 ”这一行没有键闭合,否则有键闭合。由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值(4). 为了保证键每闭合一次 CPU 仅作一次处理,必须去除键释放时的抖动。实验六 A/D转换实验1实验任务如下图所示,从ADC0809的通道IN0输入05V之间的模拟量,通过ADC0809转换成数字量在数码管上以十进制形成显示出来。ADC0809的VREF接5V电压。2实验设备Keil C单片机程序开发软件。单片机综合实验仪。3基本知识ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。(1) ADC0809的内部逻辑结构8路模拟量开关8路A/D转换器三态输出锁存器地址锁存与译码器IN0IN1IN2IN3IN4IN5IN6IN7ABCALEVREF(+)VREF(-)OEEOCD0D1D2D3D4D5D6D7CLKST由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。(2) 引脚结构IN0IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。4ADC0809应用说明(1) ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。(2) 初始化时,使ST和OE信号全为低电平。(3) 送要转换的哪一通道的地址到A,B,C端口上。(4) 在ST端给出一个至少有100ns宽的正脉冲信号。(5) 是否转换完毕,我们根据EOC信号来判断。(6) 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。5实验原理图图1 AD部分、按键的原理图与实物图6统板上硬件连线(1) 把AT89S51的P0.0到P0.6端口用导线顺次连接到“显示模块”区域中的“duanxuan”插针的a到g上,P3.7端口接在“duanxuan”插针的dp上,P2.0到P2.3接在“weixuan”插针的前四个或后四个均可。(2) 把ADC0809的ST、ALE端口连接AT89S51的P3.0端口,CLOCK端口连接到AT89S51的P3.3端口,A、B、C连接AT89S51的P2.4、P2.5、P2.6端口上。(3) 把ADC0809的2-7到2-0端口顺次接在AT89S51的P1.0到P1.7端口上。(4) ADC0809的电源ref用“Power”处的跳线帽控制。7程序设计内容(1) 进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。(2) 进行A/D转换之前,要启动转换的方法:ABC000选择第一通道,ST0,ST1,ST0产生启动转换的正脉冲信号实验七 D/A转换实验1实验任务将输入的八路数字量转换成一路模拟量输出。如图4所示,将得到的八位数字量输入到DAC0832的D10D17端口,通过DAC0832转换成电流经过Iout2、Iout1输出,再通过LM324转换成电压输出,这样就得到了期望的模拟量。2实验设备Keil C单片机程序开发软件。单片机综合实验仪。数字万用表3实验原理图图1 D/A转换实验原理图与实物图4统板上硬件连线D/A转换的八位数字量可由AT89C51的P1口提供。P1口通过IN与DAC0832的DI0DI7相连,转换成电流后经过Iout2、Iout1输出,再经过LM324转换成电压输出。5实验说明DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引脚排列如图2所示,DAC0832各引脚功能说明:DI0DI7:转换数据输入端。CS:片选信号输入端,低电平有效。ILE:数据锁存允许信号输入端,高电平有效。WR1:第一写信号输入端,低电平有效,Xfer:数据传送控制信号输入端低电平有效。WR2:第二写信号输入端,低电平有效。 Iout1:电流输出1端,当数据全为1时,输 出电流最大;当数据全为0时,输出电流最小。Iout2:电流输出2端。DAC0832具有:Iout1+Iout2=常数的特性。图2、DAC0832引脚图Rfb:反馈电阻端。Vref:基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V+10V。VCC和GND:芯片的电源端和地端。DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到89C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。三种工作方式区别是:直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通。 LM324为四运放集成电路,采用14脚双列直插塑料封装。,内部有四个运算放大器,有相位补偿电路。电路功耗很小,LM324工作电压范围宽,可用正电源330V,或正负双电源15V15V工作。它的输入电压可低到地电位,而输出电压范围为OVcc。它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互单独。每一组运算放大器可用如图所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的相位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。LM324引脚排列如图3所示,原理图如图4所示。由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等特点,因此他被非常广泛的应用在各种电路中。 图3 LM324引脚图图4 LM324原理图6程序设计内容将P1口的数值转化成模拟电压值,用数字万用表在LM324的输出脚测量出来,与P1口的输入值比较,看是否转化成功7注意事项 如图1所示,DAC0832的参考电压Vref为负值时,转换成的模拟量Vo为正;Vref为正值时,转换成的模拟量Vo为负。LM324,所需电压的绝对值必须大于等于7V,否则转换得到的模拟量误差较大。实验八 综合设计实验一 温度的采集、显示、报警1.实验任务 根据实验仪提供的资源,设计一个温度采集、显示、超温报警(超温值可设置)的电路。用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在20度到100度之间,用LED数码管显示出来。再利用蜂鸣器对超温实现报警并且实现超温值设置。2.DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 (1)、DS18B20产品的特点 、只要求一个端口即可实现通信。 、在DS18B20中的每个器件上都有独一无二的序列号。 、实际应用中不需要外部任何元器件即可实现测温。 、测量温度范围在55。C到125。C之间。 、数字温度计的分辨率用户可以从9位到12位选择。 、内部有温度上、下限告警设置。 (2)、DS18B20的引脚介绍 TO92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。 (底视图)图1 表1DS18B20详细引脚功能描述 序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(3) DS18B20的使用方法 由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 3.电路原理图图1 8位LED数码管电路图2温度采集电路图3 蜂鸣器电路图4 中断电路4.系统板上硬件连线(1) 把“单片机系统”区域中合理利用其中的一个IO口对图2data out端的数据进行读取。(2) 把“单片机系统”区域中合理利用其中的一个IO口对图3蜂鸣器进行操作。(3) 按照前几次的实验结合本次实验正确连接图7.2.1 LED数码管。5.程序设计内容(4) 开关状态的检测过程通过连线的IO口对温度芯片进行操作其中包括芯片初始化和读写操作,对读出两个字温度进行数据转换,然后调用显示子程序把温度数据显示出来。(5) 超温报警和超温温度可调在(1)中转换后的数据进行超温判断,如果此温度值大于超温值就操作蜂鸣器发出报警,同时为了简洁利用图7.2.4中的两个中断对超温值进行调节设置。实验九 综合设计实验二步进/直流电机控制1 实验任务 (1) 步进电机的控制该电路为L297和L298组合的固定斩波频率的PWM恒流斩波驱动电路,适用于两相双极性步进电机。利用单片机控制步进电机,编写程序输出脉冲序列到步进电机专用控制芯片L297的CLOCK端,以此来驱动步进电机转动,通过时钟输入端CLOCK调节脉冲宽度来控制步进电机加速、减速,方向控制端CW/CCW控制步进电机正、反转。步进电机的转速应由慢到快逐步加速,并且脉冲频率的速度不能大于电机的反应速度,否则步进电机将会出现失步现象。(2)直流电机的控制 采用定时器做为脉宽控制的定时方式,单片机控制口一端置低电平,另一端输出PWM信号,电机转速的调节通过软件编程改变PWM的占空比来实现,电机正反转则通过两口的输出切换实现,输入信号端IN1接高电平,输入端IN2接低电平时电机正转。(反之,如果信号端IN1接低电平,IN2接高电平,电机反转)。如果无须调速可将两引脚接5V,电机将工作在最高速状态。2 电机驱动芯片介绍L297是意大利SGS半导体公司生产的步进电机专用控制器,它能产生4相控制信号,可用于单片机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式控制步进电机。芯片内的PWM斩波器电路可在开关模式下调节步进电机绕组中的电流。L298N是ST公司生产的一种高电压、大电流电机驱动芯片。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电机和步进电机;采用标准逻辑电平信号控

温馨提示

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

评论

0/150

提交评论