1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去

上传人:飞****9 文档编号:127478778 上传时间:2020-04-02 格式:DOCX 页数:10 大小:37.91KB
返回 下载 相关 举报
1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第1页
第1页 / 共10页
1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第2页
第2页 / 共10页
1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第3页
第3页 / 共10页
1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第4页
第4页 / 共10页
1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去》由会员分享,可在线阅读,更多相关《1 编程将片内RAM30H单元开始的15B的数据传送到片外RAM3000H开始的单元中去(10页珍藏版)》请在金锄头文库上搜索。

1、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二进制数

2、,编程找出其中最大值并存于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,#2

3、0H ;定时器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输

4、出高电平时,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) OR

5、G 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,#

6、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,DONESJ

7、MP 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+D

8、PTRMOV 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

9、 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 ;等待键释放

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号