单片机原理与应用实验报告.docx
- 文档编号:9239897
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:64
- 大小:2.57MB
单片机原理与应用实验报告.docx
《单片机原理与应用实验报告.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用实验报告.docx(64页珍藏版)》请在冰豆网上搜索。
单片机原理与应用实验报告
《单片机原理与应用》
实验指导书
卢钢张翼
华中科技大学文华学院
信息学部
2013.6
前沿
本实验指导书是华中科技大学文华学院“《单片机原理与应用》教学改革”教研项目(项目编号:
J09007403F7)的组成部分。
其基本指导思想是:
实验全过程,即为单片机应用系统开发的全过程;就是依据任务要求(实验设计题目或用户需求),首先设计出合理的硬件系统,然后以此为基础进行相应软件程序设计,测试、分析结果,再修改、再测试,直至正确实现设计任务的要求。
硬件电路设计是单片机(嵌入式)应用系统设计的基础,以往传统的实验往往忽略了这个环节,结果造成同学们实验完了,还不清楚是怎么回事。
加强硬件电路设计这个环节,是本实验指导书特点之一。
基于上述思想,第一,本单片机实验开发仪由单片机最小系统和十多个独立功能模块(或器件)构成,它们的信号线通过接线排座引出,为灵活设计不同的单片机应用系统提供了平台。
同样的设计题目,可以设计出不同的硬件电路和不同的软件程序。
第二,要求同学完成实验的同时完成实验报告。
实验报告包含:
设计题目,硬件电路设计(含电路图和简要原理说明),软件程程设计(含序流程图、原代码和注释),实验结果分析(实验过程中出现问题、原因及解决方案)。
以此,进一步增强同学对单片机应用系统设计全过程的理解和掌握,同时训练同学撰写报告的能力。
第三,在每个实验中,给出了不同的设计题目,每个题目给出了不同的硬件电路和软件编程参考设计,其目的,使同学了解同样的设计题目,有不同的解决方案。
第四,每个实验中都给出了思考题,以此使同学们进一步理解单片机系统硬件与软件之间的关系和进一步掌握单片机工作原理。
建议同学们千万不要抱着毕业之后到公司去学习的态度,因为企业主要目的是盈利,而培训要花费相当长的时间和精力,因此对于企业来说,更青睐那些知识结构健全、应用经验丰富、创新能力强的人。
这正好印证了我们常说的一句话:
机会总是留给那些有准备的人!
抓紧准备,从知识结构、专业技能等方面塑造自己、发展自己,提高实际应用能力,以增加自己在就业时的筹码。
我们希望本实验指导书能为同学们学好《单片机原理与应用》课程和掌握单片机应用系统设计提供有益帮助。
由于编写时间较仓促,加上作者的水平有限,讲义中难免有遗漏和不足之处,恳请广大教师、同学提出宝贵意见,批评和指正,以便作者做进一步改进,更好满足同学们学习单片机的需要。
编者
2013.6
实验要求
1、实验前必须阅读教科书的有关部分和本实验指导书,了解实验目的、内容、步骤,做好实验前的准备工作,否则不得上机操作。
2、按照实验指导书说明正确连线,严禁带电接线和接插元器件。
通电前须经过指导教师检查认可后方能通电。
3、在弄清楚实验原理与过程前,不准随意拨弄各种与实验无关的旋钮和开关,凡与本次实验无关的任何设备都禁止动用和摸弄,注意安全。
4、在弄清楚实验原理与过程前,严禁用手触摸实验系统印制电路板和元器件的引脚,防止静电击穿芯片。
5、实验中若损坏仪器或元器件,应及时向指导教师报告。
6、在实验室内保持安静和卫生,不得随意走动和喧哗,认真完成实验。
7、实验完成后,关掉电源,及时整理实验台桌面,保持环境整洁。
8、按规定认真完成实验报告,在规定的时间内缴上实验报告。
9、凡实验或实验报告未能按规定完成的学生,不能参加本课程的考试或考察。
实验一单片机实验开发仪硬件学习...................................................................................1
实验二单片机开发环境搭建...............................................................................................5
实验三单片机控制LED灯实验........................................................................................15
实验四数码管实验..............................................................................................................20
实验五按键实验..................................................................................................................27
实验六中断实验..................................................................................................................35
实验七定时器实验..............................................................................................................41
实验八串口通信实验..........................................................................................................48
附录一实验报告模板..........................................................................................................56
附录二单片机实验开发仪电路图......................................................................................58
实验一单片机实验开发仪硬件学习
1、实验目的
熟悉单片机开发仪硬件电路原理图、PCB板元器件布局以及跳线帽和接线插座的作用。
二、51单片机实验开发仪硬件电路简介
51单片机实验开发仪硬件电路原理图详见附件。
原理图按功能模块给出,每个模块分别给出了相应器件和外接连线定义符号,它可作为设计应用系统中的一个独立器件或功能模块使用。
该实验开发仪由51单片机最小系统、电源模块、矩阵键盘模块、独立键盘模块、8位LED数码管显示模块(动态数码管)、1位LED数码显示管(静态数码管)、10位LED灯模块(交通灯)等多个模块构成。
我们在设计单片机应用系统硬件电路时,需依照设计要求,由单片机最小系统和某些功能模块(或器件)组成。
这里只介绍单片机最小系统模块。
其他模块在具体实验或应用设计时,再进行学习。
51单片机最小系统原理图如图1-1所示。
单片机的4个I/O口,P0口、P1口、P2口、P3口分别接至JP10、JP8、JP11和JP9接线排座,通过接线排座与有关器件连接,实现I/O对不同模块的操作控制以及系统扩展,从而实现不同的应用系统。
(注意:
其中某些I/O引脚已固定作为某种信号,直接或通过短路帽连接到固定器件。
例如,P2.0、P2.1作为EEPROM器件的SDA和SCL信号直接接到该器件的第5、第6脚;P3.4作为实时时钟芯片DS1302的DSIO信号,通过短路帽JP1302连接到DS1302的第6脚(SDIO)。
单片机的复位电路模块如图1-2所示,利用短路帽经J9,可方便实现高电平脉冲复位或低电平脉冲复位,这点以选用单片机型号确定。
51单片机为高电平脉冲复位,其复位引脚RST(引脚9)应通过短路帽使J9的2、1短接。
图1-151单片机最小系统(MCU)原理图
图1-2单片机复位电路
二、51单片机实验开发仪元器件布局
单片机实验开发仪元器件布局如图1-3和1-4所示。
单片机实验开发仪元器件布局如图1-3和1-4所示。
图1-3单片机实验开发仪元器件布局图
(1)
图1-4单片机实验开发仪元器件布局图
(2)
3、实验开发仪使用IC芯片
1、U0:
DS1302,实时时钟(RTC)芯片;
2、U1:
24C16,串行I2CEEPROM芯片;
3、U2:
MAX232,串口通信TTL-RS232电平转换芯片;
4、U3:
CH340T,USB转串口TTL芯片;
5、U4、U5:
74HC595,串入并出移位寄存器芯片(输出锁存器);
6、U7:
PCF8591,I2C总线A/D、D/A芯片;
7、U8:
74LS165,并入串口移位寄存器芯片(输入锁存器);
8、U9:
MAX485,串行通信口TTL-RS485电平转换芯片;
9、U10:
NE555,时基电路(定时器)芯片,用它可设计成几十种应用电路;
10、U12:
74LS138,3-8译码器芯片;
11、U13:
74537,8位锁存器芯片;
12、U15:
NLN2003,达林顿驱动芯片(输出电流可达1A,可驱动步进电机);
13、U18:
UDN2916,双全桥PWM马达驱动器芯片;
14、STC90C516:
STC90系列C51单片机;
15、DS18b20:
单线数字温度传感器;
16、IR:
红外线接收头
实验二单片机开发环境搭建
软件的开发离不开开发环境,开发环境是指在基本硬件和数字软件的基础上,为支持系
统软件和应用软件的工程化开发和维护而使用的一组软件,通常包括文本编辑环境、语言编辑器、对应的函数库和帮助文件等。
目前MSC-51单片机开发中使用最为广泛的是美国Keiluvision公司的KeiluVsion集成开发环境。
该环境能运行在Windows操作系统上,集成了KeilC51编译器、uvisionIDE集项目管理、编译工具、代码编写工具、代码调试以及完全仿真于一体,提供了一个简单易用的开发平台。
1、实验目的
1、进一步熟悉51单片机实验开发仪。
2、KeilC51软件使用。
二、设计题目
1、点亮8只LED灯的第7个LED灯(用P2口)
2、点亮8只LED灯的第1个LED灯(用P0口)
三、实验步骤(keil51使用)
KeiluVsion自带项目管理器,所以用户不需要在项目管理上花费过多的精力,只需要按照以下步骤操作即可建立一个属于自己的项目。
(1)、启动uVsion,建立工程文件并且选择器件。
(2)、建立源文件、头文件等相应的文件。
(3)、将工程需要的源文件、头文件、库文件等添加到工程中。
(4)、修改启动代码并且设置工程相关选项。
(5)、编译并且生成Hex或者Lib文件。
1、建立工程项目
(1)、开机,运行KeiluVision4,其运行界面如图2-1所示。
图2-1Keil运行界面
(2)、点击“Project→New Project…”菜单,弹出“CreatNewProject”对话框,如图2-2所示。
图2-2创建新工程
(3)、选择工程文件要存放的路径,输入工程文件名,最后单击保存,如图2-3所示。
在“保存在”下拉框中选择工程文件要存放的路径,在“文件名”文本框处用键盘敲入你要给这个工程起的工程名(如“test1”),用鼠标左键单击“保存”按键。
图2-3输入工程名
(4)、选择MCS-51单片机的型号,如图2-4、图2-5所示。
在弹出的“SelectaCUPDataBaseFile”对话框中选择“STCMCUDatabase”,单击“OK”按键。
图2-4选择CPU数据库文件
然后在弹出的“SelectDeviceforTarget‘Target’”对话框中选择单片机的型号。
我们单片机实验开发板上CPU的型号是“STC90C516RD+”,因此我们在对话框中选择“STC90C52RC”。
图2-4选择单片机型号
选择单片机型号之后,出现对话框询问是否自动加入MCS-51单片机的启动文件,点“是”,该文件用于初始化单片机内部存储器等,添加完成之后在项目管理窗口中可以看到startup.A51文件已经被加入。
到此为止,我们还没有建好一个完整的工程,虽然工程名有了,但工程当中还没有任何文件及代码,接下来我们添加文件及代码。
2、建立和包含文件
在工程文件中创建新的源文件并且包含相应的文件,其步骤如下:
(1)、鼠标左键单击“File”→“New”菜单项,或单击界面上的快捷图标
,如图图2-6所示。
图2-6新建源文件
(2)、保存新建的文件,单击SAVE或者用鼠标左键单击菜单“File”→“SaveAs...”,如图2-7所示。
图2-7保存新建源文件
(3)、在弹出的“SaveAs”对话框中输入你给这个文件起的文件名。
注意:
后缀名必须为.C
单击“保存”,如图2-8所示。
图2-8保存新建源文件
(4)、将源文件添加到工程中。
回到编辑界面,在左边资源管理器中用鼠标左键单击“Target1”前面的“+”号,然后在“SourceGroup1”选项上单击右键,然后选择“AndFilestoSourceGroup1”菜单项,如图2-9所示。
图2-9将源文件添加到工程中
(5)、选择要加入的文件,单击Add,然后单击Close,如图2-10所示。
文件类型选择“CSourcefile(*.c)”。
图2-10选择要加入的文件
3、代码编写
完成前面的添加步骤之后用户就可以开始代码的编写,如图2-11所示。
图2-11代码编写
4、项目配置
项目配置是指对项目的实际情况设置参数,使得编译能按当前项目的实际情况对代码进行编译操作。
单击菜单“Project”中的“OptionforTarget“Target1”选项或菜单栏上的快捷图标
,如图2-12所示。
图2-12选择目标
其中有很多选项,我们只需将:
(1)、Xtal(MHz)-改为单片机实验开发板上的晶振的频率-12MHz,如图2-13所示。
图2-13配置晶振
(2)、选中“Output”选项单中的“CreateHexFile”选项,这是为了能生成供MSC-51单片机执行的Hex文件,如图2-14所示。
然后单击“确定”。
图2-14创建Hex文件
5、编译项目并且处理错误
单击主菜单中“Project”→“Builttarget”,对项目进行编译并且生成对应的Hex文件。
编译通过,程序没有错误。
此时下边窗口显示“test1”-0Error(s),0Warning(s).
如图2-15所示。
图2-15程序编译
如果在编译中出现错误则会在“output”窗口中看到对应的错误信息。
双击“output”窗口中对应的错误信息,则在编辑窗口光标会跳到出错的对应语句,并且在左边出现一个蓝色箭头,方便使用户修改。
如果修改之后的编译,选择“RebuiltallTargetFiles”即可。
四、硬件电路设计参考
1、使用总线法,用单片机的P2口来驱动8个LED,接线排座JP11(单片机P2口)和接线排座JP1(LED灯)用8PIN排线连接起来。
2、使用位操作法,用单片机的P0.0驱动8个LED灯的第1个,用杜邦线将JP10接线排座
的第1引脚(单片机的P0.0)与接线排座JP1的第1引脚(LED灯D1)连接。
五、软件程序设计参考
编程时注意:
因为发光二极管的阳极接高电平,只有当控制它的I/O口输出为低电平时,才可以驱动其点亮(注意8个LED发光二极管在实验板上的位置)。
1、点亮第7个发光二级管
#include
voidmain()
{
P2=0xbf;
}
2、点亮第1个发光二级管
#include
sbitled0=P0^0;
voidmain()
{
led0=0;
}
六、思考
1、点亮第4个发光二极管(位操作法,用P2口)
2、点亮第3个发光二级管(总线法,用P0口)
实验三单片机控制LED灯实验
一、实验目的
1、进一步掌握Keil的使用,熟悉单片机C语言编程。
2、学习I/O口的使用方法。
二、设计题目
1、单只LED灯(D3)闪烁
2、双4只LED灯(D1、D3、D5、D7与D2、D4、D6、D8)交替闪烁
3、8只LED灯(D1、D2、D3、D4、D5、D6、6D7、D8)流水灯显示
三、实验原理
发光二级管是半导体二极管的一种,可以把电能转化为光能,常简写为LED。
发光二
极管与普通二极管一样是由一个PN结组成,也具有单向导电性。
只要加在发光二极管两端的电压超过它的导通电压(一般为1.7V-1.9V)它就会导通,而当流过它的电流超过一定电流时(一般2-3mA)它就会发光。
LED常用在MCS-51单片机中指示单片机的某个开关量的状态。
对单片机的控制,其实就是对I/O口(单片机引脚)的控制。
单片机共四个端口,P0、P1、P2、P3;每个端口分别有8个引脚P0.0-P0.7、P1.0-P1.7、P2.0-P2.7、P3.0-P3.7;这32个引脚既可以作输出脚,又可以作输入脚。
作输出脚时,单片机可以控制指示灯、数码管、电机等外部器件;作输入脚时,可以“感受”按键、开关、传感器等外部器件(例如接收数据-此就是作为输入脚的),单片机的每个引脚都是可以分开控制的,即独立的给高或者低电平。
想要点亮一个小灯,首先要将小灯与单片机的一个I/O口连接好,然后将此引脚给高或者低电平,接着这个小灯就可以按照你给的电平实现点亮或熄灭了。
4、硬件电路设计参考
LED模块排线接口如图3-1所示。
依据实验原理,只要将所需控制的LED对应排线引脚连接到单片机一个I/O口即可。
1、连接方法
JP11(P2)和JP1和LED灯的JP1用8PIN排线连接起来。
2、硬件说明
使用单片机的P2口来驱动8个LED,发光二极管的阳极接高电平,故P2口为低电平时,就可以驱动其点亮。
五、软件程序设计参考
1、单只LED灯(D3)闪烁
程序一:
#include
voiddelay(void)
{
unsignedinti;
for(i=0;i<20000;i++)
;
}
voidmain(void)
{
while
(1)
{
P2=0xfb;
delay();
P2=0xff;
delay();
}
}
程序二:
#include
voidmain()
{
while
(1)
{
unsignedinta;
P0=0xfb;//11111011
a=5000;
while(a--);
P0=0xff;//11111111
a=5000;
while(a--);
}
}
2、双4只LED灯(D1、D3、D5、D7与D2、D4、D6、D8)交替闪烁
#include
#defineuintunsignedint
#defineucharunsignedchar
voiddelay();
voidmain()
{
while
(1)
{
P2=0xaa;
delay();
P2=0x55;
delay();
}
}
voiddelay()
{
uintx,y;
for(x=100;x>0;x--)
for(y=600;y>0;y--);
}
3、8只LED灯(D1、D2、D3、D4、D5、D6、D7、D8)流水灯显示
#include
voiddelay(void)
{
unsignedchari,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++);
}
voidmain()
{
while
(1)
{
P2=0xfe;
delay();
P2=0xfd;
delay();
P2=0xfb;
delay();
P2=0xf7;
delay();
P2=0xef;
delay();
P2=0xdf;
delay();
P2=0xbf;
delay();
P2=0x7f;
delay();
}
}
学到了这里,相信大家对单片机有了一个初步的认识,知道怎样去创建一个工程,以及
怎样去操作一个I/O口了,其实单片机的学习就是通过对I/O口的操作来实现不同的功能。
请同学们记住学习中不怕难,就怕不努力,肯花时间,就一定学的好。
六、思考题
1、点亮2、3、5、6这四个LED灯。
2、点亮单片机开发实验仪上的D1、D3、D5、D7灯与D2、D4、D6、D8灯交替闪烁
3、跑马灯。
实验四数码管实验
一、实验目的
1、掌握数码管显示原理(静态显示和动态显示)。
2、掌握数码管显示编程。
二、设计题目
1、让单位数码管显示一个5(用P0口)
2、让四位数码管第四位显示一个3(位选用P2口控制,段选用P0口控制)
3、在八个数码管上显示0、1,2……7
三、实验原理
数码管是一种半导体发光器件,是MCS-51单片机系统中用得非常多的一种输出通设
备,其基本单元是发光二级管。
MCS-51单片机系统中最常使用的是8段数码管。
1、数码管显示原理
图4-1数码管内部原理图
8段数码管的内部结构是由8个发光二极管组成的,如图4-1所示,从图4-1(a)可看出,一位数码管的引脚是10个,显示一个8字需要7个小段,另外还有一个小数点,所以其内部一共有8个小的发光二极管,最后还有一个公共端,生产商为了封装的统一,单位数码管都封装10个引脚,其中第3和第8引脚是连接在一起的。
而它们的公共端又可以分为共阳极和共阴极,如图4-1(b)所示。
共阳极数码管的8个发光二极管的阳极(正极)连接在一起接高电平(一般接电源),其它管脚接各段驱动电路输出端。
当某段的输出端为低电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
共阴极数码管的8个发光二极管的阴极(负极)连接在一起接低电平(一般接地),其它管脚接各段驱动电路输出端。
当某段的输出端为高电平时,则该段所连接的发光二极管导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
因此我们在显示数字的时候首先做的就是给“0-9”十个数字编码,在要它亮什么数字的时候直接把这个编码送到它的阳极就行了。
当数码管为多位一体时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连接在一起的,独立的公共端可以控制多位一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”,有了这两个线后,通过单片机及外部驱动电路就可以控制任意的数码管显示任意的数字了。
2、数码管静
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 实验 报告