单片机原理实验讲解电信CDIO版30课时Word文档格式.docx

上传人:b****7 文档编号:22165422 上传时间:2023-02-02 格式:DOCX 页数:40 大小:1.50MB
下载 相关 举报
单片机原理实验讲解电信CDIO版30课时Word文档格式.docx_第1页
第1页 / 共40页
单片机原理实验讲解电信CDIO版30课时Word文档格式.docx_第2页
第2页 / 共40页
单片机原理实验讲解电信CDIO版30课时Word文档格式.docx_第3页
第3页 / 共40页
单片机原理实验讲解电信CDIO版30课时Word文档格式.docx_第4页
第4页 / 共40页
单片机原理实验讲解电信CDIO版30课时Word文档格式.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

单片机原理实验讲解电信CDIO版30课时Word文档格式.docx

《单片机原理实验讲解电信CDIO版30课时Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理实验讲解电信CDIO版30课时Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。

单片机原理实验讲解电信CDIO版30课时Word文档格式.docx

3.熟悉课堂讲授的使用keil软件开发环境的方法。

实验预习问题:

1.Keil编译器适用的单片机类型。

(实验课堂提问)

二、实验目的

掌握在keil编译器下建立自己的工程,并进行调试。

三、演示实验

1.典型51单片机开发系统

2.51单片机应用实例2个:

智能温度计、简易电力监视仪

演示实验关注点:

1.掌握51单片机的典型开发流程。

2.学会使用仿真器、烧写器。

3.了解单片机开发过程的关键技术点。

四、KeilC51简介:

KeilC51是Keilsoftware公司开发的用于51系列单片机的C51语言开发软件。

KeilC51在兼容ANSIC的基础上,又增加很多与51单片机硬件相关的编译特性,使得开发51系列单片机程序更为方便和快捷,程序代码运行速度快,所需存储器空间小,完全可以和汇编语言相媲美。

它支持众多的51单片机架构的芯片,同时集编辑、编译、仿真等功能于一体,具有强大的软件调试功能,是众多的单片机应用开发软件中最优秀的软件之一。

经常用到KeilC51和Keilµ

Vision这两个术语。

KeilC51一般简写为C51,指的是51单片机编程所用的C语言;

而Keilµ

Vision,可简写为µ

Vision,指的是用于51单片机的C51程序编写、调试的集成开发环境(IDE)。

五、keil编译器的简单应用

1.在任意路径下建议项目文件夹,文件夹的名字任意(一般做到见名知意)。

2.单击图标

(此图标为Keilµ

Vision2),启动Keil,如下图:

3.选择菜单Project->

NewProject,新建一个工程,如下图:

4.输入工程名“流水灯”,然后保存,如下图:

5.选择器件型号为Atmel的AT89S51,然后确定,如下图:

6.是否加入启动文件到工程,这时不加入选“否”,这样一个工程就建立完成,如下图:

注:

此处的启动文件为STARTUP.A51。

在KEIL中,汇编是从ORG000H开始启动,那么它在C51中是如何启动MAIN()函数的呢?

实际上是C51中有一个启动文件STARTUP.A51,它总是和C程序一起编译和链接的。

所以做汇编程序可以不加载该启动文件,而C51会自动加载这个文件(虽然我们看不到)。

有关于这个文件的详细解释请参考“电信单片机实验/实验参考资料”文件夹的PDF文档《STARTUP.A51解读》,这里建议同学们作为初学者可以先不做添加。

7.选择菜单File->

New新建一个文件,如下图:

8.选择菜单,File->

Save,保存文件,输入文件件名为“流水灯.asm”,(C程序为.C文件)然后保存,如下图:

9.点Target1前面的“+”号,展开Target1,击SourceGroup1,在弹出菜单中选择,AddFilesToGroup'

SourceGroup1'

,如下图:

10.选择Allfiles,找到刚才的“流水灯.asm”,然后点Add,然后就Close,如下图:

11.可以看到工程里多了一个“流水灯.asm”文件,双击在里面输入下面程序,如下图:

ORG0X0000

LJMPSTART

START:

MOVA,#0XFE

LOOP:

RLA

MOVP1,A

LCALLDELAY

SJMPLOOP;

延时程序

DELAY:

MOVR5,#200

OUT:

MOVR6,#250

OUT1:

MOVR7,#250

IN:

DJNZR7,$

DJNZR6,OUT1

DJNZR5,OUT

RET

END

12.选择Project->

Buildtarget,或点击

图标进行编译。

13.编译结果,看到错误(语法错误)和警告(情况较多,须具体分析)情况,如下图:

14.如果没有错误,选择

生成目标文件(机器码)。

15.选择菜单Debug->

Start/StopDebugSession,进入调试状态(此状态为默认的模拟调试,还可选择仿真器调试,proteus联机调试等),如下图:

16.进入到调试状态后,选择菜单Peripherals->

I/O-Ports->

Port1,打开端口1,下图为打开后的画面。

17.选择菜单Debug->

Run,运行,就可以看到端口1的变化。

如下图:

18.如果端口变化缓慢,可以缩短延时程序,如果变化快,可以加长延时程序。

注意:

Keil编译器的使用细节可参考\电信单片机原理实验\实验参考资料\keil编译器的使用下的4个文档。

六、实验内容

1.熟悉keil编译器的安装,设置。

2.熟悉keil编译器各菜单的功能。

3.在keil编译环境下。

调试一个自行编写的程序。

(程序可以参考教科书)

七、思考题

如何建立一个用户自己的汇编程序文件,并进行编译、连接、运行,写出详细步骤。

实验二LED数码管动态扫描实验

1.熟悉LED数码管的内部机构,共阴极与共阳极数码管的区分。

2.熟悉LED数码管动态扫描原理。

3.C51程序的基本结构。

1.LED数码管的内部结构,如何区分共阴极或者共阳极数码管。

2.共阳极及共阴极数码管动态显示驱动电路。

3.论述LED大屏幕技术要点。

(以上3个问题总结成书面小论文,需打印提交)

4.C51程序的基本结构。

(由同学课堂讲解,教师总结)

二、预备知识

1.Proteus是一款流行的EDA工具(仿真软件),可完成原理图布图、代码调试、单片机与外围电路协同仿真,PCB设计,可实现从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

我们在实验中主要应用proteus的单片机与外围电路协同仿真功能。

2.C51是在标准C的基础上,根据单片机存储器硬件结构及内部资源,扩展了相应的数据类型和变量,而C51在语法规定、程序结构与设计方法上,都与标准C相同。

关于C51的基础知识,可参考教材《单片机原理及应用(第二版)》第14章。

三、实验目的

1.掌握LED数码管动态扫描电路及其编程方法。

2.熟悉proteus软件的基本操作。

3.学习实验参考资料中《Keil与proteus完美结合教程》中P6-P7页的keil与proteus联机部分知识。

(实验室电脑已经完成联机设置)

4.开始练习C51程序,能够完成简单的C51编程。

四、演示实验

C51工程实例演示实验

演示实验关注点:

C51工程实例的程序结构

五、实验内容

1.掌握LED数码管动态驱动电路原理。

(电路图已给出,如下图所示)

该电路采用共阳极数码管,显示方式为动态显示。

其显示原理如下所述:

51单片机的P0口线作为数码管的字形码输出口,单片机的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5分别作为LED1-LED6六个数码管(从右到左)的字位口输出。

当P0口输出某个字形时,LED1字位口的电平为低时,其他数码管字位口电平为高,LED1数码管对应三极管导通,LED1数码管被点亮。

延时一定时间后,对LED2-LED6数码管重复以上操作,由于人眼的视觉暂留特性,数码管看起来都被点亮了。

2.编写程序,在数码管上显示固定“654321”字形。

六、实验步骤

1.编写程序。

建议采用C51语言程序。

2.调试,验证程序。

七、注意事项

Proteus仿真图允许在没有电源、晶振、复位电路、EA悬空的情况下工作,但实际电路不允许。

实验三汇编语言程序设计

(一)

1.熟练掌握51单片机汇编语言。

2.熟练掌握采用循环结构编写程序。

3.熟悉软件开发环境的调试手段。

1.叙述51单片机的程序、数据存储器体系结构。

(书面预习,写在实验报告上)

1.掌握汇编语言设计,重点掌握单片机对外部RAM的操作。

2.掌握程序调试方法,熟练运用单步、断点等调试手段。

3.能够编写简单的循环程序。

三、实验内容

1.清零:

把外部RAM2000H~20FFH的内容清零。

(演示)

2.拆字:

把外部RAM2000H的内容拆开,高位送外部RAM2001H低位,低位送外部RAM2002H低位,外部RAM2001H、外部RAM2002H高位清零。

(当堂完成)

3.拼字:

把外部RAM2000H、外部RAM2001H的低位分别送入外部RAM2002H高低位。

(课后完成)

4.在内部RAM的20~2FH中查出有几个字节是零,把个数放在内部RAM30H中。

5.编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。

数据排序功能:

把RAM空间50H~5AH中放入不等的数据,运行本实验程序后检查50H~5AH中数据是否按从小到大排列。

四、实验步骤

1.参考如下程序流程图编写程序。

清零:

拆字:

拼字:

实验内容4、5的程序流程图请自己画出。

2.调试,验证程序

用连续、单步、断点方式运行程序,并观察实验结果。

五、注意事项

1.建议一个keil工程只编译一个asm汇编程序,并且把一个工程的所有文件保存到一个文件夹下。

2.外部RAM的验证需要进入调试状态——打开memorywindows窗口——输入X:

0000H(代表外部RAM0000H空间)。

此单元的内容可以手工改变(将鼠标移到该单元,并右键单击,弹出下拉菜单),如下图所示。

3.内部RAM的验证需要进入调试状态——打开memorywindows窗口——输入D:

00H(代表内部RAM00H空间)。

此单元的内容可以手工改变,如下图所示。

4.程序运行后,观察这些单元的改变情况。

实验四汇编语言程序设计

(二)

1.熟练掌握51单片机汇编语言。

2.熟练掌握采用循环结构编写程序。

3.熟悉软件开发环境的调试手段。

4.熟练掌握51单片机的数据区、程序区的数据查找,搬移操作。

外部RAM数据块搬移程序,双字节无符号乘法程序的难点各在什么方面。

1.进一步掌握单片机对内部RAM和外部RAM的数据操作。

2.熟悉51指令系统,掌握较为复杂的程序设计方法。

键盘、LED显示器专用驱动芯片HD7279演示实验。

1.了解专用芯片(以HD7279为例)的使用和工作原理。

2.初步掌握串行接口芯片与单片机的连接电路及程序。

四、实验内容

1.外部RAM数据块搬移程序:

将外部RAM中R2、R3为源地址的N个字节数据传送到R4、R5为目的地址的外部RAM区中,字节个数存放在R6、R7中。

数据区传送功能:

在R2、R3中输入源地址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如2000H),运行程序,检查0000~1FFFH中内容是否和2000H~3FFFH中内容完全—致。

2.双字节无符号乘法程序:

将R2R3(R2为高8位)和R6R7(R6为高8位)中双字节无符号整数相乘,积送R4R5R6R7中。

五、实验步骤

1.自己画出程序流程图。

实验五中断优先级实验

1.熟悉keil软件开发环境的调试手段。

2.熟悉protues软件的开发使用。

3.自行设计实验,验证单片机的中断自然优先级与优先级。

1.练习根据实验目的,自行设计实验方法。

2.进一步熟悉keil软件与protues的联机操作。

1.设计实验,验证单片机优先级的几个原则:

先高后低、同级不断、高可断低。

2.设计实验建议以外部中断0和外部中断1为验证对象。

1.在protues下画出验证用电路原理图。

2.验证“先高后低”:

验证自然优先级的“先高后低”、验证优先级设置情况下的“先高后低”。

3.验证“同级不断”:

建议可将外部中断1的中断服务程序设计成死循环,外部中断0中断条件成立后,观察是否可以打断外部中断程序1的运行。

此时,两个外部中断的优先级设置成同一优先级。

4.验证“高可断低”:

此时,外部中断1设置成低优先级,外部中断0设置成高优先级。

自行设计实验电路及验证方法,建议:

1.采用按键模拟中断事件。

2.采用keil与proteus联机调试方式。

实验六定时/计数器实验

1.熟悉51单片机的定时器/计数器的硬件结构。

2.熟悉51单片机的定时器/计数器工作方式和工作模式的选择。

3.熟练掌握对51单片机的定时器/计数器的编程。

定时/计数器的区别点是什么?

1.熟悉51单片机定时/计数功能。

2.进一步掌握C51的编程方法。

1.SOC单片机演示实验

了解片上系统单片机(SOC)与基本51单片机的异同点。

2.AVR单片机演示实验

了解其他类型(以AVR为例)与基本51单片机的异同点。

1.将定时/计数器0外部输入的脉冲进行计数。

用proteus软件仿真的电路原理图如下所示。

P3.4(T0)引脚有脉冲输入,脉冲频率可调,幅值设为5V,请注意此测量脉冲的上限如何确定?

2.计数结果送显示器显示。

3.在完成实验内容2的基础上,要求采用单片机定时器定时功能,完成24~0倒计数器设计,计数间隔要求为1S。

4.在完成实验内容2的基础上,完成简易秒表的设计。

要求秒表精度为0.01秒,从0.00秒开始显示。

1.编写程序,建议采用C51语言编写程序。

实验七串行通信实验

一、实验目的

1.掌握51单片机的串行接口的初始化方法。

2.掌握51单片机与PC机串口采用RS-232通信的方法。

二.预备知识

1.51单片机串行口的结构如下图所示。

串行口的初始化与串行口控制寄存器SCON、特殊功能寄存器PCON、定时计数器模式控制寄存器TMOD、T1时间常数寄存器TH1、TL1、定时计数器开关TR1及中断使能,优先级等寄存器有关。

2.RS-232串行通信电路图如下图所示。

串口摄像头实验。

了解RS-232串行设备的使用。

1.采用C51或者汇编语言,对单片机串行口进行初始化,要求串口初始化为方式1、2、3都可,波特率自定。

2.在初始化的基础上,完成51单片机向PC机发送固定字符,字符自定。

3.完成51单片机的接收操作,接收到争取字符后,应能在实验板上以显示字符(通过HD7279驱动LED,HD7279程序以.h文件的形式给出)或其他适当形式予以提示。

1.在自制电路板上安装好仿真器并完成设置。

2.自制电路板与PC联机采用RS-232电缆,PC机端采用串口调试工具监控单片机发送的信息或给单片机发信息。

3.编写程序代码,完成实验内容的要求。

自制实验板串行口布局。

实验八D/A转换实验X5045实验(二选一)

1.熟悉单片机串行扩展技术中几种主要的总线。

2.熟悉单片机仿真器的应用。

3.熟悉烧写器的应用。

1.MAX531D/A转换器的转换位数、极性、与单片机的数据传输采用并行还是串行方式?

2.X5045在单片机系统中起到哪些作用,eeprom的作用是什么,x5045与单片机的数据传输采用并行还是串行方式?

二、实验目的

1.具备自学芯片资料(datasheet)的能力。

2.具备单片机最小系统电路图的分析能力。

3.能够在硬件电路上调试程序。

128*64液晶显示器演示实验。

了解较为复杂C51程序的编写及设备驱动程序的编写。

自制实验开发板布局如上图所示。

单片机部分最小系统电路原理图如下。

图中P3~P6为单排针,将单片机的P0~P3口引出。

MAX531部分电路原理图如下。

X5045部分电路原理图如下。

注意以上电路原理图网络标号的用法。

仔细阅读原理图,记录单片机与max531、单片机与X5045的连接关系,完成:

1.选择max531,完成输出三角波的功能。

2.选择X5045,完成对eeprom的功能验证。

1.选择max531,编写程序,编译排除语法错误,接仿真器调试,产生三角波,周期,幅值,起始相位可自定。

2.选择X5045,编写程序,编译排除语法错误,接仿真器调试,完成对X5045的写、读操作,程序可说明eeprom是否正常工作。

实验九A/D转换实验DS18B20实验(二选一)

1.熟悉51单片机与A/D转换器的接口设计。

2.熟悉ADC0809芯片的时序。

3.熟悉DS18B20芯片的时序。

1.ADC0809转换器的转换频率上限是多少?

2.基于51单片机的ADC0809转换电路如何设计?

3.DS18B20的优缺点有哪些?

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

  

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

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

4.通过实验了解传感器的优缺点。

嵌入式系统演示实验

嵌入式系统与51单片机系统的异同点。

选择A/D转换实验的实验内容:

A/D转换器大致分有三类:

一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;

二是逐次逼近式A/D转换器,精度、速度、价格适中;

三是并行A/D转换器,速度快,价格也昂贵。

实验用ADC0809属第二类,是8位A/D转换器。

每采集一次一般需100μs。

ADC0809部分电路原理如下图。

图中74373锁存器锁存地址信号,选择ADC0809通道,7474D触发器对ALE信号2分频,给ADC0809做CLK信号。

7402为与非门芯片。

仔细阅读原理图,了解A/D转换芯片ADC0809转换性能及编程方法。

采用ADC0809,由电位器提供模拟量输入。

编写程序,将模拟量转换成数字量,并通过HD7279的LED显示转换结果。

(HD7279程序以.h文件的形式给出)

选择BS18B20实验的实验内容:

DS18B20是广泛使用的数字温度传感器,测温范围-55℃~+125℃。

采用独特的一线制接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现双向通讯,支持多点组网功能。

DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路(常见的三引脚封装)内。

仔细阅读DS18B20的芯片资料,设计其与单片机的接口电路图,完成焊接,编写程序,完成温度测量功能,并通过HD7279的LED显示测量结果。

(HD7279程序已.h文件的形式给出)

选择A/D转换实验的实验步骤:

1.编写ADC0809程序,编译排除语法错误,接仿真器调试,可采用延时、中断、查询任何一种方法读取AD转换结果,利用变量观察窗口观察转换结果(必须在程序停止运行才可观察)。

2.将转换结果显示在LED数码管上,利用hd7279.h头文件,直接调用write_hd7279函数就可将转换结果显示在LED上。

3.在完成以上第二步的基础上,设基准电压为5V,将转换结果量化为电压值显示在实验板LED上,如实际电压为4.32V,显示432即可。

选择BS18B20实验的实验步骤:

1.阅读BS18B20芯片资料,完成电路设计与焊接。

2.编写BS18B20程序,编译排除语法错误,接

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

当前位置:首页 > 解决方案 > 学习计划

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

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