当前位置:首页 > 单片微型计算机与接口技术课后答案
sp=(60h),dph=(24h)执行结果将0送外部数据存储器的2410单元。 2.9 对下列程序中各条指令作出注释,并分析程序运行的最后结果。 muv 20h,#0a4h mov a,#017)6h mov r0,#20h mov r2,#57h anl a,r2 0rl a,@r0 swap a cpl a orl 20h,a sjmp $ 2.9 程序运行后内部ram(20h)=b4h,a=90h 2.10 将下列程序译为机器码。 机器码 源程序 la: mov a,#01h lb: mov p1,a rl a cjne a,#10,lb sjmp la 2.10 机器码 源程序
7401la:m()v a,#01h f590lb:m()v p1,a 23 rl a b40afa cjne a,#10,lb 80f6sjmp la
2.11 将累加器a的低4位数据送p。口的高4位,p。口的低4位保持不变。 2.11 anl a,#0fh swap a anl p1.#ofh orl p1,a sjmp $
2.12 编程将r0(r2)的内容和r1(r3)的内容相交换。 2.12 mov a,ro xch a,r1 mov r0,a sjmp $ 2.12 mov a,r2 xch a,r3 mov r2,a sjmp $
2.13 试用3种方法将a累加器中的无符号数乘4,积存放于b和a寄存器中。 2.13
(1)利用乘法指令mov b,#04h
【篇三:单片微型计算机与接口技术第三版课后习题答
案】
ass=txt>5.1 什么是接口?cpu与外设之间为什么需要接口?接口的功能是什么?
答:(1)计算机对外设(输入设备或输出设备)进行数据操作时,要通过一个过渡电路相连,连接cpu和外部设备之间的逻辑电路称为接口电路(简称接口或i/o口)。(2)因为cpu为ttl电平,并行数据格式,而外设的电平各异,信息格式不相同,必须进行转换使之匹配,而且cpu的数据线是外设或存储器与cpu进行数据传输的唯一公共通道,为使不产生使用总线的冲突,以及快速的cpu和慢速的外设时间上协调,cpu和外设之间必须有接口电路。(3)接口的功能是缓冲、锁存数据、地址译码识别设别设备、电平转换、信息格式转换、发布命令、传递状态等。
5.3 8xx51的4个i/o端口在结构上有何异同?使用时应注意什么? 答:
相同:都有两个输入缓冲器,分别受内部读锁存器和读引脚信号的控制,都有锁存器及场效应管输出驱动器。 不同:
(1)p0口
p0口的输出驱动电路由上拉场效应管vt1和驱动场效应管vt2组成,控制电路包括一个与门、一个非门和一个模拟开关mux。 使用p0口注意:
①当作为输入接口使用时,应先对该口写入“1”,使场效应管vt2截止,再进行读入操作,以防止场效应管处于导通状态,使引脚钳拉到零而引起误读。
②当作为i/o口使用时,v t1管截止,输出驱动级漏极开路,在p0口引脚需外接10k?的上拉电阻,否则vt2管无电源供电而无法工作。 (2)p1口
p1口电路的输出驱动部分内接有上拉电阻。 注意:作为输入口使用时,要先对该口写“1”。 (3)p2口
p2口的位结构比p1多了一个转换控制部分。
注意:当p2口的几位作为地址使用时,剩下的p2口线不能作为i/o口线使用。 (4)p3口
p3口内部结构中增加了第二输入/输出功能。 注意:采用位操作形式。
5.5 在例5-2中有如下语句:
mov p1,#0ffh ;高4位的led全灭,低4位输入线送“1” abc:mov a,p1;读p1口引脚开关状态,并送入a
为什么执行了abc语句后a的值低4位为开关状态,而不是前一句的ffh,那么它的高4位值是什么呢?
答:由内部结构图知,mov p1,#0ffh将使锁存器q=1,同时q=0,同时q=0,vt截止,当执行mov a,p1时,读引脚信号有效,低4位的开关电平通过门2进入内部总线到a,而读锁存器信号无效,门1关闭,q的信号进入不了内部总线,高4位没有引脚新的电平变化,由于vt截止,二极管也截止,进入门2的是vt的漏极电压vcc,因此,高4位通过门2读入的均是高电平即1111b。
5.7 利用8xx51的p1口控制8个发光二极管led。相邻的4个led为一组,使两组每隔
0.5s交替发亮一次,周而复始,画出电路并编写程序(设延时0.5s子程序为d05,已存在)。 org 0000h mov a,#0fh
abc:mov p1,a acall d05 swap a sjmp abc
d05:mov r6,250 dy:mov r7,250 day:nop nop
djnz r7,day djnz r6,dy ret end
5.9 设计一个能显示4位数码的电路,并用c语言和汇编语言编程使“8”能跑马显示8遍。 汇编程序 org 0000h mov a,#08h mov dptr,#tab mov a,@a+dptr mov p1,a
mov r2,#08h again:mov a,#01 next: mov p3,a acall day rl a
cjne a,#10h,next djnz r2,again tab:db 3fh, 06h, 5bh,4fh, 66h,6dh,7dh,07h, 7fh,6fh,77h,7ch, 39h,5eh,79h,71h end c语言程序
#includereg51.h
#define uint unsigned int #define uchar unsigned char main() {
uchar code tab1[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; uchar i,m; uint j;
for(m=0;m8;i++){ p3=0x01; for(i=0;i4;i++){ p1=tab1[8]; p3=1;
for(j=0;j=25000;j++); }} }
共分享92篇相关文档