- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机C语言 数据排序实验
实验二 数据排序实验
一、实验目的
1. 熟悉51指令系统,掌握程序设计方法。
2. 掌握排序程序的设计方法。
二、实验内容
1. 本例程采用交换排序法将内部RAM 中的30~39H 单元中的10个单字节无符号二进制数按从小到大的次序排列,
将排序后的数据中的最大的一个数和最小一个数去掉,求其他八个数的和,和放40H,41H
中, 求这八个数的平均值,放在50H中。
三、实验步骤
1.用 C 语言或汇编语言编写程序。
2.编译、生成项目、下载程序,调试运行程序。
3. 用单步、断点、连续执行程序的方法调试程序。
4. 打开RAM数据窗口,分别观察看30H—39H、40H,41H(02H)(0C0H)和50H(58H)的单元。
四、实验参考程序
ORG 0000H
JMP MAIN
ORG 0100H
MOV SP #60H
MOV 30H,#5FH
MOV 31H,#56H
MOV 32H,#5AH
MOV 33H,#5EH
MOV 34H,#51H
MOV 35H,#5BH
MOV 36H,#53H
MOV 37H,#58H
MOV 38H,#57H
MOV 39H,#55H
NOP ; 设置断点
ACALL QUE
NOP
ACALL LEIJA
NOP
ACALL CHU8
NOP
HERE: AJMP HERE
数据排序子程 累加序子程 除 8 序子程 QUE:??
MOV R3,#30H
QUE1:??
MOV A,R3???
MOV R0,A
MOV R7,#09H?
CLR 00H??????????
MOV A,@R0
QL2:?
INC R0
? ?MOV R2,A
? ?CLR C
? ?MOV 22H,@R0
? ?CJNE A,22H,QL3???
? ?SETB C
QL3:???
MOV A,R2
? ?JC QL1????
SETB 00H
?? ?XCH A,@R0
?? ?DEC R0
?? ?XCH A,@R0
?? ?INC R0??
QL1:???
MOV A,@R0
DJNZ R7,QL2
JB 00H,QUE1?
NOP
??? RET
LEIJA:
MOV R0,#31H
MOV R7,#8
CLR C
CLR A
MOV 40H,#00H
JIA:
ADD A,@R0
JC JIWEI
JIA1:
INC R0
DJNZ R7,JIA
MOV 41H,A
SJMP JS
JIWEI:
INC 40H
SJMP JIA1
JS:
RET
CHU8:
MOV 50H, 40H
MOV 51H, 41H
MOV R7,#3
CHU81:
CLR C
MOV A,50H
RRC A
MOV 50H,A
MOV A, 51H
RRC A
MOV 51H,A
DJNZ R7,CHU81
MOV 50H,51H
RET
END
#includec8051f020.h
#includestdio.h
unsigned char a[10] _at_ 0x30;
unsigned char data0 _at_ 0x40;
unsigned char data1 _at_ 0x41;
unsigned char data2 _at_ 0x50;
void main()
{
unsigned char tmp;
int num;
int i,j;
a[0]=0x5f;
a[1]=0x56;
a[2]=0x5a;
a[3]=0x5e;
a[4]=0x51;
a[5]=0x5b;
a[6]=0x53;
a[7]=0x58;
a[8]=0x57;
a[9]=0x55;
for(i=1;i10;i++)
for(j=0;j10-i;j++)
{
if(a[j]a[j+1])
{tmp=a[j];a[j]=a[j+1];a[j+1]=tmp;}
}
num=a[3]+a[4]+a[5]+a[6];
data1=num%0x100;
data0=num/0x100;
data2=num/4;
}
N
N
数据排序子程序框图
Y
标志位=0?
结束
置标志位,交换内容
长度减1=0?
(A)
您可能关注的文档
最近下载
- 2025广西公需科目考试答案(3套,涵盖95_试题)一区两地一园一通道建设;人工智能时代的机遇与挑战.pdf VIP
- 2025商用车发动机气缸体铸件技术条件.docx VIP
- 颅内复杂动脉瘤介入治疗围术期护理专家共识2025 .pdf
- 第二节病虫害预测预报教学教材.ppt VIP
- 电梯新检规施工自检报告-曳引客货-2024.doc
- 2025年高考英语(新高考Ⅱ卷)试卷评析及2026高考备考策略 课件.pptx
- 2000年全国高中学生化学竞赛决赛(冬令营)理论试题与实验试题及参考答案精品.pdf VIP
- 苹果公司知识产权保护策略.pptx
- 中药饮片智能调剂与煎煮关键技术研究课件.pdf VIP
- 局部解剖学(山东联盟) 智慧树 知到答案.docx VIP
文档评论(0)