4KeilC51教程讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 Keil C51 4.1 MCS51的编程语言 4.2 Keil C51 编程语言 1.C51程序结构 2.数据类型 3.C51数据的存储类型 4.C51的包含的头文件 5.C51的运算符和控制语句 6.片外I/O口定义/片外RAM地址定义 7. C51的指针 8. 中断服务程序 4.3 键盘接口与编程 4.4 LED数码管动态扫描显示与编程 4.1 MCS 51的编程语言 1. 汇编语言 (1)用CPU的指令(助记符代替机器码),再加若干规定(语法规则)→汇编语言。通过计算机汇编:由软件完成到机器码的翻译工作。源程序→汇编→目标程序(可执行的机器码文件)。 (2)必须充分了解机器的指令系统、寻址方式。所有的操作和运算都必须由编程者完成,对初学者难度较大。 (3)对芯片的资源使用灵活,程序代码效率最高、实时性最好。 2. C语言 (1) C语言是一种结构化程序设计语言,它兼顾了多种高级语言的特点,并具备与底层硬件资源打交道功能。 (2) 语句表达方式接近人的思维方式,并提供库函数,有较强的数据处理能力。学习和编程较汇编语言容易。 (3) C语言本身不依赖于机器硬件系统,易于将程序从不同的单片机系统中进行移植。 3. Keil C51与ASM51相比,有如下优点: (1)对单片机的指令系统不要求了解,仅要求对8051 的存贮器结构有初步了解; (2)寄存器分配、不同存贮器的寻址及数据类型等细节可由编译器管理; (3)程序有规范的结构,可分成不同的函数,这种方式可使程序结构化; (4)具有将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性; (5)提供的库包含许多标准子程序,有较强的数据处理能力; (6)由于具有方便的模块化编程技术,已编的程序容易移植。 4.2 Keil C51 编程语言 1. C51程序结构 与一般C语言的结构相同,为若干函数的集合。 一个C源程序必须有一个main()函数。 main()为程序运行的人口,与main()所在源程序的位置无关。 源程序中一般应包含芯片的头文件: #include Reg51.h 函数可分成两类: 一类是编译器提供的库函数,需用include预处理指令将对应的头文件包含在源程序中。 另一类是用户编写的函数。 C51函数的一般格式 类型 函数名(参数表) /* 可多行注释 */ { 数据说明部分; 语句执行部分; // 单行注释 } 2.数据类型 4.3 键盘接口的编程 4.4 LED数码管动态扫描显示与编程 行 K0~K15的键码表 K15:0x77 0111 0111 K14:0xb7 1011 0111 K13:0xd7 1101 0111 K12:0xe7 1110 0111 K11:0x7b 0111 1011 K10:0xbb 1011 1011 K9:0xdb 1101 1011 K8:0xeb 1110 1011 K7:0x7d 0111 1101 K6:0xbd 1011 1101 K5:0xdd 1101 1101 K4:0xed 1110 1101 K3:0x7e 0111 1110 K2:0xbe 1011 1110 K1:0xde 1101 1110 K0:0xee 1110 1110 * * 例4-1:流水灯控制 流水灯控制 #include REG52.H #define uint unsigned int void Delayms (uint x); main ( ) { unsigned char i; while(1) //死循环 { for(i=0,P1=0xfe;i8;i++) //P1.0=0,对应的LED亮 { Delayms(500); //延时0.5秒 P1=(P11)+1; //下一个LED亮 } } } void Delayms (uint x) //延时函数 {uint n; for( ;x 0; x--) { for(n=0;n123;n++) { ; } } } 例中的头文件REG52.H定义了8051/52的各特殊功能寄存器、可位寻址的位名。如: 3.1 MCS51的编程语言 sfr P0 = 0x80; sfr

文档评论(0)

三沙市的姑娘 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档