单片机原理与应用实验指导书.docx
单片机原理及其应用实验指导书南通大学电气工程学院自动化系2023年3月单片机目前已广泛应用在智能仪表、工业控制、家用电器等各个领域,成为现代电子系统的一个极其重要的组成部分,对于电类专业学生来说,掌握单片机知识,具有基本应用技能,才干符合当前社会对专业人才的规定。单片机是一门应用性极强的课程,学生在掌握基本理论知识的基础上,更要通过实验训练,提高其调试动手能力,学会解决具体问题的思绪和手段,具有初步的系统设计和调试能力。因此,为了更好地做好单片机课程的软硬件实验,特编写本实验指导书,书中叙述了各实验的目的、规定,对于设计性实验,给出了列出了接线图、程序结构框图和清单。学生按规定完毕本实验指导书中的实验,可基本掌握MCS-51单片机的结构原理、接口技术以及程序设计技巧。此外:一、所有实验都是互相独立的,顺序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学规定,选择相应实验。二、对同一问题的解决方法往往不是唯一的,欢迎各位指导教师在使用本实验指导书的过程中提出更完善的实验方案,指出书中的错误和局限性,并希望大家反馈给我们,以便及时修改。第一章集成开发环境简介1第二章演示程序9第三章实验项目15实验一简朴程序设计实验15实验二I/O口实验18实验三定期器实验20实验四A/D、D/A转换实验21实验五并行接口扩展实验25第一章集成开发环境简介SuperICES-518OC51单片机实验仪使用当前流行的KeilC51开发软件,采用UViSiOn2集成开发环境。1.lKeilC51简介KeilC51软件是德国Keil公司开发的功能完善的C51开发软件,近年来在国内得到了迅速普及。Keil涉及以下几个部分:uVision2IDE.C51编译器、A51汇编器、1.lB库管理器、B1.51连接器/定位器、UViSion硬件调试器、RTX51实时多任务操作系统。Keil软件的最新版本是7.50。用户可以向Keil公司或国内代理商购买正版软件或索取DemO版本,也可以直接到KeiI公司网站O下载。1.2uVision2集成开发环境UViSiOn2集成开发环境如图1-1所示,有编辑、项目、输出等3个大窗口和File、Edit、View>Project>Debug>PeriheralsTools>SVCS>Windows、Help等下拉菜单。前日&秋栏T同菜单栏除梯图标RCs<rVUinclude<AT9×51.h>finclu4<c9.h>voidldadek(uch&t:(14uchac>,voidRA-11C5T(vo<i);voidADC_TZST(VOld)Jvoidl>AC_TZST(vold);voidlBeO(void);voidTIKE-TECT(Vold),voidR5C11<-3EHI>(vold>:extern7T三T7209(v«d);e×scnPRH11tR_1T8T(voldJ七极国WF海寰共阳/ae×McnuchEedldamcod()f0i234S679bcd*tc*3cnuchaccodekey-code();/0123434(709abcd4fuchxcodel«d_good()<0×4a,0×29,0×2Q×CC,tec09,0×aQ×3,0×l>/2S69oodUCnarcodeledZerr(0×4a,0×29,0×20,0×feO×eC,O×e,O×<S0Q×dO);/Z54eccuchacodedex>_c<xie(0×9f,0x6c,0jc68,G×29,0)dOx".0x",0xfSICE8HU7031BC1nfxP*dr2q期曷如涮区VluKddress:p“冰XWrf<h*jWM<h*2c7Ggn。力g。,0:0x0000:80007S90FF11OE0:0x0007:CxOxOOOE:2:0x0015:2:OxOOlC:2:0x0023:CzOxOOZA:在催强如涮C:0x0031:00000000000000C:0x0038:00000000000000III!KMmrrFl卜*mor.C入Mmor.CF"力国I-1IiVisinn?生成开分环墙在uVision2环境下,使用工程来管理各个文献。为了开始新的工程,选择“ProjecVNewProjiect”选项,出现如图12所示界面。g三ision2图1-2创建新T程然后选择此新工程要保存的途径,键入项目名称并保存,项目名称将会出现在集成环境的左上端,名称后缀为“.UV2”,如图1-3所示。注意项目名称最佳不要超过8个字符、尽量不采用中文,与软件编程时变量的命名习惯一致。1.2.2 MCU选择接着系统出现"SelectDeviceforTarget"界面,规定选择目的硬件系统的MCU,如图1-4所示。选择要开发的目的硬件系统的MCU,点击“拟定”即可。对于SuperICES-51实验仪,应选择Atlmel的AT89C510图1-4MCH诜梯1.2.3 添加源文献如图1-5所示,在“Target1/SourceGrOUP1”上点击右键,选择“/AddFilestoGroup'SourceGroup1,后,出现如图1-6所示界面,添加所要的源程序。源程序涉及ASM”、“C1.IB”、等。遇demo-ision2SourceGroup1SelectDeviceforTarget'TargetFileEditViewProjectDebugFlashPeripheralsToolsSVCSWindowHelp窗除q'±鼬咱Ia之享享4VZ%聃益IsiloR用*I蕊送I酸扇浮皆三1Er尸骸圜圈后倒间T"t1ZJProjectWorkspace曰Target1OptionsforGroup'SourceGroupOpenFileS1RebuildtargetfflBuildtargetF7TranslateFilerStopbuildAddFilestoGroup'SourceGroupManageComponentsRemoveGroup'SourceGroupandit'sFilesqIncludeDependencies图1-5添加源文献1.2.4目的硬件系统配置源程序添加完毕后,进行“OplionforTarget"的设定。在菜单栏中,选择uProjectZOptionforTarget.,出现如图1-7所示界面。OptionsforTarget'Target1'DeviceTargetOutput1.istingC51A51B1.511.ocateBISlMiscDebugUtilitiesAtmd1.T89C51厂UseOn-chipROM(OxO-OxFFF)Xtal(MHz):|11.0592MemoryModel:CodeRomSize:OperatingOff-chipCodememoryEProGEpro®EpromStart:Size:厂far,memorytypesupportSayeaddressextensionSFRininterrupt厂CodeBaxikingStart'End:Banks:BankArea.:确定取消DefaUItS图1.7目的碑件系统配罟点击Target选项卡,输入目的硬件系统的晶振频率,本实验仪为11.0592MHz;点击OUtPUt选项卡,选中CreStHeXFiIe选项,在编译时系统将会自动生成目的代码文献*.HEX;点击DebUg选项卡,如图1-8所示,选择仿真模式等。图l<dhu。配皆uVision2的仿真模式分为UseSimulator(软件仿真)和Use(硬件仿真)2种。其中UseSimUlator选项是将UViSiOn2调试器设立成软件模拟仿真模式,在此模式下不需要实际的目的硬件就可以模拟8051单片机的很多功能。UseSimUIator中的a1.oadApplicationatStart,是装入程序的复选框,“Gotillmain。"是表达从应用程序的主函数开始执行的复选框。除非有特殊情况,一般都同时使用这两复选框。USe选项有高级的GDI驱动(ICES仿真器)和KeilMOnitor-51驱动。运用此功能可以把KeilC51嵌入到自己的系统中去,从而实现在目的硬件上调试程序。实验仪选择ausekeilMonitor-51Driver,0选择aloadApplicationatstart,在启动时直接装载程序,选择"Gotillmain",C51开发时,装载后直接运营到main函数。硬件仿真模式下还需配置波特率等,点击“Settings”选项,如图19所示。图1-9串口等配智选择"serialinterrupt",在前面打勾,否则装载过程中,仿真器会发出“嘀”一声长声报警,仿真结果将也许不对的。选择对的的串标语,波特率最高为38400;建议只选cacheCOdeo1.2.5程序编译、连接与下载使用“Project”下拉菜单中的编译命令,"BuildTargeJ(国)只编译和连接在项目窗口中的修改过的程序;“Rebuild疝TargetFile”(圜)编译和连接项目里所有的源程序文献。编译等无误后,使用菜单栏中的"Debug”下startstopDebugSessionn或使用快捷方式(。)进入硬件调试系统,如图1-10所示。图1-1。硬件调试系统界而“Debug”下“Step”或用快捷方式(招)进行单步(进子程序)调试;“Debug”下“StepOver”或用快捷方式(存)进行单步(不进子程序)调试;“Debug”下“Runtocursorline”或用快捷方式("O)进行运营到当前光标处调试;“Debug”下“Go”或用快捷方式(圆)进行全速运营,直到下一个有效断点;“Debug"下"/start/StOPDebUgSeSSiOr1”进入、退出硬件调试系统环境。此外,“Debug”下尚有"stoprunning"、"rst"等操作。第二章演示程序为了更好地熟悉UViSion2集成开发环境仿真开发系统的应用,本指导书提供了一个完整的程序编译、调试例子,具体说明集成环境下的各种操作。程序内容:将110十个数相加,并把其和放入内部RAM30H单元。这个问题有好几种算法,假如单纯从算法上来说,下面所列算法并不是最优的,由于其目的在于让你熟悉仿真系统的各种操作。算法介绍:1 .加数、被加数、和最终单元(SUM)一方面设立初始值,分别为1、0、0,加法次数单元(R2)设为10;2 .每次加法所得中间结果存放在被加数单元中(累加器ACC),同时将加数单元增1;3 .做完一次加法后,加法次数单元减1,并判断是否已为0(即已做完10次加法),假如不为0,继续做下次加法,若为0,则将累加器内容赋值给和最终单元;4 .做完后,程序原地循环。算法流程图及源程序分别如下:结果放入源程序:;变量DATA_REG中的内