最新单片机原理及应用 第三版 林立 张俊亮课后答案汇编 联系客服

发布时间 : 星期四 文章最新单片机原理及应用 第三版 林立 张俊亮课后答案汇编更新完毕开始阅读f1188e5f2e60ddccda38376baf1ffc4ffe47e297

a=*ptr; ptr=0x30; b=*ptr; x=a*b; }

7.8051的片内数据存储器25H单元中存放有一个0~10的整数,编程求其平方根(精确到5位有效数字),将平方根放到30H单元为首址的内存中。

解:方法一:用C语言与汇编语言混合编程实现 //用C语言编写的主函数MAIN.C #include #include char getdata(char); void main() {

char a=0x25,c; float f; c=getdata(a); f=sqrt(c); }

;用汇编语言编写的取数据子函数,只有一个地址参数在R7中,返回值为指定地址单元中的内容,用R7返回主函数。

PUBLIC _GETDATA

DE SEGMENT CODE RSEG DE

_GETDATA: MOV A,R7 ;取地址参数 MOV R0,A MOV A,@R0

MOV R7,A ;返回地址单元中的内容 EXIT: RET END

方法二:单用C语言编程实现 //MAIN.C

#include #include int movdata(char); void main() { char n; char *ptr; float *ptr2; float f; ptr=0x25; n=*ptr; f=sqrt(n);

ptr2=0x30; *ptr2=f; }

8.将外部RAM 10H~15H单元的内容传送到内部RAM 10H~15H单元。 解:方法一:采用C语言与汇编语言混合编程

//用C语言编写的主函数MAIN.C #include char movdata(char,char); void main() {

char a=0x10,b=0x06; movdata(a,b); }

;用汇编语言编写的移动数据子函数MOVDATA,其中第一个参数在R7中为首地址,第二个参数在R5中为字节数

PUBLIC _MOVDATA DE SEGMENT CODE RSEG DE

_MOVDATA: MOV A,R7 ;取参数 MOV R0,A

LOOP: MOVX A,@R0 MOV @R0,A

DJNZ R5,LOOP EXIT: RET END

方法二:单用C语言编程实现 //MAIN.C

#include int movdata(char); void main() {

char n=6;

char *ptr1=0x10; char xdata *ptr2; ptr2=0x20; while(n--){ *ptr2++=*ptr1++; } }

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

解:方法一: #include void main() {