首页 MCS51单片机实验指导书

MCS51单片机实验指导书

举报
开通vip

MCS51单片机实验指导书MCS-51单片机实验指导书 MCS-51单片机实验指导书 成 都 理 工 大 学 2008年3月 引 言 单片机技术的出现给现代测控领域带来了一次新的技术革命。目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。 通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 本实验仪可以实现的实验内容: (1)单片机开发软件及仿真器的使...

MCS51单片机实验指导书
MCS-51单片机实验指导书 MCS-51单片机实验指导书 成 都 理 工 大 学 2008年3月 引 言 单片机技术的出现给现代测控领域带来了一次新的技术革命。目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。 通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。 本实验仪可以实现的实验内容: (1)单片机开发软件及仿真器的使用----Keil 7.2学习 (2)I/O口实验(交通灯实验,温度传感器,蜂鸣器、I2C) (3)定时器实验(流水灯、交通灯、数码管等) (4)总线实验(流水灯LED、外部RAM) (5)系统扩展(包括:LCD、ADC、DAC、RAM等) (6)通信实验(RS232与计算机之间的串口实验) (7)传感器实验(1-Wire温度实验) (8)键盘实验(扫描接口) (9)电机实验(四相六线式步进电机) (10)时钟实验(RTC—PCF8563) (11)软件实验(多个数求和、排序等) (12)中断实验(外部中断、定时器、UART) 目 录 TOC \o "1-2" \h \z 引 言 2 实验一 单片机集成开发环境应用 4 一 实验目的 4 二 实验内容 4 三 实验步骤 9 实验二 单片机最小系统结构 10 一 实验目的 10 二 实验内容 10 三 实验步骤 17 实验三 单片机I/O口实验 18 一 实验目的 18 二 实验内容 18 三 实验步骤 21 实验四 定时器中断 21 一 实验目的 21 二 实验内容 21 三 实验步骤 26 实验五 系统外设扩展 27 一 实验目的 27 二 实验内容 27 三 实验步骤 34 实验六 通信实验 35 一 实验目的 35 二 实验内容 35 三 实验步骤 39 实验七 键盘实验 40 一 实验目的 40 二 实验内容 40 三 实验步骤 43 实验八 电机实验 44 一 实验目的 44 二 实验内容 44 三 实验步骤 46 实验一 单片机集成开发环境应用 一 实验目的 1.​ 熟悉单片机集成开发软件(Keil); 2.​ 掌握单片机仿真器的使用。 二 实验内容 1、集成开发环境Keil介绍及开发 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 KEIL uVISION2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM(产品全生命周期管理),汇编和C语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。 安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。 首先当然是运行KEIL51软件。运行几秒后,出现如图1-1的屏幕。 图1-1 启动时的屏幕 2、接着按下面的步骤建立您的第一个项目: (1)点击Project 菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 Windows 文件对话窗口,如图1-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows 文件规则的文件名都行。“保存”后的文件扩展名为uv2,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。 图1-2 New Project菜单 图1-3 文件窗口 (2)选择所要的单片机,这里我们选择常用的Ateml 公司的AT89C51。此时屏幕如图1-4 所示。AT89C51 有什么功能、特点呢?请看图中右边有简单的介绍,是英文的。稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。 图1-4 选取芯片 (3)首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图1-5 中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单File-New 或快捷键CTRL+N 来实现。 图1-5 新建文件 (4)点击图1-5 中的3 保存新建的程序,也可以用菜单File-Save 或快捷键CTRL+S进行保存。因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL 的C语法检查生效了。如图1-6 鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们选“ Add File to Group ‘Source Group 1’”弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。 图1-6 把文件加入到项目文件组中 (5)C 程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX 文件。 图中1、2、3都是编译按钮,不同是1 是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5是菜单中的它们,我个人就不习惯用它了。嘿嘿,这个项目只有一个文件,您按1.2.3中的一个都可以编译。在4 中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。6 是有一个小放大镜的按钮,这就是开启\关闭调试模式的按钮,它也存在于菜单Debug-Start\Stop Debug Session,快捷键为Ctrl+F5。 图1-7 编译程序 (6)进入调试模式,软件窗口样式大致如图1-8 所示。图中1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。 图1-8 调试运行程序 三 实验步骤 依照实验内容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。仿真调试分为两种:软件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。 本实验仪提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的内部flash,重复此部分内容,直到熟练掌握开发环境的使用。 实验二 单片机最小系统结构 一 实验目的 通过本次实验,使大家了解到有MCS-51单片机构成的最小系统的结构和组成,即:本实验仪上的核心板最小系统。 二 实验内容 1、实现Keil和最小系统的联机调试。 打开Keil软件,新建工程,新建一个程序,用C语言或汇编语言,并添加入新建的工程当中。调试可以使用,单步、宏单步、断点调试和全速运行等方式,当程序下载到单片机内部flash后,程序会自动执行。 2、认识MCS-51单片机的时序。 MCS-51访问外部储存器的读写时序图别如下所示。与单片机相连接的外设必须满足此时序才能正确的进行访问。对于51单片机而言,数据和低8位地址是分时复用的,有P0口输出。访问外设时,前半周期输出低8位地址,随后输出数据,并且在地址有效时,单片机发出读/写信号,把数据读进单片机或输出(写)到外设。 图2-1 外部数据存储器读时序 图2-2 外部数据存储器写时序 3、了解MCS-51单片机的最小系统组成,最小系统原理图分为MCS-51单片机的核心电路、RAM扩展电路和译码电路,分别如下所示。 MCS-51单片机的核心电路图主要包括了:复位电路、振荡电路、电源指示灯、51单片机和ISP(In System Programmable)在系统可编程电路。 图2-4 MCS-51单片机引脚 图2-5 单片机复位及振荡电路 RAM扩展电路包括了一块用于锁存的8位锁存器74HC573和64Kbit的SRAM(6264)。 图2-6 RAM扩展电路 译码电路电路由四二入与非门74HC03和3/8线译码器组成,主要是完成对外部设备访问时,满足相应的时序要求。 图2-7 MCS-51核心板译码电路 4、熟悉MCS-51核心板资源分配图。 核心板上的资源定义为:核心器件(如:单片机)的多有引脚及地址和数据线。单片机有四个端口,共32个I/O口,其中,P0口和数据D0--D7时分时复用的;地址线共16条,可以访问64Kbyte的空间;P1口全部引出;由于P3口通常做为第二功能使用,所以图中以它的第二功能画出,分别为:RXD、TXD(通用串行接口)、T0、T1(定时器外部计数)、INT0、INT1(外部中断口)、WR、RD(系统读写口)。 图2-8 核心板资源接口 核心板是从系统主板上取电,从而提供给系统主板上其他的电路部分,即:系统中的VCC,是由系统核心板提供。由JP2的第1-4脚(5V)和第5-8脚(GND)给核心板提供电能的。 5、程序设计(1):已知内存单元有16个二进制无符号数,分别存放在30H~3FH中,试求它们的累加和,并将其和数存放在R4、R5中。 编程说明:存放16个二进制无符号数的首地址为30H,此循环程序的循环次数为16次,和数放在R4、R5中。 图2-9 程序流程图 程序示例: START: MOV R0 ,#30H MOV R2 , #10H MOV R4 , #00H MOV R5 , #00H LOOP: MOV A , R5 ADD A , @R0 MOV R5 , A MOV A , #00H ADDC A , R4 MOV R4 , A INC R0 DJNZ R2 , LOOP END 程序设计(2): 将内部数据存贮器30H~4FH单元中的内容传送至外部数据存贮器2000H开始的单元中。 编程说明: 内部数据区首址: R0←30H 外部数据区首址: DPTR←2000H 循环次数: R2←32H 图2-10 流程图 程序示例: START: MOV R0 , #30H MOV DPTR , #2000H MOV R2 , #32H LOOP: MOV A , @R0 MOVX @DPTR , A INC R0 INC DPTR DJNZ R2 , LOOP END 三 实验步骤 1、自行分析实验内容中的单片机系统的时序图,并思考如何在系统中配合译码电路实现对外设的访问,这和后续的所有实验课程有很大的联系,主板上的大部分外设都是通过总线的方式来访问的,所以必须掌握单片机的时序,并且学会分析和设计。 2、分析最小系统的四要素,即:振荡电路、复位电路和单片机的电源去耦和滤波电路、EA引脚(在不需要访问外部存储器时,应该接高电平),系统上电时检测这四点,如果正常,则单片机就会正常工作,可以在系统工作时测试这几点。 3、了解核心板的资源是如何分配的,熟练的掌握这些资源的分配可以为以后的实验打好基础。 实验三 单片机I/O口实验 一 实验目的 1、熟悉单片机I/O口的特点; 2、掌握单片机I/O口的编程。 二 实验内容 1、单片机32条I/O口线的功能,由于P0口在访问外设时做为地址(低8位地址)/数据分时复用,P2口作为16位地址线的高8位地址线,P3口通常是使用它的第二功能,所以I/O实验主要集中在P1口上。其中P1.4、P1.5、P1.6、P1.7这四条I/O引脚作为步进电机的控制引脚;P1.0、P1.1这两条I/O引脚作为访问I2C总线的SDA(串行数据)、SCL(串行时钟)引脚。P1.3引脚用来作为1-Wire温度传感器DS18B20,P1.2蜂鸣器的控制引脚 图3-1 P0端口的一位结构 2、DS18B20最突出的特点是它是1-Wire接口器件,下图是系统主板上DS18B20的电路图。R14是4.7K的上拉电阻,这是1-Wire接口的特点,且通常上拉电阻为4.7K。DS18B20是三条引脚封装,如图可以看出,1脚为地,2脚为数据,3脚为电源。 图3-2 DS18B20电路 3、P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管V2,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。 由图3-2可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入l。具有这种操作特点的输入/输出端口,称为准双向I/O口。8031单片机的P1、P2、P3都是准双向口。P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需先写入l后再作读操作。 图3-3 P1端口的一位结构 4、由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点。这主要表现在输出功能上,当切换开关MUX向左时,从内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上。当MUX向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。 图3-4 P2端口的一位结构 由于8051系列单片机在变量较多时须外接数据存储器(通常为SRAM)才能构成应用电路,而P2端口就是用来周期性地输出从外存中访问的地址(高8位地址),因此,P2端口的切换开关MUX总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此P2端口是动态的I/O端口。输出数据虽被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不过是外部RAM的高8位地址。 5、由图可见,P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁存器和场效应管输入/输出,其作用与P1端口作用相同,也是静态准双向I/O端口。当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口。 图3-5 P3端口的一位结构 6、程序设计: P1口编写交通灯程序,调试时连接JP3的8个跳线。 ORG 0000H AJMP MAIN MAIN: MOV A,#0FEH ;送数据初值 MOV P1,A ;数据送P1口点亮发光二极管 ACALL DELAY ;延时 MOV R3,#07H ;设置左移7次 LOOP: RL A ;左移一位 MOV P1,A ;数据送P1口点亮发光二极管 ACALL DELAY ;延时 DJNZ R3,LOOP ;R3是否为0,不为0转LOOP继续执行 AJMP MAIN ;返回主程循环执 DELAY: MOV R7,#255 ;延时子程序 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET ;子程序返回 END ;程序结束 三 实验步骤 1、根据上述实验步骤,进行I/O编程,了解MCS-51单片机各端口的特性,并掌握编程的要点。 2、实现交通灯实验:使用P1口,编写软件延时,实习交通灯实验程序。 3、根据DS18B20的例子,对温度值进行分析,可以参考DS18B20的手册。 4、试根据蜂鸣器的例子,试分析用单片机进行音乐演奏时,须注意的事项,如何把一首曲子,变成单片机能演奏的曲子,编码是如何进行的,节拍和频率如何控制。 实验四 定时器中断 一 实验目的 1、熟悉单片机中断的概念; 2、熟悉单片机内部定时器的硬件结构; 3、掌握单片机定时器的编程; 4、掌握单片机的时序及锁存器的使用; 5、掌握用定时器实现交通灯和流水灯显示。 二 实验内容 1、对于单片机而言,常用的输出设备有:显示器、指示灯、微型打印机等。输入/输出设备之间交换信息,有三种信息形式:数据信息、控制信息和状态信息。输入/输出设备与MCU的连接是与其外设相连接,并不直接相连,而是通过接口电路进行连接。它们的连接关系如下图所示。 图4-1 MCU与外设的连接 2、所谓中断,是指CPU正在处理某些事务的时候,外部又发生了某一事件,请求CPU及时处理。于是,CPU暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。这样的过程,称为中断。下图分别为中断方式流程和嵌套流程。 图4-2 中断方式流程 图4-3 中断嵌套流程 3、单片机共有5个中断源,两个优先级,并可以实现两级中断嵌套。下图为单片机中断系统结构图。 图4-4 中断系统结构 MCS-51单片机响应中断有四个条件: 一、中断源有请求; 二、寄存器IE的总允许位EA=1,且IE相应的中断允许位为1; 三、无同级或高级中断正在服务; 四、现行指令执行完最后一个机器周期。 4、单片机有两个16位的硬件定时器/计数器,分别称为Timer0和Timer1。每个定时器都有四种工作方式,称为方式0、方式1、方式2和方式3。工作方式有软件控制。其结构图如下。 图4-5 定时器/计数器结构 单片机的定时器/计数器都统称为定时器,是为定时器是对机器周期进行计数,而计数器是对外部的脉冲进行计数。通常情况下,都称为定时器。 定时器的四种工作方式是由软件来控制的,如下表所示,定时器工作方式寄存器TMOD中的M0、M1两为决定了它的工作方式。 表4-1 定时器的四种工作方式 M1 M0 工作方式 说 明 0 0 方式0 13位计数器 0 1 方式1 16位计数器 1 0 方式2 自动再装入8位计数器 1 1 方式3 定时器0:分为两个8位计数器 定时器1:对外部停止计数 5、使用单片机的定时器T0产生100ms的定时信号,使实验仪主板上的流水灯(8只红色发光二极管)依次发光,并循环。 设此时系统的时钟频率为6MHz,再根据它来决定定时器T0的初始值。由于时钟频率为6MHZ,所以,机器周期为2µs。初始值计算有以下公式的出,t=(216-T0初值)×机器周期,就可以计算出初始值,公式是依据定时器的工作原理的出的,51单片机的定时器是加法计数的,即由有一个数开始,每一个机器周期加一,直至溢出。 6、实验主板上的8只红色发光二极管的亮/灭是由8位锁存器74HC573进行锁存。电路如下图。 图4-6 流水灯电路 由图可以看出,锁存器是挂在系统总线上的,有外部地址进行统一编址,是外部地址64K地址空间的一部分。74HC573的锁存信号有译码电路产生,又因为573在控制端C引脚为高电平时,数据通道打开,从高变到低时,数据被锁存,所以,C端门控信号是由74HC138译码器的输出端在加一个反相器得到的。 程序设计:由系统总线扩展IO口,实现流水灯的程序设计。 示例一:用软件延时实现流水灯的延时。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#2000H MOV @R0,#0FEH MOV A,@R0 MOVX @DPTR,A ACALL DELAY ;延时 MOV R3,#07H ;设置左移7次 LOOP: RL A ;左移一位 MOVX @DPTR,A ACALL DELAY ;延时 DJNZ R3,LOOP ;R3是否为0,不为0转LOOP继续执行 AJMP MAIN ;返回主程循环执 DELAY: MOV R7,#255 ;延时子程序 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET ;子程序返回 END ;程序结束 示例二:给出定时器的中断服务程序,同学可以进行修改,形成由中断完成的流水灯程序设计。 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME MAIN: MOV TH0,#0D8H MOV TL0,#0A0H MOV TMOD,#01H;定时器工作方式1 SETB ET0 ;开定时中断 SETB EA ;开总中断 SETB TR0;定时器开始计时 TIME: MOV TH0,#0D8H MOV TL0,#0A0H RETI 三 实验步骤 1、首先用软件延时的方法,实现流水灯实验; 2、用定时器设计流水灯实验,让流水灯依次点亮或熄灭,并掌握外部扩展时地址的分配(扩展外部IO,使用锁存器)。 实验五 系统外设扩展 一 实验目的 1、熟悉单片机系统总线结构; 2、熟悉系统扩展的方法; 3、熟悉t6963控制器LCD的编程时序; 4、了解模数转换器ADC0809、数模转换器AD0832的特点; 5、了解核心板数据存储器SRAM6264的特点; 6、掌握系统扩展的方法及LCD和ADC、DAC及RAM的编程方法。 二 实验内容 1、通过上一节的实验,对单片机的总线有了定性的认识,对时序也有了一定的了解。本次实验,主要是应用总线来实现对系统外设的扩展,扩展是必须由总线来完成对外设的控制。 2、单片机系统的扩展主要有两种:译码法和线选法。译码法:使用专用译码电路(本系统采用74HC138译码器,实现译码),把外部地址空间分为8部分,每一部分8K寻址空间。线选法:使用单片机没有使用完的高位地址线,如:A15、A14、A13等,实现对外部设备的片选。在两种方法中,译码法可以寻址较多的外设,而线选法能够进行扩展的外设比较有限,所以通常采用译码法。 3、由t6963作为控制器的LCD非常常见,使用非常广泛,所以系统中就使用了基于该控制器的240*128点阵的LCD。 图5-1 t6963操作时序图 表5-1 指令一览表 使用任何一种类型的LCD都需要对其指令进行学习,这样有利于编程。表5-1是t6963的操作指令表,主要分为写指令和写数据,以及读状态。 LCD接口电路图如下,可变电阻是由LCD自己提供的负压调整用,可以调整LCD的对比度。 图5-2 LCD接口 4、模数转换器及数模转换器 A/D和D/A转换器是把微型计算机的应用领域扩展到检测和过程控制的必要装置,是把计算机和生产过程、科学实验过程联系起来的重要桥梁。下图给出了A/D、D/A转换器在微机检测和控制系统中的应用实例框图。 图5-3 AD/DA控制系统框图 D/A转换器的功能是把二进制数字量电信号转换为与其数值成正比的模拟量电信号。在D/A 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 中一个最重要的参数就是分辨率,它是指输人数字量发生单位数码变化时,所对应输出模拟量(电压或电流)的变化量。实现D/A转换器和微型计算机接口技术的关键是数据锁存问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。 ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1)ADC0809的内部逻辑结构    由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 (2)ADC0809引脚结构 ADC0809各脚功能如下: D7-D0:8位数字 量输出引脚。 IN0-IN7:8位模拟量输入引脚。 VCC:+5V工作电压。 GND:地。 REF(+):参考电压正端。 REF(-):参考电压负端。 START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换). EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。通道选择表如下表所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 图5-4 AD转换器ADC0809 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。将EOC接至INT1采用外部中断1进行数据读取。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,本实验将ADC0809的CLK接至8051单片机的ALE引脚,VREF(+),VREF(-)为参考电压输入,本实验VREF(+)接+5V,VREF(-)接地。 程序设计1:实现由外部的可调电阻输入的电压信号的采集,ADC0809采样中断方式进行数据的读写。 程序例子如下: ORG 0000H LJMP MAIN ORG 0013H ;外部中断1入口地址 LJMP INT MAIN: MOV A,#00H ;选取ADC0809通道0 SETB IT1 ;边沿触发方式 SETB EA ;CPU开中断 SETB EX1 ;允许外部中断1中断 MOV DPTR,#4000H ;送入口地址 MOVX @DPTR,A ;启动A/D转换 HERE: SJMP HERE ;等待中断 INT: MOVX A,@DPTR ;采样数据 CLR EA ;已转换完关中断 CLR EX1 ;禁止外部中断1 RETI ;从中断返回 END DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。D/A转换结果采用电流形式输出。要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。 DAC0832各引脚功能如下: (1)D7~D0:转换数据输入端。 (2)CS:片选信号,输入,低电平有效。 (3)ILE:数据锁存允许信号,输入,高电平有效。 (4)WR1:写信号1,输入,低电平有效。 (5)WR2:写信号2,输入,低电平有效。 (6)XFER:数据传送控制信号,输入,低电平有效。 (7)Iout1:电流输出1,当DAC寄存器中各位为全“1”时,电流最大;为全“0” 时,电流为0。 (8)Iout2:电流输出2,电路中保证Iout1+Iout2=常数。 (9)Rfb:反馈电阻端,片内集成的电阻为15k欧 图5-5 ADC0832引脚图 (10)Vref:参考电压,可正可负,范围-10~+10V (11)DGND:数字量地。 (12)AGND:模拟量地。 图5-6 DA转换器DAC0832 实验采用双缓冲方式连接,由于芯片中有两个数据寄存器,这样就可以将8位输入数据先保存在“输入寄存器”中,当需要D/A转换时,再将此数据从输入寄存器送至“DAC寄存器”中锁存并进行D/A转换输出。 5、由于单片机内部的RAM非常的有限,所以在使用C语言进行程序设计时,经常会出现数据空间不够的情况,这种情况下就会发生很多意料不到的错误,致使程序乱跑,难以找到错误。所以扩展了一块8K字节的SRAM。外部扩展的时的结构图如下。 图5-7 外部数据存储器6264 6、LCD、ADC、DAC器件的编程请参考实验仪参考程序,程序中的注释十分清楚。对这些外围器件的操作难点在于时序的匹配,即:单片机产生的时序能符合外围扩展电路的时序,这样才能进行工作。 程序设计:实验仪上采用双缓冲方式接法DAC0832上面有两个数据寄存器。 程序示例:程序中将累加器A中的数据作为待转换的数据输出的。 ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV DPTR,#80FFH ;指向输入寄存器 MOV A,#07FH ;转换数据送入A MOVX @DPTR,A ;转换数据送输入寄存器 MOV DPTR,#8000H ;指向DAC寄存器 MOVX @DPTR,A ;数据进入DAC寄存器并时行D/A转换 ACALL DELAY ;延时 DELAY: MOV R7,#255 ;延时子程序 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET ;子程序返回 END ;程序结束 三 实验步骤 1、分析LCD驱动程序中的液晶初始化函数,据此,熟悉LCD命令的特性,掌握LCD编程的特点,自行编写在LCD上显示汉字、字符、数字等信息,由于程序较大,LCD的程序参考本实验指导书的附录部分。 2、分析ADC/DAC器件编程的特点,掌握ADC0809、DAC0832的使用方法,自行编写方波发生器和三角波发生器程序。 实验六 通信实验 一 实验目的 1、熟悉单片机通信的原理; 2、熟悉MCS-51单片机UART四种工作方式; 3、掌握UART的编程方法 二 实验内容 1、串行通信基本知识 在MCS-51单片机内部,有一个通用异步接收/发送器(UART)。这是一个全双工串行接口,能同时进行发送和接收数据。利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以及与PC机之间的通信。 通信方式种类:一种是并行通信,一种是串行通信。 串行通信的三种方式:单工通信、半双工通信和全双工通信。 同步技术分为:异步通信、同步通信,它们之间的不同点可以参考相关参考书目。 异步通信的一般数据格式为: 图7-1 异步通信的一帧数据格式 同步通信的数据格式为: 图6-1 同步通信的数据格式 2、MCS-51单片机的通用串行口结构 MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率。串口的工作方式主要有SCON和PCON两个寄存器来决定。 图6-3 串口控制寄存器 SCON的最高两位SM0、SM1表示串行口工作方式控制位,两位对应四种工作方式,如表7-1所示(fosc是晶振频率)。 图6-4 电源控制寄存器 PCON的最高位SMOD是波特率倍增位。串行口工作在方式1、方式2、方式3时,若SMOD=1,则波特率提高一倍;若SMOD=0,则波特率不提高一倍。单片机复位时,SMOD=0。 3、单片机串口的四种工作方式 (1)方式0的波特率 工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。用公式表示为: 工作方式0的波特率=fosc/12(fosc时钟频率) (2)方式2的波特率 工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为; 工作方式2波特率=(2SMOD/64)×fosc (3)工作方式1和方式3的波特率 这两种工作方式的波特率由定时器T1的溢出率决定,波特率的数值可以参考教科书中的表。 4、下图为实验仪系统中的串行接口电路,采用的芯片是MAX232。 图6-5 串口接口电路 程序设计1:使用UART的同步方式,实现数码管显示。 程序示例1: ORG 0000H LJMP START MTD EQU 30H ;发送缓冲区首址MTD=30H,伪指令。 START: MOV SCON,#00H ;串口中断方式0 MOV R1,#MTD ;发送缓冲器数据初始化 MOV @R1,#03H ;"0" INC R1 MOV @R1,#9FH ;"1" INC R1 MOV @R1,#25H ;"2" INC R1 MOV @R1,#0DH ;"3" INC R1 MOV @R1,#99H ;"4" INC R1 MOV @R1,#49H ;"5" INC R1 MOV @R1,#041H ;"6" INC R1 MOV @R1,#1FH ;"7" INC R1 MOV @R1,#01H ;"8" INC R1 MOV @R1,#09H ;"9" INC R1 MOV R2,#10 ;送发送缓冲区的代码个数 LOOP: LCALL UARTNO ;显示子程序 MOV R2,#10 ;再次送发送缓冲区的代码个数,以便循环显示 SJMP LOOP ;循环显示 UARTNO: MOV R0,#MTD ;缓冲区首址入R0 SOUT: MOV A,@R0 ;发送数据入A MOV SBUF,A ;启动发送 CALL DELAY ;延时 WAIO: JNB TI,WAIO ;发送等待 CLR TI ;发送结束标志清0 INC R0 ;指向下一个发送数据地址 DJNZ R2,SOUT ;10个字节发送完?未完转SOUT DELAY: MOV R7,#255 ;延时子程序 D1: MOV R6,#255 D2: DJNZ R6,D2 DJNZ R7,D1 RET ;子程序返回 END ;程序结束 程序设计2:实现将计算机端发送过来的数据返回给计算机终端。 程序示例2: ORG 0000H LJMP MAIN ORG 0023H LJMP UART MAIN: MOV TMOD,#20H MOV TL1,#0F3H MOV TH1,#0F3 MOV PCON,#80H SETB ES MOV SCON,#50H SETB TR1 SETB EA SJMP $ UART: CLR ES JNB RI,LL MOV A,SBUF MOV SBUF,A SETB ES LJMP EXIT LL: CLR TI SETB ES EXIT: RETI END 三 实验步骤 1、根据实验仪系统提供的原理图,熟悉实验提供的参考程序。 2、试编写自适应波特率的程序,根据外部的数据速率决定本身的波特率。 实验七 键盘实验 一 实验目的 1、熟悉单片机系统的常用键盘工作方式; 2、掌握各种键盘的键值读取方法; 3、掌握键盘程序的编写方法; 4、掌握专用键盘芯片的工作原理及编程。 二 实验内容 1、按键的作用 几乎所有的电子系统中都有按键的存在,它的作用是不言而喻的,即:控制系统的工作流程或状态,比如:我们最熟悉的手机、计算机等都是最典型的电子系统之一。 2、键盘的分类 主要分为:独立式按键、行列扫描按键、专用键盘芯片。其中前两种又称为非编码式键盘。最后一种称为编码式键盘。 独立式非编码键盘,是每个按键独立地占用一条数据输入线。如图8-1所示。当某一按键闭合时,相应的I/O线变为低电平。 下图为典型的一个独立式按键的接口图。独立式按键通常存在按键的去抖动,去抖动可以分为软件去抖和硬件去抖,软件去抖的原理是在按键后延时10ms左右的时间,便可以达到去抖动的作用。硬件去抖动的原理是用触发器。图8-2是软件去抖动的典型图。 图7-1 独立式按键 图8-2 去抖动波形 下图为硬件去抖动的电路,采用的是RS触发器。 图7-3 硬件消抖电路 判断独立式键盘是否有键按下的方法,是查询每一个连接按键的I/O线。当查询到的I/O线为低电平时,便知此键按下。也可以采用中断的方法,把所有的独立式按键连接到一个与门输入端,与门输出端接到单片机的外部中断口,有按键按下时,就会发生中断,在中断服务程序中可以判断出按键的键值。 非编码行列式键盘是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上。行列式键盘的数量为:行线数m乘以列线数n。图8-4是一个4×4行列式键盘,按键数量为16个。 图7-4 行列式键盘原理电路 行列式键盘也可以采用中断方式读取键值,方式如下: 图7-5 中断方式键盘接口电路 3、外部中断按键 独立式按键及中断电路。 图7-6 独立式按键电路图 4、实验仪上的键盘电路 本实验仪使用的的4*4的16个按键,使用扫描方式获取键值。电路图图下: 图7-7 扫描式按键电路图 程序设计:编写程序读去4*4键盘的键值,显示 程序示例: 三 实验步骤 1、​ 熟悉实验仪测试系统中的独立式按键,编写按键程序和外部中断程序。 2、​ 编写如图所示的扫描式按键的程序,并加以修改,显示键值在数码管上。 实验八 电机实验 一 实验目的 1、熟悉各类电机的特点; 2、掌握步进电机和直流电机的编程方法。 二 实验内容 1、步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。 2、步进电机的一些基本参数: 电机固有步距角: 它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为‘电机固有步距角’,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。 步进电机的相数: 是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72° 。在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分驱动器,则‘相数’将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。 保持转矩(HOLDING TORQUE): 是指步进电机通电但没有转动时,定子锁住转子的力矩。它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。比如,当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。 实验仪中配置的步进电机原理图如下所示,使用了光耦来进行隔离前后级,使用了达林顿管UL2003进行后级的驱动,图中S1、S2、S3、S4分别接步进电机的四相中的各相。VCC与R33接步进电机的公共端,其中J2是电机的连接器。 图8-1 步进电机原理图 3、直流电机的物理模型如下图所示。 图8-2 直流电机的物理模型 其中,固定部分有磁铁,这里称作主磁极;固定部分还有电刷。转动部分有环形铁心和绕在环形铁心上的绕组。(其中2个小圆圈是为了方便表示该位置上的导体电势或电流的方向而设置的)上图表示一台最简单的两极直流电机模型,它的固定部分(定子)上,装设了一对直流励磁的静止的主磁极N和S,在旋转部分(转子)上装设电枢铁心。定子与转子之间有一气隙。在电枢铁心上放置了由A和X两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷B1和B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。 程序设计:用单片机的P1口实现对步进电机的控制。 程序示例: ORG 0000H MAIN: CPL P1.4 ACALL DELAY CPL P1.4 CPL P1.5 ACALL DELAY CPL P1.5 CPL P1.6 ACALL DELAY CPL P1.6 CPL P1.7 ACALL DELAY CPL P1.7 AJMP MAIN DELAY: MOV R0, #0AH D2: MOV R1, #64H DJNZ R1, $ DJNZ R2, D2 RET END 三 实验步骤 1、熟悉步进电机的原理,驱动方式,编程方法。 2、掌握实验配套的步进电机的程序的编写方法。 附录一:实验仪资源分配图及表格 注意事项:在使用ISP方式进行程序下载时,把JP4和JP3的下面3个跳线冒取下来。 资源分配一览表 模块名称 跳线设置 IO口分配 地址分配 电机模块 P1.4-PB1.7 跳线冒短接 P1.4 P1.5 P1.6 P1.7 无 时钟模块 P1.0 P1.1跳线冒短接 P1.0 SDA P1.1 SCL 无 蜂鸣器模块 P1.2跳线冒短接 P1.2 无 温度模块 P1.3跳线冒短接 P1.3 无 串行通信 P1 P2 短路线断开 P3.0 P3.1 无 ADC0809 总线方式,无跳线设置 无 Y2: 地址 4000H A0 A1 A2选择通道 DAC0832 总线方式,无跳线设置 无 Y4:8000H A0:模数选择 交通灯 JP4断开,JP3全部短接 P1.0-P1.7 无 流水灯 总线方式,无跳线设置 无 Y1:地址 2000H 数码管 P1 P2 短路线短接 RXD TXD 无 键盘 总线方式,无跳线设置 无 行信号地址:Y3 6000H 列信号地址:Y5 A000H LCD 总线方式,无跳线设置 无 Y7: LCD命令地址 FFFFH LCD数据地址 FFFEH
本文档为【MCS51单片机实验指导书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_887472
暂无简介~
格式:doc
大小:3MB
软件:Word
页数:48
分类:互联网
上传时间:2011-07-12
浏览量:29