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

下载本文档

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

文档简介

1 编程将片内RAM30H单元开始的B的数据传送到片外RAM3000H开始的单元中去。解:STRAT:MOV R0,#30H MOV R7,#0FH MOV DPTR,#3000H LOOP: MOV A,R0 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,LOOP RET2 片内RAM30H开始的单元中有10B的二进制数,请编程求它们之和(和256 )解ADDIO:MOV R0,30H MOV R7,#9 MOV A,R0 LOOP: INC R0 ADD A,R0 DJNZ R7,LOOP MOV 30H,A RET5 片内RAM40H开始的单元内有10B二进制数,编程找出其中最大值并存于50H单元中 解 START: MOV R0,#40H ;数据块首地址送R0 MOV R7,#09H ;比较次数送 MOV A,R0 ;取数送 LOOP: INC R0 MOV 30H,R0 ;取数送H CJNE A,30H,NEHT ;(A)与(30H)相比 NEXT: JNC BIE1 (A)(30H)转BIR1 MOV A,30H ;(A)(30H),大数送ABIE1: DJNZ R7,LOOP ;比较次数减1,不为0,继续比较 MOV 50H,A ;比较结束,大数送50H RET 6 编一子程序,从串行接口接受一个字符解: START: MOV TMOD,#20H ;定时器T1工作于模式2 MOV TH1,#0E8H ;设置波特率为1 200b/s MOV TL1,#0E8H SETB TR1 ;启动T1 MOV SCON,#50H ;串行接口工作于方式1,充许接收 L1: JNB RI,L1 ;等待接收数据,末接收到数据,继续等待 CLR RI ;接收到数据,清RI MOV A,SBUF ;接收到数据送A RET9 编制一个循环闪烁灯的程序。有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。画出电路图。解 P1.0 8013 P1.7 D0 Q074LS240D7 Q7 5V 本程序的硬件连接如图所示。当P1.0输出高电平时,LED灯亮,否则不亮。 其程序如下: MOV A,#01H ;灯亮初值 SHIFT: LCAIL FLASH ;调闪亮10次子程序 RR A ;右移一位 SJMP SHIFT ;循环 FLASH: MOV R2,#0AH 闪烁10次计数 FLASH1; MOV P1,A ;点亮 LCALL DELAY ;延时 MOV P1,#00H ;熄灭 LCALL DELAY ;延时 DJNZ R2,FLASH1 ;循环RET 1. 编定一个软件延时1S和1mi的子程序设osc=6Hz,则一个机器周期1。解:(1)1S=2US*5*1000005*100000=250*200*10(2) ORG 1000H TIME:MOV R7,#10 T3: MOV R6,#200 T2: MOV R6,#250 T1: DJNZ R5,T1DJNZ R6,T2DJNZ R7,T3RET (2)1min=60,调用上面1s子程序60次 ORG 0030H MOV R0,#60LOOP:LCALL TIME DJNZ R0,LOOP RET2. 请编制串行通信的数据发送程序,发送片内RAM50H5FH的16B数据,串行接口设定为方式2,采用偶校验方式。设晶振频率为6MHz。解:查询方式发送程序如下 MOV SCON,#8OH M OV PCON,#80H MOV R0,#50H MOV R7,#16HLOOP: MOV A,R0 MOV C,P MOV TB8,C MOV SBUF,A JNB T1,$ CLR T1 INC R0 DJNZ R7,LOOP RET4.应用单片机内部定时器T0工作在方式1下,从P1.0输出周期为2ms的方波脉冲信号,已知单片机的晶振频率为6MHZ。请(1)计算时间常数X,应用公式X=2t(f)(2)写出程序清单解:X=216-t(F/12)=216-1*10-3*6*106/12=OFEOCHORG 3000HSTART:MOV TMOD,#01HMOV TL0,#OCHMOV THO,#OFEHSETB TR0LOOP: JBC TFO,DONESJMP LOOPDONE: MOV TL0,#OCHMOV THO,#OFEHCPL P1.0SJMP LOOP6、 用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。编出汇编语言程序。解: ORG 0100H ABC:SETB P1.0SETB P1.7JB PI.7,$JNB P1.7,$CLR P1.0MOV R2,#0 DAY: NOPNOPDJNZ R2,DAYSJMP ABC7、设计一个4位数码显示电路,并用汇编语言编程使8从右到左显示一遍。解: ORG 0100HMOV A,#08HMOV R2,#01HMOV DPTR,#TABMOVC A,A+DPTRMOV P1,ANEXT:MOV A,R2MOV P3,AACALL DAYJB ACC.4,LPDRL AMOV R2,AAJMP NEXTLPD: RETTAB: DB END11设计89C51和ADC0809的接口,采集2通道10个数据,存入内部RAM的50H59H单元,画出电路图,编出:(2)查询方式;解:IN2的地址为7FFAH,P1.0查询转换结束信号,查询程序如下: ORG 0100H MOV R7,#0AH MOV R0,#50H MOV DPTR,#7FFAH NEXT: MOVX DPTR,A JB P1.0,$ MOVX A,DPTR MOV R0,A INC R0 DJNZ NEXT SJMP $12、扫描子程序:KEY1: ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下,转LK1 AJMP KEY1 ;无键按下,返回LK1: ACALL T12MS ;调延时12ms子程序 ACALL KS1 ;查有无键按下 JNZ LK2 ;若有,则为键确实按下,转逐列扫描 AJMP KEY1 ;无键按下,返回LK2: MOV R4,#00H ;首列号 R4 MOV R2,#FEH ;首列扫描字 R2LK4: MOV A,R2 ;列扫描字 P1口 MOV P1,A ;使第一列线为0MOV A,P1 ;读入行状态 JB ACC.0,LONE;第0行无键按下,转查第一行 MOV A,#00H ;第0行有键按下,该行首键号00H A AJMP LKP ;转求键号LONE: JB ACC.1,NEXT ;第一行无键按下,转查下一列 MOV A,#02 ;第一行有键按下,该行首键号02 ALKP: ADD A,R4 ;键号首行号列号 PUSH ACC ;键号进栈保护LK3: ACALL KS1 ;等待键释放 JNZ LK3 ;未释放,等待 POP AC ;键释放,键号 A RET ;键扫描结束NEXT: INC R4 ;列号加1,指向下一列 MOV A,R2 ;列扫描字 A JNB ACC.1,KND ;判断2列全扫描完?扫描完,转KND RL A ;没扫描完,扫描字左移一位,形成下一列扫描字 MOV R2,A ;扫描字 R2 AJMP LK4 ;扫描下一列 AJMP KEY1 ;全扫描完,返回 MOV A,#FCH ;全扫描字11111100B A MOV P1,A ;全扫描字 所有行 MOV A,P1 ;读取列值 CPL A ;取正逻辑,高电平表示有键按下 ANL A,#0C0H ;屏蔽低6位,取高2位 RET ;出口状态(A)!=0,有键按下2、如图所示,要求按下S1S4中的任意一个键,则对应的(S1D3、S2D4、 S3D5、S4D6)发光二极管亮,松开键对应的发光二极管灭。解答:ORG 0000HLJMP MAINORG 0030HMAIN: MOV P3,#0FFH LOOP: MOV A,P3MOV P1,ALJMP LOOPEND1、试编程采用软件延时的方法来延时5分钟。(系统时钟为6MHZ)(10分) ORG 1000H MOV R3,#05H LP3:MOV R2,#78H LP2: MOV R1,#0FAH LP1:MOV R0,#0FAH LP: NOP NOPDJNZ R0,LP DJNZ R1,LP1 DJNZ R2,LP2 DJNZ R3,LP3 END3、使用74ls164的并行输出端接8个发光二极管,利用它的串入并出的功能,把发光二极管从左到右轮流点亮一个灯,并反复循环。(即流水灯效果) ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV S

温馨提示

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

评论

0/150

提交评论