《单片机原理与应用》实验指导书新.docx
《《单片机原理与应用》实验指导书新.docx》由会员分享,可在线阅读,更多相关《《单片机原理与应用》实验指导书新.docx(75页珍藏版)》请在冰豆网上搜索。
《单片机原理与应用》实验指导书新
单片机原理与应用
实验指导书
合肥学院计算机科学与技术系
2014年1月
目录
目录1
前言3
实验要求4
第一章实验平台及开发工具介绍5
第二章烧录第一个程序22
第三章实验指导33
实验一IO口实验——跑马灯33
实验二键盘显示实验35
实验三定时器/中断实验——电子钟41
实验四外部中断实验43
实验五点阵实验—五向摇杆45
实验六串口通信实验47
实验七串行AD实验—光照测量49
实验八串行AD实验—光照测量54
附录一试验箱结构及电路结构56
附151核心板电路电源电路56
附2底板单色流水灯56
附3底板彩色流水灯57
附4双色二极管57
附5四位一体共阳数码管57
附674HC595驱动58
附7LCD1602液晶58
附8LCD12864液晶59
附9OLED液晶59
附102.8寸TFT屏60
附11独立按键60
附12核心板USB供电5V电源电路61
附13核心板3V3电源电路61
附14核心板1V8电源电路61
附15矩阵键盘62
附16DS18B20电路62
附17DS1302电路63
附18AT24C02电路63
附19MAX485通信电路63
附20PCF8591AD/DA转换模块64
附212路串口模块64
附22红外收发头模块65
附23SD卡模块65
附24无源蜂鸣器模块65
附25两路继电器加步进电机模块66
附26两路直流电机加步进电机模块66
附26光敏/火焰/霍尔传感器模块67
附27电源引出口67
附28串转并模块67
附29并转串模块68
附30双色点阵模块68
附3174HC573八位锁存模块69
附3274LS138三八译码器模块69
附33模拟量输入模块69
附34五向摇杆模块70
附35一位数码管模块70
附录二8051系列单片机汇编语言指令速查表71
前言
由于单片机具有高可靠性、超小型、价格低、容易产品化等特点,在仪器仪表智能化、实时工业控制、实时数据采集、智能终端、通信设备、导航系统、家用电器等控制应用领域,具有十分广泛的用途。
由于目前在国内单片机应用中,MCS-51系列单片机仍然是一种主流单片机,所以本实验指导书为学习MCS-51单片机的本系学生,配合《单片机原理与应用》课程的教学,结合实验开发平台编写了这本实验指导书。
《单片机原理与应用》是一门实践性很强的课程,提高教学质量的一个重要环节是上机实习和训练,无论是学习汇编语言程序设计,还是学习接口电路和外设,或者软硬兼施学习单片机应用系统,不通过加强动手时不能获得预期效果的。
本实验指导书提供10个实验的指导性材料,涵盖单片机内部资源的使用、外围常用接口的设计和使用及单片机典型应用系统开发,对培养学生动手能力、单片机系统搭建能力、编程能力有一定的提升。
由于时间紧迫,需要赶课程进度与实验时间的同步,加上编者学识有限,如有不妥之处,欢迎批评指正。
编者龙夏
2014年1月
实验要求
一、实验素养和一般知识
1.实验前准备工作
(1)明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。
(2)做好实验前预习和必要的准备(先编好程序),作到有的放矢。
2.进入实验室后
(1)熟悉所用的单片机实验开发系统及仪器设备,了解其外观、性能。
(2)接线要简单、正确、明了,并检查接线是否正常,确保没有短路情况发生。
(3)通电瞬间,应注意仪器是否正常工作,不要只看开关,如有不正常现象,应立即断电找出原因。
(4)不允许自带光盘和软盘上机,违反者取消实验资格!
(指导教师允许情况除外)。
3.实验进行时
(1)正常请况下,按规定步骤进行,读取数据,并及时纪录。
(2)各种操作要有目的进行,不可盲动。
(3)实验完后,经老师察看或签字,并把仪器、导线、工具清理、收拾完毕后,学生签到方可离开实验室。
二、实验报告内容和要求
1.实验报告要用学校统一的纸。
2.实验内容应包括,是实验目的、设备、原理、步骤简述、原始数据、结果和分析以及程序清单等。
3.每个实验后的思考题必须完成。
4.对实验中发现的问题应加以讨论,并提出自己的改进意见和要求、希望等。
第一章实验平台及开发工具介绍
畅学实验开发平台由功能主板和扩展核心板组成,扩展核心板可以直接插到底板扩展接口,组合成一个多功能开发学习板,这种独特的开放式接插设计可以完美兼容常见芯片,功能底板和扩展核心板可以一起使用,也可以分开单独使用,灵活性、扩展性极强。
扩展板除可以51单片机核心板外,还支持以下核心板:
AVR16单片机核心板、PIC单片机核心板、MSP430单片机核心板、ARM7核心板、STM32核心板、AVR64/128核心板等其他类型处理器。
一、底板介绍
功能底板板载19个芯片,集成38大功能模块及接口。
各个功能模块使用粗线条把对应的模块分开。
由于主板模块较多,所以使用之前必须看懂电路图,并能在开发板上找到对应位置,只有对硬件连接了解后,才能去学习写程序。
具体硬件资源信息如下:
1)8个单色流水灯
2)6个彩色流水灯(红2,黄2,绿2)
3)1个双色灯
4)2个4位数码管
5)1个1位数码管
6)1个
红绿双色点阵
7)LCD1602液晶接口
8)LCD12864液晶接口
9)OLED模块接口
10)TFT彩屏接口
11)8个独立按键
12)
矩阵键盘
13)5向摇杆按键
14)两路DS18B20
15)热敏/光敏/霍尔传感器模块
16)2路直流电机接口
17)2路步进电机接口
18)2路继电器
19)2路DB9串口(1公1母)
20)DS1302时钟模块
21)无源蜂鸣器
22)AT24C02模块
23)模拟量输入
24)74HC164串转并模块
25)74HC165并转串模块
26)SD卡模块
27)MAX485模块
28)红外发射模块
29)红外接收模块
30)PCF8591AD/DA模块
31)74HC573锁存芯片
32)74LS138译码器模块
33)3.3V电源电路
34)1.8V电源电路
35)3.3V、5V、1.8V、GND电源引出
36)USB通讯接口
37)自恢复保险丝电源保护
38)核心板扩展接口
从上述资源介绍可以看出,畅学系列开发平台资源较为丰富,包含了所有常用的资源,同时留有扩展口,方便外接电路。
二、核心板介绍
(1)核心板介绍
畅学系列51单片机最小系统核心板支持AT和STC两种类型双列直插DIP40系列的51芯片,核心板采用DIP40双列直插锁紧座,方便更换芯片,芯片IO全部引出2组,即可以插到开发平台底板上组合使用,也可以单独使用。
该核心板标配一片STC12C5A60S2单片机,使用一条USB线即可实现核心板及底板供电及在线虚拟串口通许实现程序下载。
支持在线仿真功能,将51单片机芯片更换为SST89E516RD仿真芯片,短接仿真功能跳线即可实现在线仿真功能,可以跟踪程序执行过程,更方便程序调试。
外部晶振使用圆孔插座,可以方便更换外部晶振,核心板标配3个不同频率晶振。
板载自恢复保险丝,可以对核心板功能进行电流保护,防止过大电流烧毁核心板芯片级电路。
板载多组电源引出,5V电源4组、3.3V电源4组,GND4组,方便扩展模块功能使用。
(2)处理器介绍
畅学51单片机核心板采用了宏晶公司最新的1T增强型8051单片机,51芯片选用的是DIP封装的STC12C5A60S2,具有ISP编程功能,完全兼容STC89C52、ST89S52单片机。
STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位AD转换(250K/S,即25万次/秒),针对电机控制、强干扰场合。
具有以下特点:
1)工作电压:
5.5V-3.3V
2)工作频率范围:
0-35mhz,相当于普通8051的0-420mhz
3)用户应用程序空间:
60K
4)片上集成1280ByteRAM
5)通用IO口36个
6)双串口
7)工作温度范围:
-40-+85℃(工业级)/0-75℃(商业级)
8)封装:
PDIP40
STC12系列单片机取代传统8051注意事项:
STC12C5A60S2系列单片机的定时器0/定时器1与传统8051兼容,上电复位后,定时器部分缺省还是除12再技术的,而串口由定时器1控制速度,所以定时器/串口完全兼容。
增加了独立波特率发生器,省去了传统8052的定时器2,如是用T2做波特率的,请改用独立波特率发生器做波特率发生器。
传统8051的111条指令执行速度全面提速,最快的指令快24倍,最慢的指令快3倍,靠软件延时实现精确延时的程序需要调整。
三、KeilC51介绍
keiluvision2C51软件是目前功能最强大的单片机c语言集成开发环境。
下面我们通过图解的方式来KeilC51软件的使用教程,学习最简单的,如何输入源程序→新建工程→工程详细设置→源程序编译得到目标代码文件。
第一步:
双击KeiluVision2的桌面快捷方式(图1-1),启动Keil集成开发开发软件。
软件启动后的界面如图1-2所示。
图1-1:
启动KeiluVision2单片机集成开发环境
图1-2:
软件启动后的界面
第二步:
新建文本编辑窗。
点击工具栏上的新建文件快捷按键,即可在项目窗口的右侧打开一个新的文本编辑窗。
见图1-3所示。
图3:
新建文本编辑窗
第三步:
输入源程序。
在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序。
图4:
输入源程序
第四步:
保存源程序。
保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C”。
图5:
保存源程序
注:
第3步和第4步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。
第五步:
新建立Keil工程。
如图6所示,点击"工程"→"新建工程"命令,将出现保存对话框(图7)。
图6:
新建工程
图7:
保存工程对话框
在保存工程对话框中输入你的工程的文件名,Keil工程默认扩展名为".uv2",工程名称不用输入扩展名(见图7),一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现"选择设备"对话框(图8),在对话框中选择CPU的型号。
第六步:
选择CPU型号。
如图8所示,为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。
图8:
选择CPU型号对话框
第七步:
加入源程序到工程中。
在选择好CPU型号后,点击"确定"按钮返回主界面,此时可见到工程管理窗中出现“Target1”,点击“Target1”前面的“+”号展开下一层的“SourceGroup1”文件夹,此时的新工程是空的,“SourceGroup1”文件夹中什么文件都没有,必须把刚才输入的源程序加入到工程当中。
如图9所示,右击工程管理窗中的“SourceGroup1”,出现下拉菜单,点击“增加文件到组'SourceGroup1'”命令,将出现添加文件对话框(图10)。
图9:
添加文件到工程命令
在添加文件对话框(图10)中,找到要添加到工程中的源程序文件。
注意:
在对话框中的文件类型默认为"C源文件(*.c)",如果你要添加到工程中的是汇编语言程序,则在文件类型中必须选中“Asm源文件(*.a*;*.src)”,以*.asm为扩展名的汇编源程序才会出现在文件列表框中。
图10:
浏览选择ASM源程序
双击该文件lich1.asm,即可将该文件添加到工程当中,另外也可以单击lich1.asm选中该文件,再点击"Add"按钮,也可以把文件加入工程中(见图11)。
图11:
选中ASM源程序,加入到工程中
点击Add按钮后,把文件添加到工程中,此时添加文家对话框并不会自动关闭,而是等待继续添加其他文件,初学者往往以为没有加入成功,再次双击该文件,则会出现图12对话框,表示该文件不再加入目标。
此时此时应该点击“确定”按钮,返回到前一对话框,再点击“关闭”按钮,返回到主界面。
图12:
重复加入文件对话框
当给工程添加源程序文件成功后,工程管理器中的“SourceGroup1”文件夹的前面会出现一个“+”号,单击“+”号,展开文件夹,可以看到lich1.asm已经出现在里面,双击即可打开该文件进行编辑修改源程序(见图13)
图13:
文件成功加入工程
第八步:
工程目标'Target1'属性设置。
如下图14所示,在工程项目管理窗中的"Target1"文件夹上右击,出现下拉菜单,点击“目标'Target1'属性”命令,就进入目标属性设置界面。
图14:
进入工程目标属性设置
工程目标'Target1'属性设置对话框(图15)中有8个页面,设置的项目繁多复杂,大部分使用默认设置即可,我们主要设置其中的“目标”、“输出”、“调试”三个页面,下面对这三个页面的设置进行详细介绍。
1、工程目标属性设置。
该页面单片机的晶振频率、存储器等,把晶振的频率改为11.0592,频率设置和你实验板上的实际晶振频率相同即可(图15)。
图15:
晶振频率设置
2、工程输出设置。
该页面设置如下图16所示。
注意:
如果要进行单片机写片实验,则一定要把“E生成HEX文件”选项选中,程序编译后才能生成我们写单片机需要的HEX格式目标文件。
图16:
工程输出设置
3、工程调试设置。
“调试”页面设置如下图17所示。
该页分为左右两半,左半边是软件仿真设置,而右半边是硬件仿真设置,当你使用软件仿真时,选中左边的“S使用仿真器”;如果你使用硬件仿真器,那么就按下图所示设置硬件仿真,同时把仿真器连接到你的电脑串口上。
图17:
仿真调试设置
4、串口设置。
串口设置如下图18所示。
串口号根据你的仿真器实际连接来设置,如你把仿真器接到COM2,那么就选择COM2;通信波特率选择38400即可。
图18:
串口设置
第九步:
源程序的编译与目标文件的获得
我们已经完成了从源程序输入、工程建立、工程详细设置的工作,接下来我们将完成最后的步骤,此时我们可以在文本编辑窗中继续输入或修改我们的源程序,使程序实现我们的目标,在检查程序无误后保存工程。
接着如下图19所示,点击“构造目标”快捷按钮,进行源程序的编译连接,源程序编译相关的信息会出现在输出窗口中的“构造”页中。
下图19显示编译结果为0错误,0警告,同时产生了目标文件lich1.hex。
如果源程序中有错误,则不能通过编译,错误会在输出窗口中报告出来,双击该错误,就可以定位到源程序的出错行,我们可以对源程序进行反复修改,再编译,直到没有错误为止。
注意:
每次修改源程序后一定要保存。
图19:
源程序的编译
编译通过后,我们打开工程文件夹(图20),可以看到文件夹中有了“lich1.hex”,这就是我们需要的最终目标文件,用编程器把该文件写入单片机,单片机就可以实现我们程序的功能了。
图20:
编译成功,获得目标文件lich1.hex
第二章烧录第一个程序
程序编写、编译、仿真器调试完毕后,编译器会自动生成单片机能够识别的可执行文件(一般是.HEX格式的文件),只有将这些文件“安装”到单片机里面,才能够让单片机执行相应的功能。
通常情况下,我们把将文件“安装”到单片机里面的步骤称为“烧录”或者“下载”。
1、STC51单片机下载(烧写程序)方法
具体如何将编译好的HEX文件烧录到单片机里面呢?
这需要借助专用的烧录软件和烧录工具,STC单片机集成了IAP在应用编程功能,这使得我们只需要一个烧录软件就可以轻松的将程序烧录到单片机里面。
STC系列单片机支持串口下载,不需要另外的下载器就可以直接下载程。
STC12C5A60S2系列单片机具有在系统可编程(ISP)特性,ISP的好处是:
省去购买通用编程器,单片机在用户系统上即可下载/烧录用户程序,而无须将单片机从已生产好的产品上拆下,再用通用编程器将程序代码烧录进单片机内部。
STC12系列单片机内部固化有ISP系统引导固件,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,故无须编程器(速度比通用编程器快,几秒一片)。
2、下载软件
在这里,我们使用的下载软件是stc-isp,版本号为stc-isp-v4.86,在配套光盘中有提供。
也可以到http:
//www.mcu-
图2-1STC-ISP软件主界面
3、硬件连接
1)将畅学51单片机核心板插到畅学多功能底板上,如图2-2。
图2-2接插核心板
注意核心板引脚1脚和底板引脚1脚对齐,如图2-3所示。
图2-3核心板引脚对齐图
2)将USB线MINI小口一端插到畅学51单片机核心板USB接口,另外扁口A端连接电脑USB接口,如图2-4所示。
图2-4USB电源连接
3)将晶振插到畅学51单片机核心板晶振插座,默认为11.0592M,如图2-5所示。
图2-5晶振连接
这样我们就完成了畅学51开发板和电脑的硬件连接,CEPARK畅学51单片机核心板集成了USB转串口功能,一条USB线既可以给开发板供电也可以实现虚拟串口通讯,下载程序。
连接后检查51单片机核心板电源指示灯是否低亮,按下电源开关后指示灯是否高亮,如果正常就可以继续下面的操作了。
4、驱动安装
畅学51单片机核心板集成了CP2102芯片,可以在将电脑一个USB接口虚拟为串口,这样通过一根USB线就能实现51单片机核心板的供电和程序程序下载以及串口通信,笔记本或台式电脑没有串口也可以很方便直接使用畅学51单片机核心板。
在使用之前需要先安装CP2102驱动程序。
打开光盘中的驱动程序CP210x_VCP_Win_XP_S2K3_Vista_7.exe,出现如下图界面,如图2-6所示。
图2-6CP210X安装步骤1
点击NEXT即可进入安装界面,如图2-7所示。
图2-7CP210X安装步骤2
点击NEXT进入用户协议,选择同意,点Next,如图2-8所示。
图2-8CP210X安装步骤3
选择安装路径,这里选择默认路径,点Next继续,如图2-9所示。
图2-9CP210X安装步骤4
点击install开始安装,如图2-10,2-11所示。
图2-10CP210X安装步骤5
图2-11CP210X安装步骤6
自动加载完成后,出现下面的对话框,点Finish,如图2-12所示。
图2-12CP210X安装步骤7
出现下面的对话框,点击install,系统将会自动安装好CP2102驱动,如图2-13所示。
图2-13CP210X安装步骤8
重新插拔USB接口,如果驱动安装正常,设备管理器里将会发现一个新的USB转串口端口,如图2-14所示。
图2-14CP210X安装步骤9
在带有CP210X字样的串口后面,括号里面有提示当前虚拟串口的串口号,这个要记住,在给单片机下载程序时候,需要设置这个串口号。
5、软件设置
图2-15SRC-ISP软件主界面
1)选择单片机型号
CEPARK畅学51单片机核心板板使用STC12C5A60S2,在图中1处选择。
2)设置串口号
在电脑设备管理器,端口处可以看到端口号,畅学51单片机核心板板载USB-232串口芯片CP2102,安装驱动后,在设备管理里面会多一个虚拟的串口,根据实际情况选择即可。
3)设置波特率
最低波特率设置为1200,最高波特率设置为9600。
如果下载不成功,可以适当调低波特率设置,以便正常下载,一般不需要特殊设置。
4)注意事项
其他选项选择默认值,不要随意更改。
6、程序下载
1)加载程序
打开你要写入单片机的HEX程序,随板光盘中有提供配套测试程序以及配套实验程序,选择指定位置的HEX程序即可,在图中2处选择。
2)点击下载
点击“下载”开始准备向单片机写入程序,如图2-16所示。
图2-16SRC-ISP下载
3)上电
下载时注意看提示,主要看是否要给单片机上电,如图2-17所示。
图2-16SRC-ISP下载中
提示请上电后,给核心板断电然后重新上电,软件将自动下载程序到单片机中。
4)下载成功
程序下载成功后的提示如图2-17所示:
图2-17SRC-ISP下载完成
5)运行程序
下载完成后,按核心板上复位键运行程序。
注意:
一定要先选择“Download/下载”按钮,然后再给单片机上电复位(先关闭电源再打开电源),而不要先上电,先上电,检测不到合法的下载命令流,单片机就直接跑用户程序了。
第三章实验指导
实验一IO口实验——跑马灯
一、实验目的与要求
熟悉KeilC51集成环境软件的使用方法。
熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。
熟悉畅学开发平台,掌握单片机最小系统及IO口的简单控制及不同组IO口的特点。
二、实验设备
CEPARK畅学系列开发平台一套、PC机一台。
三、实验内容
1、熟悉KeilC51集成环境软件的安装和使用方法。
2、照接线图编写程序,完善给出程序,实现以下功能。
要求LED灯实现从上到下依次点亮,再从下到上依次点亮。
完成后实现从两侧向中间循环点亮,再从中间往外循环点亮。
功能完成后循环上述过程。
3、观察实验结果,验证程序是否正确。
四、实验原理图
五、实验步骤
1、连线说明:
JP4(P1口)
——
JP15
2、编写程序或运行参考程序。
3、实验结果:
通过单色流水灯区的LED指示灯(8个指示灯往复点亮),观察实验的输出结果是否正确。
六、演示程序(部分,请完善)
ORG0000H
LJMPSTART
ORG0100H
START:
MOVA,#0FFH
CLRC
MOVR4,#08H
LOOP1:
RRCA
MOVP1,A
LCALLDELAY
DJNZR4,LOOP1
MOVA,#0FFH
CLRC
MOVR4,#08H
LOOP2:
RLCA
MOVP1,A
LCALLDELAY
DJNZR4,LOOP2
JMPSTART
DELAY:
MOVR1,#20H
D0:
MOVR2,#00H
D1:
MOVR3,#00H
DJNZR3,$
DJNZR2,D1
DJNZR1,D0
RET
END
七、思考
1、循环间隔时