C51运算符.pptVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 《单片微机原理及应用》教学课件 第六讲:C-51程序设计 本讲重点:C-51的数据类型和存储类型;指针和中断的使用;通过实例消化理解C-51的编程方法;尝试将实验课中的ASM-51程序转为C-51程序. C语言作为一种非常方便的语言而得到广泛的支持, C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。 C提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。 ㈠ C-51简介 C-51与ASM-51相比,有如下优点: 1.??对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解; 2.??寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理; 3.??程序有规范的结构,可分成不同的函数,这种方式可使程序结构化; 4.??具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性; 5.??提供的库包含许多标准子程序,具有较强的数据处理能力; 6.??由于具有方便的模块化编程技术,使已编好程序可容量地植入新程序; ㈢ C-51的数据类型 常用的数据类型有: ㈡ C-51的程序结构 与一般C语言的结构相同,以main()函数为程序人口,程序体中包含若干语句还可以包含若干函数。 位型 字符型整型长整型浮点型 bitcharintlong int float 1位1字节2字节4字节4字节 数组型指针型 ㈣ C-51数据的存储类型 名存储空间位置长度数据范围data直接寻址片内RAM8位0~255 bdata可位寻址片内RAM1位0/1 idata间接寻址片内RAM8位0~255 xdata片外RAM16位0~65535 ㈤ C-51的包含的头文件 通常有:reg51.h math.h ctype.h stdio.h stdlib.h absacc.h 常用有:reg51.h (定义特殊功能寄存器和位寄存器);math.h (定义常用数学运算); ㈥ C-51的运算符 与C语言基本相同: + - * / (加 减 乘 除) = = (大于 大于等于 小于 小于等于) == !=(测试等于 测试不等于) || !(逻辑与 逻辑或 逻辑非 ) (位右移 位左移) |(按位与 按位或) ^ ~(按位异或 按位取反) ㈦ C-51的基本语句 与标准C语言基本相同:if选择语言switch/case多分支选择语言 while循环语言do-while循环语言for循环语言 ㈧ 实例 ORG 0000H MOV R0,#0DCH ;指向字形口 MOV A,#80H ;确定字形代码 MOVX @R0,A ;输出字形代码 MOV R1,#0DDH ;指向字位口 MOV A,#20H ;从最高位开始 LEDO: MOVX @R1,A ;输出字位代码 MOV R2,#18H ;确定延时常数 ACALL DEYS ;调延时子程序 RL A ;右移一位 SJMP LEDO ;循环演示 ; 延时子程序 DEYS: PUSH 02H DEY0: PUSH 02H DEY1: PUSH 02HDJNZ R2,$POP 02HDJNZ R2,DEY1POP 02HDJNZ R2,DEY0POP 02HDJNZ R2,DEYSRETEND 例1.“8”字符循环演示 (字形口为DCH; 字位口为DDH) ★ 汇编语言程序 #include reg51.h#include absacc.h #define uchar unsigned char/* 字形口 */ #define PORTA XBYTE[0xffdc]/* 字位口 */ #define PORTB XBYTE[0xffdd]/* 延时 1MS子程序 */ void msce(unsigned int x) { unsigned char j; while((x--)!=0) {for(j=0;j60;j++); } } main( ) { uchar rr,i; for(;;) { rr=0x01;/* 从最右一位开始 */for(i=0;i6;i++) {PORTA =0x80;/*输出字形代码*/PORTB =rr; /*输出字位代码*/msce(150); /*调延时子程序*/rr=rr1; /*循环左移一位*/ }} ★ “8”字符循环演示的C-51程序★ C-51程序 #include reg51.h main( ) { int i;unsigned char xdata *p=0x

文档评论(0)

dreamzhangning + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档