单片机原理实验讲解电信CDIO版30课时.docx
- 文档编号:9029300
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:40
- 大小:1.50MB
单片机原理实验讲解电信CDIO版30课时.docx
《单片机原理实验讲解电信CDIO版30课时.docx》由会员分享,可在线阅读,更多相关《单片机原理实验讲解电信CDIO版30课时.docx(40页珍藏版)》请在冰豆网上搜索。
单片机原理实验讲解电信CDIO版30课时
《单片机原理实验》讲义CDIO版
目录
前言1
实验一KEIL编译器实验2
实验二LED数码管动态扫描实验11
实验三汇编语言程序设计
(一)13
实验四汇编语言程序设计
(二)16
实验五中断优先级实验17
实验六定时/计数器实验18
实验七串行通信实验20
实验八D/A转换实验X5045实验(二选一)22
实验九A/D转换实验DS18B20实验(二选一)25
实验十简易温度控制系统实验29
演示实验说明34
实验资料说明35
实验报告撰写要求36
前言
近年来,CDIO(构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate))工程教育模式改革由美国麻省理工学院为首的世界几十所大学开展。
CDIO大纲将学生的能力分为工程基础知识、个人能力、人际团队能力和工程系统能力4个层面,倡导“做中学”和“基于项目教育和学习”的新型教学模式,让学生以主动的、实践的、课程之间有机联系的学习方式接受工程教育。
CDIO教育模式是近年来符合国际工程教育共识的,对学生在工程乃至社会大系统中进行训练的一整套工程教育改革体系。
国外经验表明,CDIO的理念和方法先进可行,适合工科教学过程各个环节的改革。
我国从2005年由汕头大学工学院率先开始学习研讨CDIO工程教育模式并加以实施,国家教育部2008年发起成立《中国CDIO工程教育模式研究与实践》课题组,确定了试点高校和专业,已经取得了积极的教学效果。
浙江省内有浙江工业大学、宁波工程学院、万里学院、浙江大学城市学院四所高校被确定为试点高校,绍兴市目前还没有高校列入试点范围。
高校中传统电子类专业实验以验证性实验为主,学生参与实验的自由度和原创空间非常受限,实验教学效果不佳,迫切需要改进实验教学模式,科学培养创新人才。
《单片机原理实验》由2012年绍兴市高等教育教学改革重点课题“基于CDIO理念的电子类专业实验教学模式研究——以《单片机原理实验》为例”资助。
课题组重新撰写契合CDIO理念的新版《单片机原理》实验大纲;以一个典型单片机开发工程-简易温度控制系统为驱动,把该工程开发中涉及的单片机技术要点分解成12个必修实验项目,同时设计8个难度有提高,知识点有扩展的演示实验项目,作为提高和补充。
实验一KEIL编译器实验
一、实验预习
1.掌握51单片机的硬件结构。
(包括CPU、存储器体系结构、I/O口等)
2.掌握51单片机的指令系统,熟悉使用汇编语言设计程序。
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.自己画出程序流程图。
2.调试,验证程序
实验五中断优先级实验
一、实验预习
1.熟悉keil软件开发环境的调试手段。
2.熟悉protues软件的开发使用。
3.自行设计实验,验证单片机的中断自然优先级与优先级。
二、实验目的
1.练习根据实验目的,自行设计实验方法。
2.进一步熟悉keil软件与protues的联机操作。
三、实验内容
1.设计实验,验证单片机优先级的几个原则:
先高后低、同级不断、高可断低。
2.设计实验建议以外部中断0和外部中断1为验证对象。
四、实验步骤
1.在protues下画出验证用电路原理图。
2.验证“先高后低”:
验证自然优先级的“先高后低”、验证优先级设置情况下的“先高后低”。
3.验证“同级不断”:
建议可将外部中断1的中断服务程序设计成死循环,外部中断0中断条件成立后,观察是否可以打断外部中断程序1的运行。
注意:
此时,两个外部中断的优先级设置成同一优先级。
4.验证“高可断低”:
建议可将外部中断1的中断服务程序设计成死循环,外部中断0中断条件成立后,观察是否可以打断外部中断程序1的运行。
注意:
此时,外部中断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语言编写程序。
2.调试,验证程序。
实验七串行通信实验
一、实验目的
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。
自制实验开发板布局如上图所示。
单片机部分最小系统电路原理图如下。
图中P3~P6为单排针,将单片机的P0~P3口引出。
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程序,编译排除语法错误,接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 实验 讲解 电信 CDIO 30 课时