单片机实验报告.docx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机实验报告.docx》由用户(最好的沉淀)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 报告
- 资源描述:
-
1、单片机最小系统设计及应用摘要目前,单片机以其高可靠性,在工业控制系统、数据采集系统、智能化仪器仪表等领域得到极其广泛的应用。因此对于在校的大学生熟练的掌握和使用单片机是具有深远的意义。通过本次课程设计掌握单片机硬件和软件方面的知识,更深入的了解单片机的实际应用,本次设计课程采用 STC89C52 单片机和 ADC0804,LED 显示,键盘,RS232 等设计一个单片机开发板系统。进行了 LED 显示程序设计,键盘程序设计,RS232 通信程序设计等。实现了单片机的各个程序的各个功能。对仿真软件keil 的应用提升了一个新的高度。单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场
2、数据的采集和控制。通过本实验的学习,可以让学生掌握单片机原理、接口技术及自动控制技术,并能设计一些小型的、综合性的控制系统,以达到真正对单片机应用的理解。关键词:单片机;智能;最小系统;ADC;RS232;显示;STC89C52第 1 章 概述单片机又称单片微控制器 ,它不是完成某一个逻辑功能的芯片 ,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备。单片机采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调
3、制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域,由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、
4、掌上电脑以及鼠标等电脑配件中都配有1-2 部单片机。 汽车上一般配备 40 多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过 PC 机和其他计算的总和,甚至比人类的数量还要多。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。第 2 章 实验内容2.1 单片机集成开发环境应用2.1.1 实验目的1、集成开发环境 Keil 介绍及开发流程1) 建立您的第一个项目点击 Project 菜单,选择弹出的下拉式菜单中的 N
5、ew Project,如图 12。接着弹出一个标准 Windows 文件对话窗口,如图 13,用法技巧也不是这里要说的,以后的章节中出现类似情况将不再说明。在“文件名”中输入您的第一个C 程序项目名称,这里我们用“test”,这是笔者惯用的名称,大家不必照搬就是了,只要符合 Windows 文件规则的文件名都行。“保存”后的文件扩展名为uv2,这是 KEILuVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。2) 选择所要的单片机选择所要的单片机,这里我们选择常用的Ateml 公司的 AT89C51。此时屏幕如图 14 所示。AT89C51 有什么功能、特点呢?请看
6、图中右边有简单的介绍, 是英文的。稍后的章节会作较详细的介绍。完成上面步骤后,我们就可以进行程序的编写了。3) 在项目中创建新的程序文件或加入已经存在的程序文件首先我们要在项目中创建新的程序文件或加入已经存在的程序文件。如果您没有现成的程序,那么就要新建一个程序文件。在 KEIL 中有一些程序的 Demo, 在这里我们还是以一个C 程序为例介绍如何新建一个C 程序和如何加到您的第一个项目中吧。点击新建文件的快捷按钮,在 2 中出现一个新的文字编辑窗口。4) 如果没有已经存在的程序文件,新建、保存点击图 15 中的 3 保存新建的程序,也可以用菜单 FileSave 或快捷键CTRL+S 进行保
7、存。因是新文件所以保存时会弹出类似图 13 的文件操作窗口, 我们把第一个程序命名为 test1.c,保存在项目所在的目录中,这时您会发现程序单词有了不同的颜色,说明 KEIL 的 C 语法检查生效了。如图 16 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出菜单,在这里可以做在项目中增加减少文件等操作。我们选“ Add File to Group SourceGroup 1”弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。5
8、) 编译调试C 程序文件已被我们加到了项目中了,下面就剩下编译运行了。这个项目我们只是用做学习新建程序项目和编译运行仿真的基本方法,所以使用软件默认的编译设置,它不会生成用于芯片烧写的 HEX 文件。要生成用于芯片烧写的 HEX 文件,应进行如下设置:在 Creat HEX File 前打选择。如果先前编译过一次之后文件没有做动编辑改动,这时再点击是不会再次重新编译的。3 是重新编译,每点击一次均会再次编译链接一次,不管程序是否有改动。在 3 右边的是停止编译按钮,只有点击了前三个中的任一个,停止按钮才会生效。5 是菜单中的它们,我个人就不习惯用它了。嘿嘿,这个项目只有一个文件,您按 1.2.
9、3 中的一个都可以编译。在 4 中可以看到编译的错误信息和使用的系统资源情况等,以后我们就依靠它来进行查错。6 是有一个小放大镜的按钮,这就是开启 关闭调试模式的按钮,它也存在于菜单 DebugStartStopDebug Session,快捷键为 Ctrl+F5 6)调试 、生成 HEX 文件进入调试模式,软件窗口样式大致如图 18 所示。图中 1 为运行,当程序处于停止状态时才有效,2 为停止,程序处于运行状态时才有效。3 是复位,模拟芯片的复位,程序回到最开头处执行。3、下载到单片机的内部运行1) 用 KEIL 生成的 HEX 文件步骤:点击 Project 菜单,选择弹出的下拉式菜单中
10、的 New Project。选择所要的单片机,如选择常用的 Ateml 公司的 AT89C51。在项目中创建新的程序文件或加入已经存在的程序文件。如果没有已经存在的程序文件,新建、保存。编译调试 、生成 HEX 文件2) 下载本实验板提供 ISP 方式的下载,将 KEIL 生成的 HEX 文件下载到单片机的内部 flash。连接计算机串口和单片机的串口下载。注意:单片机的 P1.0 P1.6 P1.1 不能被短接。3) ISP 下载方法使用 STC-ISP 软件,操作方法见前面。ISP 下载步骤:选择器件装载 HEX 文件下载程序4) 运行将 KEIL 生成的 HEX 文件下载到单片机的内部
11、flash 后,即可自动运行单片机的内部的程序2.1.2 实验内容照实验内容开始进行实验,熟悉 Keil 软件的使用,自行建立工程,并新建一个文件(汇编文件为.ASM 扩展名,C 文件为.C 扩展名),编写自己的程序,再把此文件添加到工程当中,最后进行编译,如果没有错误,则进行在线软件的仿真调试。仿真调试分为两种:软件仿真和硬件仿真,前者不使用仿真器,后者使用硬件仿真器。本实验箱提供 ISP 方式的下载,将 KEIL 生成的 HEX 文件下载到单片机的内部 flash,重复此部分内容,直到熟练掌握开发环境的使用。2.1.3 实验程序1、汇编程序:ORG0000HSJMPSTARTORG0030
12、HSTART:MOVP1,00000010B;将 P1.0 与 P1.1 分别置低电平、高电平NOP NOP NOPLJMP START END;程序结束;空指令,不执行任何操作;跳转到 STA2、C 程序:附:关于此程序的 C51 实现#include #includevoid main()while(1)P1 = 0x02;/置位 P1.1,清零 P1.02.1.4 实验结果及分析点亮了第二个发光二极管,P10-P18 分别控制八个发光二极管,0x02 表示点亮第二个发光二极管。将程序下载到单片机内运行结果正确。2.1.5 收获及思考题回答1,如果二极管的阴、阳极插反,怎么改进程序,使之发
13、光? 将 P1 = 0x02 改为 P1 = 0xf 即可。2,用软件延时的办法实现指示灯的闪烁。添加一个延时程序即可,例如延时 0.2msMOV R6,#200 LOOP1: MOV R7,#248NOPLOOP2: DJNZ R7,LOOP2DJNZ R6,LOOP1 RETEND本次实验学会了使用 KEIl 软件编写程序,并用下载器将程序下载到单片机当中运行。2.2 单片机 I/O 口实验2.2.1 实验目的1、熟悉单片机 I/O 口的特点2、掌握单片机 I/O 口的编程2.2.2 实验内容1、 P1 口交通灯程序编写(调试时连接 JP3 的 8 个跳线)2、 蜂鸣器发声程序2.2.3
14、实验程序 1、蜂鸣器程序: ORG 0000HLJMPMAIN MAIN:SETB P1.2LCALL DELAY CLR P1.2 LCALL DELAYSJMP MAIN DELAY:MOV R7,#255 D1:MOV R6,#255D2: DJNZ R6,D2 DJNZ R7,D1 RETEND2、流水灯:ORG 0000H AJMP MAIN ORG 0030HMAIN:MOV DPTR,#2000HMOV R0,#0FEH MOV A,R0MOVX DPTR,AACALL DELAY;延时LOOP:MOV R3,#07H RL AMOVX DPTR,A ACALL DELAY DJ
15、NZ R3,LOOP AJMP MAIN;设置左移7次;左移一位;延时;R3是否为0,不为0转LOOP继续执行;返回主程循环执DELAY: D1:D2:ENDMOV R7,#255 MOV R6,#255 DJNZ R6,D2 DJNZ R7,D1 RET;延时子程序;子程序返回2.2.4 实验结果及分析调试时连接 JP3 的 8 个跳线。编译正确,P1.2 给低电平蜂鸣器就会发声音。流水灯关键在于循环。2.2.5 收获及思考题回答用 C51 实现流水灯和蜂鸣器#include #include unsigned char a,b,k,j; sbit beep=P23;void delay10
16、ms()for(a=100;a0;a-)for(b=225;b0;b-);void main()k=0xfe; while(1)delay10ms();beep=0; delay10ms(); beep=1; j=_crol_(k,1); k=j;P1=j;对蜂鸣器有了一定了解,在用 C 语言编写程序是学会了新命令_crol_(a,b)2.3 定时器中断2.3.1 实验目的1、熟悉单片机中断的概念;2、熟悉单片机内部定时器的硬件结构;3、掌握单片机定时器的编程;4、掌握单片机的时序及锁存器的使用;5、掌握用定时器实现交通灯和流水灯显示.2.3.2 实验内容1、中断是指 CPU 正在处理某些事务
17、的时候,外部又发生了某一事件,请求 CPU 及时处理。于是,CPU 暂时中断当前的工作,转而处理所发生的事件。处理完毕, 再回到原来被中断的地方,继续原来的工作。这样的过程,称为中断。下图分别为中断方式流程和嵌套流程。2、单片机共有 5 个中断源,两个优先级,并可以实现两级中断嵌套。图 4-4中断系统结构MCS-51 单片机响应中断有四个条件: 中断源有请求;寄存器 IE 的总允许位 EA=1,且 IE 相应的中断允许位为 1; 无同级或高级中断正在服务;现行指令执行完最后一个机器周期。3,单片机有两个 16 位的硬件定时器/计数器,分别称为Timer0 和 Timer1。每个定时器都有四种工
18、作方式,称为方式 0、方式 1、方式 2 和方式 3。工作方式有软件控制。其结构图如下。图 4-5定时器/计数器结构单片机的定时器/计数器都统称为定时器,是为定时器是对机器周期进行计数, 而计数器是对外部的脉冲进行计数。通常情况下,都称为定时器。定时器的四种工作方式是由软件来控制的,如下表所示,定时器工作方式寄存器 TMOD 中的 M0、M1 两为决定了它的工作方式。M1M0工作方式说明00方式 013 位计数器01方式 116 位计数器10方式 2自动再装入 8 位计数器11方式 3定时器 0:分为两个 8 位计数器定时器 1:对外部停止计数表 4-1 定时器的四种工作方式4、使用单片机的定
19、时器 T0 产生 100ms 的定时信号,使实验仪主板上的流水灯(8 只红色发光二极管)依次发光,并循环。设此时系统的时钟频率为 6MHz,再根据它来决定定时器T0 的初始值。由于时钟频率为 6MHZ,所以,机器周期为 2s。初始值计算有以下公式的出,t=(216-T0初值)机器周期,就可以计算出初始值,公式是依据定时器的工作原理的出的, 51 单片机的定时器是加法计数的,即由有一个数开始,每一个机器周期加一, 直至溢出。5、实验主板上的 8 只红色发光二极管的亮/灭是由 8 位锁存器 74HC573 进行锁存。电路如下图。由图可以看出,锁存器是挂在系统总线上的,有外部地址进行统一编址,是外部
展开阅读全文