电子竞赛之C语言应用教学课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《电子竞赛之C语言应用教学课件.ppt》由会员分享,可在线阅读,更多相关《电子竞赛之C语言应用教学课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living电子竞赛之C语言应用教学课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living前言这个ppt的重点在于讲述如何使用C语言来对SPCE061A单片机进行编程。希望这个ppt对同学们有所帮助。凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Liv
2、ing目录凌阳C语言简介凌阳C语言基础 C和汇编混合编程用C来直接控制硬件 凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living凌阳C语言简介凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living用C语言编程的优点寄存器分配、数据类型等由编译器管理。编程及调试的时间减少,大大缩短开发周期。明显增加软件可读性,便于改进和扩充。凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living用C语言可以很方便地对SPCE061A进行编程IDE直接提供了C语言的开发环境,C函数和汇编
3、函数可以方便地进行相互调用。Software LibrariesStandard C libraryHardware librarySACM(Sunplus audio coding method)凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living凌阳C语言基础凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy LivingunSPGCC认可的基本数据类型及其值域数据类型数据长度(bit)值域char16-3276832767short,int16-3276832767long32-21474836482147483
4、647unsignedchar16065535unsignedshortunsignedint16065535unsignedlong3204294967295float,double32以IEEE格式表示的32位浮点数凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living数据类型应该注意的地方char和unsignedchar为16位这与一般机器使用的GCC数据类型之间有一些差别。float与double均存储为32位浮点数unSP汇编的float与double分别是32位与64位浮点数。凌阳大学计划凌阳大学计划.twSUNPLUSTechnolog
5、y for Easy Living关于变量的signed和unsigned如果使用signed和unsigned两种数据类型,将使存储空间成倍增长。因为使用signed和unsigned两种数据类型的库函数是不同的,使用signed和unsigned,就得同时使用这两种格式类型的库函数,最好采用unsigned格式。在编程时,如果只强调程序的运算速度而又不进行负数运算时,最好采用unsigned格式。凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living关于实参求值顺序unSPIDE和TurboC一样,实参的求值顺序是从右到左的,如下例:i=3;pri
6、ntf(%d,%d,i,i+);输出4,3 凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living一个例子凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy LivingC和汇编混合编程凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living混合编程的三个方面C调用汇编函数汇编调用C函数 C中嵌入在线汇编 凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy LivingC调用汇编函数要求汇编函数名也以下划线“_”为前缀因为C编译器产生的所有标号都以下
7、划线“_”为前缀。在进行参数传递时,参数以相反的顺序(从右到左)被压入栈中。汇编函数的16位返回值存放在寄存器R1中。32位的返回值存入寄存器对R1、R2中;其中低字在R1中,高字在R2中。凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy LivingC调用汇编的小例子externintADD();intmain(void)inti,j,SUM;i=2;j=3;SUM=ADD(i,j);return0;.CODE.PUBLIC_ADD_ADD:.PROCPUSHBPTOSP;BP=SP+1;R1=BP+3;/取得第一个参数R2=BP+4;/取得第二个参数R1+
8、=R2;POPBPFROMSP;RETF;.ENDP凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living汇编调用C小例子EXTERNAL_ADD;.RAM.VARSUM.CODE.PUBLIC_main;_main:R1=3;PUSHR1TOSP;/第2个参数/入栈R1=2;PUSHR1TOSP;/第1个参数/入栈CALL_ADD;SUM=R1;SP+=2;/恢复SP指针.ENDC函数:intADD(inti,intj)i=i+j;returni;凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy LivingC中嵌入
9、在线汇编在线汇编指令格式:asm(“汇编指令模板汇编指令模板”:输出参数:输入参数:输出参数:输入参数)凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living利用嵌入式汇编写端口寄存器 在C对P_IOA_Dir赋值0 x1234,则嵌入汇编的实现方式如下:asm(“.defineP_IOA_Dir0 x7002”);intmain(void)asm(P_IOA_Dir=%0:r(0 x1234);凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living利用嵌入式汇编读端口寄存器 把P_IOA_Dir的值读出并保存
10、在C中的一个int变量j里,则嵌入汇编的方式如下:asm(“.defineP_IOA_Dir0 x7002”);intmain(void)intj;asm(%0=P_IOA_Dir:=r(j);凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living用C来直接控制硬件 凌阳大学计划凌阳大学计划.twSUNPLUSTechnology for Easy Living使用纯C对寄存器进行操作#defineP_IOA_Dir(volatileunsignedint*)0 x7002intmain(void)intj;*P_IOA_Dir=0 x1234;j=*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 竞赛 语言 应用 教学 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内