第4章作业

发布 2022-07-04 19:52:28 阅读 8350

单片微型计算机与接**术思考与习题4

4.1 改正下面程序的错误。

#include<> 1

main2a=c3

int a=7,c4

delay(105

void delay6

char i8

for(i=0;i<=255;i++)9

解:(1)变量a,c必须先定义再引用。

2)第五句delay(10)后面必须加分号。

3)main()函数没有“}”

4)被调函数delay()在main()后面,必须在前面先声明。

5)第6句函数说明语句后的分号应去掉。

4.3定义变量a、b、c,a为内部ram的可位寻址区的字符变量;b为外部数据存储区浮点型变量;c为指向int型xdata区的指针。

解:bdata char a;

xdata float b;

xdata int *c;

4.5 将如下汇编程序译成c程序(等效即可)。

org 0000h

mov p1,#04h

mov r6,#0ah

mov r0,#30h

clr p1.0

setb p1.3

acall tlc

sjmp $

tlc: mov a,#

clr p1.3

mov r5,#

loop:mov c,p1.2

setb p1.0

clr p1.0

djnz r5,loop

mov @r0,a

inc r0

djnz r6,tlc

retend

解:#include<>

#define uchar unsigned char

sbit p1_0=p1^0;

sbit p1_1=p1^1;

sbit p1_2=p1^2;

sbit p1_3=p1^3;

sbit msb=acc^7;

sbit lsb=acc^0;

uchar tlc(void);

main()

uchar *p,i;

p1=0x04;

p=0x30;

p1_0=0;

p1_3=1;

for(i=0;i<10;i++)

*p=tlc();

p++;uchar tlc(void)

uchar i,y;

acc=0;

p1_3=0;

for(i=0;i<8;i++)

p1_1=msb;

y=acc<<1;

lsb=p1_2;

p1_0=1;

p1_0=0;

return y;

4.7完成逻辑表达式p1.2=p1.4(“”表示逻辑与,“+表示逻辑或)。

解:#include<>

sbit p12=p1^2;

main()

p12==(p1^4&&acc^0)||acc^7;

4.9内部ram的20h、21h和22h、23h单元分别存放着两个无符号的16位数,将其中的大数置于24h和25h单元。

#include<>

#define uint unsigned int

main()

uint data *m,*n,*p;

for(;;

m=0x20;

n=0x22;

p=0x24;

if(*m<*n)

p=*n;else *p=*m;

4.11将内部ram30h单元存放的2字节二进制数转换为十进制数存于21h为首的单元中,长度存放于20h单元中。

#include<>

main()

unsigned int a,k,*p3;

char i,*p1,*p2;

p1=0x20;

p2=0x25;

p3=0x30;

a=*p3;

k=10000;

while(a/k==0)

k=k/10;

for(i=0;a!=0;i++)

*p2=a/k;

a=a%k;

p2++;k=k/10;

p1=i;

第4章作业

1 已知以下投资方式 当前投入7000元,第二年底投入1000元。回报方式为 第一年底收回4000元,第三年底收回5500元。判断如果投资者的可接受利率为0.12,该项目是否可行?2 现有两种可选的投资项目 a 期限5年,每年的收益率为0.09 b 期限10年,每年的收益率为0.08。为了使两种资产...

第4章作业

写出以下指令汇编后str1的偏移地址。datadsegment bu1db10hdup str1 db hello datad endscodesegment assume cs code,ds datad,es datadstart 2 试指出下列程序中有哪些语法错误,并说明是什么错误。datas...

第4章作业

写出以下指令汇编后str1的偏移地址。datad segment bu1 db 10h dup str1 db hello datad ends code segment assume cs code,ds datad,es datad start 2 试指出下列程序中有哪些语法错误,并说明是什么错...