1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第1页
1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第2页
1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第3页
1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第4页
1编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1编程将片内RAM30H单元开头的15B的数据传送到片外RAM3000H开头的单元中去。解:STRAT:MOV R0,#30HMOV R7,#0FHMOV DPTR,#3000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R7,LOOPRET2片内RAM30H开头的单元中有10B的二进制数,请编程求它们之和〔256.解ADDIO:MOVR0,30HMOVR7,#9MOVA,@R0LOOP:INCR0ADDA,@R0DJNZR7,LOOPMOV30H,ARET5片内RAM40H开头的单元内有10B二进制数编程找出其中最大值并存于50H单元中.解 START:MOV R0,#40H ;数据块首地址送R0MOV R7,#09H ;比较次数送R7MOV A,@R0 ;取数送ALOOP: INC R0MOV 30H,@R0 ;取数送30HCJNE A,30H,NEHT ;〔A〕与〔30H〕相比NEXT: JNC BIE1 (A)≥(30H)转BIR1MOV A,30H ;(A)<(30H)ABIE1: DJNZ R7,LOOP ;比较次数减1,不为0,连续比较MOV 50H,A ;比较完毕,大数送50HRET6编一子程序,从串行接口承受一个字符.解:START:MOVTMOD,#20HT12MOVTH1,#0E8H1200b/sMOVTL1,#0E8HSETBTR1MOVSCON,#50H1,充许接收L1:JNBRI,L1CLRRIRIMOVA,SBUF;接收到数据送ARET9810P1.0D0Q05V8013P1.0D0Q05V801374LS240P1.7D7Q7本程序的硬件连接如下图。当P1.0输出高电寻常,LED灯亮,否则不亮。其程序如下:MOVA,#01H;灯亮初值SHIFT:LCAILFLASH10RRA;右移一位SJMPSHIFT;循环FLASH:MOVR2,#0AH10FLASH1;MOVP1,A;点亮LCALLDELAY;延时MOV P1,#00H ;熄灭LCALL DELAY ;延时DJNZ R2,FLASH1 ;循环RET1S1min的子程序.设fosc=6Hz1μs。〔〕1S=2US*5*1000005*100000=250*200*10(2) ORG1000HTIME:MOVR7,#10T3:MOVR6,#200T2:MOVR6,#250T1:DJNZR5,T1DJNZR6,T2DJNZR7,T3RET(2)1min=60,调用上面1s子程序60次ORG 0030HMOV R0,#60LOOP:LCALLTIMEDJNZ R0,LOOPRET请编制串行通信的数据发送程序,发送片内RAM50H~5FH的16B数据,串行接口设2,承受偶校验方式。设晶振频率为6MHz。解:查询方式发送程序如下MOVSCON,#8OHMOVPCON,#80HMOV R0,#50HMOV R7,#16HLOOP:MOV A,@R0MOVC,PMOVTB8,CMOV SBUF,AJNB T1,$CLR T1INC R0DJNZR7,LOOPRET4.应用单片机内部定时器T01P1.02ms6MHZ。请〔1〕计算时间常数X,应用公式X=216-t〔f/12〕〔2〕写出程序清单解:X=216-t(F/12)=216-1*10-3*6*106/12=OFEOCHORG 3000HSTART:MOVTMOD,#01HMOVTL0,#OCHMOVTHO,#OFEHSETB TR0LOOP:JBCTFO,DONESJMPLOOPDONE:MOVTL0,#OCHMOVTHO,#OFEHCPLP1.0SJMPLOOP689C51P1口,监测某一按键开关,使每按键一次,输出一个正脉冲〔脉宽随便。编出汇编语言程序。解: ORG 0100HABC:SETB P1.0SETB P1.7JB PI.7,$JNB P1.7,$CLRP1.0MOVR2,#0DAY:NOPNOPDJNZR2,DAYSJMPABC74位数码显示电路,并用汇编语言编程使“8“从右到左显示一遍。解:ORG0100HMOVA,#08HMOVR2,#01HMOVDPTR,#TABMOVCA,@A+DPTRMOVP1,ANEXT:MOVA,R2MOVP3,AACALLDAYJBACC.4,LPDRLAMOVR2,AAJMPNEXTLPD:RETTAB:DBEND1189C51ADC0809210RAM50H~59H画出电路图,编出:〔2〕查询方式;解:IN2的地址为7FFAH,P1.0查询转换完毕信号,查询程序如下:ORG 0100HMOVR7,#0AHMOVR0,#50HMOVDPTR,#7FFAHNEXT:MOVX@DPTR,AJBP1.0,$MOVXA,@DPTRMOV@R0,AINCR0DJNZNEXTSJMP$12、扫描子程序:KEY1:ACALLKS1;调用推断有无键按下子程序JNZLK1;有键按下,转LK1AJMPKEY1;无键按下,返回LK1:ACALLT12MS12msACALLKS1;查有无键按下JNZLK2;假设有,则为键确实按下,转逐列扫描AJMPKEY1;无键按下,返回LK2:MOVR4,#00H;首列号 R4MOVR2,#FEH;首列扫描字 R2LK4:MOVA,R2;列扫描字 P1口MOVP1,A0MOVA,P1;读入行状态JB ACC.0,LONE0LONE:JBACC.1,NEXT;第一行无键按下,转查下一列MOVA,#02 ;第一行有键按下,该行首键号#02 ALKP:ADDA,R4 ;键号=首行号+列号PUSHACC ;键号进栈保护LONE:JBACC.1,NEXT;第一行无键按下,转查下一列MOVA,#02 ;第一行有键按下,该行首键号#02 ALKP:ADDA,R4 ;键号=首行号+列号PUSHACC ;键号进栈保护LK3: ACALLKS1;等待键释放LK3: ACALLKS1;等待键释放JNZLK3;未释放,等待POPAC;键释放,键号 ARET;键扫描完毕NEXT: INC R4 ;列号加1,指向下一列MOV A,R2 ;列扫描字 AJNB ACC.1,KND2KNDAJMPLK4;扫描下一列AJMPAJMPLK4;扫描下一列AJMPKEY1;全扫描完,返回MOVA,#FCH;全扫描字11111100B AMOVP1,A;全扫描字 全部行MOVA,P1;读取列值CPL A ;取正规律,高电平表示有键按下ANL A,#0C0H ;屏蔽低6位,取高2位RET ;出口状态〔A〕!=0,有键按下2、如下图,要求按下S1~S4〔S1-D3、S2-D4、S3-D5、S4-D6〕发光二极管亮,松开键对应的发光二极管灭。解答:ORG 0000HLJMP MAINORG0030HMAIN:MOVP3,#0FFHLOOP:MOVA,P3MOV P1,ALJMP LOOPEND1、试编程承受软件延时的方法来延时5〔6MHZ〕(10ORG

1000HMOVR3,#05HLP3:MOV R2,#78HLP2:MOV R1,#0FAHLP1:MOV R0,#0FAHLP: NOPNOPDJNZ R0,LPDJNZR1,LP1DJNZR2,LP2DJNZR3,LP3END374ls1648管从左到右轮番点亮一个灯,并反复循环〔即流水灯效果〕ORG0000HLJMPMAINORG0030HMAIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论