资源描述:
《单片机实验总汇》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、软件实验实验一数据传送(RAM->XRAM)一、实验目的熟悉星研集成环境软件或熟悉KeilC51集成环境软件的使用方法。熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。二、实验内容1、熟悉星研集成环境软件或熟悉Ke订C51集成环境软件的安装和使用方法。2、编写程序,实现内外部数据段的传送、校验。三、程序框图数据传送程序框图四、实验步骤在内部RAM30H〜3FH小输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H〜100FH中的内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。五、程序清单;将内部RAMAddress1开始的16个字节
2、送到外部RAM从Address2开始的单元里,再作比较。AddresslDATA30HAddress2XDATA1000HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVRO,#AddresslMOVMOVDPTR,#Address2R7,#10HSTAR1:MOVA,@R0;传送MOVX@DPTR,AINCROINCDPTRDJNZR7,STAR1MOVRO,#AddresslMOVDPTR,#Address2MOVR7,#10HSTAR2:MOVB,@R0;比较MOVXA,@DPTRCJNEA,B,STAR3INCROINCDPTRDJNZR7,S
3、TAR2SJMP$;传送正确STAR3:SJMP$;传送错误END如果读者使用星研集成环境软件,请考虑以F问题:1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?;2、使用单步进入命令,运行到笫十四行后,运行过程中变量窗有何变化?将鼠标停留在A、SP、@R0、@DPTR上一秒后,出现什么?,它与变量窗使用场合的区别?3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它为运行到光标处命令有何区
4、别?5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪—•行?运行结果是否正确?它与全速断点运行命令有何区别?6、观察寄存器,冇哪儿种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗3)鼠标停留在寄存器上4)观察窗5)寄存器窗7、査看CPU内部数据RAM、CPU片外数据RAM:1)存贮器窗2)变最窗3)鼠标停留在CPU内部数据RAM、CPU片外数据RAM的地址、@R0、@DPTR上六、思考题编写一个程序,将外部数据RAM中的数据传送到内部数据RAM屮。实验二双字节BCD码(十进制数)加法一、实验目的熟悉51汇编指令,学会使用星研集成坏境软件,能口己编写简单的
5、程序,熟悉BCD码,了解如何调用系统提供的了程序。二、实验内容从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉杏看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。三、实验框图双字节BCD加法程序框图四、实验步骤1、连线说明:D3区:CLKB2区:2MD3区:CSA3区:CS5D3[X:A0A3区:A02、在F4区的键盘上输入4位被加数、加数3、结果显示在F4区的数码管上五、程序清单EXTRNCODE(Display8,GetBCDKey)BufferDATA
6、30H;8字节显示缓冲区FlBITOD1H;PSW.1ORGOOOOHLJMPSTARTORGO1OOHSTART:MOVSP,#60HCLRFl;先清除显示,再接收键输入START1:MOVRO,#bufferMOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被加数)SETBFl;接收到第一个键,才清除显示MOVRO,#buffer+4MOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(加数)MOVA,buffer+1ADDA,buffer+5DAAMOVbuffer+5,AMOVA,bufferADDCA,buffer+4DAAMOVbu
7、ffer+4,ACLRARLCADisplay:PUSHACC;显示结果MOVRO,#bufferMOVA,buffer+5;低位ACALLBltoB2;压缩BCD码转换成非压缩BCD码MOVA,buffer+4;高位ACALLBltoB2POPACC;进位ACALLBltoB2MOV©RO,#1011;最高二位消隐INCROMOV@R0,#10HMOVRO,#buffer+5MOVR7,#5ACALLBlackDisplay;将高