(完整版)单片机原理及应用——基于Proteus和Keil_C 林立_张俊亮毕业论文

2025/7/12 18:37:51

即不能在一个函数内定义另一个函数,而且“{”前不应有分号 作为函数原型说明,应该放在函数调用之前,且其后不应该接函数体

cgar i;

字符型应该是unsigned char

for(i=O; i<=255; ”++”); ”++”应改成i++

}

主函数没有结束,缺”}”

5.定义变量a,b,c,其中a为内部RAM的可位寻址区的字符变量,b为外部数据存储区浮点型变量,c为指向 int 型 xdata 区的指针。 答: char bdata a;

float xdata b; int xdata *c;

6.编程将8051的内部数据存储器20H单元和35H单元的数据相乘,结果存到外部数据存储器中(任意位置)。 解:方法一:用嵌入式汇编语言实现 #include

#pragma asm MOV A,20H MOV B,35H MUL AB

MOV DPTR,#1234H MOVX @DPTR,A INC

DPTR

MOV A,B MOVX @DPTR,A

}

#pragma endasm

方法二:单用C语言编程实现 #include

unsigned int xdata x; unsigned char *ptr,a,b; ptr=0x25; a=*ptr; ptr=0x30; b=*ptr; x=a*b; }

7.8051的片内数据存储器25H单元中存放有一个0~10的整数,编程求其平方根(精确到5位有效数字),将平方根放到30H单元为首址的内存中。 解:方法一:用C语言与汇编语言混合编程实现 用C语言编写的主函数MAIN.C #include

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

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

MOV MOV MOV RET END

A,R7 ;取地址参数 R0,A

R7,A ;返回地址单元中的内容

EXIT:

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

#include

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 a=0x10,b=0x06; movdata(a,b); }

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

MOV

MOV A,R7 ;取参数 R0,A

LOOP: MOVX

MOV

@R0,A

DJNZ R5,LOOP

EXIT: RET

END

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

#include

char n=6;


(完整版)单片机原理及应用——基于Proteus和Keil_C 林立_张俊亮毕业论文.doc 将本文的Word文档下载到电脑
搜索更多关于: (完整版)单片机原理及应用——基于Proteus和Keil_ 的文档
相关推荐
相关阅读
× 快捷下载通道(下载后可以自由复制和排版)

开通会员免费下载

开通会员后百万份文档资料免费自由复制和下载,是您最优的选择,赶快来试试吧!

单篇下载:10元 点击下载

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219