电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机实验总结VIP免费

单片机实验总结_第1页
1/15
单片机实验总结_第2页
2/15
单片机实验总结_第3页
3/15
程序由410出品,与老师的不大一样,此处省去1万字-----最终解释归410所有1.试编写程序。统计片内RAM30H~50H单元中FFH的个数,并将统计结果存51H。movr0,#30h//把30h赋给R0movr1,#00h//把00h赋给R1loop:cjne@r0,#0ffh,next//把R0所指的地址里的数(地址30h中的数)与0ffh比较incr1//若为0ffh则R1加1(计算0ffh的个数)next:incr0//若不一样则R0加1(即把R0里的地址加1,R0将指向下一个地址)cjner0,#51h,loop//比较R0所存的地址与51h,若不等则跳回loop继续执行mov51h,r1//若相等(R0里的数就为51h,完成30h到50h的计数)将R1里的值赋到地址51h里,即地址51h中存储着0ffh的个数sjmp$//等待end2、从片内RAM30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。movr0,#30h//把30h赋给R0mova,@r0//把R0所指30H中的数赋给a(a中就是地址30h中的无符号数)movr1,21h//把21h中的数赋给R1loop:incr0//R0加1(即R0将指向下一个地址)mov30h,@r0//把R0所指地址的数给到地址30h中cjnea,30h,chk//比较a中的数与地址30h中的数的大小,若a中的数>30H中的数,则Cy=0;否则相反chk:jclop//判断Cy是否为1,若是,则执行下面程序,否则跳至lop继续执行mova,@r0//把R0所指地址中的数给a,即把最小数赋给了alop:djnzr1,loop//R1减一,程序跳至loop继续执行,循环直至R1减到0mov20h,a//把a中的数赋到地址20h中end3、设片外RAM2000H单元中有一个8位二进制数,试编程将该数的低四位屏蔽掉,并送回原存储单元。movdptr,#2000h//将片外地址2000h给dptrmovxa,@dptr//将片外地址2000h中的数赋给aanla,#0f0h//将a中的数与0f0h与下,屏蔽低四位的数movx@dptr,a//将屏蔽好的数送回到片外地址2000h中end4、试编写程序,求出片内RAM20H单元中“1”的个数,并将结果存入21H单元。mov21h,#0h//将地址21h中置0(例如20h中是01101000)movr2,#08h//将8赋给R2(8个有效数)mova,20h//将地址20h中的数赋给alop:rlca//带Cy左循环移位(即第一次移位变为11010000,Cy=0)jncloop//判断Cy是否不等于1,若不等1,则程序跳至loopinc21h//若Cy等于1,则地址21h中的数加1loop:djnzr2,lop//R2减1,程序跳至lop执行直至R2=0,才执行下面的end5、试编一程序,分别统计在内部RAM的30H~50H单元的数据区中奇数和偶数的个数,并将奇数和偶数的个数分别存放在51H和52H单元中。movr0,#30h//把30h给R0movr1,#20h//把20h给R1mov51h,#0mov52h,#0//把地址51h,52h中的数置零L1:movb,#02h//把2h给bmova,@r0//把R0所指地址中的数给adivab//a除以b,商给a,余数bmova,b//把b的数给acjnea,#0,L2//比较a与0的大小,若不等跳至L2inc52h//若相等地址52h中的数加一jmpL3//跳至L3L2:inc51h//地址51h中的数加一L3:incr0//R0加一djnzr1,L1//R1减一,跳至L1执行jmp$//等待end6、在2000H~2004H单元中,存有5个压缩的BCD码,试编程将它们转换成ASCII码,并存入2005H开始的连续单元中。movdph,#20hmovdpl,#00hmovr0,#5hmovr1,#0hlop:movdpl,r1movxa,@dptrmovb,aanla,#0fhorla,#30hmovdpl,r0movx@dptr,aincr0xcha,bswapaanla,#0fhorla,#30hmovdpl,r0movx@dptr,aincr0incr1cjner1,#5h,lopEnd7、参考书中P109页,编写C语言和汇编语言的流水灯程序#include#include#defineucharunsignedchar#defineuintunsignedintvoiddelayms(t){uinti;for(;t>0;t--)for(i=0;i<120;i++);}voidmain(){uinti;while(1){P1=0xfe;for(i=0;i<8;i++){P1=_crol_(P1,1);delayms(300);}}}8、使用89C51的P1连接到8颗LED,P1在正常状况下会输出跑马灯,然后通过用户触动外部按钮来中断INT0,当INT0引脚有低电位的脉冲出现时,8个LED会一闪一灭4次。#include#include#defineucharunsignedchar#defineuintunsignedintvoiddelayms(t){uinti;for(;t>0;t--)for(i=0;i<120;i++);}voidintx0_isr()interrupt0{uinti;for(i=0;i<4;i++){P1=0xff;delayms(200);P1=0x00;delayms(200);}}voidmain(){uinti;IT0=1;EX0=1;EA=1;while(1){P1=0xfe;for(i=0;i<8;i++){P1=_crol_(P1,1);delayms(300);}}}9、使用89C51的P1连...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机实验总结

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部