《单片机实验报告.docx》由会员分享,可在线阅读,更多相关《单片机实验报告.docx(21页珍藏版)》请在优知文库上搜索。
1、单片机实验报告第一次实验实验1:多字节加法1 .基本要求:将存放在内部RAM起始地址为20H和30H的两个3字节无符号数相加,结果存放在内部RAM单元701.k71H和72H中(低位对应低字节)。数据要求初始化。例如,在20H和30H分别存放两个3字节的无符号数333333H和222222吐2 .实验步事;1 .打开Kei1.新建工程:ProjeC1./NewProjeci,输入工程名,并保存:2 .选项选择器件:Atme1.的89C52:3 .新建程序文本,并另存该文件为汇编文件格式:(I)“Fi】o/New”,(2)Fi1.e/SaveAs/键入欲使用的文件名及后缀名,即“文件名.asm”
2、.再单击“保存”:4 .添加该文件到工程:回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup,上单击右键,单击“AddFi1.etoGroup4SourceGroup1,选择刚才新建的汇编文件。5 .在kei1.的汇编文件中输入程序代码,并编译,调试.(D写完代码后单击“Project”菜单,再在卜拉菜单中单击“Bui1.tTarget选项(或者使用快拢键F7),编译成功后(0个errors),(每次修改程序后都要至新编译下,才能生效)。(2)再单击“Debug菜单,在F拉菜单中单击Start/StOPDebugSession(或者使用快槌犍CtrI+F5),
3、点击RUN进行运行,或者按F1.1.进行单步运行。6 .观察运行结果:在kei1.的view/IneInorywindow窗口中输入D:0x20等地址查看运行结果是否正确.3 .考代码:ORGOOOOH1.JMPMAINORG30HMAIN:MOVR0,#20H;MOVR1,#30HMOVR2,#3;-初始化数据一-;1.OOPkMOVR0,#33HMOVR1,#22HINCROINCR1DJNZR2XOOP1MOVR0,#20H;MOVR1,#30HMOVDPTR,#70HMOVR2,#3;求和;PROadd:C1.RC1.00P2:M0VA,()ROADDCA,R1MOVRO,AINCRO
4、INCR1DJNZR2.1.OOP2;一数据移动一;MOVR0,#20HMOVR1,#70HMOVR2,#31.00P3:M0VA,()ROM0VR1,AINCROINCR1DJNZR2XOOP3SJMPSEND4 .实验结果I实收二:泡排序1 .程序说明:将(RO)指出的内部RAM中6个单字节无符号正整数按小到大的次序重新排列。2 .实验步Kh1 .打开Keih新建工程:Projcct/NcwProject*输入工程名,并保存;2 .选项选择器件:Atme1.的89C52:3 .新建程序文本,并另存该文件为汇编文件格式:(I)mFi1.e/Newm,(2)Fi1.e/SaVeAS/堆入欲使用
5、的文件名及后缀名,即“文件名,asm”。再单击“保存”:4 .添加该文件到工程:回到编辑界面后,单击“TargetI”前面的“+”号,然后在SourceGroupI”上单击右键,单击“AddFi1.eI。Group,SourceGroupI,,选择刚才新建的汇编文件。5 .在kei1.的汇编文件中输入程序代码,并编译,调试。写完代码后单击,4Projec菜单,再在下拉菜单中单击“Bui1.iTargei”选项(或者使用快捷律F7),编译成功后(0个cors),(每次修改程序后都要重新编译下,才能生效)。(2)再单击“Debug”菜单,在下拉菜单中单击“S1.aWSiopDebugSession
6、”(或者使用快捷键Ctr1.+F5),点击RUN进行运行,或者按F1.1.进行单步运行。6 .观察运行结果:在kci1.的ViCW/memorywindow窗口中输入D:0x40等地址查看运行结果是否正确。3.参考代码:ORGOOOOHSJMPMAINMAIN:MoV40H,#9AH;先准备6个无符号数字;MOV41H,#0BHMOV42H,#0CHMOV43H,#2HMOV44H,ODHMOV45H,#0EH1.CA1.1.SORT6;调用排序子程序SJMP$;停止,此时可以观察挎序结果Se)RT6:;排序子程序MOVR6,#5;6个数字,比较5次51:MOVRO,#40H;起始地址MOVB
7、,R6MOVR7,BC1.RPSW.5;交换标志清零52:MOVB,R0;取出前个数INCROMOVA.Ro;取出后一个数CJNEA,B,S3;后一前53:JNCN_JH;够减就不用交换MoVRO,B;交换存放DECROMOVR0,AINCROSETBPSW.5;设立交换标志位N_JH:DJNZR7,S2JNBPSW.5,S.END;没有交换过,就结束DJNZR6,S1SEND:RETEND4蜃羯-单片机实验报告第二次实验班级:20光电信息学号:2017428008姓名:奉商华日期:12月15日地点:隔离板房仿真软件:keM一、实验1:进制转换5 .荏本要求:将片内RAM30H单元中的8位二进
8、制数转换成10进制数。希望转换后的结果保存于31H和32H,31H低4位存放个位,高4位存放十位,32H低4位存放百位,高4位为0。6 .实验步事;1 .打开Kcih新建工程:ProjCC1./NewProject,输入工程名,并保存;2 .选项选择器件:Atme1.的89C52:3 .新建程序文本,并另存该文件为汇编文件格式:(1)44Fi1.e/New,(2)Fi1.e/SaVeAs/键入欲使用的文件名及后缀名,即“文件名.asm”。再单击“保存”:4 .添加该文件到工程:回到编辑界面后,单击“Targc1.1”前面的“+”号,然后在SourceGroup1”上单击右键,单击“AddFi1
9、.e1.oGroup,SourceGroupI,,选择刚才新建的汇编文件。5 .在kei1.的汇编文件中输入程序代码,井编印,调试。(1)写完代码后单击“Projeci”菜单,再在下拉菜单中单击“Bui1.iTargei”选项(或者使用快捷键F7).编译成功后(0个errors),(每次修改程序后都要重新编译下,才能生效)。再单击Debug”菜单,在下拉菜单中单击uStart/StopDebugSessicm(或者使用快捷键Ctr1.+F5),点击RUN进行运行,或者按F1.1.进行单步运行。6 .观察运行结果:在kci1.(Jvicwncmorywindow窗口中输入D:0x30等地址查看运
10、行结果是否正确。7 .今考代码:ORGOOOOHSJMPMAINORG0030HMAIN:MOVR0,#30HMOVR0,#79H;|iJRO指向的30H单元写入79HMOVA,30HMoVB,#64H;向寄存器B中写入64H即十进制100DIVABINCROINCROMOVRO,A;将AdOO的商写入32H内,即将百位放在32H中MOVA1BMOVB.#OAH;向B中写入10DIVAB;ABMoV31H,A;将十位数放入31H单元MOVA.BMOVR1,#04Has:R1.ADvJNZR1,as;将A中的数据左移4位DECROADDA.RO;将A中的数据与31h中数据相加,以此实现将个位及十
11、位入A中SWAPAMoV31HA;将个位及十位数送到31H单元End8.实验结果:二、实验2:数据块复制1 .基本要求I将存放在片内RAM40H开始的16个单元(地址为40H到4FH)内容依次更制到片外RAM3000H开始的16个单元(地址为300OH到300FH)2 .实H步I1 .打开Kei1.,新建工程:Project/NewProject,输入工程名,并保存:2 .选项选择器件:Atme1.的89C52:3 .新建程序文本,并另存该文件为汇编文件格式:(1) “Fi1.e/New”(2) Fi1.e/SaveAs/键入欲使用的文件名及后缀名,即”文件名.asm”.再单击“保存”:4 .
12、添加该文件到工程:回到编辑界面后,堆击“Target1”前面的“+”号.然后在uSourceGroup1,上单击右键,单击“AddFi1.etoGroup4SourceGroup1.,选择刚才新建的汇编文件“5 .在kei1.的汇编文件中输入程序代码,并编译,调试。(D写先代码后单击aProjectw菜单,再在下拉菜单中单击“Bui1.tTarget”选项(或者使用快捷键F7),编译成功后(0个errors),(每次修改程序后都要全新编译下,才能生效)。(2)再单击“Debug”菜单,在下拉菜单中单击wStartZStopDebugSession,(或者使用快捷键CtrI+F5),点击RUN进
13、行运行,或拧按F1.1.进行单步运行。6 .观察运行结果:在kei1的YieW/memorywindow窗口中输入D:0x40X:0x3000等地址查看运行结果是否正确。3 .参考代码:ORG0000HSJMPMAINORG0030HMAIN:MOVR0,#30HMoVR0,#79H;向RO指向的30H单元写入79HMOVA,30HMOVB,#64H;向寄存器B中写入64H即十进制100DIVABINCROINCROMoVR0,A;将A1100的商写入32H内,即将百位放在32H中MOVA1BMOVB.#OAH;向B中写入10DIVAB;ABMoV31H,A;将十位数放入31H单元MOVA.B
14、MOVR1,#04Has:R1.ADJNZR1,as;将A中的数据左移4位DECROADDA.RO:将A中的数据与31h中数据相加.以此实现将个位及十位放入A中SWAPAMoV31H,A;将个位及十位数送到31H单元end4 .实殴结果;4Mug.:Q单片机实验报告第三次实验班级:20光电信息学号2017428008姓名:羽商华日期:12月22日地点:隔离板房仿JS软件:JseM一、实验1:流水灯实睑1.修本要求:如上图所示,板戏8个1.ED的阳极经排射RP1.上拉至VCC,阴极连接至端口J9。实验中,使用杜邦线将单片机的P1.端口(端口地址:0x90)顺序连接至J9端口。程序功能:先将P1.端口全部置高(1.ED均熄灭),延时0.2s左右后,P1.O置低(1.ED1.点亮),再延时0.2s左右后,P1.0置高(1.ED1.熄灭),同时P1.1.置低(1.ED2点亮,如此循环,实现流水灯功能。1 .打开Kcik新建工程:Projcct/NcwProject,输入工程名,并保存:2 .选项选择器件:Atme1.的89C52:3 .新建程序文本,并另存该文件为汇编文件格式:(1.)Fi1.cNcw,(2)Fi1.e/SaVeAS/键入欲使用的文