《单片机原理与应用实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用实验指导书.docx(38页珍藏版)》请在三一办公上搜索。
1、单片机原理及其应用实验指导书南通大学电气工程学院自动化系2023年3月单片机目前已广泛应用在智能仪表、工业控制、家用电器等各个领域,成为现代电子系统的一个极其重要的组成部分,对于电类专业学生来说,掌握单片机知识,具有基本应用技能,才干符合当前社会对专业人才的规定。单片机是一门应用性极强的课程,学生在掌握基本理论知识的基础上,更要通过实验训练,提高其调试动手能力,学会解决具体问题的思绪和手段,具有初步的系统设计和调试能力。因此,为了更好地做好单片机课程的软硬件实验,特编写本实验指导书,书中叙述了各实验的目的、规定,对于设计性实验,给出了列出了接线图、程序结构框图和清单。学生按规定完毕本实验指导书
2、中的实验,可基本掌握MCS-51单片机的结构原理、接口技术以及程序设计技巧。此外:一、所有实验都是互相独立的,顺序上也没有固定的先后关系,在使用本书进行教学时,教师可根据教学规定,选择相应实验。二、对同一问题的解决方法往往不是唯一的,欢迎各位指导教师在使用本实验指导书的过程中提出更完善的实验方案,指出书中的错误和局限性,并希望大家反馈给我们,以便及时修改。第一章集成开发环境简介1第二章演示程序9第三章实验项目15实验一简朴程序设计实验15实验二I/O口实验18实验三定期器实验20实验四A/D、D/A转换实验21实验五并行接口扩展实验25第一章集成开发环境简介SuperICES-518OC51单
3、片机实验仪使用当前流行的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所示,有编辑
4、、项目、输出等3个大窗口和File、Edit、ViewProjectDebugPeriheralsToolsSVCSWindows、Help等下拉菜单。前日&秋栏T同菜单栏除梯图标RCsrVUincludefinclu4voidldadek(uch&t:(14uchac,voidRA-11C5T(voAC_TZST(vold);voidlBeO(void);voidTIKE-TECT(Vold),voidR5C11(vold:extern7T三T7209(vd);escnPRH11tR_1T8T(voldJ七极国WF海寰共阳/aeMcnuchEedldamcod()f0i234S679bcd*
5、tc*3cnuchaccodekey-code();/0123434(709abcd4fuchxcodeld_good();/2S69oodUCnarcodeledZerr(04a,029,020,0feOeC,Oe,O_cxie(09f,0x6c,0jc68,G29,0)dOx.0x,0xfSICE8HU7031BC1nfxP*dr2q期曷如涮区VluKddress:p“冰XWrfh*jWMh*2c7Ggn。力g。,0:0x0000:80007S90FF11OE0:0x0007:CxOxOOOE:2:0x0015:2:OxOOlC:2:0x0023:CzOxOOZA:在催强如涮C:0x003
6、1: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选择接着系统出现SelectD
7、eviceforTarget界面,规定选择目的硬件系统的MCU,如图1-4所示。选择要开发的目的硬件系统的MCU,点击“拟定”即可。对于SuperICES-51实验仪,应选择Atlmel的AT89C510图1-4MCH诜梯1.2.3 添加源文献如图1-5所示,在“Target1/SourceGrOUP1”上点击右键,选择“/AddFilestoGroupSourceGroup1,后,出现如图1-6所示界面,添加所要的源程序。源程序涉及ASM”、“C1.IB”、等。遇demo-ision2SourceGroup1SelectDeviceforTargetTargetFileEditViewPro
8、jectDebugFlashPeripheralsToolsSVCSWindowHelp窗除q鼬咱Ia之享享4VZ%聃益IsiloR用*I蕊送I酸扇浮皆三1Er尸骸圜圈后倒间Tt1ZJProjectWorkspace曰Target1OptionsforGroupSourceGroupOpenFileS1RebuildtargetfflBuildtargetF7TranslateFilerStopbuildAddFilestoGroupSourceGroupManageComponentsRemoveGroupSourceGroupanditsFilesqIncludeDependencies图
9、1-5添加源文献1.2.4目的硬件系统配置源程序添加完毕后,进行“OplionforTarget的设定。在菜单栏中,选择uProjectZOptionforTarget.,出现如图1-7所示界面。OptionsforTargetTarget1DeviceTargetOutput1.istingC51A51B1.511.ocateBISlMiscDebugUtilitiesAtmd1.T89C51厂UseOn-chipROM(OxO-OxFFF)Xtal(MHz):|11.0592MemoryModel:CodeRomSize:OperatingOff-chipCodememoryEProGEp
10、roEpromStart:Size:厂far,memorytypesupportSayeaddressextensionSFRininterrupt厂CodeBaxikingStartEnd:Banks:BankArea.:确定取消DefaUItS图1.7目的碑件系统配罟点击Target选项卡,输入目的硬件系统的晶振频率,本实验仪为11.0592MHz;点击OUtPUt选项卡,选中CreStHeXFiIe选项,在编译时系统将会自动生成目的代码文献*.HEX;点击DebUg选项卡,如图1-8所示,选择仿真模式等。图ldhu。配皆uVision2的仿真模式分为UseSimulator(软件仿真)和
11、Use(硬件仿真)2种。其中UseSimUlator选项是将UViSiOn2调试器设立成软件模拟仿真模式,在此模式下不需要实际的目的硬件就可以模拟8051单片机的很多功能。UseSimUIator中的a1.oadApplicationatStart,是装入程序的复选框,“Gotillmain。是表达从应用程序的主函数开始执行的复选框。除非有特殊情况,一般都同时使用这两复选框。USe选项有高级的GDI驱动(ICES仿真器)和KeilMOnitor-51驱动。运用此功能可以把KeilC51嵌入到自己的系统中去,从而实现在目的硬件上调试程序。实验仪选择ausekeilMonitor-51Driver
12、,0选择aloadApplicationatstart,在启动时直接装载程序,选择Gotillmain,C51开发时,装载后直接运营到main函数。硬件仿真模式下还需配置波特率等,点击“Settings”选项,如图19所示。图1-9串口等配智选择serialinterrupt,在前面打勾,否则装载过程中,仿真器会发出“嘀”一声长声报警,仿真结果将也许不对的。选择对的的串标语,波特率最高为38400;建议只选cacheCOdeo1.2.5程序编译、连接与下载使用“Project”下拉菜单中的编译命令,BuildTargeJ(国)只编译和连接在项目窗口中的修改过的程序;“Rebuild疝Targe
13、tFile”(圜)编译和连接项目里所有的源程序文献。编译等无误后,使用菜单栏中的Debug”下startstopDebugSessionn或使用快捷方式(。)进入硬件调试系统,如图1-10所示。图1-1。硬件调试系统界而“Debug”下“Step”或用快捷方式(招)进行单步(进子程序)调试;“Debug”下“StepOver”或用快捷方式(存)进行单步(不进子程序)调试;“Debug”下“Runtocursorline”或用快捷方式(O)进行运营到当前光标处调试;“Debug”下“Go”或用快捷方式(圆)进行全速运营,直到下一个有效断点;“Debug下/start/StOPDebUgSeSSi
14、Or1”进入、退出硬件调试系统环境。此外,“Debug”下尚有stoprunning、rst等操作。第二章演示程序为了更好地熟悉UViSion2集成开发环境仿真开发系统的应用,本指导书提供了一个完整的程序编译、调试例子,具体说明集成环境下的各种操作。程序内容:将110十个数相加,并把其和放入内部RAM30H单元。这个问题有好几种算法,假如单纯从算法上来说,下面所列算法并不是最优的,由于其目的在于让你熟悉仿真系统的各种操作。算法介绍:1 .加数、被加数、和最终单元(SUM)一方面设立初始值,分别为1、0、0,加法次数单元(R2)设为10;2 .每次加法所得中间结果存放在被加数单元中(累加器ACC
15、),同时将加数单元增1;3 .做完一次加法后,加法次数单元减1,并判断是否已为0(即已做完10次加法),假如不为0,继续做下次加法,若为0,则将累加器内容赋值给和最终单元;4 .做完后,程序原地循环。算法流程图及源程序分别如下:结果放入源程序:;变量DATA_REG中的内容为加数(1-10);;ACC中的内容为被加数,同时也是每一次加法后的和中间结果存放单元;做完10次加法后,再将ACC内容放入指定的和单元SUM中。DATA_REGEQU31H;定义加数单元SUMEQU30H;定义和单元ORGOOOOH;复位后PC指针1.JMPMAIN9ORGOlOOH;从程序存储空间OlOOH单元放程序MA
16、IN:MOVSP,#70H;堆栈指针从复位后的07H调整到70HMOVDATA_REG,#1;加数单元初始值为1MOVSUM,#00H;和单元初始值为0MOVR2,#10;加法循环次数为10C1.RA被加数单元初始值为0C1.RC;进位初始值为0ADD.1.00P:ADDCA,DATA_REG;被加数十加数,结果放入ACCINCDATA_REG;加数增1DJNZR2,ADD_1.OOP,;10次加法未做完,继续做MOVSUM,A;10次加法已做完,将和放入SUM单元1.JMP$;原地循环END2.1 打开仿真环境,新建一个工程文献按第一章介绍建立一个工程名为“test.uv2”的工程文献,选择
17、目的硬件系统的MCU为Atlmel的AT89C51;目的硬件系统配置选择“UseSimulator,其余配置参考第一章介绍。2.2 输入源程序单击菜单“File/New”,出现源程序编辑窗口,输入源程序,以保存,选择/AddFilestoGroup8oUrCeGroUP1.,将此源程序添加到工程中,如图2-1所示。囱1向令湎琼岸的T数!见而2.3 源程序编译、连接单击project/rebuildalltargetfiles,菜单或者按按纽,微真环境则对源文献进行编译连接,视程序对的与否,有两种编译结果:若程序无误,编译通过,出现如图2-2所示的编译信息窗口,说明编译成功。InoRBuildt
18、argetTarget1,assemblingTextl.asm.linking.ProgramSize:data=8.0xdata=0code=280test-0Error(三),0Warning(三).IBuildtCommandFIndnFItes/114jd1.:13C:42R/Wldoo编毋曲仆的桂自宙11BuildtargetTarget1assemblingTeXtl.asm.若源程序有误,则出现如下的编译连接信息窗口,说明编译错误。可双击错误信息,则在源文献编辑窗口中自动显示犯错信息所在行。asm(16):errorA45:UNDEFlNEDSYMBO1.(PASS-2notc
19、reatedl,fdReady1.:16C:1KUWR2.4 程序调试I第逐不出T力的栏自南11源程序编译通过并不代表程序就一定对的,这只能说明程序已经没有语法上的错误了,至于在算法、流程上是否对的,则需要对程序进行调试,假如程序运营结果符合事先设计的算法、流程,那么这才干说编写的程序是对的的。初学者很容易犯急噪的毛病,即程序编译通过后,急着让程序连续运营,若运营通过(即结果对的),则认为程序就对的了,其实,这样做并不能说明程序完全对的,有时一个程序对于某些初始条件,可以得到对的结果,而初始条件改变后,却发现结果错误。程序调试的一般做法是:编译、连接通过后,不要急于让程序连续运营,而是先进行手
20、动的单步调试,随时观测各个变量、RAM单元、流程跳转等是否符合算法规定,排除各种非语法性错误,直至程序完全对的;对于复杂程序,必须设计成模块化结构,调试时一个一个模块单独调试,每个模块均对的后,再进行整个程序的调试。在调试过程中,充足运用断点、变量窗口、寄存器窗口、内部RAM窗口等各种工具,提高程序调试效率。编译通过后,使用菜单栏中的“Debug下“/start/StOPDebUgSeSSiOn”或使用快捷方式()进入硬件调试系统,如图2-4所示。test-ision2-E:lab_51testlTextl.as三=JilEdityiVMErojoCtRebugFla三hPeriPheralt
21、XoolsSVCSVindow11lp三)ofQ0自IOI-=A,/冷聃I-ZJMProtectWorkspace*rvw*r*wfftwwt*w*w*t*v*t*t*tw*t*twDATAeREGEQU3IHSUMEQU30H;定义和单元ORG1.JMPORGMOVOOOOHHAINOlOOHSPzf70H;纪位后PC指针;从程芹存储空间0100H单元放程并;地在指针从能位后的OTH凋整到70HIilF读学IgBlHOVDATA_REG11MOVSUH,fOOH;和单元创始值为0MOVR2r*10;加/循环次数为10C1.RA1.oadE:1ab_5Iwtestiwtest3*ddres三:
22、cooC:OXO1OO:7581707531017530OOC:0x0109:7AOAE4C335310531DA)HJASMASSIGNBreakDisableBreakEnable-ABUildACOfnmCnd卜FindhFs/1C:0x0112:FAF530020115000000-Fco21C:0x011B:000000000000000000MCknnnnCPCeCCCCCCCCCIIIMMemory#1AMemory#2入Mernory*31N1.:15C:1三R/llO/1班岸溷V坦而为了观测每一次加法过程的变化,可通过uViewMemoryWindow打开存储器观测窗口,在“
23、Address”栏中输入“D:XXH”(XX为地址),观测内部RAM各单元变化情况。“Address”栏中输入“D”表达内部RAM,iiXff表达外部RAM,uCw表达程序存储空间。可以用“Debug”选项下各种调试手段调试程序,如单步(进子程序)、单步(不进子程序)、运营到当前光标处、断点运营、全速运营等,以及停止、复位等等,以便进一步熟悉仿真系统的各种操作。第三章实验项目实验一简朴程序设计实验一、实验目的掌握UViSion2IDE单片机集成开发软件的应用,熟悉单片机仿真开发环境,掌握基本的单片机软件调试方法,为后续实验做好准备。掌握单片机内部RAM之间、内外RAM之间、外部RAM之间的数据
24、传送操作;掌握MCS-51汇编语言程序设计方法。把2023H20FFH的内容所有置成55H。二、实验内容1、置数程序ORGOOOOHUMPMAINORGOlOOHMAIN:MOVDPTR,#2023HMOVRO,#OOHMOVA,#55H1.OOP:MOVXDPTR,AINCDPTRINCROCJNER0,#OFFH,1.OOP1.JMP$END(1)实验程序框图(2)实验环节用连续或单步方式运营程序,检查202320FF单元中程序执行前后的内容变化。ORGOOOOHMOVDPTR,#2023HMOVR0,#00HMOVA.#OFFH1.OOP:MOVXDPTR,AINCDPTRINCROCJ
25、NERO,#OFFH,1.OOPEND(3)思考假使把2023H20FFH中的内容改成FFH,如何修改程序。ORGOOOOHMOVDpTR,#2023HMOVRO,#OOH1.OOP:MOVXDPTR,AINCDPTRINCROCJNER0,#OFFH,1.OOPEND2、拆字程序把2023H的内容拆开,高位送2023H低位,低位送2023H低位,2023H、2023H高位清零,一般本程序用于把数据送显示缓冲区时用。(1)实验程序框图并用1-21Jrfa灾洋AT高低位互换,屏蔽-一UEfa交浮Ai屏宜/+;竽W)QlJT毡击ORGO(X)OH1.JMPMAINORGOlOOHMAIN:MOVD
26、PTR,#2023HMOVXA,DPTRMOVRO,ASWAPAAN1.A,#0FHINCDPTRAN1.A,#OFHINCDPTRMOVXDPTR,A1.JMPSEND(2)实验环节用连续或单步方式运营程序,检查2023H2023H单元中内容变化情况。(3)思考如何用断点方式调试本程序。3、内部、外部RAM数据传送程序按以下规定自行设计程序流程图,编写、调试程序。(1)内部RAM之间数据传送;将内部RAM40H-4FH单元内容传送到内部RAM60H-6FH单元中。源数据(首址存放在R2单元中);目的数据(首址存放在R4单元中);数据字节数存放在R6单元中。ORGOOOOHMOVR6,#10H
27、MOVR2,#40HMOVR4,#60H1.OOP:MOVA,R2MOVR4,AINCR2INCR4DJNZR6,1.OOPSJMP$END(2)内外RAM之间数据传送;将内部RAM40H4FH单元内容传送到外部RAM2040H204FH单元中。源数据(首址存放在R2单元中);目的数据(首址存放在DPTRO中);数据字节数存放在R6单元中。ORGOOOOHMOVDPTR0J2040HMOVR6,#10H1.OOP:MOVA,R2MOVXDPTRO,AINCR2INCDPTRODJNZR6,1.OOPSJMP$END(3)外RAM之间数据传送;将外部RAM100oH111IH单元内容传送到外部R
28、AM2023H2111H单元中。源数据(首址存放在DPTRO中);目的数据(首址存放在DPTRl中);数据字节数存放在R6.R7单元中。实验二I/O口实验一、实验目的:(I)学习单片机I/O口的使用方法;(2)学习延时子程序的编写;(3)掌握基本的单片机硬件调试方法。二、实验预备知识:(I)Pl口为准双向口,每位都可独立地定义为输入或输出,在作输入使用前,必须向口锁存器相应位写入“1”,该位才干作为输入;(2)本实验中延时子程序采用循环来实现,定期时间=机器周期时间*程序总机器周期数(本实验箱晶振频率为11.0592MHz)。三、实验内容:Pl口做输出口,接八只发光二极管,编写程序,使发光二极
29、管循环点亮。(1)左移点亮1只发光二极管;(2)右移点亮1只发光二极管;(3)左移点亮2只相邻发光二极管;(4)右移点亮2只相邻发光二极管。ORGOOOOH1.JMPMAINORGOlOOHMAIN:MOVR0,#08HMe)VR1,#08H1.OOP:RRCAMOVPl,A1.CA1.1.DE1.AYDJNZRO,1.OOP1.OOPkR1.CAMOVPl,A1.CA1.1.DE1.AYDJNZRO,1.OOPlDE1.AY:MOVR7,#20DE1.IiMOVR6,#150DE1.2:M0VR5,#100DE1.3:DJNZR5,DE1.3DJNZR6,DE1.2DJNZR7,DE1.1R
30、ETEND四、实验程序框图给出实验内容(1)参考流程图,其余内容自行设计。五、实验硬件连线将PlO-P17按顺序连接到1.EDl-1.ED8+5Vf11iIl9zu26一XxR1.EDl1.ED31.ED2I3E9ZCH26XxR2Zl9Z1126_R1.ED51.ED45gl9zcn26一、R4Pl9Zn26.XxR6919Zcn26CI9ZI2PI3ZjDMJZjDI6&I7)VCC1R71841916t士3鼻d1fIU71DAC0832DAJTCCJP71VCCDAJTCCR68P2R69P2R70P2R71P2R72P2R73P2R74P2:14_1A/二A+I卜v+寸C14.2lH-
31、b+匚ZFB/IU14IB运放模块,-|324_1I-I|324_3-|324_5T3247-|324_9-b24_ll-324,13242I-It3244-3246-3248一|的410-32412,一32414R68P1R69P1R70P1R71P1R72P1R73P1R74P1五、实验硬件连线1、ADCo809系统连线(1)将跳线器插在JP22上;(2)使用导线把MON51仿真器区的AO,A2,A3分别连接并行模数转换模块的DA,DB,DC;(3)RD和WR分别接5IMONI模块的RD和WR;(4)使用导线连接A15和并行模数转换模块的CS;(2)用导线连接MON51模块的AD0-AD7
32、与并行数模转换模块的D0-D7;(6)使用导线连接INTO和并行模数转换模块的/EOC;(7)并行模数转换模块的REF+,REF-分别连接VCC和GND;(8)使用导线连接并行模数转换模块的INO与电位器模块的中间脚VW,VH连接VCC,V1.连接GND;(9)实时时钟模块的1/64分频与并行模数转换模块的C1.K相连。实时时钟加2M的晶振,用导线连接C1.K-IN与2MHZ;2、DACO832系统连线(1)将跳线器插在JP71;(2)用导线连接MON51模块的ADO-AD7与并行模数转换模块的DI0-DI7;(3)用导线连接WR与并行模数转换模块的WRl和WR2;(4)用导线连接A14与并行
33、模数转换模块的CS和Xfer;(5)用导线连接I1.E,Vref和+5V;(5)使用导线连接IoUtI与模拟运放模块的B-;(6)使用导线连接Iout2与模拟运放模块的B+,B+同时与电源的地相连接;(7)使用导线连接Rfb与模拟运放模块的BOUT;(8)使用导线连接模拟运放模块的V+与+12V,V-与12V;六、实验思考:修改程序,用其它通道轮流采样显示。实验五并行接口扩展实验一、实验目的掌握可编程并行接口芯片8155的接口原理使用,熟悉对8155初始化编程和输入、输出程序的设计方法。二、实验内容学生按以下规定设计程序流程图,编写、调试程序。在8155的A、B、C口用示波器测出每个口线的波形
34、。三、实验原理图VCCJP21T-12VCC8155A0A1A2A3A4A5A6A7B0B1B2B3B4B5B6B78C1C2C3C4C5PPPPPPPPPpppppppPpppppADO12ADl13AAVAnlAD214AD2AD315AD416AD3AD517AD4AD5AD618AD?19AD6VCC8155AD7R21IW八8CEYCERD-CRDWR一。WRIOMIO/MA1.E11A1.E2E21TMROUTIITMRINII4TMROUTTMRINRESET1.R22四、实验硬件连线1、运用跳线器连接JP21;2、运用导线连接8155模块的CE与M0N51模块的AlO,IOM接A9,A1.E接A1.E,RD接RD,WR接WR;五、实验思考修改程序,用PB口作输入,PA口作输出,观测运营情况。