单片机与嵌入式系统实验指导书(16学时).doc

上传人:知****量 文档编号:43176658 上传时间:2022-09-17 格式:DOC 页数:38 大小:2.84MB
返回 下载 相关 举报
单片机与嵌入式系统实验指导书(16学时).doc_第1页
第1页 / 共38页
单片机与嵌入式系统实验指导书(16学时).doc_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《单片机与嵌入式系统实验指导书(16学时).doc》由会员分享,可在线阅读,更多相关《单片机与嵌入式系统实验指导书(16学时).doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、)定时器实验(流水灯、交通灯、数码管等);(4)总线实验(流水灯LED、外部RAM);(5)系统扩展(包括:LCD、ADC、DAC、RAM等);(6)通信实验(RS232与计算机之间的串口实验);(7)传感器实验(1-Wire温度实验);(8)键盘实验(扫描接口);(9)电机实验(四相六线式步进电机);(10)时钟实验(RTCPCF8563);(11)软件实验(多个数求和、排序等);(12)中断实验(外部中断、定时器、UART);目 录前言1目录2实验一单片机集成开发环境应用1一、实验目的1二、实验容1三、实验步骤7四、实验程序7五、思考问题8实验二单片机I/O口实验9一、实验目的9二、实验容

3、9三、实验步骤9四、思考问题10实验三定时器中断11一、实验目的11二、实验容11三、实验步骤15四、思考问题15实验四通信实验16一、实验目的16二、实验容16三、实验步骤18四、思考问题20实验五键盘接口与显示(未完)21一、实验目的21二、实验容21三、实验步骤24四、思考问题24实验六系统外设扩展(未完)25一、实验目的25二、实验容25三、实验步骤25四、思考问题25实验七(未完)26一、实验目的26二、实验容26三、实验步骤26四、思考问题26实验八(未完)27一、实验目的27二、实验容27三、实验步骤27四、思考问题27实验一 单片机集成开发环境应用一、实验目的1、熟悉单片机集成

4、开发软件(Keil);2、掌握单片机仿真器的使用;3、掌握单片机P1口使用;二、实验容1、集成开发环境Keil介绍与开发流程KEIL uVISION2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,是众多单片机开发软件之一,它支持众多不同公司的MCS51架构的芯片,它集编辑,编译,仿真于一体,同时还支持PLM(产品全生命周期管理)、汇编和C语言的程序设计,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的软件,对于普通

5、爱好者可以到KEIL中国代理周立功公司的上下载一份能编译2K的DEMO版软件,基本可以满足一般的个人学习和小型应用的开发。安装好后,让我们一起来建立一个小程序项目吧。即使你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KEIL软件仿真看到程序运行的结果。首先当然是运行KEIL51软件。运行几秒后,出现如图1-1的屏幕。图1-1 启动时的屏幕2、建立项目1)建立您的第一个项目点击Project 菜单,选择弹出的下拉式菜单中的New Project,如图1-2。接着弹出一个标准Windows 文件对话窗口,如图1-3,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明

6、。在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合Windows 文件规则的文件名都行。“保存”后的文件扩展名为uv2,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。图1-2 New Project菜单图1-3 文件窗口2)选择所要的单片机选择所要的单片机,这里我们选择常用的Ateml 公司的AT89C51。此时屏幕如图14 所示。AT89C51 有什么功能、特点呢?请看图中右边有简单的介绍,是英文的。稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。图1

7、-4 选取芯片3)在项目中创建新的程序文件或加入已经存在的程序文件首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在KEIL中有一些程序的Demo,在这里我们还是以一个C程序为例介绍如何新建一个C程序和如何加到您的第一个项目中吧。点击图1-5 中1的新建文件的快捷按钮,在2中出现一个新的文字编辑窗口,这个操作也可以通过菜单FileNew 或快捷键CTRL+N 来实现。图1-5 新建文件4)如果没有已经存在的程序文件,就新建、保存点击图1-5 中的3 保存新建的程序,也可以用菜单FileSave 或快捷键CTRL+S进行保存。因是新文件

8、所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明KEIL 的C语法检查生效了。如图1-6 鼠标在屏幕左边的Source Group1 文件夹图标上右击弹出菜单,在这里可以作在项目中增加减少文件等操作。我们选“ Add File to Group SourceGroup 1”弹出文件窗口,选择刚刚保存的文件,按ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。图1-6 把文件加入到项目文件组

9、中5)编译调试C 程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的HEX 文件。要生成用于芯片烧写的HEX 文件,应进行如下设置:在Creat HEX File前打选择。图1-7中1、2、3都是编译按钮,不同的是1 是用于编译单个文件。2是编译当前项目,如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3是重新编译,每点击一次均会再次编译一次,不管程序是否有改动。在3右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5是菜单中的编译

10、按钮。这个项目只有一个文件,按1、2、3中的一个都可以编译。在4 中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。6 是有一个小放大镜的按钮,这就是开启关闭调试模式的按钮,它也存在于菜单DebugStartStop Debug Session中,快捷键为Ctrl+F5。图1-7 编译程序6)调试 、生成HEX文件进入调试模式,软件窗口样式大致如图1-8 所示。图中1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。图1-8 调试运行程序3、下载到单片机的部运行1)用KEIL (或用TOPIC

11、E52)生成的HEX文件步骤: 点击Project 菜单,选择弹出的下拉式菜单中的New Project; 选择所要的单片机,如选择常用的Ateml 公司的AT89C51; 在项目中创建新的程序文件或加入已经存在的程序文件; 如果没有已经存在的程序文件,新建、保存; 编译; 调试 、生成HEX文件。2)下载本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的部flash。连接ISP下载器和单片机的ISP下载口。注意:单片机的P1.5 P1.6 P1.7不能被短接。3)ISP下载方法使用Easy 51Pro.exe软件,运行界面如图1-9所示。图1-9 Easy 51Pro.e

12、xe软件运行界面4)ISP下载步骤 选择器件 装载HEX文件 擦除器件 写器件5)运行将KEIL生成的HEX文件下载到单片机的部flash后,按REST键和关机后再开机即可运行单片机的部的程序。三、实验步骤依照实验容开始进行实验,熟悉Keil软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM扩展名,C文件为.C扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。仿真调试分为两种:软件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。本实验箱提供ISP方式的下载,将KEIL生成的HEX文件下载到单片机的部flash,重复此部分容

13、,直到熟练掌握开发环境的使用。四、实验程序1、汇编程序ORG0000HSJMPSTARTORG0030H;()START:MOVP1,00000010B ;将P1.0与P1.1分别置低电平、高电平NOP;空指令,不执行任何操作NOPNOPLJMPSTART;跳转到STAEND;程序结束2、C程序附:关于此程序的C51实现#include#includevoid main()while(1)P1 = 0x02;/置位P1.1,清零P1.0五、思考问题1) ()处0030H其作用是什么?如果改变,应注意哪些?2) 如果二极管的阴、阳极插反,怎么改进程序,使之发光?3) 用软件延时的办法实现指示灯的

14、闪烁。实验二 单片机I/O口实验一、实验目的1、熟悉单片机I/O口的特点;2、掌握单片机I/O口的编程。二、实验容1、P1口交通灯程序编写(调试时连接JP3的8个跳线);2、 蜂鸣器发声程序。图2-1 LED发光二极管连接电路三、实验步骤调试时连接JP3的8个跳线。LED发光二极管连接电路如图2-1所示。 1、蜂鸣器发声ORG0000HLJMPMAIN ORG 0030HMAIN:SETB P1.2CALL DELAYCLR P1.2CALL DELAYSJMP MAINDELAY: MOV R7,#255 ;延时子程序D1: MOV R6,#255 DJNZ R6,$ DJNZ R7,D1

15、RET ;子程序返回 END ;程序结束2、流水灯ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV DPTR,#2000HMOV R0,#0FEHMOV A,R0MOVX 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,#255D2: DJNZ R6,D2 DJNZ R

16、7,D1 RET ;子程序返回END ;程序结束 同学们可自编。四、思考问题1、用C51编流水灯程序2、用C51编蜂鸣器发声程序实验三 定时器中断一、实验目的1、熟悉单片机中断的概念;2、熟悉单片机部定时器的硬件结构;3、掌握单片机定时器的编程;4、掌握单片机的时序与锁存器的使用;5、掌握用定时器实现交通灯和流水灯显示。二、实验容1、中断是指CPU正在处理某些事务的时候,外部又发生了某一事件,请求CPU与时处理。于是,CPU暂时中断当前的工作,转而处理所发生的事件。处理完毕,再回到原来被中断的地方,继续原来的工作。这样的过程,称为中断。图3-1为中断方式流程图。图3-2为中断系统结构图3-1

17、中断方式流程2、单片机共有5个中断源,两个优先级,并可以实现两级中断嵌套。MCS-51单片机响应中断有四个条件:1) 中断源有请求;2) 寄存器IE的总允许位EA=1,且IE相应的中断允许位为1;3) 无同级或高级中断正在服务;4) 现行指令执行完最后一个机器周期。图3-2 中断系统结构3、单片机有两个16位的硬件定时器/计数器,分别称为Timer0和Timer1。每个定时器都有四种工作方式,称为方式0、方式1、方式2和方式3。工作方式有软件控制。其结构如图3-3所示。图3-3 定时器/计数器结构单片机的定时器/计数器都统称为定时器,定时器是对机器周期进行计数,而计数器是对外部的脉冲进行计数。

18、通常情况下,都称为定时器。定时器的四种工作方式是由软件来控制的,如表3-1所示,定时器工作方式寄存器TMOD中的M0、M1两为决定了它的工作方式。4、使用单片机的定时器T0产生100mS的定时信号,使实验箱主板上的流水灯(8只红色发光二极管)依次发光,并循环。设此时系统的时钟频率为6MHz,再根据它来决定定时器T0的初始值。由于时钟频率为6MHz,所以,机器周期为2S。初始值计算有以下公式得出,t=(216-T0初值)机器周期,就可以计算出初始值,公式是依据定时器的工作原理得出的,51单片机的定时器是加法计数的,从设置的初始值开始,每一个机器周期加一,直至溢出。表3-1 定时器的四种工作方式M

19、1 M0工作方式说明0 0方式013位定时/计数器0 1方式116位定时/计数器1 0方式2自动再装入8位定时/计数器1 1方式3定时器0:分为两个8位定时/计数器定时器1:对外部停止定时/计数5、实验主板上的8只红色发光二极管的亮/灭是由8位锁存器74HC573进行锁存。电路如图3-4。图3-4 流水灯电路由图可以看出,锁存器是挂在系统总线上的,有外部地址进行统一编址,是外部地址64K地址空间的一部分。74HC573的锁存信号由译码电路产生,又因为573在控制端C引脚为高电平时,数据通道打开,从高变到低时,数据被锁存,所以,C端门控信号是由74HC138译码器的输出端(译码地址:2000H)

20、在加一个反相器得到的。程序设计:由系统总线扩展I/O口,实现流水灯的程序设计。示例1:用软件延时实现流水灯的延时。ORG 0000HAJMP MAINMAIN: MOV DPTR,#2000HMOV R0,#0FEHMOV A,R0MOVX 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,#255D

21、2: DJNZ R6,D2DJNZ R7,D1 RET ;子程序返回 END ;程序结束示例2:给出定时器的中断服务程序,同学可以进行修改,形成由中断完成的流水灯程序设计。ORG0000HLJMPMAINORG000BHLJMPTIMEMAIN:MOVTH0,#0D8HMOVTL0,#0A0HMOVTMOD,#01H;定时器工作方式1SETBET0;开定时中断SETBEA;开总中断SETBTR0;定时器开始计时中断服务程序:TIME:MOVTH0,#0D8HMOVTL0,#0A0HRETI三、实验步骤1、首先用软件延时的方法,实现流水灯实验;2、用定时器设计流水灯实验,让流水灯依次点亮或熄灭,

22、并掌握外部扩展时地址的分配(扩展外部I/O,使用锁存器)。四、思考问题1、用C51采用软件延时的方法,实现流水灯程序。2、用C51采用定时器延时设计流水灯实验,让流水灯依次点亮或熄灭程序。实验四 通信实验一、实验目的1、熟悉单片机通信的原理;2、熟悉MCS-51单片机UART四种工作方式;3、掌握UART的编程方法二、实验容1、串行通信基本知识在MCS-51单片机部,有一个通用异步接收/发送器(UART)。这是一个全双工串行接口,能同时进行发送和接收数据。利用这个串行接口,可以实现单片机之间的单机通信、多机通信,以与与PC机之间的通信。通信方式种类:一种是并行通信,一种是串行通信。串行通信的三

23、种方式:单工通信、半双工通信和全双工通信。同步技术分为:异步通信、同步通信,它们之间的不同点可以参考相关参考书目。异步通信的一般数据格式如图4-1所示。图4-1 异步通信的一帧数据格式同步通信的数据格式如图4-2所示。图4-2 同步通信的数据格式2、MCS-51单片机的通用串行口结构MCS-51有一个可编程的全双工串行通信接口,可作为通用异步接收/发送器UART,也可作为同步移位寄存器。它的帧格式有8位、10位和11位,可以设置为固定波特率和可变波特率。串口的工作方式主要有SCON和PCON两个寄存器来决定。图4-3 串口控制寄存器SCON的最高两位SM0、SM1表示串行口工作方式控制位,两位

24、对应四种工作方式,如表7-1所示(fosc是晶振频率)。图4-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时,移位脉冲由

25、振荡频率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、实验箱统中的串行接口电路图4-5为实验箱系统中的串行接口电路,采用的接口芯片是MAX232。图4-5 串口接口电路5、串行接口接收程序可使用串口调试助手程序来接收和发送数据。三、实验步骤1、试编写自适应波特率的程序,根据

26、外部的数据速率决定本身的波特率。程序设计1:实现将计算机端发送过来的数据返回给计算机终端。程序示例1:ORG 0000HLJMP MAINORG 0023HLJMP UARTMAIN:MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HMOVPCON,#80HSETBESMOVSCON,#50HSETB TR1SETBEASJMP $UART:CLR ESJNBRI,LLMOV A,SBUFMOVSBUF,ASETB ESLJMP EXITLL:CLR TISETB ESEXIT:RETIEND2、在Proteus上画出电路图,实现两个单片机之间的串口通信。电路图可参考图4

27、-6。图4-6 单片机间的串口通信分别编写发送端和接收端单片机的处理程序,实现从发端发送一个字符串“Hello Boy!”,在收端接收并显示在虚拟终端之上。下面是参考程序:l 发送端(查询方式实现,波特率2400bps):ORG 0000HAJMP MAINORG 0030HMAIN:;确定波特率MOV SCON,#40H;串口方式1,不允许接收LCALL DAT_INMOV R0,#30HMOV R7,#10SEND:MOV A,R0MOV SBUF,AJNB TI,$CLR TIINC R0DJNZ R7,SENDAJMP $;-;把字符串”Hello Boy!”的ASCII码写入RAM的

28、30H39H单元;-DAT_IN:MOV R0,#30HMOV R1,#48H ;ASCII Code of HMOV A,R1MOV R0,AINC R0MOV R1,#65H ;ASCII Code of eMOV A,R1MOV R0,AINC R0MOV R1,#6CH ;ASCII Code of lMOV A,R1MOV R0,AINC R0MOV R1,#6CH ;ASCII Code of lMOV A,R1MOV R0,AINC R0MOV R1,#6FH ;ASCII Code of oMOV A,R1MOV R0,AINC R0MOV R1,#20H ;ASCII Cod

29、e of MOV A,R1MOV R0,AINC R0MOV R1,#42H ;ASCII Code of BMOV A,R1MOV R0,AINC R0MOV R1,#6FH ;ASCII Code of oMOV A,R1MOV R0,AINC R0MOV R1,#79H ;ASCII Code of yMOV A,R1MOV R0,AINC R0MOV R1,#21H ;ASCII Code of !MOV A,R1MOV R0,ARETENDl 接收端(中断方式实现,波特率2400bps):ORG0000HAJMPMAIN;串口中断的入口地址AJMPINT_SORG0030HMAIN:

30、MOVSCON,#50H;串口方式1,允许接收SETBEASETBESMOVR0,#30HMOVR7,#10AJMP$INT_S:CLRRIMOVA,SBUFMOVR0,A;把数据写入RAM的30H39H单元INCR0MOVSBUF,A;写入数据的同时,把该数据在TXD脚上输出JNBTI,$CLRTIDJNZR7,OUTCLREACLRESOUT:RETIEND四、思考问题1、试用C51编写上边的单片机串口通信程序2、实验五 数码管的显示一、实验目的1、熟悉7段数码管显示的基本原理;2、掌握共阳极和共阴极数码管的段码组成原理;3、掌握数码管的静态显示和动态显示的基本原理和电路连接方法;4、掌握

31、静态显示和动态显示的编程方法。二、实验容数码管是一种常用的显示输出设备。它由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发光,控制不同组合的二极管导通就能显示出各种字符。其中有7个用于显示字符,1个用于显示小数点,故通常称为7段(亦可称8段)数码管。三、实验步骤1、在Proteus上自行绘制51单片机与一个共阳极数码管连接的电路图,作图时可参考图5-1。图5-1 MCS51单片机与共阳极数码管连接编写程序,实现在此数码管上循环显示09十个数字,间隔时间为1秒钟。ORG0000HAJMPMAIN;中断入口地址AJMPINTORG0030HMAIN:;定时器0初始化,工作方式1

32、,定时时间50msMOVDPTR,#TABLEMOVR7,#10MOVR6,#10;置位相关的中断允许位AJMP$INT:DJNZR7,RTNMOVR7,#10;-;具体的中断服务MOVA,#10CLRCSUBBA,R6MOVCA,A+DPTRMOVP2,ADJNZR6,RTNMOVR6,#10;-RTN:MOVTH0,#3CHMOVTL0,#0B0HRETITABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND2、利用51单片机的串口工作在方式0,实现多个数码管的显示。其电路图可参考图5-2作出。图5-2 利用串口实现数码管的静态显示

33、编写程序,实现在此数码管上循环显示数字。MTDEQU 30HORG0000HLJMPSTARTORG0030HSTART:MOVSCON,#00H;串口方式0;-;把数据输入到RAM的30H-35H单元中MOVR1,#MTDMOVR1,#0C0HINCR1MOVR1,#0F9HINCR1MOVR1,#0A4HINCR1MOVR1,#0B0HINCR1MOVR1,#99HINCR1MOVR1,#92H;-MOVR2,#6LOOP:LCALLUARTNOMOVR2,#6SJMPLOOP;-;串口通信子程序 UARTNO:MOVR0,#MTDSOUT:MOVA,R0MOVSBUF,ALCALLDEL

34、AYJNBTI,$CLRTIINCR0LCALLDELAYDJNZR2,SOUTRET;-;延时子程序DELAY:MOVR7,#255D1:MOVR6,#255DJNZR6,$DJNZR7,D1RET;-END3、参考图5-3在Proteus中画出实现数码管动态显示的电路图。图5-3 4位共阴极LED和AT89C51的接口逻辑编程实现数码管的动态显示,程序参考如下。ORG0000HAJMPMAINORG0030HMAIN:MOVDPTR,#TABLESTART:MOVR4,#0FEH;R4存放位选信号MOVR5,#00H;R5存放所显示的数CNT:MOVP2,R4;-;利用查表的方法将R5的待

35、输出的数转换为共阴极段码,并在P0口输出MOVA,R5MOVCA,A+DPTRMOVP0,AINCR5;-;位选信号的控制MOVA,R4JNBACC.4,STARTRLAMOVR4,A;-LCALLDELAYCJNER5,#0AH,CNTLJMPSTART;-DELAY:MOVR6,#200D1:MOVR7,#248NOPD2:DJNZR7,D2DJNZR6,D1RET;-TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴极段码表;TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;共阳

36、极段码表END在该程序中,将延时调用删除,观察数码管的显示变化。四、思考问题1、图5-1实验中,如果要改用软件延时的方式实现一样功能,应如何改写程序?2、图5-2实验中用到了串口,程序中为何没有设定串口的波特率?该显示方式属于静态显示还是动态显示?实验六 DAC0832数/模转换一、实验目的1、熟悉单片机系统总线结构;2、熟悉系统扩展的方法;3、了解数模转换器DAC0832的特点;4、掌握DAC0832和51单片机的电路连接方法和相关的编程方法。二、实验容单片机的系统扩展是指在单片机部的功能部件不能满足应用系统要求时,在片外连接相应的外围芯片以满足应用系统要求。在进行系统扩展时,是以单片机为核

37、心,通过系统总线进行的,通过总线把各个扩展部件连接起来,进行数据、地址和信号的传送。MCS-51系列单片机的外部引脚可以构成如图6-1所示的三总线结构,即地址总线(AB)、数据总线(DB)和控制总线(CB)。图6-1 系统总线的构造利用DAC0832实现数/模转换时,就需要将DAC0832作为一个外部扩展设备,接入到各种的总线上。DAC0832的引脚结构可参看教材相关章节。它的部是一个具有两级寄存器的结构,其逻辑框图如图6-2所示。可以看出,第一级输入寄存器由S和W1引脚控制,第二级DAC寄存器由XER和W2引脚控制。图6-2 DAC0832部结构逻辑框图根据这种结构,DAC0832就有单缓冲

38、和双缓冲两种连接方式。单缓冲方式又分为输入寄存器直通方式和DAC寄存器直通方式两种。具体的工作原理和编程方法可参看教材。三、实验步骤1、在Proteus上自行绘制51单片机与DAC0832连接的电路图,以实现模拟量和数字量之间的转换。下图为一种单缓冲方式的参考电路图。图6-1 DAC0832与AT89C51连接2、根据上图编写方波发生器和三角波发生器程序。下面是锯齿波的程序,以供参考。ORG0000HAJMPMAINORG0030HMAIN:MOVA,#00H;将DAC0832的口地址送入数据指针,地址需与电路图对应LOOP:MOVXDPTR,AINCANOPNOPAJMPLOOPEND四、思

39、考问题1、图6-1的单缓冲连接是DAC寄存器直通方式还是输入寄存器直通方式?确定是其中某一种之后,另一种方式的电路连接是什么样的?2、如果要用一个单片机同时控制两个DAC0832工作,分别生成方波和三角波,应如何连接电路图?程序应如何编写?实验七 8255A接口芯片一、实验目的1、熟悉单片机系统总线结构;2、熟悉系统扩展的方法;3、了解接口芯片8255A的特点。二、实验容在单片机的I/O口线不够用的情况下,可以借助外部器件对I/O口进行扩展,8255A就是这样一款接口芯片。8255A具有3个可编程并行I/O端口:A口、B口和C口,3个8位I/O端口的功能可由编程决定。8255A的部结构和引脚图

40、可参看教材相关容。8255A有3种工作方式:方式0、方式1、方式2,其具体容如下表所示:工作方式A口B口C口0基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态基本输入/输出输出锁存,输入三态1应答式输入/输出输入/输出均锁存应答式输入/输出输入/输出均锁存提供A口和B口的应答信号2应答式双向输入/输出输入/输出均锁存B口无此方式提供A口的应答信号三种方式中方式0用得最多且最容易使用,方式1和方式2使用复杂,因单片机能自动提供各种应答信号,这两种方式已很难再见到用于单片机系统。对应于控制引脚和寻址引脚上的不同状态,8255A芯片的工作状态如下表所示:A1A0DRS操作说明00010CPU读取PA口数据从8255的I/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁