预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共32页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

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