《单片微机原理及应用》实验参考程序(32页).pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:32 大小:176KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

《单片微机原理及应用》实验参考程序(32页).pdf

《单片微机原理及应用》实验参考程序(32页).pdf

预览

免费试读已结束,剩余 22 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《单片微机原理及应用》实验参考程序杭州电子科技大学电子信息学院张学超编写(使用达爱思Dais-80958B单片机实验开发系统)一、软件实验参考程序软件实验一清零程序;将2000H-20FFH的内容清零清零实验的C-51语言程序SS01:CLRA#include<reg51.h>MOVDPTR,#2000Hmain()MOVR7,#0FFHCLR0:MOVX@DPTR,A{inti;INCDPTRunsignedcharxdata*p=0x2000;/*指针指向2000H单元*/DJNZR7,CLR0for(i=0;i<256;i++)/*清零2000H-20FFH单元*/CLR1:SJMPCLR1;SJMP${*p=0;p++;}软件实验二拆字程序;把2000H的内容拆开,高4位送2001H的低4位,低4位送2002H的4低位,2001H和2002H高4位清零。拆字实验的C-51语言程序SS02:MOVDPTR,#2000HMOVXA,@DPTR;取数#include<reg51.h>MOVB,A;暂存该数main()SWAPA;高低半字节交换{unsignedcharxdata*p=0x2000;ANLA,#0FH;屏蔽高4位/*指针指向2000H单元*/INCDPTR/*2002H单元高4位清零,低4位装MOVX@DPTR,A;原数高半字节送2001H2000H单元低4位*/MOVA,B;取回原数*(p+2)=(*p)&0x0f;ANLA,#0FH;屏蔽高4位/*2001H单元高4位清零,低4位装INCDPTR2000H单元高4位*/MOVX@DPTR,A;原数低半字节送*(p+1)=(*p)>>4;2002HSJMP$}软件实验三拼字程序;把2000H和2001H的低4位分别送入2002H的高低4位。SS03:MOVDPTR,#2000HMOVXA,@DPTR;取第一个半字节ANLA,#0FH;屏蔽高4位SWAPA;高低半字节交换MOVB,A;暂存该数INCDPTRMOVXA,@DPTR,;取第二个半字节ANLA,#0FH;屏蔽高4位ORLA,B;两个半字节拼成一个字INCDPTRMOVX@DPTR,A;拼好的字送2002HSJMP$软件实验四数据区传送子程序;把R2R3为源RAM区首址内的R6R7字节数据传送到R4R5为目的RAM区。SS04:MOVDPH,R2()PDF文件使用"pdfFactoryPro"试用版本创建www.fineprint.cnMOVDPL,R3;取源地址指针MOVXA,@DPTR;取数据INCDPTR;源地址指针+1MOVR2,DPHMOVR3,DPL;保存源地址指针MOVDPH,R4MOVDPL,R5;取目的地址指针MOVX@DPTR,A;存数据INCDPTR;目的地址指针+1MOVR2,DPHMOVR3,DPL;保存目的地址指针CLRCMOVA,R7SUBBA,#1MOVR7,AMOVB,A;暂存16位字节数低字节MOVA,R6SUBBA,#0MOVR6,A;字节数减一:(R6R7)¬(R6R7)-1ORLA,B;(R6R7)=0?JNZSS04;未完继续传送RETSS04C:MOVR3,#00HMOVR2,#20H;指定源地址为MOVR5,#00HMOVR4,#30H;指定目的地址为3000HMOVR7,#00HMOVR6,#01H;传送字节数为100HLCALLSS04;从2000H开始向3000H开始的地址区传送100H个数据SJMP$软件实验五数据排序实验;把8051中RAM50H-5AH中放入不等的数据,运行本实验程序后检查50-5AH中内容是否按从小到大排列。;SORT功能:单字节无符号数据块排序(增序);入口条件:数据块的首址在R0中,字节数在R7中。;出口信息:完成排序(增序);影响资源:PSW、A、R2~R6堆栈需求:2字节SORT:MOVA,R7MOVR5,A;比较次数初始化SRT1:CLRF0;交换标志初始化MOVA,R5;取上遍比较次数DECA;本遍比上遍减少一次MOVR5,A;保存本遍次数MOVR2,A;复制到计数器中JZSRT5;若为零,排序结束MOVA,R0;保存数据指针MOVR6,ASRT2:MOVA,@R0;读取一个数据MOVR3,AINCR0;指向下一个数据MOVA,@R0;再读取一个数据MOVR4,A()PDF文件使用"pdfFactoryPro"试用版本创建www.fineprint.cnCLRCSUBBA,R3;比